<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="epa-observation-gfr" />
  <url value="https://gematik.de/fhir/epa/StructureDefinition/epa-observation-gfr" />
  <version value="1.1.0" />
  <name value="EPAObservationGFR" />
  <title value="EPA GFR Observation Profile" />
  <status value="active" />
  <experimental value="false" />
  <date value="2024-08-14" />
  <publisher value="mio42 GmbH" />
  <description value="In diesem Profil kann eine Laboruntersuchung der Glomerulären Filtrationsrate dokumentiert werden." />
  <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 eine Laboruntersuchung der Glomerulären Filtrationsrate dokumentiert werden." />
      <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-gfr" />
      </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-gfr" />
      </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 die Laboruntersuchung zur Bestimmung der Glomerulären Filtrationsrate (GFR) 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>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding:loinc">
      <path value="Observation.code.coding" />
      <sliceName value="loinc" />
      <definition value="Hier wird die Laboruntersuchung zur Bestimmung der Glomerulären Filtrationsrate (GFR) mittels eines spezifischen Codes definiert. Die deutschen Konzepte entsprechen den offiziellen Übersetzungen in der deutschen LOINC-Version." />
      <min value="1" />
      <max value="1" />
      <patternCoding>
        <system value="http://loinc.org" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/terminology/ValueSet/epa-glomerular-filtration-rate-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" />
      <definition value="Hier wird ein Zeitpunkt der Untersuchung eingetragen, wobei dieser mindestens Tag, Monat und Jahr beinhalten muss." />
      <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="Quantity" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity">
      <path value="Observation.value[x]" />
      <sliceName value="valueQuantity" />
      <definition value="Hier wird das Messergebnis als quantitativer Wert abgebildet." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Quantity" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/terminology/ValueSet/epa-glomerular-filtration-rate-quantity-unit-ucum-vs" />
      </binding>
    </element>
    <element id="Observation.value[x]:valueQuantity.value">
      <path value="Observation.value[x].value" />
      <definition value="Numerischer Wert für eine gemessene Größe, eine Zahl mit optionalen Dezimalstellen." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity.comparator">
      <path value="Observation.value[x].comparator" />
      <definition value="Der Komparator kann sein&#xA;* &lt;   (kleiner)&#xA;* &lt;= (kleiner oder gleich)&#xA;* &gt;= (größer oder gleich)&#xA;* &gt;   (größer)&#xA;Die häufigste Option ist, dass ein Laborwertergebnis = (gleich) eines Wertes ist. In diesem Fall wird kein Komparator gesetzt." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity.unit">
      <path value="Observation.value[x].unit" />
      <definition value="Die Einheit leitet sich aus der Messgröße (gemessene Eigenschaft und Mengenmaß) ab. Ein Beispiel: Wenn die Messgröße &quot;Massekonzentration pro Volumen&quot; ist, kommen als Einheiten mg/dl oder g/dl in Frage. Nur UCUM-Einheiten sind zulässig." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity.system">
      <path value="Observation.value[x].system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity.code">
      <path value="Observation.value[x].code" />
      <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>