<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Patient" />
  <name value="Patient" />
  <title value="API Framework Patient" />
  <status value="active" />
  <experimental value="false" />
  <description value="Dedalus API Framework core profile for Patient" />
  <fhirVersion value="3.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Patient" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
  <derivation value="constraint" />
  <differential>
    <element id="Patient.id">
      <path value="Patient.id" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta">
      <path value="Patient.meta" />
      <type>
        <code value="Meta" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Meta-ForCommonConformance" />
      </type>
    </element>
    <element id="Patient.text">
      <path value="Patient.text" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.extension">
      <path value="Patient.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Patient.extension:birthPlace">
      <path value="Patient.extension" />
      <sliceName value="birthPlace" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/birthPlace" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.extension:birthPlace.valueAddress:valueAddress">
      <path value="Patient.extension.valueAddress" />
      <sliceName value="valueAddress" />
      <max value="1" />
      <type>
        <code value="Address" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Address" />
      </type>
    </element>
    <element id="Patient.extension:birthPlace.valueAddress:valueAddress.extension:qualifier">
      <path value="Patient.extension.valueAddress.extension" />
      <sliceName value="qualifier" />
      <requirements value="Qualifier is not used since the birthPlace extension already qualifies the address purpose." />
    </element>
    <element id="Patient.extension:birthPlace.valueAddress:valueAddress.extension:qualifier.valueCode:valueCode">
      <path value="Patient.extension.valueAddress.extension.valueCode" />
      <sliceName value="valueCode" />
      <min value="1" />
      <fixedCode value="BIRTHPL" />
    </element>
    <element id="Patient.extension:citizenship">
      <path value="Patient.extension" />
      <sliceName value="citizenship" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/patient-citizenship" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.extension:citizenship.extension:code">
      <path value="Patient.extension.extension" />
      <sliceName value="code" />
    </element>
    <element id="Patient.extension:citizenship.extension:code.valueCodeableConcept:valueCodeableConcept">
      <path value="Patient.extension.extension.valueCodeableConcept" />
      <sliceName value="valueCodeableConcept" />
    </element>
    <element id="Patient.extension:citizenship.extension:period">
      <path value="Patient.extension.extension" />
      <sliceName value="period" />
    </element>
    <element id="Patient.extension:citizenship.extension:period.valuePeriod:valuePeriod">
      <path value="Patient.extension.extension.valuePeriod" />
      <sliceName value="valuePeriod" />
    </element>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <requirements value="Slicing on Identifier introduced to manage Dedalus MPI default identifier." />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier.type">
      <path value="Patient.identifier.type" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier.system">
      <path value="Patient.identifier.system" />
      <definition value="Establishes the namespace for the value - that is, a URL that describes a set values that are unique. This is the identifier element used to distinguish an identifier inside a list" />
      <min value="1" />
      <example>
        <label value="Dedalus registered HL7 OID" />
        <valueUri value="urn:oid:2.16.840.1.113883.2.9.3.12.4.1" />
      </example>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="Affinity Domain Systems" />
        <valueSetReference>
          <reference value="http://apiframework.dedalus.eu/fhir/ValueSet/PatientIdentifierSystems" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Patient.identifier.value">
      <path value="Patient.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier.period">
      <path value="Patient.identifier.period" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <type>
        <code value="HumanName" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/HumanName" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.telecom">
      <path value="Patient.telecom" />
      <type>
        <code value="ContactPoint" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/ContactPoint" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.telecom.extension:note">
      <path value="Patient.telecom.extension" />
      <sliceName value="note" />
      <short value="Notes to qualify different informations" />
      <definition value="example: when I can call you?&#xD;&#xA;Is this number only private?" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.deceased[x]:deceasedDateTime">
      <path value="Patient.deceasedDateTime" />
      <sliceName value="deceasedDateTime" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address">
      <path value="Patient.address" />
      <type>
        <code value="Address" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Address" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address.extension:qualifier">
      <path value="Patient.address.extension" />
      <sliceName value="qualifier" />
      <short value="Extension to define different types of address" />
      <definition value="See CS concepts for definitions" />
    </element>
    <element id="Patient.address.extension:placeCode">
      <path value="Patient.address.extension" />
      <sliceName value="placeCode" />
      <short value="ISTAT code" />
      <definition value="see CS" />
    </element>
    <element id="Patient.address.extension:placeCode.valueCoding:valueCoding.system">
      <path value="Patient.address.extension.valueCoding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address.extension:placeCode.valueCoding:valueCoding.code">
      <path value="Patient.address.extension.valueCoding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address.extension:unitId">
      <path value="Patient.address.extension" />
      <sliceName value="unitId" />
      <short value="Address UnitID definition" />
      <definition value="example &quot;floor 2/b&quot;" />
      <requirements value="Fragment of address containing information on address unit id (aka building). In italy, this is the &quot;numero civico&quot;." />
    </element>
    <element id="Patient.address.extension:unitId.valueString:valueString">
      <path value="Patient.address.extension.valueString" />
      <sliceName value="valueString" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address.extension:houseNumber">
      <path value="Patient.address.extension" />
      <sliceName value="houseNumber" />
      <requirements value="Fragment of address containing information on house number. In italy, this is the &quot;interno&quot;." />
    </element>
    <element id="Patient.maritalStatus">
      <path value="Patient.maritalStatus" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.photo">
      <path value="Patient.photo" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.animal">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name">
        <valueString value="Animal" />
      </extension>
      <path value="Patient.animal" />
      <max value="0" />
      <mustSupport value="false" />
    </element>
    <element id="Patient.generalPractitioner">
      <path value="Patient.generalPractitioner" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Practitioner" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.generalPractitioner.reference">
      <path value="Patient.generalPractitioner.reference" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.managingOrganization">
      <path value="Patient.managingOrganization" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Organization" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.managingOrganization.reference">
      <path value="Patient.managingOrganization.reference" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.link">
      <path value="Patient.link" />
      <requirements value="This Field is intended for Merge Communication purposes. If present in a DELETE method call it's used as a Reference to the remaining Patient record. &#xA;According to REST semantic, record related to the main Patient resource is deleted and all his remaining attributes reconnected to the linked Patient resource." />
      <mustSupport value="true" />
    </element>
    <element id="Patient.link.other">
      <path value="Patient.link.other" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.link.type">
      <path value="Patient.link.type" />
      <fixedCode value="replaced-by" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>