<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="NotifiedPerson" />
  <url value="https://demis.rki.de/fhir/StructureDefinition/NotifiedPerson" />
  <version value="2.0.0" />
  <name value="NotifiedPerson" />
  <title value="Betroffene Person" />
  <status value="active" />
  <date value="2025-02-20" />
  <publisher value="Robert Koch-Institut" />
  <contact>
    <telecom>
      <system value="email" />
      <value value="demis-support@rki.de" />
    </telecom>
  </contact>
  <description value="Die betroffene Person enthält relevante Angaben zum Patienten, die entsprechend der aktuellen Planung aus den Auftragsdaten extrahiert werden, die der Einsender dem jeweiligen Labor übermittelt hat. Dies werden in der Mehrzahl der Fälle die Angaben von der eGK der betroffenen Person sein (Versichertenstammdaten)." />
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166" />
      <version value="ALPHA-2" />
      <code value="DE" />
    </coding>
  </jurisdiction>
  <copyright value="Copyright (C) 2021-2025 Robert Koch-Institut" />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="cda" />
    <uri value="http://hl7.org/v3/cda" />
    <name value="CDA (R2)" />
  </mapping>
  <mapping>
    <identity value="loinc" />
    <uri value="http://loinc.org" />
    <name value="LOINC code for the element" />
  </mapping>
  <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="validFamilyName" />
        <severity value="error" />
        <human value="Der Nachname muss valide sein." />
        <expression value="name.family.matches('^[^@\\*?$|=´&quot;\\[\\]{}&lt;&gt;0-9]{0,100}$')" />
      </constraint>
      <constraint>
        <key value="validGivenName" />
        <severity value="error" />
        <human value="Die Vornamen muss valide sein." />
        <expression value="name.given.all(matches('^[^@\\*?$|=´&quot;\\[\\]{}&lt;&gt;0-9]{0,100}$'))" />
      </constraint>
      <constraint>
        <key value="genderExists" />
        <severity value="error" />
        <human value="Wenn als gender other angegeben wird, muss die Extension http://fhir.de/StructureDefinition/gender-amtlich-de befüllt werden." />
        <expression value="gender.exists() and gender = 'other' implies gender.extension('http://fhir.de/StructureDefinition/gender-amtlich-de').exists()" />
      </constraint>
    </element>
    <element id="Patient.meta">
      <path value="Patient.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.profile">
      <path value="Patient.meta.profile" />
      <min value="1" />
      <max value="1" />
      <patternCanonical value="https://demis.rki.de/fhir/StructureDefinition/NotifiedPerson" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <max value="0" />
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <short value="Name" />
      <definition value="Name der betroffenen Person. Mindestens ein Vorname und der Nachname müssen angegeben werden." />
      <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="Patient.name.family">
      <path value="Patient.name.family" />
      <short value="Nachname" />
      <definition value="Nachname der betroffenen Person. Es muss genau ein Nachname angegeben werden." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name.given">
      <path value="Patient.name.given" />
      <short value="Vorname" />
      <definition value="Vorname der betroffenen Person. Es muss mindestens ein Vorname angegeben werden." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.telecom">
      <path value="Patient.telecom" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <short value="Kontaktangaben" />
      <definition value="Kontaktangaben der betroffenen Person. Telefonnummern oder E-Mailadressen können angegeben werden." />
      <mustSupport value="true" />
    </element>
    <element id="Patient.telecom:Email">
      <path value="Patient.telecom" />
      <sliceName value="Email" />
    </element>
    <element id="Patient.telecom:Email.system">
      <path value="Patient.telecom.system" />
      <min value="1" />
      <fixedCode value="email" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.telecom:Email.value">
      <path value="Patient.telecom.value" />
      <min value="1" />
      <constraint>
        <key value="validEmailAddress" />
        <severity value="error" />
        <human value="Die E-Mail-Adresse muss valide sein." />
        <expression value="$this.matches('^[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+[.])+[a-zA-Z0-9]{2,63}$')" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Patient.telecom:Phone">
      <path value="Patient.telecom" />
      <sliceName value="Phone" />
    </element>
    <element id="Patient.telecom:Phone.extension">
      <path value="Patient.telecom.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Patient.telecom:Phone.extension:comment">
      <path value="Patient.telecom.extension" />
      <sliceName value="comment" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://demis.rki.de/fhir/StructureDefinition/Comment" />
      </type>
    </element>
    <element id="Patient.telecom:Phone.system">
      <path value="Patient.telecom.system" />
      <min value="1" />
      <fixedCode value="phone" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.telecom:Phone.value">
      <path value="Patient.telecom.value" />
      <min value="1" />
      <constraint>
        <key value="validPhoneNumber" />
        <severity value="error" />
        <human value="Die Telefonnummer muss valide sein." />
        <expression value="$this.matches('^[0+][0-9 \\-\\(\\)]{6,50}$')" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <short value="Geschlecht" />
      <definition value="Geschlecht der betroffenen Person" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.gender.extension">
      <path value="Patient.gender.extension" />
      <slicing>
        <description value="Differenzierung des administrativen Geschlechts 'other'" />
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Patient.gender.extension:other-amtlich">
      <path value="Patient.gender.extension" />
      <sliceName value="other-amtlich" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/gender-amtlich-de" />
      </type>
    </element>
    <element id="Patient.gender.extension:other-amtlich.url">
      <path value="Patient.gender.extension.url" />
      <fixedUri value="http://fhir.de/StructureDefinition/gender-amtlich-de" />
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <short value="Geburtsdatum" />
      <definition value="Geburtsdatum der betroffenen Person" />
      <constraint>
        <key value="validBirthDate" />
        <severity value="error" />
        <human value="Das Geburtsjahr muss mit 19 oder 20 beginnen." />
        <expression value="$this.toString().matches('^19[0-9]{2}-[0-9]{2}-[0-9]{2}|20[0-9]{2}-[0-9]{2}-[0-9]{2}|19[0-9]{2}-[0-9]{2}|20[0-9]{2}-[0-9]{2}|19[0-9]{2}|20[0-9]{2}$')" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Patient.deceased[x]">
      <path value="Patient.deceased[x]" />
      <comment value="Diese Angabe betrifft nur die DEMIS-Erkrankungsmeldung (https://simplifier.net/rki.demis.disease): Angaben zum Tod der betroffenen Person sollen ausschließlich über den Fragebogen DiseaseQuestionsCommon dokumentiert werden, siehe dazu linkId isDead und deathDate in https://simplifier.net/guide/rki.demis.disease/Home/resources/questionnaires/guide-diseasequestionscommon.md?version=current." />
    </element>
    <element id="Patient.address">
      <path value="Patient.address" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="extension('https://demis.rki.de/fhir/StructureDefinition/AddressUse').value" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <short value="Adresse der betroffenen Person" />
      <definition value="Meldepflichtige Angaben zur Betroffenen Person sind die Unterscheidung Hauptwohnung, gewöhnlicher Aufenthaltsortes oder ggf. derzeitiger Aufenthaltsort. Diese Angaben können hier gemacht werden durch die spezifizierung über die extension &quot;addressUse&quot;. Ist die Art des Wohnsitzes nicht bekannt, so ist bei der Adresse vom Hauptwohnsitz auszugehen. Ist die betroffene Person in einer Einrichtung untergebracht, kann über die Extension &quot;facility&quot; die Einrichtung angegeben werden." />
      <max value="3" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address:hauptwohnung">
      <path value="Patient.address" />
      <sliceName value="hauptwohnung" />
      <max value="1" />
    </element>
    <element id="Patient.address:hauptwohnung.extension">
      <path value="Patient.address.extension" />
      <min value="1" />
    </element>
    <element id="Patient.address:hauptwohnung.extension:addressUse">
      <path value="Patient.address.extension" />
      <sliceName value="addressUse" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://demis.rki.de/fhir/StructureDefinition/AddressUse" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
    </element>
    <element id="Patient.address:hauptwohnung.extension:addressUse.value[x]">
      <path value="Patient.address.extension.value[x]" />
      <fixedCoding>
        <system value="https://demis.rki.de/fhir/CodeSystem/addressUse" />
        <code value="primary" />
      </fixedCoding>
    </element>
    <element id="Patient.address.hauptwohnung.extension:facility">
      <path value="Patient.address.extension" />
      <sliceName value="facility" />
      <type>
        <code value="Extension" />
        <profile value="https://demis.rki.de/fhir/StructureDefinition/FacilityAddressNotifiedPerson" />
      </type>
    </element>
    <element id="Patient.address:hauptwohnung.use">
      <path value="Patient.address.use" />
      <max value="0" />
    </element>
    <element id="Patient.address:hauptwohnung.line">
      <path value="Patient.address.line" />
      <max value="3" />
    </element>
    <element id="Patient.address:hauptwohnung.line.extension:Postfach">
      <path value="Patient.address.line.extension" />
      <sliceName value="Postfach" />
      <max value="0" />
    </element>
    <element id="Patient.address:hauptwohnung.country">
      <path value="Patient.address.country" />
      <short value="Land" />
      <definition value="Land" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://hl7.org/fhir/ValueSet/iso3166-1-2" />
      </binding>
    </element>
    <element id="Patient.address:hauptwohnung.period">
      <path value="Patient.address.period" />
      <max value="0" />
    </element>
    <element id="Patient.address:gewoehnlicherAufenthaltsort">
      <path value="Patient.address" />
      <sliceName value="gewoehnlicherAufenthaltsort" />
      <max value="1" />
    </element>
    <element id="Patient.address:gewoehnlicherAufenthaltsort.extension">
      <path value="Patient.address.extension" />
      <min value="1" />
    </element>
    <element id="Patient.address:gewoehnlicherAufenthaltsort.extension:addressUse">
      <path value="Patient.address.extension" />
      <sliceName value="addressUse" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://demis.rki.de/fhir/StructureDefinition/AddressUse" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
    </element>
    <element id="Patient.address:gewoehnlicherAufenthaltsort.extension:addressUse.value[x]">
      <path value="Patient.address.extension.value[x]" />
      <fixedCoding>
        <system value="https://demis.rki.de/fhir/CodeSystem/addressUse" />
        <code value="ordinary" />
      </fixedCoding>
    </element>
    <element id="Patient.address.gewoehnlicherAufenthaltsort.extension:facility">
      <path value="Patient.address.extension" />
      <sliceName value="facility" />
      <type>
        <code value="Extension" />
        <profile value="https://demis.rki.de/fhir/StructureDefinition/FacilityAddressNotifiedPerson" />
      </type>
    </element>
    <element id="Patient.address:gewoehnlicherAufenthaltsort.use">
      <path value="Patient.address.use" />
      <max value="0" />
    </element>
    <element id="Patient.address:gewoehnlicherAufenthaltsort.line">
      <path value="Patient.address.line" />
      <max value="3" />
    </element>
    <element id="Patient.address:gewoehnlicherAufenthaltsort.line.extension:Postfach">
      <path value="Patient.address.line.extension" />
      <sliceName value="Postfach" />
      <max value="0" />
    </element>
    <element id="Patient.address:gewoehnlicherAufenthaltsort.country">
      <path value="Patient.address.country" />
      <short value="Land" />
      <definition value="Land" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://hl7.org/fhir/ValueSet/iso3166-1-2" />
      </binding>
    </element>
    <element id="Patient.address:gewoehnlicherAufenthaltsort.period">
      <path value="Patient.address.period" />
      <max value="0" />
    </element>
    <element id="Patient.address:derzeitigerAufenthaltsort">
      <path value="Patient.address" />
      <sliceName value="derzeitigerAufenthaltsort" />
      <max value="1" />
    </element>
    <element id="Patient.address:derzeitigerAufenthaltsort.extension">
      <path value="Patient.address.extension" />
      <min value="1" />
    </element>
    <element id="Patient.address:derzeitigerAufenthaltsort.extension:addressUse">
      <path value="Patient.address.extension" />
      <sliceName value="addressUse" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://demis.rki.de/fhir/StructureDefinition/AddressUse" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
    </element>
    <element id="Patient.address:derzeitigerAufenthaltsort.extension:addressUse.value[x]">
      <path value="Patient.address.extension.value[x]" />
      <fixedCoding>
        <system value="https://demis.rki.de/fhir/CodeSystem/addressUse" />
        <code value="current" />
      </fixedCoding>
    </element>
    <element id="Patient.address.derzeitigerAufenthaltsort.extension:facility">
      <path value="Patient.address.extension" />
      <sliceName value="facility" />
      <type>
        <code value="Extension" />
        <profile value="https://demis.rki.de/fhir/StructureDefinition/FacilityAddressNotifiedPerson" />
      </type>
    </element>
    <element id="Patient.address:derzeitigerAufenthaltsort.use">
      <path value="Patient.address.use" />
      <max value="0" />
    </element>
    <element id="Patient.address:derzeitigerAufenthaltsort.line">
      <path value="Patient.address.line" />
      <max value="3" />
    </element>
    <element id="Patient.address:derzeitigerAufenthaltsort.line.extension:Postfach">
      <path value="Patient.address.line.extension" />
      <sliceName value="Postfach" />
      <max value="0" />
    </element>
    <element id="Patient.address:derzeitigerAufenthaltsort.country">
      <path value="Patient.address.country" />
      <short value="Land" />
      <definition value="Land" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://hl7.org/fhir/ValueSet/iso3166-1-2" />
      </binding>
    </element>
    <element id="Patient.address:derzeitigerAufenthaltsort.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" />
      <short value="Kontaktperson" />
      <definition value="Kontaktperson der betroffenen Person" />
      <mustSupport value="true" />
    </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>