Prozedur (Procedure)


Dieses Profil spezifiziert die Minimalanforderungen für die Bereitstellung von Informationen über die Behandlungen/Prozeduren eines Patienten im Rahmen des Bestätigungsverfahrens der gematik.

Motivation

Die Möglichkeit auf eine Übersicht der Prozeduren eines Patienten zuzugreifen, Patienten anhand durchgeführter oder geplanter Prozeduren zu suchen, oder zu prüfen, ob eine konkrete Prozedur bei einem Patienten durchgeführt wurde, sind wichtige Funktionen im klinischen Behandlungsablauf.

In FHIR werden Prozeduren mit der Procedure-Ressource repräsentiert.

Da die Prozeduren in klinischen Primärsystemen, in der Regel, in OPS-codierter Form vorliegen, fordert ISiK in erster Linie diese Form des Austausches. Falls eine Prozedur zwar dokumentiert aber noch nicht codiert wurde (z.B. wenn die Kodierung erst nach der Entlassung erfolgt), ist alternativ eine Repräsentation als Freitext-Prozedur möglich.

Kompatibilität

Für das Profil ISIKProzedur wird eine Kompatibilität mit folgenden Profilen angestrebt; allerdings kann nicht sichergestellt werden, dass Instanzen, die gegen ISIKProzedur valide sind, auch valide sind gegen:

Bestätigungsrelevanz

VerbindlichkeitSHALL

Metadaten

Canonicalhttps://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur
Statusactive
Version4.0.1
Basishttp://hl7.org/fhir/StructureDefinition/Procedure

