Auf dieser Seite wird das Konzept der referenziellen Integrität in Bezug auf Ressourcen in einem FHIR-Speicher in der Cloud Healthcare API erläutert.
Der FHIR-Speicher erzwingt referenzielle Integrität bei Verweisen auf andere Ressourcen im selben Speicher:
- Beim Erstellen, Aktualisieren oder Patchen einer Ressource schlägt der Vorgang fehl, wenn der resultierende Inhalt der Ressource einen Verweis auf eine nicht vorhandene Ressource oder Ressourcenversion enthält.
- Beim Löschen einer Ressource schlägt der Vorgang fehl, wenn andere Ressourcen im Speicher auf diese Ressource verweisen.
Die referenzielle Integrität kann durch Festlegen der Option disableReferentialIntegrity
zum Zeitpunkt der Speichererstellung deaktiviert werden.
Ausschluss und Einschränkungen
Die FHIR-Spezifikation lässt verschiedene Arten von Referenzen zu, von denen einige nicht von der referenziellen Integrität abgedeckt werden:
- Eine externe Referenz, die durch eine URL angegeben wird, die nicht mit der Basis-URL des FHIR-Speichers übereinstimmt.
- Eine logische Referenz, die durch eine Geschäfts-ID angegeben wird.
- Eine Referenz, die nur eine für Menschen lesbare Zeichenfolge enthält.
- Verweise in FHIR-Erweiterungen unterliegen nur der referenziellen Integrität, wenn
complexDataTypeReferenceParsing
aufENABLED
gesetzt ist. Dies ist der Standardwert für neue FHIR-Stores.
Bestimmte API-Methoden können unter bestimmten Bedingungen dazu führen, dass die referenzielle Integrität verletzt wird:
- Mit FHIR können Verweise mithilfe des Formulars
[resource type]/[resource ID]/_history/[version ID]
auf eine bestimmte Verlaufsversion einer Ressource verweisen. Die Referenzintegrität wird beim Erstellen oder Aktualisieren auf diese Referenzen angewendet. Wenn Sie jedoch die MethodeResource-purge
verwenden, um historische Versionen einer Ressource zu entfernen, werden eingehende Referenzen nicht überprüft. - Die FHIR-Methode
import
erzwingt keine referenzielle Integrität. Die Methode kann entweder verwendet werden, wenn keine referenzielle Integrität erforderlich ist oder wenn die Eingabe bekanntermaßen die referenzielle Integrität erfüllt. Im letzteren Fall erreichen die Referenzen im FHIR-Speicher nach dem erfolgreichen Import jeder Ressource Eventual Consistency. - Die Methode
deidentify
kann möglicherweise einen FHIR-Speicher in einem Status erstellen, der während des Vorgangs vorübergehend oder dauerhaft nicht erfüllt wird, wenn ein bestimmter Teil der Ressourcen mithilfe von Filtern ausgewählt wird.
Ein Zustand, in dem die Integrität erzwungen wird, aber durch einen der vorherigen Fälle verletzt wurde, führt dazu, dass Ressourcenaktualisierungen für eine Ressource abgelehnt werden, die eine ungültige Referenz enthält, es sei denn, das Update korrigiert oder entfernt alle ungültigen Referenzen. Ein solcher Status kann auch zu Problemen für Anwendungen führen, die den Speicher verwenden und Integrität voraussetzen.
Enthaltene Ressourcen
Die FHIR-Spezifikation enthält eine Einschränkung, dass auf jede enthaltene Ressource von irgendwo innerhalb ihrer enthaltenen Ressource verwiesen werden muss (einschließlich Verweise von anderen enthaltenen Ressourcen) und jeder Verweis auf eine enthaltene Ressource gültig sein muss. Diese Einschränkung wird unabhängig von der referenziellen Integrität erzwungen und kann nicht deaktiviert werden, da sie in den FHIRPath-Invarianten für jede einzelne Ressource definiert ist.