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 Summary-Listen sowie die Erfassung, Zuordnung, Entfernung, Stornierung und Löschung von medizinischen Einzeleinträgen (Ressourcen).
Interaktionen auf Einzelressourcen
Eintrag erfassen
Sub:UC_02_01
Der GDA erfasst einen neuen Eintrag über die e-Diagnose-Fachanwendung. Ein neuer Eintrag ist standardmäßig nicht Teil der Summary-Liste, kann aber in Folge durch Sub:UC_02_03 zur Summary-Liste hinzugefügt werden.
Ablauf
Der GDA wählt den gewünschten Ressourcentyp (Condition, Procedure oder AllergyIntolerance) aus.
Der GDA erstellt einen neuen Eintrag und erfasst die erforderlichen fachlichen Informationen.
Der GDA führt ein POST auf
/Condition,
/Procedure oder
/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
Eintrag stornieren
Sub:UC_02_02
Der GDA kann eine oder mehrere Einträge aufgrund einer falschen Eingabe stornieren. Dabei ist es irrelevant, ob ein zu stornierender Eintrag in der Summary-List referenziert wird oder nicht.
Im Zuge der Stornierung kann der GDA einen Vermerk festhalten.
Die OID des GDA´s und der Stornierungszeitpunkt wird durch die Fachanwendung gesetzt.
Die Fachanwendung speichert den Zeitpunkt der Stornierung ab und übernimmt ursprünglichen Wert des verification.Status bzw. status
Eintrag bearbeiten in der Gesamtansicht
Der GDA kann über die Gesamtansicht bestehende Einträge suchen, auswählen und fachlich bearbeiten.
Im Unterschied zur Bearbeitung innerhalb einer Summary-Liste erfolgt die Änderung hier unabhängig von der aktuellen Zuordnung in eine Summary-Liste. Die Bearbeitung betrifft die referenzierte medizinische Ressource.
Ablauf
Der GDA wählt den gewünschten Ressourcentyp (Condition, Procedure oder AllergyIntolerance) aus.
Der GDA ruft die gewünschte Ressource über die Gesamtansicht gemäß Sub:UC_01_03 – Einträge als Einzelressource abrufen ab.
Der GDA wählt den fachlich zu bearbeitenden Eintrag aus.
Der GDA nimmt die erforderlichen fachlichen Änderungen an der Ressource vor.
Der GDA erstellt die geänderte Ressource gemäß Sub:UC_02_07 – Eintrag erfassen. Dabei wird der Business-Identifier der bisherigen Ressource übernommen.
Ist der bisherige Eintrag fachlich nicht mehr gültig, storniert der GDA die bisherige Ressource gemäß Sub:UC_02_08 – Eintrag stornieren.
Die Fachanwendung validiert die neue Ressource und speichert sie als neue Version. Der Business-Identifier bleibt unverändert erhalten.
Die Fachanwendung bestätigt die erfolgreiche Bearbeitung der Ressource.
Interaktionen auf Listenressourcen
Leere Summary-Liste fachlich bestätigen
Sub:UC_02_03
Dieser Ablauf beschreibt die fachliche Bestätigung einer initialisierten, leeren Summary-Liste durch den GDA und die anschließende Speicherung des bestätigten Zustands in der Fachanwendung. Eine leere Summary-Liste mit dem Wert emptyReason = nilknown bedeutet, dass für den Patienten derzeit keine Summary-Einträge vorliegen. Der Status dokumentiert somit explizit das Fehlen von Summary-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 Summary-Liste und stellt fest, dass kein List.entry vorhanden ist.
Ist List.emptyReason = notstarted, handelt es sich um eine initialisierte, aber noch nicht fachlich bestätigte leere Summary-Liste.
Bestätigt der GDA, dass für die Person aktuell keine Summary-Einträge dokumentiert werden müssen, setzt er List.emptyReason = nilknown.
Der GDA führt anschließend einen POST $list-write mit der aktualisierten Summary-Liste durch, um den bestätigten Zustand zu speichern.
Die Fachanwendung speichert die aktualisierte Summary-Liste inkl. ETag für Optimistic Locking zurück.
Sequenzdiagramm
Summary-Liste aktualisieren ($write)
Sub:UC_02_04
Die $write-Operation ist eine eigentständige Operation, die allerdings einen zuvor ausgeführtenAbruf der aktuellen Summary-Liste voraussetzt.
Ablauf
Der GDA übermittelt via POST /List/$write die aktualisierte Summary-Liste.
Die Fachanwendung validiert die empfangenen Daten entsprechend.
Nach erfolgreicher Validierung wird die Summary-Liste persistiert.
Die Fachanwendung liefert das SearchSet-Bundle zurück. Auch in diesem Fall hat List.meta.versionId den Wert 123.
GDA 2 macht fachliche Änderungen an der Summary-Liste.
GDA 2 aktualisiert zuerst mittels $write-Operation die Summary-Liste.
Im Rahmen der Validierung der übermittelten Summary-Liste, prüft die Fachanwendung, ob der mitgeschickte If-Match-Header mit der aktuellen versionId der Summary-Liste übereinstimmt.
Die Prüfung verläuft erfolgreich, weil beide den Wert 123 haben. Die Änderungen werden übernommen und die neue Version der Summary-Liste wird persistiert. Dabei erhält die Summary-Liste die neue List.meta.version mit dem Wert 124.
GDA 2 erhält die Meldung, dass die Aktualisierung erfolgreich durchgeführt wurde.
Anschließend will GDA 1 mittels $write-Operation ebenfalls seine Version der Summary-Liste speichern.
Die Fachanwendung validiert erneut die übermittelte Summary-Liste. Die Prüfung schlägt fehl, weil die aktuelle Summary-Liste in der Fachanwendung mittlerweile die List.meta.versionId mit dem Wert 124 besitzt. Die Fachanwendung lehnt das Speichern ab.
GDA 1 erhält eine Fehlermeldung, dass zwischenzeitlich eine Version der Liste gespeichert wurde.
GDA 1 muss erneut die aktuelle Summary-Liste abrufen, die zwischenzeitlich vorgenommenen Änderungen prüfen und gegebenenfalls seine Änderungen erneut durchführen, bevor ein neuer Schreibvorgang erfolgen kann.
Der GDA fügt den Eintrag als List.entry in die Liste ein.
List.entry.item referenziert den bestehenden Eintrag.
Der GDA führt die $write-Operation aus und übermittelt die aktualisierte Liste an die Fachanwendung.
Sequenzdiagramm
Eintrag aus Summary-Liste entfernen
Sub:UC_02_06
Ein bestehender Eintrag kann aus der Summary-Liste entfernt werden, ohne dass die Ressource selbst gelöscht oder geändert wird. Hierzu wird die Referenz auf die Ressource aus der Summary-Liste entfernt. Die Ressource bleibt weiterhin verfügbar und kann zu einem späteren Zeitpunkt erneut in die Summary-Liste aufgenommen werden.
Der GDA entfernt den Eintrag oder die Einträge aus der Summary-Liste. Das bedeutet, dass der entsprechende List.entry entfernt wird.
Der GDA führt die $write-Operation aus und übermittelt die aktualisierte Liste an die Fachanwendung.
Sequenzdiagramm
Reihenfolge der Einträge in der Summary-Liste ändern
Sub:UC_02_07
Der GDA kann die Reihenfolge der Einträge innerhalb einer Summary-Liste ändern. Dabei werden ausschließlich die Listeneinträge neu angeordnet; die referenzierten Ressourcen und deren fachliche Inhalte bleiben unverändert. Durch das Speichern entsteht eine neue Version der Summary-Liste.
Ablauf
Der GDA führt ein POST $list-read aus und erhält das aktuelle Search-Bundle.
Der GDA ordnet die Einträge der Summary-Liste in die gewünschte Reihenfolge.
Der GDA führt einen POST $list-write aus und übermittelt die aktualisierte Summary-Liste.
Die Fachanwendung speichert die neue Reihenfolge als aktuelle Version der Summary-Liste. Die referenzierten Ressourcen bleiben unverändert.
Einträge in der Summary-Liste bearbeiten
Sub:UC_02_08
Dieser Sub-UC beschreibt die fachliche Bearbeitung von Einträgen einer Summary-Liste. Die tatsächliche Reihenfolge der Bearbeitungsschritte kann je nach Anwendungsfall variieren. Ein berechtigter GDA kann alle bestehenden (eigene und fremde) Einträge bearbeiten. Es ist nicht notwendigerweise vorgesehen, dass $list-read am Anfang und $list-write am Ende des Ablaufs stehen.
Durch die Verwendung eines bereits bestehenden Business-Identifier wird bei der Bearbeitung die Zuordnung einer alten Version zu einer neuen Version einer Ressource ermöglicht. Dadurch bleibt die Verbindung zwischen den Versionen erhalten.
Ablauf
Der GDA führt einen POST $list-read aus und erhält das aktuelle Search-Bundle..
Der GDA wählt die fachlich zu bearbeitenden Summary-Einträge aus.
Der GDA führt die erforderlichen Bearbeitungsschritte für den jeweiligen Anwendungsfall aus. Dazu gehört beispielsweise:
Übernahme des bestehenden Business-Identifier für die neue Version einer Ressource.
Erfassung einer neuen bzw. fachlich geänderten Ressource gemäß Sub – Eintrag erfassen.
Der GDA führt einen POST $list-write aus und übermittelt die aktualisierte Summary-Liste an die Fachanwendung. Die fachlich geänderte Ressource wird dabei neu angelegt und erhält durch die Übernahme des Business-Identifier die Verbindung zur bisherigen Ressource.