Interaktion: Update von Metadaten, Löschen von Dokumenten
Herstellung von Dokumentenkontext
Der Client muss zunächst die URL der DocumentReference ermitteln, auf die das Update angewendet werden soll. Hierzu kann die Interaktion Dokumentenabfrage verwendet werden.
Metadatenupdate
Das Update der Metadaten erfolgt mittels der $update-metadata
Operation.
Hinweis: Der zum Zeitpunkt der Erstellung dieser Spezifikation vorliegende IHE-MHD-Implementierungsleitfaden sieht kein Metadatenupdate vor. Hier müsste stets ein neues Dokument übermittelt werden.
Für den ISiK Use Case als maßgeblich relevant und unkritisch in Bezug auf die Versionierung hat sich jedoch das Element docStatus
erwiesen, welches im IHE-Kontext keine Berücksichtigung findet. Im einrichtungsinternen Dokumentenaustausch kommt es häufig vor, dass sich der Status eines Dokumentes ändert (z.b. preliminary
-> final
), ohne dass dies Auswirkungen auf den Inhalt hat. Die Anlage eines neuen Dokumentes wäre in diesem Kontext nicht effizient.
Ebenso erlaubt diese Operation, vorläufige Dokumente durch ein Update von docStatus zu löschen (preliminary
-> entered-in-error
).
Wenn Dokumenten-Server $update-metadata unterstützen, dann MÜSSEN Dokumenten-Server das Löschen von vorläufigen Dokumenten unterstützen, d.h. dann MÜSSEN Server bei einem Update auf den Status entered-in-error
auch den Code in DocumentReference.status
auf entered-in-error
setzen und dafür Sorge tragen, dass diese Dokumente bei Suchanfragen nicht mehr als Ergebnisse zurückgegeben werden (siehe Search Related Safety Checks), es sei denn der Client sucht explizit nach gelöschten Dokumenten (z.B. /DocumentReference?status=entered-in-error
).
Sobald ein Dokument den Status final
erreicht hat, MUSS ein Server die Änderungen von Metadaten NICHT mehr zulassen (d.h. ein Server KANN in diesem Fall die Löschung finaler Dokumente erlauben, MUSS es aber nicht. Der Server KANN in diesem Fall auch eine Fehlermeldung ausgeben).
Finale Dokumente SOLLEN nur noch mit MHD-konformen Methoden aktualisiert bzw. gelöscht werden, indem sie durch eine neue bzw. leere Version ersetzt werden.
Ein Client SOLL in diesem Fall eine erneute Dokumentenbereitstellung durchführen, mit Referenz auf das zu ersetzende Dokument in DocumentReference.relatesTo.target
und dem Code replaces
in DocumentReference.relatesTo.code
.
Hinweis | Experimentelle Funktion |
---|---|
Die Löschung vorläufiger Dokumente mittels $update-metadata ist experimentell. Entwickler, die diese Funktionalität nutzen, sind gebeten, im Chat ein Feedback zu hinterlassen, ob sich diese Funktion implementierbar/nützlich oder komplex/problematisch erwiesen hat. Abhängig von der Rückmeldung kann dieses Feature in späteren Releases entweder verbindlich gemacht oder entfernt werden. |
OperationDefinition $update-metadata
Invocations
URL: [base]/DocumentReference/[id]/$update-metadata
Parameters (In)
Name | Cardinality | Type | Binding | Documentation |
docStatus | 1..1 | code | CompositionStatus (required) | new value for element |
Expected behaviour:
- Servers SHALL update the DocumentReference.docStatus with the submitted values
- Servers SHALL ensure that DocumentReference.text reflects this change
Beispiel
[base]/DocumentReference/example/$update-metadata?docStatus=final