<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="epa-observation-breastfeeding-status" />
  <url value="https://gematik.de/fhir/epa/StructureDefinition/epa-observation-breastfeeding-status" />
  <version value="1.1.0" />
  <name value="EPAObservationBreastfeedingStatus" />
  <title value="EPA Breastfeeding Status 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 die versicherte Person stillt." />
  <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 die versicherte Person stillt." />
      <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-breastfeeding-status" />
      </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-breastfeeding-status" />
      </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="Der Code in diesem Abschnitt beschreiben das Konzept &quot;Stillzeit (aktueller Status)&quot;." />
      <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" />
      <definition value="Angabe eines spezifischen LOINC®-Codes zur Definition der Information als &quot;Stillzeit (aktueller Status)&quot;." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/terminology/ValueSet/epa-breast-feeding-status-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>
      <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="CodeableConcept" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept">
      <path value="Observation.value[x]" />
      <sliceName value="valueCodeableConcept" />
      <definition value="Hier wird angeben, ob eine/ein Patient:in aktuell stillt." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding">
      <path value="Observation.value[x].coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding:loinc">
      <path value="Observation.value[x].coding" />
      <sliceName value="loinc" />
      <definition value="Hier wird das Ergebnis als LOINC®-Code aus einem vorgegebenen Valueset angegeben." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/terminology/ValueSet/epa-breast-feeding-status-value-loinc-vs" />
      </binding>
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding:loinc.system">
      <path value="Observation.value[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding:loinc.version">
      <path value="Observation.value[x].coding.version" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding:loinc.code">
      <path value="Observation.value[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding:loinc.display">
      <path value="Observation.value[x].coding.display" />
      <min value="1" />
      <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>