Prozedur (Procedure)
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:
Hinweise zu Inkompatibilitäten können über die Portalseite gemeldet werden..
Profil
ISiKProzedur | https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKProzedur |
Procedure | I | Procedure | |
id | S Σ | 0..1 | System.String |
extension | S I | 0..* | Extension |
Dokumentationsdatum | S I | 0..1 | Extension(dateTime) |
identifier | Σ | 0..* | Identifier |
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) |
instantiatesUri | Σ | 0..* | uri |
basedOn | Σ I | 0..* | Reference(CarePlan | ServiceRequest) |
partOf | Σ I | 0..* | Reference(Procedure | Observation | MedicationAdministration) |
status | S Σ ?! | 1..1 | codeBinding |
statusReason | Σ | 0..1 | CodeableConcept |
category | S Σ | 0..1 | CodeableConcept |
coding | Σ | 0..* | Coding |
SNOMED-CT | S Σ | 0..1 | CodingBinding |
system | S Σ | 1..1 | uriPattern |
version | Σ | 0..1 | string |
code | S Σ | 1..1 | code |
display | Σ | 0..1 | string |
userSelected | Σ | 0..1 | boolean |
text | Σ | 0..1 | string |
code | S Σ I | 0..1 | CodeableConcept |
coding | S Σ | 0..* | Coding |
OPS | S Σ | 0..1 | Coding-Profil für OPSBinding |
extension | I | 0..* | Extension |
Seitenlokalisation | S I | 0..1 | Extension(Coding) |
system | S Σ | 1..1 | uriFixed Value |
version | S Σ | 1..1 | string |
code | S Σ I | 1..1 | code |
display | Σ | 0..1 | string |
userSelected | Σ | 0..1 | boolean |
SNOMED-CT | S Σ | 0..1 | CodingBinding |
system | S Σ | 1..1 | uriPattern |
version | Σ | 0..1 | string |
code | S Σ | 1..1 | code |
display | Σ | 0..1 | string |
userSelected | Σ | 0..1 | boolean |
text | S Σ | 0..1 | string |
subject | S Σ I | 1..1 | Reference(Patient | Group) |
reference | S Σ I | 1..1 | string |
type | Σ | 0..1 | uriBinding |
identifier | Σ | 0..1 | Identifier |
display | Σ | 0..1 | string |
encounter | S Σ I | 0..1 | Reference(Encounter) |
performed[x] | S Σ | 1..1 | |
performedDateTime | dateTime | ||
performedPeriod | Period | ||
recorder | Σ I | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) |
asserter | Σ I | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) |
performer | Σ | 0..* | BackboneElement |
function | Σ | 0..1 | CodeableConcept |
actor | Σ I | 1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) |
onBehalfOf | I | 0..1 | Reference(Organization) |
location | Σ I | 0..1 | Reference(Location) |
reasonCode | Σ | 0..* | CodeableConcept |
reasonReference | Σ I | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) |
bodySite | Σ | 0..* | CodeableConcept |
outcome | Σ | 0..1 | CodeableConcept |
report | I | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) |
complication | 0..* | CodeableConcept | |
complicationDetail | I | 0..* | Reference(Condition) |
followUp | 0..* | CodeableConcept | |
note | S | 0..* | Annotation |
focalDevice | 0..* | BackboneElement | |
action | 0..1 | CodeableConceptBinding | |
manipulated | I | 1..1 | Reference(Device) |
usedReference | I | 0..* | Reference(Device | Medication | Substance) |
usedCode | 0..* | CodeableConcept |
Constraints
Folgende FHIRPath-Constraints sind im Profil zu beachten:
proc-ISiK-1 | error | Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden | code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists() |
proc-ISiK-2 | error | Falls eine codierte Prozedur vorliegt MUSS eine kodierte Category abgebildet werden | code.coding.exists() implies category.coding.exists() |
sct-ops-1 | error | Falls die Prozedur kodiert vorliegt, SOLL mindestens ein OPS oder SNOMED-CT Code angegeben werden. Liegt die Prozedur nicht kodiert vor SOLL Freitext 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-3 | error | 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. | coding.exists().not() implies text.exists() |
Terminology Bindings
Procedure.category.coding | ProzedurenKategorieSCT | preferred | https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ProzedurenKategorieSCT |
Procedure.code.coding | bfarm/ops | required | http://fhir.de/ValueSet/bfarm/ops |
Procedure.code.coding | ProzedurenCodesSCT | required | https://gematik.de/fhir/isik/v3/Basismodul/ValueSet/ProzedurenCodesSCT |
Anmerkungen zu den Must-Support Feldern
Procedure.extension:recordedDate
Bedeutung: Das Dokumentationsdatum der Prozedur MUSS zu Qualitätssicherungszwecken angegeben werden. Dies ist das fachliche Dokumentationsdatum, nicht zu verwechseln mit der technischen Anlage des Datensatzes im Primärsystem. Diese beiden Daten können jedoch identisch sein.
Procedure.status
Bedeutung: Kodierter klinischer Status der Prozedur. MUSS angegeben werden, da die Interpretation der Prozedur davon abhängt, ob diese 'completed' ist oder einen anderen Status aufweist. Alle in einem System möglichen Status-Werte müssen über FHIR korrekt repräsentiert werden können, mindestens jedoch die Status-Werte "completed" und "unknown". Deren korrekte Abbildung wird im Rahmen des Bestätigungsverfahrens überprüft.
Procedure.category
Bedeutung: Zur groben Kategorisierung MUSS eine Kodierung auf Basis der OPS-Klassencodes erfolgen. Eine ConceptMap für das Mapping von OPS-Kodes -> Kategorie findet sich in den Deutschen Basisprofilen - Implementierungsleitfaden Abschnitt Terminologien. Die Angabe der Kategeorie MUSS nur für OPS-kodierte Prozeduren erfolgen.
Procedure.code.coding
Bedeutung: Codierte Prozedur. Entweder kodiert per OPS oder SNOMED CT. Bei der Kodierung per SNOMED CT ist das ValueSet ProzedurenCodesSCT zu beachten.
Procedure.code.text
Bedeutung: Freitext-Beschreibung der Prozedur
Procedure.performed
Bedeutung: Zur zeitlichen Einordnung der Prozedur KANN das Durchführungsdatum der Prozedur dokumentiert werden. Mindestens MUSS der Beginn der Prozedur dokumentiert werden, das Ende KANN implementiert werden.
Procedure.subject
Bedeutung: Ein Patientenbezug der Prozedur MUSS stets zum Zwecke der Nachvollziehbarkeit und Datenintegrität vorliegen.
Procedure.note
Bedeutung: Weitere optionale Freitext-Notizen bezogen auf die durchgeführte Prozedur.
Interaktionen
Für die Ressource Procedure MUSS die REST-Interaktion "READ" implementiert werden.
Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Kombination:
Der Suchparameter "_id" MUSS unterstützt werden:
Beispiele:
GET [base]/Procedure?_id=test
Anwendungshinweise: Weitere Informationen zur Suche nach "_id" finden sich in der FHIR-Basisspezifikation - Abschnitt "Parameters for all resources".
Der Suchparameter "status" MUSS unterstützt werden:
Beispiele:
GET [base]/Procedure?status=http://hl7.org/fhir/event-status|entered-in-error
Anwendungshinweise: Weitere Informationen zur Suche nach "Procedure.status" finden sich in der FHIR-Basisspezifikation - Abschnitt "Token Search".
Der Suchparameter "category" MUSS unterstützt werden:
Beispiele:
GET [base]/Procedure?category=http://snomed.info/sct|387713003
Anwendungshinweise: Weitere Informationen zur Suche nach "Procedure.category" finden sich in der FHIR-Basisspezifikation - Abschnitt "Token Search".
Der Suchparameter "code" MUSS unterstützt werden:
Beispiele:
GET [base]/Procedure?code=http://fhir.de/CodeSystem/bfarm/ops|5-470
Anwendungshinweise: Weitere Informationen zur Suche nach "Procedure.code" finden sich in der FHIR-Basisspezifikation - Abschnitt "Token Search".
Der Suchparameter "subject" MUSS unterstützt werden:
Beispiele:
GET [base]/Procedure?subject=Patient/123
Anwendungshinweise: Weitere Informationen zur Suche nach "Procedure.subject" finden sich in der FHIR-Basisspezifikation - Abschnitt "Reference Search".
Der Suchparameter "patient" MUSS unterstützt werden:
Beispiele:
GET [base]/Procedure?patient=Patient/123
Anwendungshinweise: Weitere Informationen zur Suche nach "patient" finden sich in der FHIR-Basisspezifikation - Abschnitt "Reference Search".
Dieser Suchparameter ist für die Umsetzung des IHE QEDm Profils verpflichtend.
Der Suchparameter "encounter" MUSS unterstützt werden:
Beispiele:
GET [base]/Procedure?encounter=Encounter/123
Anwendungshinweise: Weitere Informationen zur Suche nach "encounter" finden sich in der FHIR-Basisspezifikation - Abschnitt "Reference Search".
Der Suchparameter "date" MUSS unterstützt werden:
Beispiele:
GET [base]/Procedure?date=lt2020-26-10
Anwendungshinweise: Weitere Informationen zur Suche nach "date" finden sich in der FHIR-Basisspezifikation - Abschnitt "Date Search".
Dieser Suchparameter ist für die Umsetzung des IHE QEDm Profils verpflichtend.
Der Suchparameter für "_profile" KANN unterstützt werden:
Beispiele:
GET [base]/Procedure?_profile=https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKDiagnose
Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"
Beispiele
Valides Minimalbeispiel Prozedur:
{ "resourceType": "Procedure", "id": "Appendektomie", "meta": { "profile": [ "https://gematik.de/fhir/isik/v3/Basismodul/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" } ] }