<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ISiKDiagnose" />
  <url value="https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" />
  <version value="3.1.1" />
  <name value="ISiKDiagnose" />
  <status value="active" />
  <experimental value="false" />
  <date value="2025-12-01" />
  <publisher value="gematik GmbH" />
  <description value="Dieses Profil ermöglicht die Nutzung von Diagnosen in ISiK Szenarien." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Condition" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Condition" />
  <derivation value="constraint" />
  <differential>
    <element id="Condition">
      <path value="Condition" />
      <constraint>
        <key value="isik-con1" />
        <severity value="error" />
        <human value="Falls eine kodierte Diagnose vorliegt muss angegeben werden durch welchen Kontakt diese Dokumentation erfolgte." />
        <expression value="code.coding.exists() implies encounter.exists()" />
        <source value="https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" />
      </constraint>
    </element>
    <element id="Condition.extension">
      <path value="Condition.extension" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.extension:related">
      <path value="Condition.extension" />
      <sliceName value="related" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/condition-related" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.clinicalStatus">
      <path value="Condition.clinicalStatus" />
      <definition value="Einschränkung der übergreifenden MS-Definition: Verfügt ein bestätigungsrelevantes System nicht über die Datenstruktur zur Hinterlegung des Status einer Diagnose, so MUSS dieses System die Information NICHT abbilden. Das System MUSS jedoch den Status kodieren in der Diagnose, sofern die Information verfügbar ist." />
      <comment value="Hintergrund zur Motivation der MS-Definition: Auch in Stufe 3 sind keine (Client-seitigen) schreibenden Operationen für das Erstellen einer Condition-Ressource vorgesehen (siehe CapabilityStatement). Das heißt entweder führen KISe entsprechende Informationen und exponieren diese, oder es gibt keinen pragmatischen Mechanismus (im ISIK-Kontext), um den Use Case einer zusätzlichen Annotation mittels Client zu erfüllen. Da alle KIS-Hersteller, die sich zu Wort gemeldet haben, eine Befüllung von Condition.clinicalStatus NICHT unterstützen, erscheint das MS nach übergreifender Definition und ein verpflichtender Testfall nicht angemessen." />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code">
      <path value="Condition.code" />
      <min value="1" />
      <constraint>
        <key value="icd-text-1" />
        <severity value="error" />
        <human value="Entweder MUSS eine kodierte Diagnose vorliegen oder eine textuelle Beschreibung. Stattdessen nur Extensions hinzuzufügen (vgl. https://www.hl7.org/fhir/element.html - ele-1), ist explizit nicht erlaubt." />
        <expression value="coding.exists().not() implies text.exists()" />
        <source value="https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding">
      <path value="Condition.code.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:ICD-10-GM">
      <path value="Condition.code.coding" />
      <sliceName value="ICD-10-GM" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Coding" />
        <profile value="http://fhir.de/StructureDefinition/CodingICD10GM" />
      </type>
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/bfarm/icd-10-gm" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:ICD-10-GM.extension:Mehrfachcodierungs-Kennzeichen">
      <path value="Condition.code.coding.extension" />
      <sliceName value="Mehrfachcodierungs-Kennzeichen" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:ICD-10-GM.extension:Seitenlokalisation">
      <path value="Condition.code.coding.extension" />
      <sliceName value="Seitenlokalisation" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:ICD-10-GM.extension:Diagnosesicherheit">
      <path value="Condition.code.coding.extension" />
      <sliceName value="Diagnosesicherheit" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:Alpha-ID">
      <path value="Condition.code.coding" />
      <sliceName value="Alpha-ID" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Coding" />
        <profile value="http://fhir.de/StructureDefinition/CodingAlphaID" />
      </type>
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/bfarm/alpha-id" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:Alpha-ID.system">
      <path value="Condition.code.coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:Alpha-ID.code">
      <path value="Condition.code.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:SNOMED-CT">
      <path value="Condition.code.coding" />
      <sliceName value="SNOMED-CT" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://snomed.info/sct" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/DiagnosesSCT" />
      </binding>
    </element>
    <element id="Condition.code.coding:SNOMED-CT.system">
      <path value="Condition.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:SNOMED-CT.code">
      <path value="Condition.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:Orphanet">
      <path value="Condition.code.coding" />
      <sliceName value="Orphanet" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://www.orpha.net" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:Orphanet.system">
      <path value="Condition.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding:Orphanet.code">
      <path value="Condition.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.subject">
      <path value="Condition.subject" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.subject.reference">
      <path value="Condition.subject.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.encounter">
      <path value="Condition.encounter" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.onset[x]">
      <path value="Condition.onset[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="Period" />
      </type>
    </element>
    <element id="Condition.onset[x]:onsetPeriod">
      <path value="Condition.onset[x]" />
      <sliceName value="onsetPeriod" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
    </element>
    <element id="Condition.onset[x]:onsetPeriod.start.extension:Lebensphase-Start">
      <path value="Condition.onset[x].start.extension" />
      <sliceName value="Lebensphase-Start" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/lebensphase" />
      </type>
    </element>
    <element id="Condition.onset[x]:onsetPeriod.end.extension:Lebensphase-Ende">
      <path value="Condition.onset[x].end.extension" />
      <sliceName value="Lebensphase-Ende" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/lebensphase" />
      </type>
    </element>
    <element id="Condition.onset[x]:onsetDateTime">
      <path value="Condition.onset[x]" />
      <sliceName value="onsetDateTime" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Condition.recordedDate">
      <path value="Condition.recordedDate" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.note">
      <path value="Condition.note" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>