<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="mii-pr-prozedur-procedure" />
  <url value="https://gematik.de/fhir/isik/StructureDefinition/mii-pr-prozedur-procedure" />
  <version value="6.0.0-rc" />
  <name value="MII_PR_Prozedur_Procedure" />
  <title value="MII PR Prozedur Procedure" />
  <status value="active" />
  <experimental value="false" />
  <date value="2026-04-02" />
  <publisher value="gematik GmbH" />
  <description value="Dieses Profil übernimmt die Vorgaben des Profils Prozedur der Medizininformatik-Initiative, um einzelne Profile für den Einsatz in ISiK zu spezifizieren, insbesondere die Beatmung aus dem MII Modul ICU.&#xA;Wesentliche Änderungen:&#xA;- Metadaten an ISiK angepasst&#xA;- Translation Entfernt" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Procedure" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Procedure" />
  <derivation value="constraint" />
  <differential>
    <element id="Procedure">
      <path value="Procedure" />
      <constraint>
        <key value="proc-mii-1" />
        <severity value="error" />
        <human value="Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden" />
        <expression value="code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()" />
        <source value="https://gematik.de/fhir/isik/StructureDefinition/mii-pr-prozedur-procedure" />
      </constraint>
    </element>
    <element id="Procedure.id">
      <path value="Procedure.id" />
      <short value="serverseitige, interne ID des Datensatzes" />
      <comment value="**bedingtes Pflichtfeld/bedingtes MS:** Alle von einem Server bereitgestellten Ressourcen MÜSSEN über eine `id` verfügen.&#xA;  Von Clients erzeugte Ressourcen, die im Kontext einer CREATE-Interaktion übermittelt werden, MÜSSEN NICHT über eine `id`verfügen." />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.meta">
      <path value="Procedure.meta" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.meta.versionId">
      <path value="Procedure.meta.versionId" />
      <short value="Eindeutiger Name der serverseitigen Version des Datensatzes" />
      <comment value="Alle von einem Server bereitgestellten Ressourcen SOLLEN über eine `versionID` verfügen.&#xA;  Von Clients erzeugte Ressourcen, die im Kontext einer CREATE-Interaktion übermittelt werden, MÜSSEN NICHT über eine `versionID`verfügen." />
    </element>
    <element id="Procedure.meta.lastUpdated">
      <path value="Procedure.meta.lastUpdated" />
      <short value="Zeitpunkt der letzten Änderung" />
      <comment value="Alle von einem Server bereitgestellten Ressourcen SOLLEN über ein `lastUpdate` verfügen.&#xA;  Von Clients erzeugte Ressourcen, die im Kontext einer CREATE-Interaktion übermittelt werden, MÜSSEN NICHT über ein `lastUpdate`verfügen." />
    </element>
    <element id="Procedure.meta.source">
      <path value="Procedure.meta.source" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.meta.profile">
      <path value="Procedure.meta.profile" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.implicitRules">
      <path value="Procedure.implicitRules" />
      <short value="Verweis auf die Regeln, nach denen die Ressource erstellt wurde" />
      <comment value="Begründung Constraint: In ISiK existiert kein Use-Case für dieses Element. Da es sich um ein Modifying Element handelt, wird es daher ausgeschlossen.&#xA;  Darüber hinaus werden die Regeln als URI vorgehalten. Dies führt dazu, dass sich hinter der URI eine beliebige Menge an Regeln befinden kann; wodurch  nicht sichergestellt werden kann, dass alle Clients die Regeln korrekt interpretieren können." />
      <max value="0" />
    </element>
    <element id="Procedure.extension">
      <path value="Procedure.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.extension:Dokumentationsdatum">
      <path value="Procedure.extension" />
      <sliceName value="Dokumentationsdatum" />
      <short value="Dokumentationsdatum" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.extension:durchfuehrungsabsicht">
      <path value="Procedure.extension" />
      <sliceName value="durchfuehrungsabsicht" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://gematik.de/fhir/isik/StructureDefinition/mii-ex-prozedur-durchfuehrungsabsicht" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.status">
      <path value="Procedure.status" />
      <short value="Status" />
      <definition value="Vorbereitung | in Arbeit | nicht durchgeführt | pausiert | abgebrochen | abgeschlossen | Eingabe fehlerhaft | unbekannt" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.category">
      <path value="Procedure.category" />
      <short value="Kategorie" />
      <definition value="Diagnostische Maßnahmen | Bildgebende Diagnostik | Operationen | Medikamente | Nichtoperative therapeutische Maßnahmen | Ergänzende Maßnahmen" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.category.coding">
      <path value="Procedure.category.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Procedure.category.coding:sct">
      <path value="Procedure.category.coding" />
      <sliceName value="sct" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://snomed.info/sct" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="https://gematik.de/fhir/isik/ValueSet/mii-vs-prozedur-opskategorien-snomedct" />
      </binding>
    </element>
    <element id="Procedure.category.coding:sct.system">
      <path value="Procedure.category.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.category.coding:sct.code">
      <path value="Procedure.category.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code">
      <path value="Procedure.code" />
      <short value="Code" />
      <definition value="Code aus OPS - Operationen- und Prozedurenschlüssel, SNOMED CT oder andere." />
      <min value="1" />
      <constraint>
        <key value="sct-ops-1" />
        <severity value="error" />
        <human value="Falls die Prozedur kodiert vorliegt, SOLL mindestens ein OPS oder SNOMED-CT Code angegeben werden." />
        <expression value="coding.exists() implies coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()" />
        <source value="https://gematik.de/fhir/isik/StructureDefinition/mii-pr-prozedur-procedure" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code.coding">
      <path value="Procedure.code.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code.coding:ops">
      <path value="Procedure.code.coding" />
      <sliceName value="ops" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Coding" />
        <profile value="http://fhir.de/StructureDefinition/CodingOPS" />
      </type>
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/bfarm/ops" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/isik/ValueSet/mii-vs-prozedur-ops" />
      </binding>
    </element>
    <element id="Procedure.code.coding:ops.extension:Seitenlokalisation">
      <path value="Procedure.code.coding.extension" />
      <sliceName value="Seitenlokalisation" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code.coding:ops.system">
      <path value="Procedure.code.coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code.coding:ops.version">
      <path value="Procedure.code.coding.version" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code.coding:ops.code">
      <path value="Procedure.code.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code.coding:sct">
      <path value="Procedure.code.coding" />
      <sliceName value="sct" />
      <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/ValueSet/mii-vs-prozedur-prozeduren-snomedct" />
      </binding>
    </element>
    <element id="Procedure.code.coding:sct.system">
      <path value="Procedure.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code.coding:sct.code">
      <path value="Procedure.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.subject">
      <path value="Procedure.subject" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.performed[x]">
      <path value="Procedure.performed[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <short value="Durchführungsdatum" />
      <definition value="Durchführungsdatum oder -zeitraum der Prozedur." />
      <min value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="Period" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.performed[x]:performedDateTime">
      <path value="Procedure.performed[x]" />
      <sliceName value="performedDateTime" />
      <definition value="Durchführungsdatum der Prozedur." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Procedure.performed[x]:performedPeriod">
      <path value="Procedure.performed[x]" />
      <sliceName value="performedPeriod" />
      <short value="Durchführungszeitraum" />
      <definition value="Zeitraum, in dem die Prozedur durchgeführt wurde." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
    </element>
    <element id="Procedure.bodySite">
      <path value="Procedure.bodySite" />
      <short value="Körperstelle" />
      <definition value="Körperstelle der Prozedur mittels SNOMED CT inklusive Lateralität." />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.bodySite.coding">
      <path value="Procedure.bodySite.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.bodySite.coding:snomed-ct">
      <path value="Procedure.bodySite.coding" />
      <sliceName value="snomed-ct" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.bodySite.coding:snomed-ct.system">
      <path value="Procedure.bodySite.coding.system" />
      <min value="1" />
      <patternUri value="http://snomed.info/sct" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.bodySite.coding:snomed-ct.version">
      <path value="Procedure.bodySite.coding.version" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.bodySite.coding:snomed-ct.code">
      <path value="Procedure.bodySite.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.note">
      <path value="Procedure.note" />
      <short value="Hinweis" />
      <definition value="Zusätzliche Informationen zur Prozedur als Freitext." />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>