Auf dieser Seite wird erläutert, wie die Cloud Healthcare API FHIR-Ressourcenreferenzen unterstützt.
Übersicht
FHIR-Ressourcenreferenzen sind gerichtete Links von einer Quellressource zu einer Zielressource. FHIR-Ressourcenreferenzen können zum Verbinden von Ressourcen verwendet werden. Beispiel: Der FHIR-Ressourcentyp Observation
hat ein subject
-Feld des Typs Referenz, der zum Verknüpfen mit einer Patient
-Ressource als Gegenstand der Beobachtung verwendet werden kann.
Verweise auf FHIR-Ressourcen können auch kreisläufig sein. Beispiel: Der FHIR-Ressourcentyp CarePlan
hat ein replaces
-Feld, das auf eine andere CarePlan
verweisen kann.
Das wichtigste Element in der FHIR-Referenzstruktur ist die Referenz.
Die anderen Elemente wie display
und identifier
werden unverändert in der Cloud Healthcare API gespeichert.
Folgende Formate von Reference.reference
werden in der Cloud Healthcare API unterstützt:
- Referenz zu lokalen Ressourcen
- URI, der mit
urn:uuid
oderurn:oid
beginnt - Vollständige externe URL
- Fragmentreferenz
Referenz zu lokalen Ressourcen
Ressourcenreferenzen sind als RESOURCE_TYPE/RESOURCE_ID
definiert.
Die Cloud Healthcare API unterstützt auch das Voranstellen des vollständigen FHIR-Speichernamens vor RESOURCE_TYPE/RESOURCE_ID
. Beispiel: FHIR_STORE_NAME/RESOURCE_TYPE/RESOURCE_ID
.
Wenn Sie dieses Format verwenden, muss der Speichername mit dem FHIR-Speicher der Anfrage übereinstimmen.
Andernfalls wird die Anfrage aufgrund von nicht lokalen Referenzen abgelehnt.
Die Speicherkonfigurationsoption FhirStore.disableReferentialIntegrity
steuert die referenzielle Integritätsprüfung für die lokale Referenzvalidierung, die standardmäßig aktiviert ist. Weitere Informationen zur referenziellen Integritätsprüfung finden Sie unter FHIR – referenzielle Integrität.
Versionierte Referenzen
Die Cloud Healthcare API unterstützt Verweise auf eine bestimmte Version der Zielressource. Für die Verknüpfung mit einer bestimmten Version der Zielressource verwenden Sie das Format nach der RESOURCE_ID/_history/VERSION_ID
] in der lokalen Referenz.
Wenn die referenzielle Integritätsprüfung aktiviert ist, prüft der Server, ob die historische Version im FHIR-Speicher vorhanden ist. Mit der Methode Resource-purge
werden bisherige Versionen unabhängig davon entfernt, ob sie referenziert werden.
Bedingte Referenzen
Als Alternative zur expliziten Angabe der Zielressourcen-ID akzeptiert executeBundle
eine Suchanfrage mit einer bedingten Referenz für die Zielressource, die in die Zielressourcen-ID zur Zeit der Anfrage aufgelöst wird. Beispiel: Patient?identifier=abc
Wird die Suchanfrage nicht in eine Zielressource oder in mehr als eine Zielressource aufgelöst, so lehnt der Server die Anfrage ab, unabhängig davon, ob die Integritätsprüfung aktiviert ist.
URI, der mit urn:uuid
oder urn:oid
beginnt
Wenn Sie die Methode executeBundle
mit einem Transaktions-Bundle verwenden, können UUID-Referenzen (Universally Unique Identifier) oder Objekt-ID-Referenzen (OID) verwendet werden, um Verweise auf andere Ressourcen, die im selben Bundle erstellt oder aktualisiert werden, aufzulösen. Weitere Informationen finden Sie in der Anleitung zur Verwaltung von FHIR-Bundles.
Vollständige externe URL
Vollständige externe URLs wie http://www.example.com/abc
werden im Referenzfeld unverändert gespeichert. Die Cloud Healthcare API löst die URL nicht auf oder versucht, ihre Gültigkeit zu überprüfen.
Wenn die vollständige externe URL mit der vollständigen URL des FHIR-Speichers der Anfrage übereinstimmt, wird die Referenz als lokale Ressourcenreferenz behandelt.
Fragmentreferenz
Ein Fragmentbezug verweist auf eine
enthaltene Ressource
in einer Ressource enthalten ist. Wenn beispielsweise in einem Beobachtungsdatensatz ein Allgemeinmediziner genannt wird, aber kein kontrolliertes Ärzteverzeichnis vorhanden ist, kann keine vollständige Arztressource erstellt werden. Der Allgemeinmediziner ist eine im Beobachtungsdatensatz enthaltene Ressource. Die Referenzfelder für eine Ressource können mit dem Format #[INLINE_RESOURCE_ID]
auf die Inline-Ressourcen verweisen.
Im folgenden FHIR-R4-Beispiel sind p1
und p2
Inline-Ressourcen-IDs, auf die als #p1
und #p2
verwiesen wird:
{
"resourceType": "Observation",
"contained": [
{
"resourceType":"Patient",
"id": "p1",
"generalPractitioner": {"reference": "#p2"}
},
{
"resourceType":"Practitioner",
"id": "p2"
}
],
"status": "final",
"subject": {"reference": "#p1"},
"performer": [{"reference": "#p2"}]
}
Die [INLINE_RESOURCE_ID]
muss als enthaltene Ressource innerhalb der Ressource vorhanden sein. Andernfalls lehnt der Server die Anfrage ab. Auf die enthaltene Ressource kann nur von ihrem Container oder anderen enthaltenen Ressourcen im selben Container verwiesen werden.