<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ISiKAngehoeriger" />
  <url value="https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKAngehoeriger" />
  <version value="3.1.1" />
  <name value="ISiKAngehoeriger" />
  <status value="active" />
  <experimental value="false" />
  <date value="2025-12-01" />
  <publisher value="gematik GmbH" />
  <description value="Dieses Profil ermöglicht die Nutzung von Angehörigen in ISiK Szenarien." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="RelatedPerson" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
  <derivation value="constraint" />
  <differential>
    <element id="RelatedPerson">
      <path value="RelatedPerson" />
      <constraint>
        <key value="relatedp-de-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/ISiKAngehoeriger" />
      </constraint>
    </element>
    <element id="RelatedPerson.patient">
      <path value="RelatedPerson.patient" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.patient.reference">
      <path value="RelatedPerson.patient.reference" />
      <min value="1" />
    </element>
    <element id="RelatedPerson.name">
      <path value="RelatedPerson.name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="HumanName" />
        <profile value="http://fhir.de/StructureDefinition/humanname-de-basis" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.gender.extension:Geschlecht-Administrativ">
      <path value="RelatedPerson.gender.extension" />
      <sliceName value="Geschlecht-Administrativ" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/gender-amtlich-de" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="RelatedPerson.address">
      <path value="RelatedPerson.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="RelatedPerson.address:Strassenanschrift">
      <path value="RelatedPerson.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/ISiKAngehoeriger" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.extension:Stadtteil">
      <path value="RelatedPerson.address.extension" />
      <sliceName value="Stadtteil" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.type">
      <path value="RelatedPerson.address.type" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.line">
      <path value="RelatedPerson.address.line" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.line.extension:Strasse">
      <path value="RelatedPerson.address.line.extension" />
      <sliceName value="Strasse" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.line.extension:Hausnummer">
      <path value="RelatedPerson.address.line.extension" />
      <sliceName value="Hausnummer" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.line.extension:Adresszusatz">
      <path value="RelatedPerson.address.line.extension" />
      <sliceName value="Adresszusatz" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.line.extension:Postfach">
      <path value="RelatedPerson.address.line.extension" />
      <sliceName value="Postfach" />
      <max value="0" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.city">
      <path value="RelatedPerson.address.city" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.postalCode">
      <path value="RelatedPerson.address.postalCode" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Strassenanschrift.country">
      <path value="RelatedPerson.address.country" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Postfach">
      <path value="RelatedPerson.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/ISiKAngehoeriger" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Postfach.type">
      <path value="RelatedPerson.address.type" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Postfach.line">
      <path value="RelatedPerson.address.line" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Postfach.line.extension:Strasse">
      <path value="RelatedPerson.address.line.extension" />
      <sliceName value="Strasse" />
      <max value="0" />
    </element>
    <element id="RelatedPerson.address:Postfach.line.extension:Hausnummer">
      <path value="RelatedPerson.address.line.extension" />
      <sliceName value="Hausnummer" />
      <max value="0" />
    </element>
    <element id="RelatedPerson.address:Postfach.line.extension:Adresszusatz">
      <path value="RelatedPerson.address.line.extension" />
      <sliceName value="Adresszusatz" />
      <max value="0" />
    </element>
    <element id="RelatedPerson.address:Postfach.line.extension:Postfach">
      <path value="RelatedPerson.address.line.extension" />
      <sliceName value="Postfach" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Postfach.city">
      <path value="RelatedPerson.address.city" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Postfach.postalCode">
      <path value="RelatedPerson.address.postalCode" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RelatedPerson.address:Postfach.country">
      <path value="RelatedPerson.address.country" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>