Inhalt

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
DokumentationsdatumS I0..1Extension(dateTime)
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
instantiatesCanonicalΣ0..*canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire)
instantiatesUriΣ0..*uri
basedOnΣ I0..*Reference(CarePlan | ServiceRequest)
partOfΣ I0..*Reference(Procedure | Observation | MedicationAdministration)
statusS Σ ?!1..1codeBinding
statusReasonΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
SNOMED-CTS Σ0..1ISiKSnomedCTCodingBinding
textΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
SeitenlokalisationS I0..1Extension(Coding)
systemS Σ1..1uriFixed Value
versionS Σ1..1string
codeS Σ I1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
SNOMED-CTS Σ0..1ISiKSnomedCTCodingBinding
textS Σ0..1string
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
performedDateTimedateTime
performedPeriodPeriod
recorderΣ I0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole)
asserterΣ I0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
functionΣ0..1CodeableConcept
actorΣ I1..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)
onBehalfOfI0..1Reference(Organization)
locationΣ I0..1Reference(Location)
reasonCodeΣ0..*CodeableConcept
reasonReferenceΣ I0..*Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference)
bodySiteΣ0..*CodeableConcept
outcomeΣ0..1CodeableConcept
reportI0..*Reference(DiagnosticReport | DocumentReference | Composition)
complication0..*CodeableConcept
complicationDetailI0..*Reference(Condition)
followUp0..*CodeableConcept
noteS0..*Annotation
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
action0..1CodeableConceptBinding
manipulatedI1..1Reference(Device)
usedReferenceI0..*Reference(Device | Medication | Substance)
usedCode0..*CodeableConcept
<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="ISiKProzedur" />
    <url value="https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" />
    <version value="4.0.1" />
    <name value="ISiKProzedur" />
    <status value="active" />
    <experimental value="false" />
    <date value="2024-11-25" />
    <publisher value="gematik GmbH" />
    <description value="Dieses Profil spezifiziert die Minimalanforderungen f&#252;r die Bereitstellung von Informationen &#252;ber die Behandlungen/Prozeduren eines Patienten im Rahmen des Best&#228;tigungsverfahrens der gematik.\n### Motivation\nDie M&#246;glichkeit auf eine &#220;bersicht der Prozeduren eines Patienten zuzugreifen, Patienten anhand durchgef&#252;hrter oder geplanter Prozeduren zu suchen, oder zu pr&#252;fen, ob eine konkrete Prozedur bei einem Patienten durchgef&#252;hrt wurde, sind wichtige Funktionen im klinischen Behandlungsablauf.\n\nIn FHIR werden Prozeduren mit der Procedure-Ressource repr&#228;sentiert.\n\nDa die Prozeduren in klinischen Prim&#228;rsystemen, in der Regel, in OPS-codierter Form vorliegen, fordert ISiK in erster Linie diese Form des Austausches. Falls eine Prozedur zwar dokumentiert aber noch nicht codiert wurde (z.B. wenn die Kodierung erst nach der Entlassung erfolgt), ist alternativ eine Repr&#228;sentation als Freitext-Prozedur m&#246;glich.\n\n### Kompatibilit&#228;t\nF&#252;r das Profil ISIKProzedur wird eine Kompatibilit&#228;t mit folgenden Profilen angestrebt; allerdings kann nicht sichergestellt werden, dass Instanzen, die gegen ISIKProzedur valide sind, auch valide sind gegen:\n\n* [Profil Prozedur](https://www.medizininformatik-initiative.de/fhir/core/modul-prozedur/StructureDefinition/Procedure) der Medizininformatik Initiative  \nHinweise zu Inkompatibilit&#228;ten k&#246;nnen &#252;ber die [Portalseite](https://service.gematik.de/servicedesk/customer/portal/16) gemeldet werden." />
    <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-ISiK-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 = &#39;http://fhir.de/CodeSystem/bfarm/ops&#39;).exists() implies category.coding.where(system = &#39;http://snomed.info/sct&#39;).exists()" />
                <source value="https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" />
            </constraint>
            <constraint>
                <key value="proc-ISiK-2" />
                <severity value="error" />
                <human value="Falls eine codierte Prozedur vorliegt MUSS eine kodierte Category abgebildet werden" />
                <expression value="code.coding.exists() implies category.coding.exists()" />
                <source value="https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" />
            </constraint>
        </element>
        <element id="Procedure.extension">
            <path value="Procedure.extension" />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.extension:Dokumentationsdatum">
            <path value="Procedure.extension" />
            <sliceName value="Dokumentationsdatum" />
            <short value="Dokumentationsdatum" />
            <comment value="Datum, an dem die Prozedur dokumentiert wurde.  \n  Es handelt sich hierbei um das fachliche Dokumentationsdatum, nicht zu verwechseln mit dem Datum der technischen Anlage des Datensatzes im Prim&#228;rsystem. \n  Diese beiden Daten *k&#246;nnen* jedoch identisch sein." />
            <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.status">
            <path value="Procedure.status" />
            <short value="Status" />
            <comment value="Zeigt den aktuellen Status der Prozedur an.     \n  **WICHTIGER Hinweis f&#252;r Implementierer:  \n  * Alle server-seitigen Implementierungen M&#220;SSEN in der Lage sein, \n  die systemintern m&#246;glichen Statuswerte korrekt in FHIR abzubilden, mindestens jedoch die Werte `completed` und `unknown`.\n  * Alle client-seitigen Implementierungen M&#220;SSEN in der Lage sein, s&#228;mtliche Status-Codes zu interpretieren und dem Anwender in angemessener Form darstellen zu k&#246;nnen, \n  beispielsweise durch Ausblenden/Durchstreichen von Prozeduren mit dem status `entered-in-error` und Ausgrauen von Prozeduren, die noch nicht stattgefunden haben, o.&#228;." />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.category">
            <path value="Procedure.category" />
            <short value="Kategorie" />
            <comment value="Die Kategorisierung erfolg vorzugsweise auf Basis von SNOMED. F&#252;r OPS-codierte Prozeduren MUSS die Kategorie angegeben werden: Sie kann ermittelt werden, \n  indem das erste Zeichen des OPS-Codes mit Hilfe einer [ConceptMap](http://fhir.de/ConceptMap/OPS-SNOMED-Category) auf die zutreffende SNOMED-Kategorie gemappt wird.\n  **Begr&#252;ndung MS:** Die Kategorisierung dient der Verbesserung von Suche und Darstellung." />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.category.coding">
            <path value="Procedure.category.coding" />
            <slicing>
                <discriminator>
                    <type value="pattern" />
                    <path value="system" />
                </discriminator>
                <rules value="open" />
            </slicing>
        </element>
        <element id="Procedure.category.coding:SNOMED-CT">
            <path value="Procedure.category.coding" />
            <sliceName value="SNOMED-CT" />
            <min value="0" />
            <max value="1" />
            <type>
                <code value="Coding" />
                <profile value="https://gematik.de/fhir/isik/StructureDefinition/ISiKSnomedCTCoding" />
            </type>
            <mustSupport value="true" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://gematik.de/fhir/isik/ValueSet/ProzedurenKategorieSCT" />
            </binding>
        </element>
        <element id="Procedure.code">
            <path value="Procedure.code" />
            <short value="Prozeduren-Code" />
            <comment value="Prozeduren SOLLEN mindestens entweder mit einem OPS-Code oder einem SNOMED-Code aus dem angegebenen ValueSet codiert werden. \n  Ist keine Codierung m&#246;glich, MUSS statt dessen eine textuelle Beschreibung der Prozedur angegeben werden.  \n  **Begr&#252;ndung Pflichtfeld:** Ist *weder* eine Codierung *noch* eine textuelle Beschreibung vorhanden, besitzt diese Ressource keine medizinische Aussagef&#228;higkeit." />
            <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 = &#39;http://snomed.info/sct&#39;).exists() or coding.where(system = &#39;http://fhir.de/CodeSystem/bfarm/ops&#39;).exists()" />
                <source value="https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" />
            </constraint>
            <constraint>
                <key value="proc-ISiK-3" />
                <severity value="error" />
                <human value="Entweder MUSS eine kodierte Prozedur vorliegen oder eine textuelle Beschreibung. Stattdessen nur Extensions hinzuzuf&#252;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/StructureDefinition/ISiKProzedur" />
            </constraint>
            <mustSupport value="true" />
        </element>
        <element id="Procedure.code.coding">
            <path value="Procedure.code.coding" />
            <slicing>
                <discriminator>
                    <type value="pattern" />
                    <path value="system" />
                </discriminator>
                <rules value="open" />
            </slicing>
            <short value="Codierte Darstellung der Prozedur" />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.code.coding:OPS">
            <path value="Procedure.code.coding" />
            <sliceName value="OPS" />
            <short value="OPS-codierte Darstellung der Prozedur" />
            <min value="0" />
            <max value="1" />
            <type>
                <code value="Coding" />
                <profile value="http://fhir.de/StructureDefinition/CodingOPS" />
            </type>
            <mustSupport value="true" />
            <binding>
                <strength value="required" />
                <valueSet value="http://fhir.de/ValueSet/bfarm/ops" />
            </binding>
        </element>
        <element id="Procedure.code.coding:OPS.extension:Seitenlokalisation">
            <path value="Procedure.code.coding.extension" />
            <sliceName value="Seitenlokalisation" />
            <short value="Seitenlokalisation" />
            <comment value="**Begr&#252;ndung MS:** Bei OPS-codierten Prozeduren an paarigen Organen oder K&#246;rperteilen m&#252;ssen die Zusatzkennzeichen f&#252;r die Seitigkeit (R, L oder B) angeben werden" />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.code.coding:OPS.system">
            <path value="Procedure.code.coding.system" />
            <short value="Namensraum des Prozeduren-Codes" />
            <comment value="Hier ist stets der Wert `http://fhir.de/CodeSystem/bfarm/ops` anzugeben." />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.code.coding:OPS.version">
            <path value="Procedure.code.coding.version" />
            <short value="Die Jahresversion des OPS Kataloges. Angegeben wird immer die vierstellige Jahreszahl (z.B. `2017`)" />
            <comment value="**Begr&#252;ndung Pflichtfeld:** Bei Verwendung von OPS ist die Angabe der Version zwingend erforderlich. \n      Hierdurch wird der Tatsache Rechnung getragen, dass jede der j&#228;hrlich neu erscheinenden Fassung von OPS ein neues Codesystem darstellt." />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.code.coding:OPS.code">
            <path value="Procedure.code.coding.code" />
            <short value="OPS-Code" />
            <comment value="Hier ist der OPS-Code ohne jegliche Zusatzkennzeichen (z.B. Seitenlokalisation) oder Versionsnummern anzugeben." />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.code.coding:SNOMED-CT">
            <path value="Procedure.code.coding" />
            <sliceName value="SNOMED-CT" />
            <short value="SNOMED-codierte Darstellung der Prozedur" />
            <min value="0" />
            <max value="1" />
            <type>
                <code value="Coding" />
                <profile value="https://gematik.de/fhir/isik/StructureDefinition/ISiKSnomedCTCoding" />
            </type>
            <mustSupport value="true" />
            <binding>
                <strength value="required" />
                <valueSet value="https://gematik.de/fhir/isik/ValueSet/ProzedurenCodesSCT" />
            </binding>
        </element>
        <element id="Procedure.code.text">
            <path value="Procedure.code.text" />
            <short value="Freitextiche Beschreibung der Prozedur" />
            <comment value="Die freitextliche Beschreibung kann erg&#228;nzend oder anstelle einer codierten Angabe der Prozedur erfolgen." />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.subject">
            <path value="Procedure.subject" />
            <short value="Patientenbezug" />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.subject.reference">
            <path value="Procedure.subject.reference" />
            <short value="Patienten-Link" />
            <comment value="Die Verlinkung auf eine Patienten-Ressource dient der technischen Zuordnung der Dokumentation zu einem Patienten und erm&#246;glicht wichtige API-Funktionen wie verkettete Suche, (Reverse-)Include etc." />
            <min value="1" />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.encounter">
            <path value="Procedure.encounter" />
            <short value="Aufenthaltsbezug" />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.encounter.reference">
            <path value="Procedure.encounter.reference" />
            <short value="Encounter-Link" />
            <comment value="**Begr&#252;ndung Pflichtfeld:** Die Verlinkung auf eine Encounter-Ressource dient der technischen Zuordnung der Dokumentation zu einem Aufenthalt \n    und erm&#246;glicht wichtige API-Funktionen wie verkettete Suche, (Reverse-)Include etc.    \n    **WICHTIGER Hinweis f&#252;r Implementierer:** Die Zuordnung MUSS auf auf einen Encounter der Ebene &amp;quot;Abteilungskontakt&amp;quot; (siehe hierzu {{pagelink:Fall}}) erfolgen. \n    Bei der Auswahl des Encounters ist zu beachten, dass unter einer (Abrechnungs-)&amp;quot;Fallnummer&amp;quot; (hier: `Encounter.account`) \n    unter Umst&#228;nden mehrere Encounter gruppiert sein k&#246;nnen (z.B. station&#228;rer Besuch mit mehreren vor- und nachstation&#228;ren Aufenthalten.)" />
            <min value="1" />
            <mustSupport value="true" />
        </element>
        <element id="Procedure.performed[x]">
            <path value="Procedure.performed[x]" />
            <short value="Durchf&#252;hrungsdatum oder -Zeitraum" />
            <comment value="Es muss mindestens entweder ein (partielles) Durchf&#252;hrungsdatum oder der Beginn des Durchf&#252;hrungszeitraumes angegeben werden.\n  **Begr&#252;ndung Pflichtfeld:** Die zeitliche Einordnung einer Prozedur ist in vielen F&#228;llen ma&#223;geblich f&#252;r deren medizinische Relevanz." />
            <min value="1" />
            <type>
                <code value="dateTime" />
            </type>
            <type>
                <code value="Period" />
            </type>
            <mustSupport value="true" />
        </element>
        <element id="Procedure.note">
            <path value="Procedure.note" />
            <short value="Notizen" />
            <comment value="Erg&#228;nzende Hinweise und Anmerkungen zur Prozedur" />
            <mustSupport value="true" />
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "ISiKProzedur",
    "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur",
    "version": "4.0.1",
    "name": "ISiKProzedur",
    "status": "active",
    "experimental": false,
    "date": "2024-11-25",
    "publisher": "gematik GmbH",
    "description": "Dieses Profil spezifiziert die Minimalanforderungen für die Bereitstellung von Informationen über die Behandlungen/Prozeduren eines Patienten im Rahmen des Bestätigungsverfahrens der gematik.\n### Motivation\nDie Möglichkeit auf eine Übersicht der Prozeduren eines Patienten zuzugreifen, Patienten anhand durchgeführter oder geplanter Prozeduren zu suchen, oder zu prüfen, ob eine konkrete Prozedur bei einem Patienten durchgeführt wurde, sind wichtige Funktionen im klinischen Behandlungsablauf.\n\nIn FHIR werden Prozeduren mit der Procedure-Ressource repräsentiert.\n\nDa die Prozeduren in klinischen Primärsystemen, in der Regel, in OPS-codierter Form vorliegen, fordert ISiK in erster Linie diese Form des Austausches. Falls eine Prozedur zwar dokumentiert aber noch nicht codiert wurde (z.B. wenn die Kodierung erst nach der Entlassung erfolgt), ist alternativ eine Repräsentation als Freitext-Prozedur möglich.\n\n### Kompatibilität\nFür das Profil ISIKProzedur wird eine Kompatibilität mit folgenden Profilen angestrebt; allerdings kann nicht sichergestellt werden, dass Instanzen, die gegen ISIKProzedur valide sind, auch valide sind gegen:\n\n* [Profil Prozedur](https://www.medizininformatik-initiative.de/fhir/core/modul-prozedur/StructureDefinition/Procedure) der Medizininformatik Initiative  \nHinweise zu Inkompatibilitäten können über die [Portalseite](https://service.gematik.de/servicedesk/customer/portal/16) gemeldet werden.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Procedure",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Procedure",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Procedure",
                "path": "Procedure",
                "constraint":  [
                    {
                        "key": "proc-ISiK-1",
                        "severity": "error",
                        "human": "Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden",
                        "expression": "code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()",
                        "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur"
                    },
                    {
                        "key": "proc-ISiK-2",
                        "severity": "error",
                        "human": "Falls eine codierte Prozedur vorliegt MUSS eine kodierte Category abgebildet werden",
                        "expression": "code.coding.exists() implies category.coding.exists()",
                        "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur"
                    }
                ]
            },
            {
                "id": "Procedure.extension",
                "path": "Procedure.extension",
                "mustSupport": true
            },
            {
                "id": "Procedure.extension:Dokumentationsdatum",
                "path": "Procedure.extension",
                "sliceName": "Dokumentationsdatum",
                "short": "Dokumentationsdatum",
                "comment": "Datum, an dem die Prozedur dokumentiert wurde.  \n  Es handelt sich hierbei um das fachliche Dokumentationsdatum, nicht zu verwechseln mit dem Datum der technischen Anlage des Datensatzes im Primärsystem. \n  Diese beiden Daten *können* jedoch identisch sein.",
                "min": 0,
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Procedure.status",
                "path": "Procedure.status",
                "short": "Status",
                "comment": "Zeigt den aktuellen Status der Prozedur an.     \n  **WICHTIGER Hinweis für Implementierer:  \n  * Alle server-seitigen Implementierungen MÜSSEN in der Lage sein, \n  die systemintern möglichen Statuswerte korrekt in FHIR abzubilden, mindestens jedoch die Werte `completed` und `unknown`.\n  * Alle client-seitigen Implementierungen MÜSSEN in der Lage sein, sämtliche Status-Codes zu interpretieren und dem Anwender in angemessener Form darstellen zu können, \n  beispielsweise durch Ausblenden/Durchstreichen von Prozeduren mit dem status `entered-in-error` und Ausgrauen von Prozeduren, die noch nicht stattgefunden haben, o.ä.",
                "mustSupport": true
            },
            {
                "id": "Procedure.category",
                "path": "Procedure.category",
                "short": "Kategorie",
                "comment": "Die Kategorisierung erfolg vorzugsweise auf Basis von SNOMED. Für OPS-codierte Prozeduren MUSS die Kategorie angegeben werden: Sie kann ermittelt werden, \n  indem das erste Zeichen des OPS-Codes mit Hilfe einer [ConceptMap](http://fhir.de/ConceptMap/OPS-SNOMED-Category) auf die zutreffende SNOMED-Kategorie gemappt wird.\n  **Begründung MS:** Die Kategorisierung dient der Verbesserung von Suche und Darstellung.",
                "mustSupport": true
            },
            {
                "id": "Procedure.category.coding",
                "path": "Procedure.category.coding",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "pattern",
                            "path": "system"
                        }
                    ],
                    "rules": "open"
                }
            },
            {
                "id": "Procedure.category.coding:SNOMED-CT",
                "path": "Procedure.category.coding",
                "sliceName": "SNOMED-CT",
                "min": 0,
                "max": "1",
                "type":  [
                    {
                        "code": "Coding",
                        "profile":  [
                            "https://gematik.de/fhir/isik/StructureDefinition/ISiKSnomedCTCoding"
                        ]
                    }
                ],
                "mustSupport": true,
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://gematik.de/fhir/isik/ValueSet/ProzedurenKategorieSCT"
                }
            },
            {
                "id": "Procedure.code",
                "path": "Procedure.code",
                "short": "Prozeduren-Code",
                "comment": "Prozeduren SOLLEN mindestens entweder mit einem OPS-Code oder einem SNOMED-Code aus dem angegebenen ValueSet codiert werden. \n  Ist keine Codierung möglich, MUSS statt dessen eine textuelle Beschreibung der Prozedur angegeben werden.  \n  **Begründung Pflichtfeld:** Ist *weder* eine Codierung *noch* eine textuelle Beschreibung vorhanden, besitzt diese Ressource keine medizinische Aussagefähigkeit.",
                "min": 1,
                "constraint":  [
                    {
                        "key": "sct-ops-1",
                        "severity": "error",
                        "human": "Falls die Prozedur kodiert vorliegt, SOLL mindestens ein OPS oder SNOMED-CT Code angegeben werden.",
                        "expression": "coding.exists() implies coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()",
                        "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur"
                    },
                    {
                        "key": "proc-ISiK-3",
                        "severity": "error",
                        "human": "Entweder MUSS eine kodierte Prozedur 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": "coding.exists().not() implies text.exists()",
                        "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur"
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Procedure.code.coding",
                "path": "Procedure.code.coding",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "pattern",
                            "path": "system"
                        }
                    ],
                    "rules": "open"
                },
                "short": "Codierte Darstellung der Prozedur",
                "mustSupport": true
            },
            {
                "id": "Procedure.code.coding:OPS",
                "path": "Procedure.code.coding",
                "sliceName": "OPS",
                "short": "OPS-codierte Darstellung der Prozedur",
                "min": 0,
                "max": "1",
                "type":  [
                    {
                        "code": "Coding",
                        "profile":  [
                            "http://fhir.de/StructureDefinition/CodingOPS"
                        ]
                    }
                ],
                "mustSupport": true,
                "binding": {
                    "strength": "required",
                    "valueSet": "http://fhir.de/ValueSet/bfarm/ops"
                }
            },
            {
                "id": "Procedure.code.coding:OPS.extension:Seitenlokalisation",
                "path": "Procedure.code.coding.extension",
                "sliceName": "Seitenlokalisation",
                "short": "Seitenlokalisation",
                "comment": "**Begründung MS:** Bei OPS-codierten Prozeduren an paarigen Organen oder Körperteilen müssen die Zusatzkennzeichen für die Seitigkeit (R, L oder B) angeben werden",
                "mustSupport": true
            },
            {
                "id": "Procedure.code.coding:OPS.system",
                "path": "Procedure.code.coding.system",
                "short": "Namensraum des Prozeduren-Codes",
                "comment": "Hier ist stets der Wert `http://fhir.de/CodeSystem/bfarm/ops` anzugeben.",
                "mustSupport": true
            },
            {
                "id": "Procedure.code.coding:OPS.version",
                "path": "Procedure.code.coding.version",
                "short": "Die Jahresversion des OPS Kataloges. Angegeben wird immer die vierstellige Jahreszahl (z.B. `2017`)",
                "comment": "**Begründung Pflichtfeld:** Bei Verwendung von OPS ist die Angabe der Version zwingend erforderlich. \n      Hierdurch wird der Tatsache Rechnung getragen, dass jede der jährlich neu erscheinenden Fassung von OPS ein neues Codesystem darstellt.",
                "mustSupport": true
            },
            {
                "id": "Procedure.code.coding:OPS.code",
                "path": "Procedure.code.coding.code",
                "short": "OPS-Code",
                "comment": "Hier ist der OPS-Code ohne jegliche Zusatzkennzeichen (z.B. Seitenlokalisation) oder Versionsnummern anzugeben.",
                "mustSupport": true
            },
            {
                "id": "Procedure.code.coding:SNOMED-CT",
                "path": "Procedure.code.coding",
                "sliceName": "SNOMED-CT",
                "short": "SNOMED-codierte Darstellung der Prozedur",
                "min": 0,
                "max": "1",
                "type":  [
                    {
                        "code": "Coding",
                        "profile":  [
                            "https://gematik.de/fhir/isik/StructureDefinition/ISiKSnomedCTCoding"
                        ]
                    }
                ],
                "mustSupport": true,
                "binding": {
                    "strength": "required",
                    "valueSet": "https://gematik.de/fhir/isik/ValueSet/ProzedurenCodesSCT"
                }
            },
            {
                "id": "Procedure.code.text",
                "path": "Procedure.code.text",
                "short": "Freitextiche Beschreibung der Prozedur",
                "comment": "Die freitextliche Beschreibung kann ergänzend oder anstelle einer codierten Angabe der Prozedur erfolgen.",
                "mustSupport": true
            },
            {
                "id": "Procedure.subject",
                "path": "Procedure.subject",
                "short": "Patientenbezug",
                "mustSupport": true
            },
            {
                "id": "Procedure.subject.reference",
                "path": "Procedure.subject.reference",
                "short": "Patienten-Link",
                "comment": "Die Verlinkung auf eine Patienten-Ressource dient der technischen Zuordnung der Dokumentation zu einem Patienten und ermöglicht wichtige API-Funktionen wie verkettete Suche, (Reverse-)Include etc.",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Procedure.encounter",
                "path": "Procedure.encounter",
                "short": "Aufenthaltsbezug",
                "mustSupport": true
            },
            {
                "id": "Procedure.encounter.reference",
                "path": "Procedure.encounter.reference",
                "short": "Encounter-Link",
                "comment": "**Begründung Pflichtfeld:** Die Verlinkung auf eine Encounter-Ressource dient der technischen Zuordnung der Dokumentation zu einem Aufenthalt \n    und ermöglicht wichtige API-Funktionen wie verkettete Suche, (Reverse-)Include etc.    \n    **WICHTIGER Hinweis für Implementierer:** Die Zuordnung MUSS auf auf einen Encounter der Ebene &quot;Abteilungskontakt&quot; (siehe hierzu {{pagelink:Fall}}) erfolgen. \n    Bei der Auswahl des Encounters ist zu beachten, dass unter einer (Abrechnungs-)&quot;Fallnummer&quot; (hier: `Encounter.account`) \n    unter Umständen mehrere Encounter gruppiert sein können (z.B. stationärer Besuch mit mehreren vor- und nachstationären Aufenthalten.)",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Procedure.performed[x]",
                "path": "Procedure.performed[x]",
                "short": "Durchführungsdatum oder -Zeitraum",
                "comment": "Es muss mindestens entweder ein (partielles) Durchführungsdatum oder der Beginn des Durchführungszeitraumes angegeben werden.\n  **Begründung Pflichtfeld:** Die zeitliche Einordnung einer Prozedur ist in vielen Fällen maßgeblich für deren medizinische Relevanz.",
                "min": 1,
                "type":  [
                    {
                        "code": "dateTime"
                    },
                    {
                        "code": "Period"
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Procedure.note",
                "path": "Procedure.note",
                "short": "Notizen",
                "comment": "Ergänzende Hinweise und Anmerkungen zur Prozedur",
                "mustSupport": true
            }
        ]
    }
}

