Interaktionen
Die Rückübermittlung eines Document-Bundles an ein Primärsystem erfolgt mittels einer 'POST'-Interaktion auf den Endpunkt des Primärsystems.
Beispiele:
POST [base]/
mit einer FHIR-Bundle Ressource im Request-Body.
Anwendungshinweise: Weitere Informationen zu den verschiedenen Endpunkten für Dokumente finden sich in der FHIR-Basisspezifikation - Abschnitt "Document End-Points".
Das Bundle dient der Aggregation aller Ressourcen, die Bestandteil des Dokumentes sind. Dabei ist die erste Ressource im Bundle (Bundle.entry.resource) stets eine Composition, alle weiteren entries enthalten zusätzliche Ressourcen, auf die die Composition verweist.
Falls die Referenz auf die in der Composition enthaltenen Patienten und/oder Encounter nicht auflösbar ist, MUSS als Antwort der HTTP Status Code "422 - Unprocessable Entity" zurückgegeben werden. Im Body der Response ist eine OperationOutcome zurückzugeben, welche ein Issue mit dem Verweis auf die nicht auflösbare Referenz enthält. Zur Kodierung von OperationOutcome.issue.code MUSS als Code "processing" verwendet werden.
Das Bundle muss folgendem Profil entsprechen:
Bundle | I | Bundle | |
identifier | Σ | 0..1 | Identifier |
type | S Σ | 1..1 | codeBindingFixed Value |
timestamp | S Σ | 1..1 | instant |
total | Σ I | 0..1 | unsignedInt |
link | Σ | 0..* | BackboneElement |
relation | Σ | 1..1 | string |
url | Σ | 1..1 | uri |
entry | S Σ I | 1..* | BackboneElement |
(All Slices) | |||
link | Σ | 0..* | see (link) |
fullUrl | Σ | 0..1 | uri |
resource | Σ | 0..1 | Resource |
search | Σ I | 0..1 | BackboneElement |
mode | Σ | 0..1 | codeBinding |
score | Σ | 0..1 | decimal |
request | Σ I | 0..1 | BackboneElement |
method | Σ | 1..1 | codeBinding |
url | Σ | 1..1 | uri |
ifNoneMatch | Σ | 0..1 | string |
ifModifiedSince | Σ | 0..1 | instant |
ifMatch | Σ | 0..1 | string |
ifNoneExist | Σ | 0..1 | string |
response | Σ I | 0..1 | BackboneElement |
status | Σ | 1..1 | string |
location | Σ | 0..1 | uri |
etag | Σ | 0..1 | string |
lastModified | Σ | 0..1 | instant |
outcome | Σ | 0..1 | Resource |
Composition | S Σ I | 1..1 | BackboneElement |
link | Σ | 0..* | see (link) |
fullUrl | Σ | 0..1 | uri |
resource | Σ I | 0..1 | ISiKBerichtSubSysteme |
search | Σ I | 0..1 | BackboneElement |
mode | Σ | 0..1 | codeBinding |
score | Σ | 0..1 | decimal |
request | Σ I | 0..1 | BackboneElement |
method | Σ | 1..1 | codeBinding |
url | Σ | 1..1 | uri |
ifNoneMatch | Σ | 0..1 | string |
ifModifiedSince | Σ | 0..1 | instant |
ifMatch | Σ | 0..1 | string |
ifNoneExist | Σ | 0..1 | string |
response | Σ I | 0..1 | BackboneElement |
status | Σ | 1..1 | string |
location | Σ | 0..1 | uri |
etag | Σ | 0..1 | string |
lastModified | Σ | 0..1 | instant |
outcome | Σ | 0..1 | Resource |
signature | Σ | 0..1 | Signature |
Folgende Suchparameter sind für das Bestätigungsverfahren relevant, auch in Kombination:
Der Suchparameter "_id" MUSS unterstützt werden:
Beispiele:
GET [base]/Composition?_id=103270
Anwendungshinweise: Weitere Informationen zur Suche nach "_id" finden sich in der FHIR-Basisspezifikation - Abschnitt "Parameters for all resources".
Der Suchparameter "identifier" MUSS unterstützt werden:
Beispiele:
GET [base]/Composition?identifier=urn:oid:2.16.840.1.113883.6.96
Anwendungshinweise: Weitere Informationen zur Suche nach "Composition.identifier" finden sich in der FHIR-Basisspezifikation - Abschnitt "Token Search".
Der Suchparameter "subject" MUSS unterstützt werden:
Beispiele:
GET [base]/Composition?subject=Patient/123
Anwendungshinweise: Weitere Informationen zur Suche nach "Composition.subject" finden sich in der FHIR-Basisspezifikation - Abschnitt "Reference Search".
Der Suchparameter "date" MUSS unterstützt werden:
Beispiele:
GET [base]/Composition?date=lt2020-26-10
Anwendungshinweise: Weitere Informationen zur Suche nach "date" finden sich in der FHIR-Basisspezifikation - Abschnitt "Date Search".
Der Suchparameter "encounter" MUSS unterstützt werden:
Beispiele:
GET [base]/Composition?encounter=Encounter/123
Anwendungshinweise: Weitere Informationen zur Suche nach "encounter" finden sich in der FHIR-Basisspezifikation - Abschnitt "Reference Search".
Der Suchparameter "title" MUSS unterstützt werden:
Beispiele:
GET [base]/Composition?title=ExampleTitle
Anwendungshinweise: Weitere Informationen zur Suche nach "Composition.title" finden sich in der FHIR-Basisspezifikation - Abschnitt "Token Search".
Der Suchparameter für "_profile" KANN unterstützt werden:
Beispiele:
GET [base]/Composition?_profile=https://gematik.de/fhir/ISiK/StructureDefinition/ISiKBerichtSubSysteme
Anwendungshinweise: Weitere Informationen zur Suche nach "_profile" finden sich in der FHIR-Basisspezifikation - Abschnitt "Parameters for all resources"
Der Suchparameter für "type" KANN unterstützt werden:
Beispiele:
GET [base]/Composition?type=123
Anwendungshinweise: Weitere Informationen zur Suche nach "Composition.type" finden sich in der FHIR-Basisspezifikation - Abschnitt "Token Search".
Verarbeitung des Dokumentes
In der aktuellen Ausbaustufe von ISiK MUSS ein empfangenes Dokument in folgenden Schritten verarbeitet werden:
- Extraktion der Patient-Ressource aus dem Bundle und Herstellung des Patientenbezuges anhand der Aufnahmenummer ('Patient.identifier')
- Extraktion der Encounter.Ressource aus dem Bundle und Herstellung des Fallbezuges anhand der Aufnahmenummer ('Encounter.identifier')
- Extraktion der Composition-Ressource aus dem Bundle und Auslesen der mit 'mustSupport' gekennzeichneten Meta-Daten, sowie der menschenlesbaren Repräsentation des Dokumentes ('Composition.text' + 'Composition.section.text')
- Hinzufügen des Dokumentes und seiner Metadaten zur Fallakte des Patienten
- Visualisierung des Dokumentes und seiner Metadaten in der Fallakte des Patienten
Die Grafik zeigt an einem vereinfachten Beispiel die Zuordnung des HTML-Dokumentes zu Patient und Kontakt in der aktuellen Ausbaustufe von ISiK (schwarze Pfeile). Die grauen Pfeile deuten die Übernahme strukturierter Daten, wie sie in weiteren Ausbaustufen erforderlich wird.
Hinweise zum Umgang mit der menschenlesbaren Repräsentation
Die menschenlesbare Repräsentation ("Narrative") eines Dokumentes setzt sich zusammen aus dem Inhalt von 'Composition.text', einer Repräsentation der Metadaten (z.B. Dokumenttyp, Patientenname, Patientennummer, Aufnahmenummer, datum) sowie der Aggregation der Inhalte von 'Composition.section', wobei zu beachten ist, dass ein Dokument beliebig viele Sections haben kann. Die einzelnen Bestandteile des Narratives KÖNNEN mit <div>-Elementen zusammengefügt werden.
Hinweise zum Umgang mit strukturierten Daten
Auch wenn in der aktuellen Stufe nur die Übernahme der menschenlesbaren Repräsentation erforderlich ist, empfiehlt es sich dennoch, das vollständige Bundle samt der strukturierten Anteile zu einem Dokument zu persistieren, so dass zu einem späteren Zeitpunkt, wenn eine Übernahme einzelner Daten möglich ist, diese auch rückwirkend erfolgen kann.