<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Address" />
  <name value="Address" />
  <status value="active" />
  <experimental value="false" />
  <fhirVersion value="3.0.1" />
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="Address" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Address" />
  <derivation value="constraint" />
  <differential>
    <element id="Address.extension">
      <path value="Address.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Address.extension:qualifier">
      <path value="Address.extension" />
      <sliceName value="qualifier" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/address-qualifier" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSetUri value="http://apiframework.dedalus.eu/fhir/ValueSet/AddressQualifier" />
      </binding>
    </element>
    <element id="Address.extension:placeCode">
      <path value="Address.extension" />
      <sliceName value="placeCode" />
      <requirements value="Coded value identifying the place to which this address refers, at the highest detail avilable. In many cases this is actually a city code, but sometimes can be a country or region code. The detail of the coding available is defined by the bound ValueSet." />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/address-CityCode" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Address.extension:unitId">
      <path value="Address.extension" />
      <sliceName value="unitId" />
      <requirements value="Fragment of address containing information on address unit id (aka building)" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/address-unitId" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Address.extension:houseNumber">
      <path value="Address.extension" />
      <sliceName value="houseNumber" />
      <requirements value="Fragment of address containing information on house number" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/address-houseNumber" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Address.extension:street">
      <path value="Address.extension" />
      <sliceName value="street" />
      <requirements value="Fragment of address containing information on street name. Depending on implementations, this value can also contain houseNumber and UnitId, however the best practice is to store information on their respective elements." />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/address-Street" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Address.text">
      <path value="Address.text" />
      <requirements value="SHALL be generated by other fields of Address. Suggested format: line + city + postalcode + country" />
      <mustSupport value="true" />
    </element>
    <element id="Address.city">
      <path value="Address.city" />
      <mustSupport value="true" />
    </element>
    <element id="Address.district">
      <path value="Address.district" />
      <comment value="In Italy, this element maps to the concept of &quot;Provincia&quot;" />
      <mustSupport value="true" />
    </element>
    <element id="Address.state">
      <path value="Address.state" />
      <comment value="In Italy, this element maps to the concept of &quot;Regione&quot;" />
      <mustSupport value="true" />
    </element>
    <element id="Address.postalCode">
      <path value="Address.postalCode" />
      <mustSupport value="true" />
    </element>
    <element id="Address.country">
      <path value="Address.country" />
      <mustSupport value="true" />
    </element>
    <element id="Address.period">
      <path value="Address.period" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>