<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="epa-patient" />
  <url value="https://gematik.de/fhir/epa/StructureDefinition/epa-patient" />
  <version value="1.1.0" />
  <name value="EPAPatient" />
  <title value="EPA Patient" />
  <status value="active" />
  <experimental value="false" />
  <date value="2024-08-14" />
  <publisher value="gematik GmbH" />
  <description value="Defines the data structure for the patient profile in the ePA system." />
  <fhirVersion value="4.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">
      <path value="Patient" />
      <constraint>
        <key value="pat-de-1" />
        <severity value="error" />
        <human value="Die amtliche Differenzierung der Geschlechtsangabe 'other' darf nur gefüllt sein, wenn das Geschlecht 'other' angegeben ist" />
        <expression value="gender.exists() and gender='other' implies gender.extension('http://fhir.de/StructureDefinition/gender-amtlich-de').exists()" />
        <source value="https://gematik.de/fhir/epa/StructureDefinition/epa-patient" />
      </constraint>
    </element>
    <element id="Patient.id">
      <path value="Patient.id" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta">
      <path value="Patient.meta" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.versionId">
      <path value="Patient.meta.versionId" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.lastUpdated">
      <path value="Patient.meta.lastUpdated" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:KVNR">
      <path value="Patient.identifier" />
      <sliceName value="KVNR" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="http://fhir.de/StructureDefinition/identifier-kvid-10" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="In order to maintain the differentiations of name parts as given in the VSDM dataset or qualify prefixes as academic titles, vendors can opt to support the extensions specified in the German HumanName Base Profile https://simplifier.net/basisprofil-de-r4/humannamedebasis&#xD;&#xA;This is however not required within the scope of this specification." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name">
      <path value="Patient.name" />
      <sliceName value="Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="HumanName" />
        <profile value="http://fhir.de/StructureDefinition/humanname-de-basis" />
      </type>
      <patternHumanName>
        <use value="official" />
      </patternHumanName>
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name.use">
      <path value="Patient.name.use" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name.family">
      <path value="Patient.name.family" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name.family.extension:namenszusatz">
      <path value="Patient.name.family.extension" />
      <sliceName value="namenszusatz" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name.family.extension:nachname">
      <path value="Patient.name.family.extension" />
      <sliceName value="nachname" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name.family.extension:vorsatzwort">
      <path value="Patient.name.family.extension" />
      <sliceName value="vorsatzwort" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name.given">
      <path value="Patient.name.given" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name.prefix">
      <path value="Patient.name.prefix" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name.prefix.extension:prefix-qualifier">
      <path value="Patient.name.prefix.extension" />
      <sliceName value="prefix-qualifier" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Name.prefix.extension:prefix-qualifier.value[x]">
      <path value="Patient.name.prefix.extension.value[x]" />
      <fixedCode value="AC" />
    </element>
    <element id="Patient.name:Geburtsname">
      <path value="Patient.name" />
      <sliceName value="Geburtsname" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="HumanName" />
        <profile value="http://fhir.de/StructureDefinition/humanname-de-basis" />
      </type>
      <patternHumanName>
        <use value="maiden" />
      </patternHumanName>
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Geburtsname.use">
      <path value="Patient.name.use" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Geburtsname.family">
      <path value="Patient.name.family" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Geburtsname.family.extension:namenszusatz">
      <path value="Patient.name.family.extension" />
      <sliceName value="namenszusatz" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Geburtsname.family.extension:nachname">
      <path value="Patient.name.family.extension" />
      <sliceName value="nachname" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Geburtsname.family.extension:vorsatzwort">
      <path value="Patient.name.family.extension" />
      <sliceName value="vorsatzwort" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:Geburtsname.given">
      <path value="Patient.name.given" />
      <max value="0" />
    </element>
    <element id="Patient.name:Geburtsname.prefix">
      <path value="Patient.name.prefix" />
      <max value="0" />
    </element>
    <element id="Patient.name:Geburtsname.suffix">
      <path value="Patient.name.suffix" />
      <max value="0" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.gender.extension:other-amtlich">
      <path value="Patient.gender.extension" />
      <sliceName value="other-amtlich" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/gender-amtlich-de" />
      </type>
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>