<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="KBV-PR-FOR-Patient" />
  <url value="https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Patient" />
  <version value="1.2.0" />
  <name value="KBV_PR_FOR_Patient" />
  <status value="draft" />
  <date value="2024-11-22" />
  <publisher value="Kassenärztliche Bundesvereinigung (KBV)" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Patient" />
  <baseDefinition value="https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Patient|1.7.0" />
  <derivation value="constraint" />
  <differential>
    <element id="Patient">
      <path value="Patient" />
      <constraint>
        <key value="-for-adresszeilenAufbauPatientRessource-1" />
        <severity value="error" />
        <human value="Falls die erste Adresszeile einen Straßennamen und eine Hausnummer besitzt, sind diese zusammen im Element 'line' mit mindestens einem Leerzeichen getrennt anzugeben." />
        <expression value="(address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').exists() and address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').exists()) implies (address.line[0].indexOf(%context.address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').value as string)=0 and (address.line[0].indexOf(%context.address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').value as string)=address.line[0].length()-(address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').value as string).length()) and address.line[0].substring((%context.address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').value as string).length(), %context.address.line[0].length()-(%context.address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').value as string).length()-(%context.address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').value as string).length()).matches('^ +$'))" />
      </constraint>
      <constraint>
        <key value="-for-adresszeilenAufbauPatientRessource-2" />
        <severity value="error" />
        <human value="Falls die erste Adresszeile keinen Straßennamen und eine Hausnummer besitzt, ist letztere im Element 'line' anzugeben." />
        <expression value="(address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').exists() and address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').exists().not()) implies address.line[0] = (address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').value as string)" />
      </constraint>
      <constraint>
        <key value="-for-adresszeilenAufbauPatientRessource-3" />
        <severity value="error" />
        <human value="Falls die erste Adresszeile keine Hausnummer und einen Straßennamen besitzt, ist letzterer im Element 'line' anzugeben." />
        <expression value="(address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').exists().not() and address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').exists()) implies address.line[0] = (address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').value as string)" />
      </constraint>
      <constraint>
        <key value="-for-adresszeilenAufbauPatientRessource-4" />
        <severity value="error" />
        <human value="Falls eine Adresszeile einen Adresszusatz besitzt, ist dieser im Element 'line' anzugeben." />
        <expression value="(address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator').exists() implies address.line[0] = (address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator').value as string)) and (address.line[1].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator').exists() implies address.line[1] = (address.line[1].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator').value as string))" />
      </constraint>
      <constraint>
        <key value="-for-adresszeilenAufbauPatientRessource-5" />
        <severity value="error" />
        <human value="Falls die erste Adresszeile ein Postfach besitzt, ist dieses im Element 'line' anzugeben." />
        <expression value="address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-postBox').exists() implies address.line[0] = (address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-postBox').value as string)" />
      </constraint>
      <constraint>
        <key value="-for-adresszeilenAufbauPatientRessource-6" />
        <severity value="error" />
        <human value="Falls die erste Adresszeile einen Straßennamen oder eine Hausnummer besitzt, darf sie keinen Adresszusatz enthalten." />
        <expression value="(address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').exists() or address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').exists()) implies address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator').exists().not()" />
      </constraint>
      <constraint>
        <key value="-for-adresszeilenAufbauPatientRessource-7" />
        <severity value="error" />
        <human value="Falls eine zweite Adresszeile existiert, darf sie weder einen Straßennamen oder eine Hausnummer enthalten und muss einen Adresszusatz enthalten." />
        <expression value="address.line[1].exists() implies address.line[1].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').exists().not() and address.line[1].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').exists().not() and address.line[1].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator').exists()" />
      </constraint>
      <constraint>
        <key value="-for-adresszeilenAufbauPatientRessource-8" />
        <severity value="error" />
        <human value="Falls eine zweite Adresszeile existiert, muss die erste Adresszeile einen Straßennamen oder eine Hausnummer enthalten und darf keinen Adresszusatz besitzen." />
        <expression value="address.line[1].exists() implies ((address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber').exists() or address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName').exists()) and address.line[0].extension('http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator').exists().not())" />
      </constraint>
    </element>
    <element id="Patient.id">
      <path value="Patient.id" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta">
      <path value="Patient.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.versionId">
      <path value="Patient.meta.versionId" />
      <max value="0" />
    </element>
    <element id="Patient.meta.lastUpdated">
      <path value="Patient.meta.lastUpdated" />
      <max value="0" />
    </element>
    <element id="Patient.meta.source">
      <path value="Patient.meta.source" />
      <max value="0" />
    </element>
    <element id="Patient.meta.profile">
      <path value="Patient.meta.profile" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.profile:forProfile">
      <path value="Patient.meta.profile" />
      <sliceName value="forProfile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Patient|1.2" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.security">
      <path value="Patient.meta.security" />
      <max value="0" />
    </element>
    <element id="Patient.meta.tag">
      <path value="Patient.meta.tag" />
      <max value="0" />
    </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.text">
      <path value="Patient.text" />
      <max value="0" />
    </element>
    <element id="Patient.contained">
      <path value="Patient.contained" />
      <max value="0" />
    </element>
    <element id="Patient.extension">
      <path value="Patient.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <max value="0" />
    </element>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:pid">
      <path value="Patient.identifier" />
      <sliceName value="pid" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:pid.system">
      <path value="Patient.identifier.system" />
      <fixedUri value="PID" />
    </element>
    <element id="Patient.identifier:versichertenId">
      <path value="Patient.identifier" />
      <sliceName value="versichertenId" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertenId.type">
      <path value="Patient.identifier.type" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertenId.type.coding">
      <path value="Patient.identifier.type.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertenId.type.coding.system">
      <path value="Patient.identifier.type.coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertenId.type.coding.version">
      <path value="Patient.identifier.type.coding.version" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertenId.type.coding.code">
      <path value="Patient.identifier.type.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertenId.type.coding.display">
      <path value="Patient.identifier.type.coding.display" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertenId.type.coding.userSelected">
      <path value="Patient.identifier.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertenId.type.text">
      <path value="Patient.identifier.type.text" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertenId.system">
      <path value="Patient.identifier.system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertenId.value">
      <path value="Patient.identifier.value" />
      <constraint>
        <key value="-for-laengeVersichertenId" />
        <severity value="error" />
        <human value="Der unveränderliche Teil der VersichertenId muss 10-stellig sein und mit einem Großbuchstaben anfangen." />
        <expression value="matches('^[A-Z][0-9]{9}$' )" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertenId.period">
      <path value="Patient.identifier.period" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertenId.assigner">
      <path value="Patient.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertennummer_pkv">
      <path value="Patient.identifier" />
      <sliceName value="versichertennummer_pkv" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:reisepassnummer">
      <path value="Patient.identifier" />
      <sliceName value="reisepassnummer" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk">
      <path value="Patient.identifier" />
      <sliceName value="versichertennummer_kvk" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.type">
      <path value="Patient.identifier.type" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.type.coding">
      <path value="Patient.identifier.type.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.type.coding.system">
      <path value="Patient.identifier.type.coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.type.coding.version">
      <path value="Patient.identifier.type.coding.version" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.type.coding.code">
      <path value="Patient.identifier.type.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.type.coding.display">
      <path value="Patient.identifier.type.coding.display" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.type.coding.userSelected">
      <path value="Patient.identifier.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.type.text">
      <path value="Patient.identifier.type.text" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.system">
      <path value="Patient.identifier.system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.value">
      <path value="Patient.identifier.value" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.period">
      <path value="Patient.identifier.period" />
      <max value="0" />
    </element>
    <element id="Patient.identifier:versichertennummer_kvk.assigner">
      <path value="Patient.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <max value="0" />
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="use" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name">
      <path value="Patient.name" />
      <sliceName value="name" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.use">
      <path value="Patient.name.use" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.text">
      <path value="Patient.name.text" />
      <max value="0" />
    </element>
    <element id="Patient.name:name.family">
      <path value="Patient.name.family" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.family.extension">
      <path value="Patient.name.family.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <max value="3" />
    </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:namenszusatz.value[x]">
      <path value="Patient.name.family.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.family.extension:namenszusatz.value[x]:valueString">
      <path value="Patient.name.family.extension.value[x]" />
      <sliceName value="valueString" />
      <maxLength value="20" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.family.extension:nachname">
      <path value="Patient.name.family.extension" />
      <sliceName value="nachname" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.family.extension:nachname.value[x]">
      <path value="Patient.name.family.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.family.extension:nachname.value[x]:valueString">
      <path value="Patient.name.family.extension.value[x]" />
      <sliceName value="valueString" />
      <maxLength value="45" />
      <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.family.extension:vorsatzwort.value[x]">
      <path value="Patient.name.family.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.family.extension:vorsatzwort.value[x]:valueString">
      <path value="Patient.name.family.extension.value[x]" />
      <sliceName value="valueString" />
      <maxLength value="20" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.given">
      <path value="Patient.name.given" />
      <min value="1" />
      <maxLength value="45" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.prefix">
      <path value="Patient.name.prefix" />
      <max value="1" />
      <maxLength value="20" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.prefix.extension">
      <path value="Patient.name.prefix.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <max value="1" />
    </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]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.prefix.extension:prefix-qualifier.value[x]:valueCode">
      <path value="Patient.name.prefix.extension.value[x]" />
      <sliceName value="valueCode" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name:name.suffix">
      <path value="Patient.name.suffix" />
      <max value="0" />
    </element>
    <element id="Patient.name:name.period">
      <path value="Patient.name.period" />
      <max value="0" />
    </element>
    <element id="Patient.name:geburtsname">
      <path value="Patient.name" />
      <sliceName value="geburtsname" />
      <max value="0" />
    </element>
    <element id="Patient.telecom">
      <path value="Patient.telecom" />
      <max value="0" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <max value="0" />
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.birthDate.extension">
      <path value="Patient.birthDate.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <max value="1" />
    </element>
    <element id="Patient.birthDate.extension:data-absent-reason">
      <path value="Patient.birthDate.extension" />
      <sliceName value="data-absent-reason" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.birthDate.extension:data-absent-reason.value[x]">
      <path value="Patient.birthDate.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Patient.birthDate.extension:data-absent-reason.value[x]:valueCode">
      <path value="Patient.birthDate.extension.value[x]" />
      <sliceName value="valueCode" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.deceased[x]">
      <path value="Patient.deceased[x]" />
      <max value="0" />
    </element>
    <element id="Patient.address">
      <path value="Patient.address" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift">
      <path value="Patient.address" />
      <sliceName value="Strassenanschrift" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.extension">
      <path value="Patient.address.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <max value="0" />
    </element>
    <element id="Patient.address:Strassenanschrift.extension:Stadtteil">
      <path value="Patient.address.extension" />
      <sliceName value="Stadtteil" />
      <max value="0" />
    </element>
    <element id="Patient.address:Strassenanschrift.use">
      <path value="Patient.address.use" />
      <max value="0" />
    </element>
    <element id="Patient.address:Strassenanschrift.type">
      <path value="Patient.address.type" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.text">
      <path value="Patient.address.text" />
      <max value="0" />
    </element>
    <element id="Patient.address:Strassenanschrift.line">
      <path value="Patient.address.line" />
      <definition value="Diese Komponente kann Straßennamen, Hausnummer, Appartmentnummer, Postfach, c/o sowie weitere Zustellungshinweise enthalten. Die Informationen können in mehrere line-Komponenten aufgeteilt werden.&#xD;&#xA;Bei Verwendung der Extensions, um Straße, Hausnnummer und Postleitzahl strukturiert zu übermitteln, müssen diese Informationen stets vollständig auch in der line-Komponente, die sie erweitern, enthalten sein, um es Systemen, die diese Extensions nicht verwenden zu ermöglichen, auf diese Informationen zugreifen zu können. Es wird empfohlen, dass die erste Zeile für Straße und Hausnummer und die zweite Zeile für den Zusatz verwendet wird." />
      <max value="2" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.line.extension">
      <path value="Patient.address.line.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <max value="3" />
    </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:Strasse.value[x]">
      <path value="Patient.address.line.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.line.extension:Strasse.value[x]:valueString">
      <path value="Patient.address.line.extension.value[x]" />
      <sliceName value="valueString" />
      <maxLength value="46" />
      <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:Hausnummer.value[x]">
      <path value="Patient.address.line.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.line.extension:Hausnummer.value[x]:valueString">
      <path value="Patient.address.line.extension.value[x]" />
      <sliceName value="valueString" />
      <maxLength value="9" />
      <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:Adresszusatz.value[x]">
      <path value="Patient.address.line.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.line.extension:Adresszusatz.value[x]:valueString">
      <path value="Patient.address.line.extension.value[x]" />
      <sliceName value="valueString" />
      <maxLength value="40" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.city">
      <path value="Patient.address.city" />
      <maxLength value="40" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.state">
      <path value="Patient.address.state" />
      <max value="0" />
    </element>
    <element id="Patient.address:Strassenanschrift.postalCode">
      <path value="Patient.address.postalCode" />
      <maxLength value="10" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.country">
      <path value="Patient.address.country" />
      <constraint>
        <key value="-for-laengeWohnsitzlaendercode" />
        <severity value="error" />
        <human value="Der Wohnsitzlaendercode muss 1- bis 3-stellig sein und aus Großbuchstaben bestehen." />
        <expression value="matches('^[A-Z]{1,3}$')" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Strassenanschrift.period">
      <path value="Patient.address.period" />
      <max value="0" />
    </element>
    <element id="Patient.address:Postfach">
      <path value="Patient.address" />
      <sliceName value="Postfach" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.extension">
      <path value="Patient.address.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <max value="0" />
    </element>
    <element id="Patient.address:Postfach.extension:Stadtteil">
      <path value="Patient.address.extension" />
      <sliceName value="Stadtteil" />
      <max value="0" />
    </element>
    <element id="Patient.address:Postfach.use">
      <path value="Patient.address.use" />
      <max value="0" />
    </element>
    <element id="Patient.address:Postfach.type">
      <path value="Patient.address.type" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.text">
      <path value="Patient.address.text" />
      <max value="0" />
    </element>
    <element id="Patient.address:Postfach.line">
      <path value="Patient.address.line" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.line.extension">
      <path value="Patient.address.line.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Patient.address:Postfach.line.extension:Postfach">
      <path value="Patient.address.line.extension" />
      <sliceName value="Postfach" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.line.extension:Postfach.value[x]">
      <path value="Patient.address.line.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.line.extension:Postfach.value[x]:valueString">
      <path value="Patient.address.line.extension.value[x]" />
      <sliceName value="valueString" />
      <maxLength value="8" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.city">
      <path value="Patient.address.city" />
      <maxLength value="40" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.state">
      <path value="Patient.address.state" />
      <max value="0" />
    </element>
    <element id="Patient.address:Postfach.postalCode">
      <path value="Patient.address.postalCode" />
      <maxLength value="10" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.country">
      <path value="Patient.address.country" />
      <constraint>
        <key value="-for-laengeWohnsitzlaendercode" />
        <severity value="error" />
        <human value="Der Wohnsitzlaendercode muss 1- bis 3-stellig sein und aus Großbuchstaben bestehen." />
        <expression value="matches('^[A-Z]{1,3}$')" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:Postfach.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" />
      <max value="0" />
    </element>
    <element id="Patient.managingOrganization">
      <path value="Patient.managingOrganization" />
      <max value="0" />
    </element>
    <element id="Patient.link">
      <path value="Patient.link" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>