<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ISiKPatient" />
  <url value="https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" />
  <version value="3.1.1" />
  <name value="ISiKPatient" />
  <status value="active" />
  <experimental value="false" />
  <date value="2025-12-01" />
  <publisher value="gematik GmbH" />
  <description value="Dieses Profil beschreibt die Nutzung von administrativen Patientendaten in ISiK-Szenarien." />
  <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="isik-pat-1" />
        <severity value="error" />
        <human value="Falls die Geschlechtsangabe 'other' gewählt wird, muss die amtliche Differenzierung per Extension angegeben werden" />
        <expression value="gender.exists() and gender='other' implies gender.extension('http://fhir.de/StructureDefinition/gender-amtlich-de').exists()" />
        <source value="https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" />
      </constraint>
    </element>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="**Hinweis:** Wenn eine pre-Adoption des neuen Identifier Typs 'VersichertenId' gewünscht ist, bitte die Spezifikation aus [Stufe 5](https://simplifier.net/guide/isik-basis-stufe-5/Einfuehrung/Artefakte/Datenobjekte_Patient) übernehmen. Die Änderung auf die neue Struktur ist in ISiK Stufe &#xA;  3 nicht möglich, da das Codesystem 'identifier-type-de-basis' aus den deutschen Basisprofilen in Version 1.4.0 den Code KVZ10 noch nicht enthält." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:VersichertenId-GKV">
      <path value="Patient.identifier" />
      <sliceName value="VersichertenId-GKV" />
      <comment value="Achtung: Bitte allgemeinen Hinweis zum Element identifier beachten." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="http://fhir.de/StructureDefinition/identifier-kvid-10" />
      </type>
      <patternIdentifier>
        <type>
          <coding>
            <system value="http://fhir.de/CodeSystem/identifier-type-de-basis" />
            <code value="GKV" />
          </coding>
        </type>
      </patternIdentifier>
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:VersichertenId-GKV.type">
      <path value="Patient.identifier.type" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:VersichertenId-GKV.system">
      <path value="Patient.identifier.system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:VersichertenId-GKV.value">
      <path value="Patient.identifier.value" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Patientennummer">
      <path value="Patient.identifier" />
      <sliceName value="Patientennummer" />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Identifier" />
        <profile value="http://fhir.de/StructureDefinition/identifier-pid" />
      </type>
      <patternIdentifier>
        <type>
          <coding>
            <system value="http://terminology.hl7.org/CodeSystem/v2-0203" />
            <code value="MR" />
          </coding>
        </type>
      </patternIdentifier>
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Patientennummer.type">
      <path value="Patient.identifier.type" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Patientennummer.system">
      <path value="Patient.identifier.system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Patientennummer.value">
      <path value="Patient.identifier.value" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Versichertennummer_PKV">
      <path value="Patient.identifier" />
      <sliceName value="Versichertennummer_PKV" />
      <short value="Private Krankenversichertennummer" />
      <comment value="Für Privatpatienten, die noch nicht über eine lebenslange, unveränderliche Krankenversichertennummer (KVNR) verfügen,&#xA;  können bis auf weiteres noch die versicherungsspezifischen PKV-Nummern angegeben werden. &#xA;  Da bei diesen der Bezeichner des vom Kostenträger verwendeten Namensraums meist nicht ermittelt werden kann,&#xA;  ist statt dessen der Name des Kostenträgers in `assigner` anzugeben.&#xA;  **Achtung:**  Dieser Slice dient NICHT zur Abbildung einer 10-stelligen PKV-VersichertenId nach § 362 SGB V. Diese sind durch den Slice 'VersichertenId' abzubilden, da die Nummernkreise dieser Identifier identisch sind.&#xA;  **Weitere Hinweise:** siehe [Deutsche Basisprofile](https://simplifier.net/guide/leitfaden-de-basis-r4/ig-markdown-PrivateKrankenversichertennummer-Identifier?version=current)&#xA;  Der Identifier kann jedoch zusätzlich zur KVNR verwendet werden, wenn für eine Zusatzversicherung eine separate, versicherungsspezifische PKV-Nummer vorliegt." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="http://fhir.de/StructureDefinition/identifier-pkv" />
      </type>
      <patternIdentifier>
        <type>
          <coding>
            <system value="http://fhir.de/CodeSystem/identifier-type-de-basis" />
            <code value="PKV" />
          </coding>
        </type>
      </patternIdentifier>
      <mustSupport value="false" />
    </element>
    <element id="Patient.identifier:Versichertennummer_PKV.use">
      <path value="Patient.identifier.use" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Versichertennummer_PKV.type">
      <path value="Patient.identifier.type" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Versichertennummer_PKV.value">
      <path value="Patient.identifier.value" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Versichertennummer_PKV.assigner">
      <path value="Patient.identifier.assigner" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Versichertennummer_PKV.assigner.identifier.system">
      <path value="Patient.identifier.assigner.identifier.system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Versichertennummer_PKV.assigner.identifier.value">
      <path value="Patient.identifier.assigner.identifier.value" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:Versichertennummer_PKV.assigner.display">
      <path value="Patient.identifier.assigner.display" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <comment value="Einschränkung der Übergreifenden MS-Definition: Verfügt ein bestätigungsrelevantes System nicht über die Datenstruktur zur Hinterlegung des Aktivitätsstatus einer Patienten-Ressource, so MUSS dieses System die Information NICHT abbilden. Das System SOLL jedoch den Aktivitätsstatus hart kodieren in der Patienteninstanz (Patient.active auf 'true'), sodass Clients nicht missverständlich mit einer inaktiven Patient-Ressource interagieren." />
      <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 differntiations 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" />
      <max value="1" />
      <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.telecom.system">
      <path value="Patient.telecom.system" />
      <min value="1" />
    </element>
    <element id="Patient.telecom.value">
      <path value="Patient.telecom.value" />
      <min value="1" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.gender.extension:Geschlecht-Administrativ">
      <path value="Patient.gender.extension" />
      <sliceName value="Geschlecht-Administrativ" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/gender-amtlich-de" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.birthDate.extension:Data-Absent-Reason">
      <path value="Patient.birthDate.extension" />
      <sliceName value="Data-Absent-Reason" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/data-absent-reason" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.birthDate.extension:Data-Absent-Reason.value[x]">
      <path value="Patient.birthDate.extension.value[x]" />
      <fixedCode value="unknown" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address">
      <path value="Patient.address" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="In order to differentiate between post box addresses and physical addresses, street names and house numbers, and to add city district names, vendors can opt to support the extensions as suggested in the German Address Base Profile http://fhir.de/StructureDefinition/address-de-basis.&#xD;&#xA;Such differentiations are however not required within the scope of this specification." />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift">
      <path value="Patient.address" />
      <sliceName value="Strassenanschrift" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Address" />
        <profile value="http://fhir.de/StructureDefinition/address-de-basis" />
      </type>
      <patternAddress>
        <type value="both" />
      </patternAddress>
      <constraint>
        <key value="address-cnt-2or3-char" />
        <severity value="warning" />
        <human value="The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2." />
        <expression value="country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))" />
        <source value="https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.extension:Stadtteil">
      <path value="Patient.address.extension" />
      <sliceName value="Stadtteil" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.type">
      <path value="Patient.address.type" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.line">
      <path value="Patient.address.line" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.line.extension:Strasse">
      <path value="Patient.address.line.extension" />
      <sliceName value="Strasse" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.line.extension:Hausnummer">
      <path value="Patient.address.line.extension" />
      <sliceName value="Hausnummer" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.line.extension:Adresszusatz">
      <path value="Patient.address.line.extension" />
      <sliceName value="Adresszusatz" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.line.extension:Postfach">
      <path value="Patient.address.line.extension" />
      <sliceName value="Postfach" />
      <max value="0" />
    </element>
    <element id="Patient.address:Strassenanschrift.city">
      <path value="Patient.address.city" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.postalCode">
      <path value="Patient.address.postalCode" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.country">
      <path value="Patient.address.country" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach">
      <path value="Patient.address" />
      <sliceName value="Postfach" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Address" />
        <profile value="http://fhir.de/StructureDefinition/address-de-basis" />
      </type>
      <patternAddress>
        <type value="postal" />
      </patternAddress>
      <constraint>
        <key value="address-cnt-2or3-char" />
        <severity value="warning" />
        <human value="The content of the country element (if present) SHALL be selected EITHER from ValueSet ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2 OR MAY be selected from ISO Country Alpha-3 Value Set http://hl7.org/fhir/ValueSet/iso3166-1-3, IF the country is not specified in value Set ISO Country Alpha-2 http://hl7.org/fhir/ValueSet/iso3166-1-2." />
        <expression value="country.empty() or (country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-2') or country.memberOf('http://hl7.org/fhir/ValueSet/iso3166-1-3'))" />
        <source value="https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.type">
      <path value="Patient.address.type" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.line">
      <path value="Patient.address.line" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.line.extension:Strasse">
      <path value="Patient.address.line.extension" />
      <sliceName value="Strasse" />
      <max value="0" />
    </element>
    <element id="Patient.address:Postfach.line.extension:Hausnummer">
      <path value="Patient.address.line.extension" />
      <sliceName value="Hausnummer" />
      <max value="0" />
    </element>
    <element id="Patient.address:Postfach.line.extension:Adresszusatz">
      <path value="Patient.address.line.extension" />
      <sliceName value="Adresszusatz" />
      <max value="0" />
    </element>
    <element id="Patient.address:Postfach.line.extension:Postfach">
      <path value="Patient.address.line.extension" />
      <sliceName value="Postfach" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.city">
      <path value="Patient.address.city" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.postalCode">
      <path value="Patient.address.postalCode" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.country">
      <path value="Patient.address.country" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>