<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="0d4c24f3-ce93-4046-b6f6-caa2980885d5" />
  <meta>
    <versionId value="18" />
    <lastUpdated value="2019-12-19T20:28:47.277+00:00" />
  </meta>
  <url value="http://www.agfa.com/ei/fhir/StructureDefinition/ei-patient" />
  <name value="Enterprise_Imaging_Patient" />
  <status value="draft" />
  <date value="2019-12-19T20:26:20.3752307Z" />
  <description value="AGFA Enterprise Imaging customized Patient resource definition" />
  <fhirVersion value="4.0.0" />
  <mapping>
    <identity value="agfa-ei-model" />
    <name value="Enterprise Imaging DB model" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Patient" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
  <derivation value="constraint" />
  <snapshot />
  <differential>
    <element id="Patient.id">
      <path value="Patient.id" />
      <mustSupport value="true" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT#PK" />
      </mapping>
    </element>
    <element id="Patient.implicitRules">
      <path value="Patient.implicitRules" />
      <max value="0" />
    </element>
    <element id="Patient.language">
      <path value="Patient.language" />
      <max value="0" />
    </element>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier.extension">
      <path value="Patient.identifier.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Patient.identifier.extension:DisplayName">
      <path value="Patient.identifier.extension" />
      <sliceName value="DisplayName" />
      <type>
        <code value="Extension" />
        <profile value="http://www.agfa.com/ei/fhir/StructureDefinition/ei-display-name" />
      </type>
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="EiDisplayNameExtension(systemsettingDataHolder.getDisplayPatientId(pid))" />
        <comment value="TO DO: find out what this is about" />
      </mapping>
    </element>
    <element id="Patient.identifier.type">
      <path value="Patient.identifier.type" />
      <short value="PAT_CODE|PAT_MEDICALRECORDNR" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://www.agfa.com/ei/fhir/ValueSet/ei-vs-patient-type" />
      </binding>
    </element>
    <element id="Patient.identifier.type.coding">
      <path value="Patient.identifier.type.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier.type.coding.code">
      <path value="Patient.identifier.type.coding.code" />
      <mustSupport value="true" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT_ID#PAT_ID_TYPE_CODE" />
        <comment value="TODO: instead of using our own valueset, can't see use one from HL7 (http://hl7.org/fhir/v2/0203/PI), since we only support PAT_CODE anyhow" />
      </mapping>
    </element>
    <element id="Patient.identifier.system">
      <path value="Patient.identifier.system" />
      <mustSupport value="true" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="ID_ISSUER#ENTITY_UID" />
        <comment value="TODO: not yet implemented like this!" />
      </mapping>
    </element>
    <element id="Patient.identifier.value">
      <path value="Patient.identifier.value" />
      <mustSupport value="true" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT_ID#PAT_ID" />
      </mapping>
    </element>
    <element id="Patient.identifier.assigner.display">
      <path value="Patient.identifier.assigner.display" />
      <mustSupport value="true" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="ID_ISSUER#ENTITY_ID" />
        <comment value="Namespace of the PatientID Issuer" />
      </mapping>
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <mustSupport value="true" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT#ACTIVE" />
      </mapping>
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="use" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Patient.name:OfficialName">
      <path value="Patient.name" />
      <sliceName value="OfficialName" />
      <min value="1" />
      <max value="1" />
      <fixedHumanName>
        <use value="official" />
        <text value="Official name of the patient" />
      </fixedHumanName>
    </element>
    <element id="Patient.name:OfficialName.use">
      <path value="Patient.name.use" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT#PAT_NAME_FK" />
      </mapping>
    </element>
    <element id="Patient.name:OfficialName.text">
      <path value="Patient.name.text" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="systemsettingDataHolder.getDisplayName(p)" />
        <comment value="TODO: determine what this code means..." />
      </mapping>
    </element>
    <element id="Patient.name:OfficialName.family">
      <path value="Patient.name.family" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PERSON_NAME#FAMILY_NAME" />
      </mapping>
    </element>
    <element id="Patient.name:OfficialName.given">
      <path value="Patient.name.given" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PERSON_NAME#GIVEN_NAME | PERSON_NAME#MIDDLE_NAME" />
        <comment value="TODO: an extension on this to model the patient names like they really are in EI?" />
      </mapping>
    </element>
    <element id="Patient.name:OfficialName.prefix">
      <path value="Patient.name.prefix" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PERSON_NAME#PREFIX" />
      </mapping>
    </element>
    <element id="Patient.name:OfficialName.suffix">
      <path value="Patient.name.suffix" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PERSON_NAME#NAME_SUFFIX" />
      </mapping>
    </element>
    <element id="Patient.name:OfficialName.period">
      <path value="Patient.name.period" />
      <max value="0" />
    </element>
    <element id="Patient.name:MaidenName">
      <path value="Patient.name" />
      <sliceName value="MaidenName" />
      <max value="1" />
      <fixedHumanName>
        <use value="maiden" />
        <text value="The maiden name of the patient" />
      </fixedHumanName>
    </element>
    <element id="Patient.name:MaidenName.use">
      <path value="Patient.name.use" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT#MAIDEN_NAME_FK" />
      </mapping>
    </element>
    <element id="Patient.name:MaidenName.text">
      <path value="Patient.name.text" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="humanMaidenName.setText(systemsettingDataHolder.getDisplayName(maidenName))" />
      </mapping>
    </element>
    <element id="Patient.name:MaidenName.family">
      <path value="Patient.name.family" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PERSON_NAME#FAMILY_NAME" />
      </mapping>
    </element>
    <element id="Patient.name:MaidenName.given">
      <path value="Patient.name.given" />
      <max value="0" />
    </element>
    <element id="Patient.name:MaidenName.prefix">
      <path value="Patient.name.prefix" />
      <max value="0" />
    </element>
    <element id="Patient.name:MaidenName.suffix">
      <path value="Patient.name.suffix" />
      <max value="0" />
    </element>
    <element id="Patient.name:MaidenName.period">
      <path value="Patient.name.period" />
      <max value="0" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT#PAT_SEX" />
      </mapping>
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT#PAT_BIRTHDATE" />
        <comment value="TODO: what does this mean Extension eiDisplayNameExt = new EiDisplayNameExtension(systemsettingDataHolder.getDisplayTextOfDate(birthDate));" />
      </mapping>
    </element>
    <element id="Patient.birthDate.extension">
      <path value="Patient.birthDate.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Patient.birthDate.extension:DisplayName">
      <path value="Patient.birthDate.extension" />
      <sliceName value="DisplayName" />
      <type>
        <code value="Extension" />
        <profile value="http://www.agfa.com/ei/fhir/StructureDefinition/ei-display-name" />
      </type>
    </element>
    <element id="Patient.deceased[x]">
      <path value="Patient.deceased[x]" />
      <type>
        <code value="dateTime" />
      </type>
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT#PAT_DECEASEDDATE" />
        <comment value="TODO: same remark as the birthDate" />
      </mapping>
    </element>
    <element id="Patient.address.use">
      <path value="Patient.address.use" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="COMMUNICATION_CHANNEL#COMMUNICATION_TYPE" />
        <comment value="HOME_ADDRESS -&gt; home / OFFICE_ADDRESS -&gt; work" />
      </mapping>
    </element>
    <element id="Patient.address.type">
      <path value="Patient.address.type" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="COMMUNICATION_CHANNEL#COMMUNICATION_TYPE" />
        <comment value="HOME_ADDRESS / OFFICE_ADDRESS -&gt; postal" />
      </mapping>
    </element>
    <element id="Patient.address.text">
      <path value="Patient.address.text" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="systemSetting.getDisplayNameOfPostalAddress(eiAddressWrapper)" />
        <comment value="TODO: what does the above code do" />
      </mapping>
    </element>
    <element id="Patient.address.line">
      <path value="Patient.address.line" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="Line1 = COMMUNICATION_CHANNEL#ADDRESS_LINE1 / Line2 = COMMUNICATION_CHANNEL#STREET + COMMUNICATION_CHANNEL#STREETNR" />
      </mapping>
    </element>
    <element id="Patient.address.city">
      <path value="Patient.address.city" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="COMMUNICATION_CHANNEL#MUNICIPALITY -&gt; MUNICPALITY#NAME" />
      </mapping>
    </element>
    <element id="Patient.address.district">
      <path value="Patient.address.district" />
      <max value="0" />
    </element>
    <element id="Patient.address.state">
      <path value="Patient.address.state" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="MUNICPALITY#REGION -&gt; REGION_LEVEL1#NAME" />
        <comment value="TODO: this should be changed to only the 4 address lines" />
      </mapping>
    </element>
    <element id="Patient.address.postalCode">
      <path value="Patient.address.postalCode" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="MUNICIPALITY#ZIP" />
      </mapping>
    </element>
    <element id="Patient.address.country">
      <path value="Patient.address.country" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="COMMUNICATION_CHANNEL#COUNTRY -&gt; COUNTRY#CODE" />
      </mapping>
    </element>
    <element id="Patient.address.period">
      <path value="Patient.address.period" />
      <max value="0" />
    </element>
    <element id="Patient.maritalStatus">
      <path value="Patient.maritalStatus" />
      <max value="0" />
    </element>
    <element id="Patient.multipleBirth[x]">
      <path value="Patient.multipleBirth[x]" />
      <max value="0" />
    </element>
    <element id="Patient.photo">
      <path value="Patient.photo" />
      <max value="0" />
    </element>
    <element id="Patient.contact">
      <path value="Patient.contact" />
      <max value="0" />
    </element>
    <element id="Patient.communication">
      <path value="Patient.communication" />
      <max value="0" />
    </element>
    <element id="Patient.generalPractitioner">
      <path value="Patient.generalPractitioner" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <targetProfile value="http://www.agfa.com/ei/fhir/StructureDefinition/ei-practitioner" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="PATIENT#PROFESSIONAL" />
      </mapping>
    </element>
    <element id="Patient.generalPractitioner.display">
      <path value="Patient.generalPractitioner.display" />
      <mustSupport value="true" />
      <mapping>
        <identity value="agfa-ei-model" />
        <map value="???" />
        <comment value="TODO: find out what systemsettingDataHolder.getDisplayName(physician) means" />
      </mapping>
    </element>
    <element id="Patient.managingOrganization">
      <path value="Patient.managingOrganization" />
      <max value="0" />
    </element>
    <element id="Patient.link">
      <path value="Patient.link" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="other.type" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Patient.link:sliceLink">
      <path value="Patient.link" />
      <sliceName value="sliceLink" />
    </element>
    <element id="Patient.link:sliceLink.other">
      <path value="Patient.link.other" />
      <type>
        <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy">
          <valueBoolean value="false" />
        </extension>
        <code value="Reference" />
        <targetProfile value="http://www.agfa.com/ei/fhir/StructureDefinition/ei-patient" />
        <aggregation value="referenced" />
      </type>
      <fixedReference>
        <type value="Patient" />
      </fixedReference>
    </element>
  </differential>
</StructureDefinition>