<StructureDefinition xmlns="http://hl7.org/fhir">
  <text>
    <status value="generated" />
    <div xmlns="http://www.w3.org/1999/xhtml">
      <h1 xmlns="">NCTS Expanded Value Set v1.0.0</h1>
      <dl xmlns="">
        <dt>URL</dt>
        <dd>
          <a href="http://ns.electronichealth.net.au/fhir/StructureDefinition/ncts/profile/ValueSet/expanded-value-set/1.0.0">http://ns.electronichealth.net.au/fhir/StructureDefinition/ncts/profile/ValueSet/expanded-value-set/1.0.0</a>
        </dd>
        <dt>Base Definition</dt>
        <dd>
          <a href="http://hl7.org/fhir/StructureDefinition/ValueSet">http://hl7.org/fhir/StructureDefinition/ValueSet</a>
        </dd>
        <dt>Status</dt>
        <dd>ACTIVE</dd>
        <dt>Publisher</dt>
        <dd>Australian Digital Health Agency</dd>
        <dt>Description</dt>
        <dd>The NCTS Expanded Value Set is a profile of the FHIR® ValueSet resource. This profile is designed to validate the response of the ValueSet expand operation, within the context of NCTS content types. This profile does not support creation of explicit ValueSets.</dd>
      </dl>
      <h2 xmlns="">Elements (differential)</h2>
      <table xmlns="">
        <thead>
          <tr>
            <th>Path</th>
            <th>Cardinality</th>
            <th>Type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>ValueSet</td>
            <td>1..1</td>
            <td>
              <span>ValueSet</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.implicitRules</td>
            <td>0..0</td>
            <td>
              <span>uri</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.contained</td>
            <td>0..0</td>
            <td>
              <span>Resource</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.modifierExtension</td>
            <td>0..0</td>
            <td>
              <span>Extension</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion</td>
            <td>1..1</td>
            <td>
              <span>BackboneElement</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.modifierExtension</td>
            <td>0..0</td>
            <td>
              <span>BackboneElement</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.total</td>
            <td>1..1</td>
            <td>
              <span>integer</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.parameter</td>
            <td>1..*</td>
            <td>
              <span>BackboneElement</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.parameter.modifierExtension</td>
            <td>0..0</td>
            <td>
              <span>Extension</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.parameter.value[x]</td>
            <td>1..1</td>
            <td>
              <span>string</span>
              <span>boolean</span>
              <span>integer</span>
              <span>decimal</span>
              <span>uri</span>
              <span>code</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.contains</td>
            <td>0..*</td>
            <td>
              <span>BackboneElement</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.contains.modifierExtension</td>
            <td>0..0</td>
            <td>
              <span>Extension</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.contains.system</td>
            <td>1..1</td>
            <td>
              <span>uri</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.contains.version</td>
            <td>1..1</td>
            <td>
              <span>string</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.contains.code</td>
            <td>1..1</td>
            <td>
              <span>code</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.contains.display</td>
            <td>1..1</td>
            <td>
              <span>string</span>
            </td>
          </tr>
          <tr>
            <td>ValueSet.expansion.contains.contains</td>
            <td>0..0</td>
            <td>
              <span>BackboneElement</span>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </text>
  <url value="http://ns.electronichealth.net.au/fhir/StructureDefinition/ncts/profile/ValueSet/expanded-value-set/1.0.0" />
  <name value="NCTS Expanded Value Set v1.0.0" />
  <status value="active" />
  <date value="2016-08-03" />
  <publisher value="Australian Digital Health Agency" />
  <description value="The NCTS Expanded Value Set is a profile of the FHIR® ValueSet resource. This profile is designed to validate the response of the ValueSet expand operation, within the context of NCTS content types. This profile does not support creation of explicit ValueSets." />
  <fhirVersion value="1.4.0" />
  <kind value="resource" />
  <abstract value="false" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ValueSet" />
  <derivation value="constraint" />
  <snapshot>
    <element>
      <path value="ValueSet" />
      <short value="A set of codes drawn from one or more code systems" />
      <definition value="A value set specifies a set of codes drawn from one or more code systems." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="ValueSet" />
      </type>
      <constraint>
        <key value="vsd-2" />
        <severity value="error" />
        <human value="A value set with only one import SHALL also have an include and/or an exclude unless the value set includes an inline code system" />
        <expression value="compose.import.count() != 1 or compose.include or compose.exclude" />
        <xpath value="not(exists(f:compose)) or (count(f:compose/f:import)!=1 or exists(f:compose/f:include) or exists(f:compose/f:exclude))" />
      </constraint>
      <constraint>
        <key value="vsd-5" />
        <severity value="error" />
        <human value="Value set SHALL contain at least one of a a compose, or an expansion element" />
        <expression value="compose or expansion" />
        <xpath value="exists(f:compose) or exists(f:expansion)" />
      </constraint>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
      <mapping>
        <identity value="w5" />
        <map value="conformance.terminology" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.id" />
      <short value="Logical id of this artifact" />
      <definition value="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Resource.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.meta" />
      <short value="Metadata about the resource" />
      <definition value="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Resource.meta" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Meta" />
      </type>
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.implicitRules" />
      <short value="A set of rules under which this content was created" />
      <definition value="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content." />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="Resource.implicitRules" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="uri" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.language" />
      <short value="Language of the resource content" />
      <definition value="The base language in which the resource is written." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Resource.language" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="code" />
      </type>
      <binding>
        <strength value="required" />
        <description value="A human language." />
        <valueSetUri value="http://tools.ietf.org/html/bcp47" />
      </binding>
    </element>
    <element>
      <path value="ValueSet.text" />
      <short value="Text summary of the resource, for human interpretation" />
      <definition value="A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it &quot;clinically safe&quot; for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety." />
      <alias value="narrative" />
      <alias value="html" />
      <alias value="xhtml" />
      <alias value="display" />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="DomainResource.text" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Narrative" />
      </type>
      <condition value="dom-1" />
      <mapping>
        <identity value="rim" />
        <map value="Act.text?" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.contained" />
      <short value="Contained, inline Resources" />
      <definition value="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope." />
      <alias value="inline resources" />
      <alias value="anonymous resources" />
      <alias value="contained resources" />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="DomainResource.contained" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Resource" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="DomainResource.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.modifierExtension" />
      <slicing>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <short value="Extension" />
      <definition value="An Extension" />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="DomainResource.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
    </element>
    <element>
      <path value="ValueSet.url" />
      <short value="Globally unique logical identifier for  value set" />
      <definition value="An absolute URL that is used to identify this value set when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this value set is (or will be) published." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.url" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="uri" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
      <mapping>
        <identity value="w5" />
        <map value="id" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.identifier" />
      <short value="Additional identifier for the value set (e.g. HL7 v2 / CDA)" />
      <definition value="Formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.identifier" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Identifier" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="define.xml2.0" />
        <map value="Identifier part" />
      </mapping>
      <mapping>
        <identity value="w5" />
        <map value="id" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.version" />
      <short value="Logical identifier for this version of the value set" />
      <definition value="Used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.version" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
      <mapping>
        <identity value="w5" />
        <map value="id.version" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.name" />
      <short value="Informal name for this value set" />
      <definition value="A free text natural language name describing the value set." />
      <requirements value="Support human navigation." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.name" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.status" />
      <short value="draft | active | retired" />
      <definition value="The status of the value set." />
      <requirements value="Identify when/if the value set should be used." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.status" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
      <binding>
        <strength value="required" />
        <description value="The lifecycle status of a Value Set or Concept Map." />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/conformance-resource-status" />
        </valueSetReference>
      </binding>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
      <mapping>
        <identity value="w5" />
        <map value="status" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.experimental" />
      <short value="If for testing purposes, not real usage" />
      <definition value="This valueset was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.experimental" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="boolean" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="w5" />
        <map value="class" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.publisher" />
      <short value="Name of the publisher (organization or individual)" />
      <definition value="The name of the individual or organization that published the value set." />
      <requirements value="Helps establish the &quot;authority/credibility&quot; of the value set.  May also allow for contact." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.publisher" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="w5" />
        <map value="who.witness" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.contact" />
      <short value="Contact details of the publisher" />
      <definition value="Contacts to assist a user in finding and communicating with the publisher." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.contact" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.contact.id" />
      <representation value="xmlAttr" />
      <short value="xml:id (or equivalent in JSON)" />
      <definition value="unique id for the element within a resource (for internal references)." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.contact.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.contact.modifierExtension" />
      <short value="Extensions that cannot be ignored" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions." />
      <alias value="extensions" />
      <alias value="user content" />
      <alias value="modifiers" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="BackboneElement.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.contact.name" />
      <short value="Name of an individual to contact" />
      <definition value="The name of an individual to contact regarding the value set." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.contact.name" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.contact.telecom" />
      <short value="Contact details for individual or publisher" />
      <definition value="Contact details for individual (if a name was provided) or the publisher." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.contact.telecom" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="ContactPoint" />
      </type>
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.date" />
      <short value="Date for given status" />
      <definition value="The date that the value set status was last changed. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes (e.g. the 'content logical definition')." />
      <requirements value="Need to know when a value set was first legal for use or became withdrawn or replaced." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.date" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="dateTime" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
      <mapping>
        <identity value="w5" />
        <map value="when.recorded" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.lockedDate" />
      <short value="Fixed date for all referenced code systems and value sets" />
      <definition value="If a locked date is defined, then the Content Logical Definition must be evaluated using the current version of all referenced code system(s) and value set instances as of the locked date." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.lockedDate" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="date" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="w5" />
        <map value="when.init" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.description" />
      <short value="Human language description of the value set" />
      <definition value="A free text natural language description of the use of the value set - reason for definition, &quot;the semantic space&quot; to be included in the value set, conditions of use, etc. The description may include a list of expected usages for the value set and can also describe the approach taken to build the value set." />
      <requirements value="Human understandability." />
      <alias value="Scope" />
      <alias value="Purpose" />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.description" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.useContext" />
      <short value="Content intends to support these contexts" />
      <definition value="The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of value set definitions." />
      <requirements value="Assist in searching for appropriate content." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.useContext" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="CodeableConcept" />
      </type>
      <isSummary value="true" />
      <binding>
        <strength value="extensible" />
        <description value="Indicates the countries, regions, disciplines and other aspects of use within which this artifact is targeted for use." />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/use-context" />
        </valueSetReference>
      </binding>
      <mapping>
        <identity value="define.xml2.0" />
        <map value="COMPONENT, PROPERTY, TIME_ASPCT, SYSTEM, SCALE_TYP, METHOD_TYP, CLASS, CLASSTYPE, ORDER_OBS, DOCUMENT_SECTION, HL7_ATTACHMENT_STRUCTURE" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.immutable" />
      <short value="Indicates whether or not any change to the content logical definition may occur" />
      <definition value="If this is set to 'true', then no new versions of the content logical definition can be created.  Note: Other metadata might still change." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.immutable" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="boolean" />
      </type>
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.requirements" />
      <short value="Why needed" />
      <definition value="Explains why this value set is needed and why it has been constrained as it has." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.requirements" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
    </element>
    <element>
      <path value="ValueSet.copyright" />
      <short value="Use and/or publishing restrictions" />
      <definition value="A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set." />
      <alias value="License" />
      <alias value="Restrictions" />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.copyright" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
    </element>
    <element>
      <path value="ValueSet.extensible" />
      <short value="Whether this is intended to be used with an extensible binding" />
      <definition value="Whether this is intended to be used with an extensible binding or not." />
      <requirements value="It is not required to say whether this intent applies." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.extensible" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="boolean" />
      </type>
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.compose" />
      <short value="When value set includes codes from elsewhere" />
      <definition value="A set of criteria that provide the content logical definition of the value set by including or excluding codes from outside this value set." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
      <condition value="vsd-5" />
      <constraint>
        <key value="vsd-1" />
        <severity value="error" />
        <human value="A value set composition SHALL have an include or an import" />
        <expression value="include or import" />
        <xpath value="exists(f:include) or exists(f:import)" />
      </constraint>
    </element>
    <element>
      <path value="ValueSet.compose.id" />
      <representation value="xmlAttr" />
      <short value="xml:id (or equivalent in JSON)" />
      <definition value="unique id for the element within a resource (for internal references)." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.modifierExtension" />
      <short value="Extensions that cannot be ignored" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions." />
      <alias value="extensions" />
      <alias value="user content" />
      <alias value="modifiers" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="BackboneElement.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.import" />
      <short value="Import the contents of another value set" />
      <definition value="Includes the contents of the referenced value set as a part of the contents of this value set. This is an absolute URI that is a reference to ValueSet.uri." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.compose.import" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="uri" />
      </type>
      <condition value="vsd-1" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="include">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name">
        <valueString value="ConceptSet" />
      </extension>
      <path value="ValueSet.compose.include" />
      <short value="Include one or more codes from a code system" />
      <definition value="Include one or more codes from a code system." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.compose.include" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
      <condition value="vsd-1" />
      <constraint>
        <key value="vsd-11" />
        <severity value="error" />
        <human value="Cannot have both concept and filter" />
        <expression value="concept.empty() or filter.empty()" />
        <xpath value="not(exists(f:concept)) or not(exists(f:filter))" />
      </constraint>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.id" />
      <representation value="xmlAttr" />
      <short value="xml:id (or equivalent in JSON)" />
      <definition value="unique id for the element within a resource (for internal references)." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.modifierExtension" />
      <short value="Extensions that cannot be ignored" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions." />
      <alias value="extensions" />
      <alias value="user content" />
      <alias value="modifiers" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="BackboneElement.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.system" />
      <short value="The system the codes come from" />
      <definition value="An absolute URI which is the code system from which the selected codes come from." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.system" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="uri" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="define.xml2.0" />
        <map value="ODM/Study/MetaDataVersion/CodeList/ExternalCodeList/Href" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.version" />
      <short value="Specific version of the code system referred to" />
      <definition value="The version of the code system that the codes are selected from." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.version" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="define.xml2.0" />
        <map value="ODM/Study/MetaDataVersion/CodeList/ExternalCodeList/Version" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name">
        <valueString value="ConceptReference" />
      </extension>
      <path value="ValueSet.compose.include.concept" />
      <short value="A concept defined in the system" />
      <definition value="Specifies a concept to be included or excluded." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.compose.include.concept" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
      <condition value="vsd-11" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.id" />
      <representation value="xmlAttr" />
      <short value="xml:id (or equivalent in JSON)" />
      <definition value="unique id for the element within a resource (for internal references)." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.modifierExtension" />
      <short value="Extensions that cannot be ignored" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions." />
      <alias value="extensions" />
      <alias value="user content" />
      <alias value="modifiers" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="BackboneElement.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.code" />
      <short value="Code or expression from system" />
      <definition value="Specifies a code for the concept to be included or excluded." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.concept.code" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.display" />
      <short value="Test to display for this code for this value set" />
      <definition value="The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.concept.display" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.designation" />
      <short value="Additional representations for this valueset" />
      <definition value="Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.compose.include.concept.designation" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.designation.id" />
      <representation value="xmlAttr" />
      <short value="xml:id (or equivalent in JSON)" />
      <definition value="unique id for the element within a resource (for internal references)." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.designation.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.designation.modifierExtension" />
      <short value="Extensions that cannot be ignored" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions." />
      <alias value="extensions" />
      <alias value="user content" />
      <alias value="modifiers" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="BackboneElement.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.designation.language" />
      <short value="Human language of the designation" />
      <definition value="The language this designation is defined for." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.concept.designation.language" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <binding>
        <strength value="required" />
        <description value="A human language." />
        <valueSetUri value="http://tools.ietf.org/html/bcp47" />
      </binding>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.designation.use" />
      <short value="Details how this designation would be used" />
      <definition value="A code that details how this designation would be used." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.concept.designation.use" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Coding" />
      </type>
      <binding>
        <strength value="extensible" />
        <description value="Details of how a designation would be used." />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/designation-use" />
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="ValueSet.compose.include.concept.designation.value" />
      <short value="The text value for this designation" />
      <definition value="The text value for this designation." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.concept.designation.value" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
    </element>
    <element>
      <path value="ValueSet.compose.include.filter" />
      <short value="Select codes/concepts by their properties (including relationships)" />
      <definition value="Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.compose.include.filter" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
      <condition value="vsd-11" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.filter.id" />
      <representation value="xmlAttr" />
      <short value="xml:id (or equivalent in JSON)" />
      <definition value="unique id for the element within a resource (for internal references)." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.filter.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.filter.modifierExtension" />
      <short value="Extensions that cannot be ignored" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions." />
      <alias value="extensions" />
      <alias value="user content" />
      <alias value="modifiers" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="BackboneElement.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.filter.property" />
      <short value="A property defined by the code system" />
      <definition value="A code that identifies a property defined in the code system." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.filter.property" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.filter.op" />
      <short value="= | is-a | is-not-a | regex | in | not-in" />
      <definition value="The kind of operation to perform as a part of the filter criteria." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.filter.op" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <binding>
        <strength value="required" />
        <description value="The kind of operation to perform as a part of a property based filter." />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/filter-operator" />
        </valueSetReference>
      </binding>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.include.filter.value" />
      <short value="Code from the system, or regex criteria" />
      <definition value="The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.compose.include.filter.value" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.compose.exclude" />
      <short value="Explicitly exclude codes" />
      <definition value="Exclude one or more codes from the value set." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.compose.exclude" />
        <min value="0" />
        <max value="*" />
      </base>
      <contentReference value="#include" />
      <condition value="vsd-2" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.expansion" />
      <short value="Used when the value set is &quot;expanded&quot;" />
      <definition value="A value set can also be &quot;expanded&quot;, where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
      <condition value="vsd-5" />
    </element>
    <element>
      <path value="ValueSet.expansion.id" />
      <representation value="xmlAttr" />
      <short value="xml:id (or equivalent in JSON)" />
      <definition value="unique id for the element within a resource (for internal references)." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.expansion.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.expansion.modifierExtension" />
      <slicing>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <short value="Extension" />
      <definition value="An Extension" />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="BackboneElement.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.expansion.identifier" />
      <short value="Uniquely identifies this expansion" />
      <definition value="An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.identifier" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="uri" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.timestamp" />
      <short value="Time ValueSet expansion happened" />
      <definition value="The time at which the expansion was produced by the expanding system." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.timestamp" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.total" />
      <short value="Total number of codes in the expansion" />
      <definition value="The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.total" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="integer" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.offset" />
      <short value="Offset at which this resource starts" />
      <definition value="If paging is being used, the offset at which this resource starts.  I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL not be present." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.offset" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="integer" />
      </type>
      <meaningWhenMissing value="Paging is not being used" />
    </element>
    <element>
      <path value="ValueSet.expansion.parameter" />
      <short value="Parameter that controlled the expansion process" />
      <definition value="A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion." />
      <min value="1" />
      <max value="*" />
      <base>
        <path value="ValueSet.expansion.parameter" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.parameter.id" />
      <representation value="xmlAttr" />
      <short value="xml:id (or equivalent in JSON)" />
      <definition value="unique id for the element within a resource (for internal references)." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.expansion.parameter.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.expansion.parameter.modifierExtension" />
      <slicing>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <short value="Extension" />
      <definition value="An Extension" />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="BackboneElement.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.expansion.parameter.name" />
      <short value="Name as assigned by the server" />
      <definition value="The name of the parameter." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.parameter.name" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.parameter.value[x]" />
      <short value="Value of the named parameter" />
      <definition value="The value of the parameter." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.parameter.value[x]" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="boolean" />
      </type>
      <type>
        <code value="integer" />
      </type>
      <type>
        <code value="decimal" />
      </type>
      <type>
        <code value="uri" />
      </type>
      <type>
        <code value="code" />
      </type>
    </element>
    <element id="contains">
      <path value="ValueSet.expansion.contains" />
      <short value="Codes in the value set" />
      <definition value="The codes that are contained in the value set expansion." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="ValueSet.expansion.contains" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="BackboneElement" />
      </type>
      <constraint>
        <key value="vsd-6" />
        <severity value="error" />
        <human value="SHALL have a code or a display" />
        <expression value="code or display" />
        <xpath value="exists(f:code) or exists(f:display)" />
      </constraint>
      <constraint>
        <key value="vsd-9" />
        <severity value="error" />
        <human value="Must have a code if not abstract" />
        <expression value="code or abstract = true" />
        <xpath value="exists(f:code) or (f:abstract/@value = true())" />
      </constraint>
      <constraint>
        <key value="vsd-10" />
        <severity value="error" />
        <human value="Must have a system if a code is present" />
        <expression value="code.empty() or system" />
        <xpath value="exists(f:system) or not(exists(f:code))" />
      </constraint>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.id" />
      <representation value="xmlAttr" />
      <short value="xml:id (or equivalent in JSON)" />
      <definition value="unique id for the element within a resource (for internal references)." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="id" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.extension" />
      <short value="Additional Content defined by implementations" />
      <definition value="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
      <alias value="extensions" />
      <alias value="user content" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.modifierExtension" />
      <slicing>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <short value="Extension" />
      <definition value="An Extension" />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="BackboneElement.modifierExtension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
      <isSummary value="true" />
    </element>
    <element>
      <path value="ValueSet.expansion.contains.system" />
      <short value="System value for the code" />
      <definition value="An absolute URI which is the code system in which the code for this item in the expansion is defined." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.contains.system" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="uri" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.abstract" />
      <short value="If user cannot select this entry" />
      <definition value="If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.contains.abstract" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="boolean" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.version" />
      <short value="Version in which this code/display is defined" />
      <definition value="The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.contains.version" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.code" />
      <short value="Code - if blank, this is not a selectable code" />
      <definition value="The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.contains.code" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <condition value="vsd-6" />
    </element>
    <element>
      <path value="ValueSet.expansion.contains.display" />
      <short value="User display for the concept" />
      <definition value="The recommended display for this item in the expansion." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="ValueSet.expansion.contains.display" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <condition value="vsd-6" />
    </element>
    <element>
      <path value="ValueSet.expansion.contains.contains" />
      <short value="Codes contained under this entry" />
      <definition value="Other codes and entries contained under this entry in the hierarchy." />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="ValueSet.expansion.contains.contains" />
        <min value="0" />
        <max value="*" />
      </base>
      <contentReference value="#contains" />
    </element>
  </snapshot>
  <differential>
    <element>
      <path value="ValueSet" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="ValueSet" />
      </type>
    </element>
    <element>
      <path value="ValueSet.implicitRules" />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="uri" />
      </type>
    </element>
    <element>
      <path value="ValueSet.contained" />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="Resource" />
      </type>
    </element>
    <element>
      <path value="ValueSet.modifierExtension" />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
    </element>
    <element>
      <path value="ValueSet.expansion" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.modifierExtension" />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="true" />
    </element>
    <element>
      <path value="ValueSet.expansion.total" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.parameter" />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.parameter.modifierExtension" />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
    </element>
    <element>
      <path value="ValueSet.expansion.parameter.value[x]" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="boolean" />
      </type>
      <type>
        <code value="integer" />
      </type>
      <type>
        <code value="decimal" />
      </type>
      <type>
        <code value="uri" />
      </type>
      <type>
        <code value="code" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.contains" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.modifierExtension" />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="Extension" />
      </type>
      <isModifier value="true" />
    </element>
    <element>
      <path value="ValueSet.expansion.contains.system" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="uri" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.version" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.code" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.display" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element>
      <path value="ValueSet.expansion.contains.contains" />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
  </differential>
</StructureDefinition>