ELGA e-Medikation (R4) DRAFT - Local Development build (v0.1.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Transaktionen
Im Folgenden werden standardisierte Interaktionen für den lesenden und schreibenden Zugriff auf die e-Medikation eines Patienten bzw. einer Patientin erläutert, die für alle technischen Use Cases relevant sind.
Medikationsplan
Plan-History-Read
Beim Plan-History-Read stellt die Fachanwendung die aktuelle oder historische Version(en) des Medikationsplans (persistiertes Medikationsplan-Collection-Bundle inkl. aller referenzierten Ressourcen) unverändert bereit.
alle referenzierten Ressourcen (z. B. MedicationRequest, Patient, Practitioner) vollständig (inline)
Beim Plan-History-Read erfolgt keine Veränderung von Flags, Status oder Inhalten durch die Fachanwendung.
Der Zugriff dient ausschließlich der Anzeige bzw. Informationsabfrage von aktuellen bzw. historischen Planversionen.
Sequenzdiagramm Plan-History-Read
Beispiele für Zugriffe mittels Suchparameter:
Aktuelle Planversion mit dem Suchparameter Patient abrufen: GET [base]/Bundle?type=collection&_count=1&_sort=-timestamp&list.subject={bPK-GH}
Alle Planversionen mit dem Suchparameter Patient abrufen: GET [base]/Bundle?type=collection&_sort=-timestamp&list.subject={bPK-GH}
Abfrage aller historischen Medikationsplan-Versionen eines Patienten, die nach dem angegebenen Datum gespeichert wurden und Plan-Einträge enthalten, die als storniert, beendet oder abgesetzt gekennzeichnet sind: GET [base]/Bundle?type=collection&_sort=-timestamp×tamp=ge2025-01-01&list.subject={bPK-GH}&list.entry.flag=removed
Plan-Read
Plan-Read dient dem Abruf des Medikationsplans und der Vorbereitung einer nachfolgenden Änderung.
Ablauf
Der GDA führt ein POST $plan-read auf das Collection Bundle aus, das den Medikationsplan mit allen zugehörigen relevanten Ressourcen enthält.
Die Fachanwendung prüft, ob ein Medikationsplan für den/die Patient:in existiert.
Falls der vorherige GDA neue Medikationsplaneinträge hinzugefügt oder bestehende geändert hat (List.entry.flag haben den Wert new oder changed), werden diese auf unchanged gesetzt.
Falls der vorherige GDA Medikationsplaneinträge beendet hat (deren List.entry.flag haben den Wert removed), werden diese Einträge aus der Liste entfernt.
Falls der vorherige GDA alle vorhandenen Einträge mit removed gekennzeichnet hat, wird List.emptyReason mit nilknown zurückgeliefert, um nachfolgenden GDA zu signalisieren, dass der Patient zum Zeitpunkt des letzten Schreibens keine Medikamente eingenommen hat bzw. einnehmen sollte.
Einträge mit abgelaufenem Behandlungszeitraum bleiben erhalten.
alle neuen und geänderten und zu entfernenden Ressourcen sind inline im Bundle enthalten,
alle unveränderten Ressourcen werden nur referenziert.
Die Fachanwendung prüft, ob der im Header übermittelte ETag mit dem ETag der Fachanwendung übereinstimmt (d.h. es wurde zwischenzeitlich kein Medikationsplan gespeichert).
Stimmt der ETag nicht überein, lehnt die Fachanwendung das Speichern des Medikationsplans ab.
Es muss erneut ein Plan-Read ausgeführt werden und die Aktualisierungen übernommen werden bzw. Fehler behoben werden, bevor ein neuerlicher Speicherversuch vorgenommen werden kann.
Wenn kein Fehler auftritt, validiert die Fachanwendung den neuen Plan und stellt sicher, dass keine unzulässigen Zustandsübergänge vorgenommen wurden.
Bei erfolgreicher Prüfung:
werden die übermittelten Änderungen in die Ressourcen übernommen.
Auf Basis der aktualisierten Ressourcen erstellt die Fachanwendung ein neues Medikationsplan-Collection-Bundle, das als neuer Medikationsplan persistiert wird.
Der GDA erhält eine Meldung, dass der Medikationsplan erfolgreich aktualisiert wurde.
GDA 1 möchte den Medikationsplan seiner Patientin bearbeiten und führt ein POST $plan-read auf das Collection Bundle des Medikationsplans aus.
Die Fachanwendung prüft, ob ein Medikationsplan für den/die Patient:in existiert (siehe Plan-Read). Annahme: Es ist bereits ein Medikationsplan vorhanden.
Die Fachanwendung erstellt ein Auslieferungs-Medikationsplan-Collection-Bundle (Siehe Plan-Read)
Die Fachanwendung liefert das Collection Bundle inkl. ETag "123" an den GDA 1.
GDA 1 bearbeitet den Medikationsplan.
GDA 2 führt ein POST $plan-read auf den Medikationsplan aus, während GDA 1 das von der Fachanwendung übermittelte Collection Bundle bearbeitet.
Die Fachanwendung prüft erfolgreich, ob ein Medikationsplan für den/die Patient:in existiert.
Die Fachanwendung erstellt, genau wie für GDA 1, ein Auslieferungs-Medikationsplan-Collection-Bundle (siehe Plan-Read)
Die Fachanwendung liefert das Collection Bundle inkl. ETag "123" an den GDA 2.
GDA 2 bearbeitet zeitgleich mit GDA 1 den Medikationsplan.
Die Prüfung auf Übereinstimmung der ETags von GDA 1 mit dem der Fachanwendung schlägt fehl.
Die Fachanwendung lehnt das Speichern ab.
GDA 1 erhält eine Fehlermeldung und muss ein erneutes Plan-Read ausführen, welches das Generieren eines neuen Auslieferungs-Medikationsplan-Collection-Bundle auslöst und mit dem aktuellen ETag übermittelt wird.