<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Patient" />
  <meta>
    <lastUpdated value="2025-05-02T11:22:51.192+00:00" />
  </meta>
  <url value="https://demis.rki.de/fhir/ars/StructureDefinition/Patient" />
  <version value="1.0.0" />
  <name value="Patient" />
  <title value="Patient" />
  <status value="draft" />
  <experimental value="false" />
  <date value="2025-04-15" />
  <publisher value="ARS@rki.de" />
  <description value="In diesem Profil werden Angaben zum Patienten gemacht. Für ARS dürfen nach §13 Abs. 4 IfSG ausschließlich pseudonymisierte Falldaten übermittelt werden. Zur Pseudonymbildung siehe Kapitel 'Pseudonymisierung' im Implementierungsleitfaden." />
  <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.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.id">
      <path value="Patient.meta.id" />
      <max value="0" />
    </element>
    <element id="Patient.meta.extension">
      <path value="Patient.meta.extension" />
      <max value="0" />
    </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="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.profile:arsProfile">
      <path value="Patient.meta.profile" />
      <sliceName value="arsProfile" />
      <min value="1" />
      <max value="1" />
      <patternCanonical value="https://demis.rki.de/fhir/ars/StructureDefinition/Patient" />
      <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.identifier">
      <path value="Patient.identifier" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="system" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <short value="Patientenpseudonym" />
      <definition value="Ein Paar von UUIDs, die zusammen als Patientenpseudonym auftreten. Der Bildung der Pseudonyme liegt ein für ARS entwickeltes Konzept zugrunde. Das Konzept ist im Implementierungsleitfaden im Kapitel 'Pseudonymisierung' zu finden." />
      <min value="2" />
      <max value="2" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:rkiPatientPseudonym">
      <path value="Patient.identifier" />
      <sliceName value="rkiPatientPseudonym" />
      <min value="2" />
      <max value="2" />
      <type>
        <code value="Identifier" />
        <profile value="https://demis.rki.de/fhir/ars/StructureDefinition/IdentifierSurveillancePatientPseudonym" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:rkiPatientPseudonym.value">
      <path value="Patient.identifier.value" />
      <constraint>
        <key value="pseudonymIsUUID" />
        <severity value="error" />
        <human value="Die Patientenpseudonyme muessen als UUID uebergeben werden." />
        <expression value="$this.toString().matches('^urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$')" />
        <source value="https://demis.rki.de/fhir/ars/StructureDefinition/Patient" />
      </constraint>
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <max value="0" />
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <max value="0" />
    </element>
    <element id="Patient.telecom">
      <path value="Patient.telecom" />
      <max value="0" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.gender.extension">
      <path value="Patient.gender.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </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" />
      <short value="Geburtsdatum (YYYY-MM)" />
      <definition value="Geburtsdatum des Patienten, nur Angabe des Geburtsmonats und Geburtsjahres." />
      <min value="1" />
      <constraint>
        <key value="yearAndMonthOnlyBirthDate" />
        <severity value="error" />
        <human value="Das Geburtsdatum darf lediglich Jahr und Monat der Geburt beinhalten" />
        <expression value="$this.toString().matches('^[0-9]{4}-[0-9]{2}|[0-9]{4}$')" />
        <source value="https://demis.rki.de/fhir/ars/StructureDefinition/Patient" />
      </constraint>
      <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" />
      <short value="Wohnort (3-stellige PLZ)" />
      <definition value="Die Angabe zum Wohnort des Patienten in Form der 3-stelligen Postleitzahl unter ist ausschließlich bei Diagnostik zu Chlamydia trachomatis relevant. Sollten Angaben für einen anderen Erreger als für Chlamydia trachomatis gemacht werden, wird diese nach Übermittlung an das RKI aus der Rohdatenbank entfernt und steht für die weitere Datenverarbeitung am RKI nicht zur Verfügung. Hintergrund für die Erhebung dieser Angaben ist die Integration des Chlamydien-Sentinels in die Übermittlung für ARS. Siehe auch Kapitel 'Integration von Sentinel-Systemen' im Implementierungsleitfaden." />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.address.use">
      <path value="Patient.address.use" />
      <max value="0" />
    </element>
    <element id="Patient.address.type">
      <path value="Patient.address.type" />
      <max value="0" />
    </element>
    <element id="Patient.address.text">
      <path value="Patient.address.text" />
      <max value="0" />
    </element>
    <element id="Patient.address.line">
      <path value="Patient.address.line" />
      <max value="0" />
    </element>
    <element id="Patient.address.city">
      <path value="Patient.address.city" />
      <max value="0" />
    </element>
    <element id="Patient.address.district">
      <path value="Patient.address.district" />
      <max value="0" />
    </element>
    <element id="Patient.address.state">
      <path value="Patient.address.state" />
      <max value="0" />
    </element>
    <element id="Patient.address.postalCode">
      <path value="Patient.address.postalCode" />
      <constraint>
        <key value="threeDigitPostalCode" />
        <severity value="error" />
        <human value="Die 'verkürzte' Postleitzahl muss aus den ersten 3 Ziffern der 'normalen' Postleitzahl bestehen" />
        <expression value="$this.toString().matches('^[0-9]{3}$')" />
        <source value="https://demis.rki.de/fhir/ars/StructureDefinition/Patient" />
      </constraint>
    </element>
    <element id="Patient.address.country">
      <path value="Patient.address.country" />
      <max value="0" />
    </element>
    <element id="Patient.address.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>