ELGA e-Medikation (R4) DRAFT
0.1.1 - ci-build
ELGA e-Medikation (R4) DRAFT, published by ELGA GmbH. This guide is not an authorized publication; it is the continuous build for version 0.1.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7Austria/ELGA-e-Medikation-R4/ and changes regularly. See the Directory of published versions
Ein berechtigter GDA kann den Medikationsplan eines ELGA-Teilnehmers bearbeiten.
Ein ELGA-Teilnehmer kann einzelne Planeinträge und gesamte Medikationspläne über das Zugangsportal unwiderruflich löschen.
Alle Schreibvorgänge auf einem Medikationsplan folgen demselben technischen Grundablauf:
Die nachfolgenden technischen Use Cases beschreiben die jeweils erforderlichen Änderungen an den Ressourcen sowie die Inhalte des Medikationsplan-Transaction-Bundles. Der technische Ablauf von $plan-write einschließlich der Integritätsprüfung mittels ETag ist für alle Schreiboperationen identisch und wird im folgenden Abschnitt beschrieben.
Alle Schreiboperationen erfolgen über die Custom Operation $plan-write. Die Fachanwendung verwendet den im Request übermittelten ETag zur Integritätsprüfung (Optimistic Locking), um konkurrierende Änderungen am Medikationsplan zu erkennen.
Der GDA kann dem Medikationsplan ein oder mehrere Planeinträge hinzufügen. Dabei muss er dokumentieren, ob dieser von ihm selbst stammt oder er Fremdmedikation (durch einen anderen GDA) bzw. Eigenmedikation des Patienten dokumentiert.
Hierfür führt der GDA ein $plan-read aus und bearbeitet die von der Fachanwendung bereitgestellten Ressourcen:
Das Element List.source wird mit dem aktuellen GDA aktualisiert.
Entsprechende Planeinträge (MedicationRequests) werden neu erstellt und in der List-Ressouce referenziert:
Im Anschluss übermittelt der GDA mit POST $plan-write den aktualisierten Medikationsplan in einem Transaction Bundle:
AtElgaEmedListMedikationsplan
identifier: von der Fachanwendung übermittelt (Integritätsprüfung)
status: current
mode: working
date: Datum der aktuellen Bearbeitung des Medikationsplans
source: für die Bearbeitung veranwortlicher GDA
entry[0]: // 1. Planeintrag wird hinzufgefügt
flag: new
item: Referenz auf den Planeintrag 1 // siehe "Relevante Elemente (MedicationRequest) Planeintrag 1"
entry[1]: // 2. Planeintrag wird hinzufgefügt
flag: new
item: Referenz auf den Planeintrag 2 // analog zu "Relevante Elemente (MedicationRequest) Planeintrag 1"
AtElgaEmedMedicationRequestPlaneintrag
identifier: neue Planeintrag-ID
status: active | on-hold
intent: order // fester Wert
category: "Planeintrag" // fester Wert
reportedBoolean: true | false // true, wenn Fremdmedikation
medicationReference.reference: Medikation mit PZN oder Magistrale Anwendung // Contained Medication
authoredOn: Datum der Erstellung des Planeintrags
requester: veranwortlicher GDA // wird auf Übereinstimmung mit List.source geprüft
courseOfTherapyType: continuous | acute
dosageInstruction: Dosierung + Einnahmezeitraum (ab sofort | in der Zukunft)
Im Weiteren wird beschrieben, wie Planeinträge bearbeitet werden können. Das Sequenzdiagramm zeigt den allgemeinen Ablauf.
Der GDA kann im Medikationsplan ein oder mehrere Planeinträge ändern.
Die Änderung des Planeintrag kann alle Inhalte umfassen, z.B.: Änderung des Status (pausieren/aktivieren), Änderung des Einnahmezeitraums, der Dosierung oder der Medikation. Wird die Planeintrag-ID (identifier) geändert, kann über diese kein Bezug mehr zu vorherehenden Planeinträgen hergestellt werden. Bei fehlender fachlicher Kontinuität der Bearbeitung eines Planeintrages (z.B. Änderung PZN; Blutdruckmittel auf Antibiotikum) SOLL ein neuer Planeintrag erfasst und kein bestehender Eintrag weiterverwendet werden.
Um Planeinträge zu ändern, führt der GDA ein $plan-read aus und bearbeitet die von der Fachanwendung bereitgestellten Ressourcen:
Der GDA übermittelt (via POST $plan-write) den aktualisierten Medikationsplan in einem Transaction Bundle:
AtElgaEmedListMedikationsplan
identifier: von der Fachanwendung übermittelt (Integritätsprüfung)
status: current
mode: working
date: Datum der Bearbeitung des Medikationsplans
source: Veranwortlicher GDA
entry[0]: // 1. Planeintrag wird geändert
flag: changed
date: Datum der Änderung des Planeintrags // in diesem Fall gleich mit dem Datum der Bearbeitung des Medikationsplans
item: Referenz auf den Planeintrag 1
entry[1]: // 2. Planeintrag bleibt unverändert
flag: unchanged
date: Datum der Aufnahme des Planeintrags // in diesem Fall unterschiedlich mit dem Datum der Bearbeitung des Medikationsplans
item: Referenz auf den Planeintrag 2
AtElgaEmedMedicationRequestPlaneintrag
identifier: Planeintrag-ID bleibt bestehen // sofern der Bezug erhalten bleiben soll
status: active | on-hold
statusReason.text: Freitextbegrüdung für die Änderung
reportedBoolean: false // Fremdmedikation
medicationReference.reference: Änderungen betreffend der Medikation // Contained Medication
authoredOn: Datum der Änderung des Planeintrags
requester: für die Änderung verantwortlicher GDA
dosageInstruction: Änderung betreffend Dosierung + Einnahmezeitraum (ab sofort | in der Zukunft)
priorPrescription: Referenz auf ersetzten Planeintrag
Siehe Allgemeiner Ablauf - Planeinträge bearbeiten.
Der GDA kann ein oder mehrere Planeinträge im Medikationsplan beibehalten und unverändert zur Kennntis nehmen.
Hierfür führt der GDA ein $plan-read aus und bearbeitet die von der Fachanwendung bereitgestellten Ressourcen:
Die zu behaltenden Planeinträge (MedicationRequests) bleiben unverändert im Status active oder on-hold (Planeinträge mit anderem Status werden von der Fachanwendung nicht ausgeliefert).
Der GDA übermittelt mit POST $plan-write den aktualisierten Medikationsplan in einem Transaction Bundle:
AtElgaEmedListMedikationsplan
date: Datum der aktuellen Bearbeitung des Medikationsplans
source: für die Bearbeitung veranwortlicher GDA
entry[0]: // 1. Planeintrag bleibt unverändert
flag: unchanged
item: Referenz auf den Planeintrag 1
AtElgaEmedMedicationRequestPlaneintrag
// unverändert (verantwortlicher GDA, Datum, Status bleiben bestehen)
Siehe Allgemeiner Ablauf - Planeinträge bearbeiten.
Ein GDA kann die Therapie eines Patienten vorübergehend unterbrechen (die Wiederaufnahme ist vorgesehen). Eine Freitext-Begründung kann dokumentiert werden.
Hierfür führt der GDA ein $plan-read aus und bearbeitet das von der Fachanwendung übermittelte Bundle. Die zu pausierenden Planeinträge (MedicationRequests) und das entsprechende Entry der List-Ressouce werden angepasst:
Im Anschluss übermittelt der GDA mit POST $plan-write den aktualisierten Medikationsplan in einem Transaction Bundle:
Anmerkung: Beim nächsten Plan-Read ändert die Fachanwendung im zur Auslieferung bereitgestellten Bundle den Status der Einträge mit changed automatisch auf unchanged.
AtElgaEmedListMedikationsplan
date: Datum der aktuellen Bearbeitung des Medikationsplans
source: für die Bearbeitung veranwortlicher GDA
entry[0]: // 1. Planeintrag wird pausiert
flag: changed
item: Referenz auf den Planeintrag 1
entry[1]: // 2. Planeintrag bleibt unverändert
flag: unchanged
item: Referenz auf den Planeintrag 2
AtElgaEmedMedicationRequestPlaneintrag
identifier: Planeintrag-ID bleibt bestehen
status: on-hold
statusReason.text: Freitextbegrüdung // optional
reportedBoolean: true | false // true, wenn Fremdmedikation
authoredOn: Datum der Pausierung des Planeintrags
requester: für die Pausierung verantwortlicher GDA
priorPrescription: Referenz auf ersetzten Planeintrag
Siehe Allgemeiner Ablauf - Planeinträge bearbeiten.
Ein Medikationsplan mit List.emptyReason = nilknown dokumentiert, dass für den Patienten derzeit keine Medikation vorgesehen ist.
Der Wert nilknown dient der Unterscheidung zwischen einem noch nie befüllten Medikationsplan (notstarted) und einem Medikationsplan, für den bewusst keine Medikation dokumentiert ist (nilknown).
Der Medikationsplan erhält den Status List.emptyReason = nilknown in folgenden Fällen:
Der GDA übermittelt ein Medikationsplan-Transaction-Bundle mit:
AtElgaEmedListMedikationsplan
identifier: von der Fachanwendung übermittelt (Integritätsprüfung)
status: current
mode: working
date: Datum der Bearbeitung
source: veranwortlicher GDA
emptyReason: nilknown // Patient nimmt derzeit kein Medikation ein
Siehe Allgemeiner Ablauf - Planeinträge bearbeiten.
Der GDA kann einen oder mehrere Planeinträge aufgrund einer falschen Eingabe stornieren. Diese sind beim nächsten Plan-Read nicht mehr im Medikationsplan enthalten.
Hierfür führt der GDA ein $plan-read aus und bearbeitet das von der Fachanwendung übermittelte Collection Bundle:
Der GDA übermittelt (via POST $plan-write) den aktualisierten Medikationsplan in einem Transaction Bundle:
Relevante Elemente (List)
AtElgaEmedListMedikationsplan
identifier: von der Fachanwendung übermittelt (Integritätsprüfung)
status: current
mode: working
date: Datum der Bearbeitung des Medikationsplans
source: Veranwortlicher GDA
entry[0]: // 1. Planeintrag wird storniert
flag: removed
item: Referenz auf den Planeintrag 1
entry[1]: // 2. Planeintrag bleibt unverändert
flag: unchanged
item: Referenz auf den Planeintrag 2
AtElgaEmedMedicationRequestPlaneintrag
identifier: Planeintrag-ID bleibt bestehen
status: entered-in-error
reportedBoolean: false // Fremdmedikation
authoredOn: Datum der Stornierung des Planeintrags
requester: für die Stornierung verantwortlicher GDA
priorPrescription: Referenz auf ersetzten Planeintrag
Siehe Allgemeiner Ablauf - Planeinträge bearbeiten.
Der GDA kann ein Medikament, welches in einen Planeintrag dokumentiert ist, absetzen. Der betreffende Planeintrag ist beim nächsten Plan-Read nicht mehr im Medikationsplan enthalten.
Hierfür führt der GDA ein $plan-read aus und bearbeitet die von der Fachanwendung bereitgestellten Ressourcen:
Der GDA übermittelt (via POST $plan-write) den aktualisierten Medikationsplan in einem Transaction Bundle:
AtElgaEmedListMedikationsplan
identifier: von der Fachanwendung übermittelt (Integritätsprüfung)
status: current
mode: working
date: Datum der Bearbeitung des Medikationsplans
source: Veranwortlicher GDA
entry[0]: // 1. Planeintrag wird abgesetzt
flag: removed
item: Referenz auf den Planeintrag 1 // siehe "Planeintrag ändern"
entry[1]: // 2. Planeintrag bleibt unverändert
flag: unchanged
item: Referenz auf den Planeintrag 2
AtElgaEmedMedicationRequestPlaneintrag
identifier: Planeintrag-ID bleibt bestehen
status: stopped
statusReason.text: Freitextbegrüdung für das Absetzen des Medikaments
reportedBoolean: false // Fremdmedikation
authoredOn: Datum des Absetzens des Planeintrags
requester: für das Absetzen verantwortlicher GDA
priorPrescription: Referenz auf ersetzten Planeintrag
Siehe Allgemeiner Ablauf - Planeinträge bearbeiten.
Der GDA kann die Reihenfolge der Planeinträge ändern. Die Einträge selbst bleiben dabei unverändert.
Hierfür führt der GDA ein $plan-read aus und bearbeitet die von der Fachanwendung bereitgestellten Ressourcen:
Der GDA übermittelt (via POST $plan-write) den aktualisierten Medikationsplan in einem Transaction Bundle:
In folgendem Beispiel wird der ursprünglich 2. Eintrag als 1. gereiht.
AtElgaEmedListMedikationsplan
identifier: von der Fachanwendung übermittelt (Integritätsprüfung)
status: current
mode: working
date: Datum der Änderung der Reihenfolge
source: Veranwortlicher GDA
entry[0]: // 2. Planeintrag
flag: Unchanged
item: Referenz auf den Planeintrag 2
entry[1]: // 1. Planeintrag
flag: Unchanged
item: Referenz auf den Planeintrag 1
AtElgaEmedMedicationRequestPlaneintrag
// unverändert (verantwortlicher GDA, Datum, Status bleiben bestehen)
Siehe Allgemeiner Ablauf - Planeinträge bearbeiten.
Der ELGA-Teilnehmer kann via ELGA-Portal einzelne oder alle Planeinträge unwiderruflich löschen, wodurch eine neue Medikationsplanversion entsteht. Wurden durch den ELGA-Teilnehmer alle Planeinträge gelöscht, erhält der von der Fachanwendung erstellte, neue Medikationsplan das emptyReason nilknown (siehe Sub_UC_eMed_02_02 - Leerer Medikationsplan (keine Medikation einnehmen)).
Im Unterschied zu einem Entfernen von Einträgen mittels stornieren und beenden durch den GDA, wird beim Löschen durch den ELGA-Teilnehmer der betreffende Planeintrag aus dem List.Entry entfernt und der betroffene Planeintrag (MedicationRequest) gelöscht (und nicht nur als removed gekennzeichnet).
Hierfür führt der Patient über das Portal ein $plan-read aus und markiert die zu löschenden Planeinträge. Das Portal führt folgende Änderungen durch:
Im Anschluss übermittelt das Portal (via POST $patient-write) den aktualisierten Medikationsplan in einem Transaction Bundle:
Anmerkung: Die gelöschten Planeinträge sind nach erfolgreichem Schreibvorgang nicht mehr Bestandteil der aktuellen Medikationsplan-Version.
Zustand vor dem Löschen des 2. Planeintrags (Ergebnis von $plan-read):
AtElgaEmedListMedikationsplan
identifier: von der Fachanwendung übermittelt (Integritätsprüfung)
status: current
mode: working
date: Datum der vorhergehenden Bearbeitung des Medikationsplans
source: veranwortlicher GDA, der vorhergehenden Bearbeitung
entry[0]:
flag: unchanged
item: Referenz auf den Planeintrag 1
entry[1]:
flag: unchanged
item: Referenz auf den Planeintrag 2
Zustand nach dem Löschen des 2. Planeintrags (List-Ressource im Transaction Bundle von $patient-write):
AtElgaEmedListMedikationsplan
identifier: von der Fachanwendung übermittelt (Integritätsprüfung)
status: current
mode: working
date: Datum des Löschens des Medikationsplans durch den Patienten
source: Patient
entry[0]: // 1. Planeintrag bleibt gleich
flag: unchanged
item: Referenz auf den Planeintrag 1
Siehe Allgemeiner Ablauf - Planeinträge bearbeiten.
Der ELGA-Teilnehmer kann via ELGA-Portal den aktuellen, einzelne oder alle historischen Medikationsplanversionen unwiderruflich löschen.
Hierfür markiert der Patient die zu löschenden Medikationspläne und führt über das Portal ein $plan-delete aus, mit dem Resultat, dass die betreffende Medikationsplan-Version einschließlich der zugehörigen versionierten Ressourcen durch die Fachanwendung gelöscht wird.