Constraints/Invarianten

NameSchweregradBeschreibungAusdruck
proc-ISiK-1errorFalls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werdencode.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()
proc-ISiK-2errorFalls eine codierte Prozedur vorliegt MUSS eine kodierte Category abgebildet werdencode.coding.exists() implies category.coding.exists()
sct-ops-1errorFalls die Prozedur kodiert vorliegt, SOLL mindestens ein OPS oder SNOMED-CT Code angegeben werden.coding.exists() implies coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()
proc-ISiK-3errorEntweder MUSS eine kodierte Prozedur vorliegen oder eine textuelle Beschreibung. Stattdessen nur Extensions hinzuzufügen (vgl. https://www.hl7.org/fhir/element.html - ele-1), ist explizit nicht erlaubt.coding.exists().not() implies text.exists()

Terminology-Bindings

ElementStaerkeValueSet
Procedure.category.coding:SNOMED-CTpreferredhttps://gematik.de/fhir/isik/ValueSet/ProzedurenKategorieSCT
Procedure.code.coding:OPSrequiredhttp://fhir.de/ValueSet/bfarm/ops
Procedure.code.coding:SNOMED-CTrequiredhttps://gematik.de/fhir/isik/ValueSet/ProzedurenCodesSCT

Anmerkungen zu Must-Support-Feldern

FeldnameKurzbeschreibungHinweise
Procedure.extension
Procedure.extension:DokumentationsdatumDokumentationsdatum

Datum, an dem die Prozedur dokumentiert wurde.
Es handelt sich hierbei um das fachliche Dokumentationsdatum, nicht zu verwechseln mit dem Datum der technischen Anlage des Datensatzes im Primärsystem. Diese beiden Daten können jedoch identisch sein.

Procedure.statusStatus

Zeigt den aktuellen Status der Prozedur an.
**WICHTIGER Hinweis für Implementierer:

  • Alle server-seitigen Implementierungen MÜSSEN in der Lage sein, die systemintern möglichen Statuswerte korrekt in FHIR abzubilden, mindestens jedoch die Werte completed und unknown.
  • Alle client-seitigen Implementierungen MÜSSEN in der Lage sein, sämtliche Status-Codes zu interpretieren und dem Anwender in angemessener Form darstellen zu können, beispielsweise durch Ausblenden/Durchstreichen von Prozeduren mit dem status entered-in-error und Ausgrauen von Prozeduren, die noch nicht stattgefunden haben, o.ä.
Procedure.categoryKategorie

Die Kategorisierung erfolg vorzugsweise auf Basis von SNOMED. Für OPS-codierte Prozeduren MUSS die Kategorie angegeben werden: Sie kann ermittelt werden, indem das erste Zeichen des OPS-Codes mit Hilfe einer ConceptMap auf die zutreffende SNOMED-Kategorie gemappt wird. Begründung MS: Die Kategorisierung dient der Verbesserung von Suche und Darstellung.

Procedure.category.coding:SNOMED-CT
Procedure.codeProzeduren-Code

Prozeduren SOLLEN mindestens entweder mit einem OPS-Code oder einem SNOMED-Code aus dem angegebenen ValueSet codiert werden. Ist keine Codierung möglich, MUSS statt dessen eine textuelle Beschreibung der Prozedur angegeben werden.
Begründung Pflichtfeld: Ist weder eine Codierung noch eine textuelle Beschreibung vorhanden, besitzt diese Ressource keine medizinische Aussagefähigkeit.

Procedure.code.codingCodierte Darstellung der Prozedur
Procedure.code.coding:OPSOPS-codierte Darstellung der Prozedur
Procedure.code.coding:OPS.extension:SeitenlokalisationSeitenlokalisation

Begründung MS: Bei OPS-codierten Prozeduren an paarigen Organen oder Körperteilen müssen die Zusatzkennzeichen für die Seitigkeit (R, L oder B) angeben werden

Procedure.code.coding:OPS.systemNamensraum des Prozeduren-Codes

Hier ist stets der Wert http://fhir.de/CodeSystem/bfarm/ops anzugeben.

Procedure.code.coding:OPS.versionDie Jahresversion des OPS Kataloges. Angegeben wird immer die vierstellige Jahreszahl (z.B. `2017`)

Begründung Pflichtfeld: Bei Verwendung von OPS ist die Angabe der Version zwingend erforderlich. Hierdurch wird der Tatsache Rechnung getragen, dass jede der jährlich neu erscheinenden Fassung von OPS ein neues Codesystem darstellt.

Procedure.code.coding:OPS.codeOPS-Code

Hier ist der OPS-Code ohne jegliche Zusatzkennzeichen (z.B. Seitenlokalisation) oder Versionsnummern anzugeben.

Procedure.code.coding:SNOMED-CTSNOMED-codierte Darstellung der Prozedur
Procedure.code.textFreitextiche Beschreibung der Prozedur

Die freitextliche Beschreibung kann ergänzend oder anstelle einer codierten Angabe der Prozedur erfolgen.

Procedure.subjectPatientenbezug
Procedure.subject.referencePatienten-Link

Die Verlinkung auf eine Patienten-Ressource dient der technischen Zuordnung der Dokumentation zu einem Patienten und ermöglicht wichtige API-Funktionen wie verkettete Suche, (Reverse-)Include etc.

Procedure.encounterAufenthaltsbezug
Procedure.encounter.referenceEncounter-Link

Begründung Pflichtfeld: Die Verlinkung auf eine Encounter-Ressource dient der technischen Zuordnung der Dokumentation zu einem Aufenthalt und ermöglicht wichtige API-Funktionen wie verkettete Suche, (Reverse-)Include etc.
WICHTIGER Hinweis für Implementierer: Die Zuordnung MUSS auf auf einen Encounter der Ebene "Abteilungskontakt" (siehe hierzu Abbildung des Konstrukts "Fall") erfolgen. Bei der Auswahl des Encounters ist zu beachten, dass unter einer (Abrechnungs-)"Fallnummer" (hier: Encounter.account) unter Umständen mehrere Encounter gruppiert sein können (z.B. stationärer Besuch mit mehreren vor- und nachstationären Aufenthalten.)

Procedure.performed[x]Durchführungsdatum oder -Zeitraum

Es muss mindestens entweder ein (partielles) Durchführungsdatum oder der Beginn des Durchführungszeitraumes angegeben werden. Begründung Pflichtfeld: Die zeitliche Einordnung einer Prozedur ist in vielen Fällen maßgeblich für deren medizinische Relevanz.

Procedure.noteNotizen

Ergänzende Hinweise und Anmerkungen zur Prozedur

Interaktionen

InteraktionVerbindlichkeit
readSHALL
search-typeSHALL
ParameterTypVerbindlichkeitHinweise
_idtokenSHALL

Beispiel:
GET [base]/[Resourcetype]?_id=103270
Anwendungshinweis:
Der Parameter _id wird selten alleinstehend verwendet, da sich zum Abruf einer Ressource anhand der id die READ-Interaktion besser anbietet. Der Parameter kann jedoch verwendet werden, um den Abruf einer Ressource bspw. mit einem _include weiterer Ressourcen zu verbinden, z.B. zum Abruf eines Encounters in Verbindung mit dem zugehörigen Patienten:
GET [base]/Encounter?_id=103270&_include=Encounter:patient Weitere Details siehe FHIR-Kernspezifikation, Abschnitt Parameters for all resources.
Dieser Suchparameter ist für die Umsetzung des IHE PDQm Profils verpflichtend.

_tagtokenSHALL

Beispiel:
GET [base]/[Resourcetype]?_tag=https://example.org/codes|needs-review
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation, Abschnitt Parameters for all resources sowie Abschnitt Tags.

_countnumberSHALL

Beispiel:
GET [base]/[Resourcetype]?_count=100
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation, Abschnitt Page Count.

_hasstringMAY

Beispiel: Suche nach allen Patienten, die eine Observation mit dem Code '1234-5' haben
GET [base]/Patient?_has:Observation:patient:code=1234-5
Beispiel: Suche nach allen Encountern, bei denen die Diagnose 'A12.3' gestellt wurde
GET [base]/Encounter?_has:Condition:encounter:code=A12.3
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation, Abschnitt Reverse Chaining.

statustokenSHALL

Beispiel:
GET [base]/Procedure?status=http://hl7.org/fhir/event-status|entered-in-error
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation.

categorytokenSHALL

Beispiel:
GET [base]/Procedure?category=http://snomed.info/sct|387713003
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation.

codetokenSHALL

Beispiel:
GET [base]/Procedure?code=http://fhir.de/CodeSystem/bfarm/ops|5-470
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation.

patientreferenceSHALL

Beispiel:
GET [base]/Procedure?patient=Patient/123
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation.

subjectreferenceSHALL

Beispiel:
GET [base]/Procedure?subject=Patient/123
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation.

encounterreferenceSHALL

Beispiel:
GET [base]/Procedure?encounter=Encounter/123
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation.

datedateSHALL

Beispiel:
GET [base]/Procedure?date=lt2020-26-10
Anwendungshinweis:
Weitere Details siehe FHIR-Kernspezifikation.

(Reverse-)Include

IncludeReverseInclude
Procedure:patient; Procedure:subject; Procedure:encounterEncounter:diagnosis

Beispiele

Valides Minimalbeispiel Prozedur

Procedure
<Procedure xmlns="http://hl7.org/fhir">
    <id value="Appendektomie" />
    <meta>
        <profile value="https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur" />
    </meta>
    <extension url="http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum">
        <valueDateTime value="2020-04-23" />
    </extension>
    <status value="completed" />
    <category>
        <coding>
            <system value="http://snomed.info/sct" />
            <code value="387713003" />
            <display value="Surgical procedure (procedure)" />
        </coding>
    </category>
    <code>
        <coding>
            <system value="http://snomed.info/sct" />
            <code value="80146002" />
            <display value="Excision of appendix (procedure)" />
        </coding>
        <coding>
            <system value="http://fhir.de/CodeSystem/bfarm/ops" />
            <version value="2020" />
            <code value="5-470" />
            <display value="Appendektomie" />
        </coding>
        <text value="Entfernung des Blinddarms" />
    </code>
    <subject>
        <reference value="Patient/PatientinMusterfrau" />
    </subject>
    <performedDateTime value="2020-04-23" />
    <note>
        <text value="Testnotiz" />
    </note>
</Procedure>
{
    "resourceType": "Procedure",
    "id": "Appendektomie",
    "meta": {
        "profile":  [
            "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur"
        ]
    },
    "extension":  [
        {
            "url": "http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum",
            "valueDateTime": "2020-04-23"
        }
    ],
    "status": "completed",
    "category": {
        "coding":  [
            {
                "code": "387713003",
                "system": "http://snomed.info/sct",
                "display": "Surgical procedure (procedure)"
            }
        ]
    },
    "code": {
        "coding":  [
            {
                "code": "80146002",
                "system": "http://snomed.info/sct",
                "display": "Excision of appendix (procedure)"
            },
            {
                "version": "2020",
                "code": "5-470",
                "system": "http://fhir.de/CodeSystem/bfarm/ops",
                "display": "Appendektomie"
            }
        ],
        "text": "Entfernung des Blinddarms"
    },
    "subject": {
        "reference": "Patient/PatientinMusterfrau"
    },
    "performedDateTime": "2020-04-23",
    "note":  [
        {
            "text": "Testnotiz"
        }
    ]
}