<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="epa-observation-estimated-date-of-delivery" />
  <url value="https://gematik.de/fhir/epa/StructureDefinition/epa-observation-estimated-date-of-delivery" />
  <version value="1.1.0" />
  <name value="EPAObservationEstimatedDateOfDelivery" />
  <title value="EPA Estimated Date Of Delivery Observation Profile" />
  <status value="active" />
  <experimental value="false" />
  <date value="2024-08-14" />
  <publisher value="mio42 GmbH" />
  <description value="In diesem Profil kann dokumentiert werden ob bei der versicherten Person eine Schwangerschaft besteht." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <definition value="In diesem Profil kann dokumentiert werden ob bei der versicherten Person eine Schwangerschaft besteht." />
      <constraint>
        <key value="obs-epa-1" />
        <severity value="error" />
        <human value="At least year, month and day are needed" />
        <expression value="(effective as dateTime).toString().length() &gt;= 10" />
        <source value="https://gematik.de/fhir/epa/StructureDefinition/epa-observation-estimated-date-of-delivery" />
      </constraint>
      <constraint>
        <key value="obs-epa-2" />
        <severity value="error" />
        <human value="If it is a valid Observation it must have a value otherwise it must not have a value" />
        <expression value="(Observation.value.exists() implies (Observation.status in ('final' | 'amended' | 'corrected' | 'preliminary')))" />
        <source value="https://gematik.de/fhir/epa/StructureDefinition/epa-observation-estimated-date-of-delivery" />
      </constraint>
    </element>
    <element id="Observation.meta">
      <path value="Observation.meta" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta.versionId">
      <path value="Observation.meta.versionId" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta.lastUpdated">
      <path value="Observation.meta.lastUpdated" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.text">
      <path value="Observation.text" />
      <definition value="In diesem Element können die in der Instanz enthaltenen Informationen in einer menschenlesbaren Form zusammengefasst werden. Dabei ist zu beachten, dass keine Informationen aufgenommen werden dürfen, die nicht in strukturierter Form an anderer Stelle in der Instanz enthalten sind." />
    </element>
    <element id="Observation.text.status">
      <path value="Observation.text.status" />
      <patternCode value="extensions" />
    </element>
    <element id="Observation.status">
      <path value="Observation.status" />
      <definition value="Hier wird ein Code aus dem FHIR ValueSet http://hl7.org/fhir/ValueSet/observation-status angegeben." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <definition value="Hier wird der geschätzte Entbindungstermin mittels eines spezifischen Codes definiert." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="Das MustSupport gilt nur für die vordefinierten Slices." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding:loinc">
      <path value="Observation.code.coding" />
      <sliceName value="loinc" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/terminology/ValueSet/epa-estimated-date-of-delivery-loinc-vs" />
      </binding>
    </element>
    <element id="Observation.code.coding:loinc.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding:loinc.version">
      <path value="Observation.code.coding.version" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding:loinc.code">
      <path value="Observation.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding:loinc.display">
      <path value="Observation.code.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.subject.identifier">
      <path value="Observation.subject.identifier" />
      <min value="1" />
      <type>
        <code value="Identifier" />
        <profile value="http://fhir.de/StructureDefinition/identifier-kvid-10" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <definition value="Hier wird der Zeitpunkt angegeben an dem der geschätzte Entbindungstermin erfasst wurde." />
      <min value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.effective[x]:effectiveDateTime">
      <path value="Observation.effective[x]" />
      <sliceName value="effectiveDateTime" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <definition value="Hier wird die behandelnde Person/Einrichtung referenziert, die die Beobachtung durchgeführt hat." />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/PractitionerRole" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.performer.reference">
      <path value="Observation.performer.reference" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.performer.identifier">
      <path value="Observation.performer.identifier" />
      <type>
        <code value="Identifier" />
        <profile value="http://fhir.de/StructureDefinition/identifier-kvid-10" />
        <profile value="http://fhir.de/StructureDefinition/identifier-telematik-id" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueDateTime">
      <path value="Observation.value[x]" />
      <sliceName value="valueDateTime" />
      <definition value="Hier soll der geschätzte Entbindungstermin angegeben werden." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.note">
      <path value="Observation.note" />
      <definition value="Hier können ergänzende freitextliche Kommentare und Notizen vorgenommen werden, die nicht durch die strukturierten Datenelemente erfassbar sind." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.note.author[x]">
      <path value="Observation.note.author[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <definition value="Hier wird die Person referenziert, die die Notiz erstellt hat." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.note.author[x]:authorReference">
      <path value="Observation.note.author[x]" />
      <sliceName value="authorReference" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.note.author[x]:authorReference.reference">
      <path value="Observation.note.author[x].reference" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.note.author[x]:authorReference.identifier">
      <path value="Observation.note.author[x].identifier" />
      <type>
        <code value="Identifier" />
        <profile value="http://fhir.de/StructureDefinition/identifier-kvid-10" />
        <profile value="http://fhir.de/StructureDefinition/identifier-telematik-id" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.note.time">
      <path value="Observation.note.time" />
      <definition value="Hier wird der Zeitpunkt angegeben, zu dem die Notiz erstellt wurde." />
      <comment value="Dieses Element sollte in der Regel automatisiert ohne Aufwand für die Person, die die Notiz erstellt befüllt werden." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.note.text">
      <path value="Observation.note.text" />
      <definition value="Hier wird der eigentliche Text der Notiz eingetragen." />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>