ELGA e-Diagnose R4 (Draft), published by ELGA GmbH. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7Austria/ELGA-e-Diagnose-R4/ and changes regularly. See the Directory of published versions
Dieses Kapitel beschreibt die Schreiboperationen der e-Diagnose-Fachanwendung. Im Mittelpunkt stehen die Aktualisierung von Listen sowie die Erfassung, Zuordnung, Entfernung, Stornierung und Löschung von Diagnosen, Prozeduren oder Allergien und Intoleranzen.
Sub_UC_eDiag_02_01 - Leere Liste fachlich bestätigen
Dieser Ablauf beschreibt die fachliche Bestätigung einer initialisierten, leeren Liste durch den GDA und die anschließende Speicherung des bestätigten Zustands in der Fachanwendung. Eine leere Liste mit dem Wert emptyReason = nilknown bedeutet, dass für den Patienten derzeit keine Einträge vorliegen. Der Status dokumentiert somit explizit das Fehlen von relevanten Einträgen und ist von einer noch nicht befüllten Liste emptyReason = notstarted zu unterscheiden.
Ablauf
Der GDA führt einen POST $list-read aus.
Die Fachanwendung prüft die angeforderte Liste und stellt fest, dass keine List.entry vorhanden sind.
Ist List.emptyReason = notstarted, handelt es sich um eine initialisierte, aber noch nicht fachlich bestätigte leere Liste.
Die Fachanwendung stellt dem GDA die leere Liste zur Bestätigung bereit.
Der GDA bestätigt, dass für die Person aktuell keine Einträge dokumentiert werden müssen.
Die Fachanwendung setzt daraufhin List.emptyReason = nilknown und liefert die aktualísierte Liste inkl. ETag für Optimistic Locking zurück.
Anschließend führt die Fachanwendung einen POST $list-write aus, um den bestätigten Zustand der Liste zu speichern, siehe Sequenzdiagramm List-Read.
Sub_UC_eDiag_02_02 - Liste aktualisieren (List-Write)
List Write ist eine eigenständige Operation, die ausschließlich im Kontext eines zuvor ausgeführtenList-Read erfolgen darf.
Ablauf
Der GDA übermittelt via POST $list-write die aktualisierte Liste als List Bundle inkl. ETag für Optimistic Locking:
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 anhand des im HTTP-Header übermittelten ETag, ob die vom GDA bearbeitete Listenversion noch der aktuellen Version entspricht.
Stimmen die ETags nicht überein, lehnt die Fachanwendung den Schreibvorgang ab, siehe Abgelehntes Write.
Der GDA muss erneut ein $list-read durchführen und seine Änderungen auf Basis der aktuellen Listversion erneut vornehmen.
Ist die Prüfung erfolgreich, validiert die Fachanwendung die neue Liste und stellt sicher, dass keine unzulässigen Zustandsübergänge vorgenommen wurden.
Bei erfolgreicher Validierung:
werden die übermittelten Änderungen in die Ressourcen übernommen,
und auf Basis der aktualisierten Ressource erstellt die Fachanwendung ein neue Version der Liste als eigene List-Instanz, die als neue Liste persistiert wird.
Der GDA erhält eine Meldung, dass die Liste erfolgreich aktualisiert wurde.
Sequenzdiagramm
</g></svg></div>
–>
Sub_UC_eDiag_02_03 - Einträge zur Liste hinzufügen
Nach dem Erfassen einer neuen medizinischen Ressource Ressource erfassen kann dieser Eintrag in eine Liste aufgenommen werden.
Die Fachanwendung kennzeichnet die Ressource anschließend als relevant (meta.tag = relevant).
Ablauf
Der GDA legt eine neue (Condition, Procedure oder AllergyIntolerance), siehe Ressource erfassen an oder eine bestehende Ressource, die in die Liste aufgenommen werden soll.
Dafür führt der GDA ein POST $list-read aus und erhält das aktuelle Search-Bundle der ausgewählten List-Ressource.
Der GDA wählt die bestehende Ressource aus und fügt sie als neuen List.entry in die Liste ein.
List.entry.flag = new
List.entry.item referenziert die bestehende Ressource.
Der GDA führt ein POST $list-write aus und übermittelt die aktualisierte Liste an die Fachanwendung.
Die Fachanwendung kennzeichnet die referenzierte Ressource mit meta.tag = relevant, wodurch ihre Zugehörigkeit zur Liste gekennzeichnet wird.
Sequenzdiagramm
Sub_UC_eDiag_02_04 - Eintrag aus der Liste löschen
Löschen kann nur der Bürger.
Die Referenz auf die Ressource wird aus der Liste entfernt (removed). Die referenzierte Ressource bleibt unverändert bestehen. Die Fachanwendung entfernt die Kennzeichnung als relevant (meta.tag = relevant).
ToDo: Aus Liste entfernen, Ressource bleibt bestehen, verliert nur Listzugehörigkeit oder Löschen - Ressource wird vollständig entfernt Ausblenden und Löschen? Löscht der Teilnehmer einen Eintrag, muss die Historienversion mitgelöscht werden? Betsehende Referenzen auf gelöschte Ressourcen. Lösche ich C, sage ich such mir alle List-Versionen mit C, und lösch mir alle C. Wie weit greifen, muss ich mich als Bürger durch alle Vorversionen durchklicken. FHIR Spezifikation über Historie - nachlesen, wie die Regel ist! Was bedeutet eine Aktualisierung auf eine historische Version?
Sub_UC_eDiag_02_05 - Reihenfolge der Listeneinträge ändern
Der GDA kann die Reihenfolge der Listeinträge ändern. Die Einträge selbst bleiben dabei unverändert. Evtl. auch in den ELGA Core mitnehmen.
Sub_UC_eDiag_02_06 - Liste löschen
ToDo: fachliche Auswirkungen klären; gesamte List-Ressouce löschen, alle Referenzen - alle enthaltenen Diagnosen?
Fachliche Einzelressourcen repräsentieren die medizinischen Inhalte der e-Diagnose. Hierzu zählen insbesondere Diagnosen (Condition), Prozeduren (Procedure) sowie Allergien und Intoleranzen (AllergyIntolerance). Die nachfolgenden Sub-Use-Cases beschreiben die Erfassung, das Abrufen und die Stornierung dieser Ressourcen. Bestehende Ressourcen werden weder bearbeitet noch gelöscht; fachliche Änderungen erfolgen durch das Anlegen neuer Ressourcen.
Sub_UC_eDiag_02_07 - Ressource erfassen
Der GDA erfasst neue Diagnosen, Prozeduren sowie Allergien und Intoleranzen über die e-Diagnose Fachanwendung, siehe Transaktionen.
Ablauf
Der GDA wählt den gewünschten Ressourcentyp (Condition, Procedure oder AllergyIntolerance) aus.
Der GDA erstellt eine neue Ressource und erfasst die erforderlichen fachlichen Informationen.
Der GDA führt ein POST auf
/Patient/[id]/Condition/,
/Patient/[id]/Procedure/ oder
/Patient/[id]/AllergyIntolerance/
aus und übermittelt die neue Ressource an die e-Diagnose Fachanwendung.
Die Fachanwendung validiert die übermittelte Ressource.
Ist die Validierung erfolgreich, wird die neue Ressource gespeichert und dem GDA eine erfolgreiche Erstellung mittels HTTP 201 Created bestätigt. Ist die Validierung nicht erfolgreich, wird die Ressource nicht gespeichert. Die Fachanwendung liefert ein OperationOutcome mit den aufgetretenen Validierungsfehlern zurück.
Sequenzdiagramm
Sub_UC_eDiag_02_08 - Ressource bearbeiten
Bestehende relevante Listeinträge fachlich bearbeiten TODo: Der GDA kann Einträge in einer Liste fachlich bearbeiten - stimmt nicht mehr? 1. Schritt, ich erstelle eine neue 2 Schritt: Will ich sie verknüpfen, muss ich auf die bestehenden Ressourcen zugreifen mit dem Identifier 123, der muss vom Client zwischengespeichert werden, damit dieser an die FA mitgesendet werden kann.
Ablauf
Sub_UC_eDiag_02_09 - Ressource löschen
Der ELGA-Teilnehmer kann via ELGA-Portal einzelne oder alle Diagnosen unwiderruflich löschen. Dabei ist es irrelevant, ob eine zu löschende Diagnose als relevant gekennzeichnet ist oder nicht. Die Inhalte der zu löschenden Diagnose werden durch die Fachanwendung entfernt und die Diagnose als "gelöscht" markiert. Sollte die Diagnose in der aktuellen Liste referenziert sein, erstellt die Fachanwendung eine neue Version der Liste ohne die gelöschte Diagnose.
Die Fachanwendung erstellt eine neue Version der Liste, sollte die zu löschende Diagnose Teil der aktuellen Liste gewesen sein.
Sub_UC_eDiag_02_10 - Ressource stornieren
Der GDA kann einen oder mehrere Diagnosen aufgrund einer falschen Eingabe stornieren. Dabei ist es irrelevant, ob eine zu stornierende Diagnose als relevant gekennzeichnet ist oder nicht.
Sollte die Diagnose als relevant gekennzeichnet gewesen sein und will sie der GDA nach der Stornierung nicht mehr in der Liste der relevanten Einträge haben, muss die Diagnose aus der Liste der relevanten Einträge entfernt werden (siehe Sub_UC_eDiag_06_05 - Einträge aus einer Liste entfernen).