<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://anagrafe.ssr.toscana.it/fhir/StructureDefinition/CodeSystem" />
  <name value="CodeSystem" />
  <title value="CodeSystem" />
  <status value="active" />
  <experimental value="false" />
  <date value="2021-10-20" />
  <description value="Dedalus MPI profile for CodeSystem" />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/w5" />
    <name value="W5 Mapping" />
  </mapping>
  <mapping>
    <identity value="objimpl" />
    <uri value="http://hl7.org/fhir/object-implementation" />
    <name value="Object Implementation Information" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="CodeSystem" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/CodeSystem" />
  <derivation value="constraint" />
  <differential>
    <element id="CodeSystem.meta">
      <path value="CodeSystem.meta" />
      <min value="1" />
    </element>
    <element id="CodeSystem.meta.tag">
      <path value="CodeSystem.meta.tag" />
      <slicing>
        <rules value="open" />
      </slicing>
    </element>
    <element id="CodeSystem.meta.tag:isFixedMonoVersion">
      <path value="CodeSystem.meta.tag" />
      <sliceName value="isFixedMonoVersion" />
      <comment value="The tags can be updated without changing the stated version of the resource. The list of tags is a set. Uniqueness is based the system/code, and version and display are ignored.&#xD;&#xA;&#xD;&#xA;Distinguishes between mono-versioned CS from fixed mono-versioned CS. That meta tag should NOT be used when using multi-versioned Code system.&#xD;&#xA;&#xD;&#xA;Used ONLY when a fixed mono-versioned CS is used. Tag missing = (non-fixed) mono-versioned." />
      <requirements value="It is a Fixed mono-versioned code system." />
      <max value="1" />
      <meaningWhenMissing value="Its a mono-versioned codes system or is multi-versioned code system." />
    </element>
    <element id="CodeSystem.meta.tag:isFixedMonoVersion.system">
      <path value="CodeSystem.meta.tag.system" />
      <min value="1" />
      <fixedUri value="https://anagrafe.ssr.toscana.it/tag/isFixedMonoVersion" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.meta.tag:isFixedMonoVersion.code">
      <path value="CodeSystem.meta.tag.code" />
      <short value="true - false" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.extension:hasNonUniqueCodes">
      <path value="CodeSystem.extension" />
      <sliceName value="hasNonUniqueCodes" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://anagrafe.ssr.toscana.it/fhir/StructureDefinition/extension-codeSystem-hasNonUniqueConceptCodes" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.url">
      <path value="CodeSystem.url" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.version">
      <path value="CodeSystem.version" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.name">
      <path value="CodeSystem.name" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.title">
      <path value="CodeSystem.title" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.status">
      <path value="CodeSystem.status" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.experimental">
      <path value="CodeSystem.experimental" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.publisher">
      <path value="CodeSystem.publisher" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.description">
      <path value="CodeSystem.description" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.copyright">
      <path value="CodeSystem.copyright" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.valueSet">
      <path value="CodeSystem.valueSet" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.versionNeeded">
      <path value="CodeSystem.versionNeeded" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.content">
      <path value="CodeSystem.content" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property">
      <path value="CodeSystem.property" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property.extension:valueSetBinding">
      <path value="CodeSystem.property.extension" />
      <sliceName value="valueSetBinding" />
      <definition value="Allows to specify a valueSet url for binding when property.type = code or coding. &#xD;&#xA;When a valueset bindins is specified, binding strenght is expect to be &quot;required&quot;" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://anagrafe.ssr.toscana.it/fhir/StructureDefinition/extension-codeSystem-propertyValueSetBinding" />
      </type>
    </element>
    <element id="CodeSystem.property.code">
      <path value="CodeSystem.property.code" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property.type">
      <path value="CodeSystem.property.type" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property:concept-status">
      <path value="CodeSystem.property" />
      <sliceName value="concept-status" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property:concept-status.code">
      <path value="CodeSystem.property.code" />
      <fixedCode value="status" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property:concept-status.type">
      <path value="CodeSystem.property.type" />
      <fixedCode value="code" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property:concept-period-start">
      <path value="CodeSystem.property" />
      <sliceName value="concept-period-start" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property:concept-period-start.code">
      <path value="CodeSystem.property.code" />
      <fixedCode value="period-start" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property:concept-period-start.type">
      <path value="CodeSystem.property.type" />
      <fixedCode value="dateTime" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property:concept-period-end">
      <path value="CodeSystem.property" />
      <sliceName value="concept-period-end" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property:concept-period-end.code">
      <path value="CodeSystem.property.code" />
      <fixedCode value="period-end" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.property:concept-period-end.type">
      <path value="CodeSystem.property.type" />
      <fixedCode value="dateTime" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept">
      <path value="CodeSystem.concept" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.id">
      <path value="CodeSystem.concept.id" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.code">
      <path value="CodeSystem.concept.code" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.display">
      <path value="CodeSystem.concept.display" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.definition">
      <path value="CodeSystem.concept.definition" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.designation">
      <path value="CodeSystem.concept.designation" />
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.property">
      <path value="CodeSystem.concept.property" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="CodeSystem.concept.property:concept-lastUpdate">
      <path value="CodeSystem.concept.property" />
      <sliceName value="concept-lastUpdate" />
    </element>
    <element id="CodeSystem.concept.property:concept-lastUpdate.code">
      <path value="CodeSystem.concept.property.code" />
      <fixedCode value="lastUpdate" />
    </element>
    <element id="CodeSystem.concept.property:concept-lastUpdate.value[x]">
      <path value="CodeSystem.concept.property.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
  </differential>
</StructureDefinition>