Questa pagina spiega il concetto di integrità referenziale in relazione alle risorse all'interno di un archivio FHIR nell'API Cloud Healthcare.
Il datastore FHIR applica l'integrità referenziale sui riferimenti ad altre risorse all'interno dello stesso negozio:
- Quando crei, aggiorni o applichi patch a una risorsa, l'operazione non andrà a buon fine se i contenuti risultanti della risorsa contengono un riferimento a una risorsa o a una versione della risorsa che non esiste.
- Quando si elimina una risorsa, l'operazione non riuscirà se nell'archivio sono presenti altre risorse che riferimento a quella risorsa.
L'integrità referenziale può essere disattivata impostando
disableReferentialIntegrity
al momento della creazione dello store.
Esclusioni e limitazioni
La specifica FHIR consente diverse forme di riferimenti, alcuni dei quali non sono coperti dall'integrità referenziale:
- Un riferimento esterno specificato da un URL che non corrisponde all'URL di base del datastore FHIR.
- Un riferimento logico specificato da un identificatore aziendale.
- Un riferimento contenente solo una stringa di visualizzazione leggibile.
- I riferimenti all'interno delle estensioni FHIR sono soggetti all'integrità referenziale solo se
complexDataTypeReferenceParsing
è impostato suENABLED
. Questo è il valore predefinito per i nuovi datastore FHIR.
Alcuni metodi dell'API possono causare la violazione dell'integrità referenziale in alcune condizioni:
- FHIR consente ai riferimenti di puntare a una versione storica specifica di una risorsa utilizzando il modulo
[resource type]/[resource ID]/_history/[version ID]
. L'integrità referenziale viene applicata a questi riferimenti quando vengono creati o aggiornati, ma quando si utilizza il metodoResource-purge
per rimuovere le versioni storiche di una risorsa, i riferimenti in entrata non vengono controllati. - Il metodo FHIR
import
non applica l'integrità referenziale. Il metodo può essere utilizzato nei casi in cui l'integrità referenziale non è richiesta o quando è noto che l'input soddisfa l'integrità referenziale. In quest'ultimo caso, i riferimenti all'interno dell'archivio FHIR raggiungeranno la consistenza finale dopo l'importazione di ogni risorsa. - La
deidentify
può potenzialmente creare un datastore FHIR in uno stato che non soddisfa l'integrità referenziale temporaneamente durante l'operazione o definitivamente se vengono utilizzati i filtri per selezionare un sottoinsieme di Google Cloud.
Uno stato in cui l'integrità viene applicata, ma è stata violata da uno dei casi precedenti, causerà il rifiuto degli aggiornamenti delle risorse in una risorsa che contiene un riferimento non valido, a meno che l'aggiornamento non corregga o rimuova tutti i riferimenti non validi. Uno stato simile potrebbe anche creare difficoltà per le applicazioni che utilizzano il negozio e che presuppongono l'integrità.
Risorse contenute
La specifica FHIR contiene un vincolo che ogni risorsa contenuta deve essere a cui viene fatto riferimento in qualche punto della risorsa che la contiene (inclusi i riferimenti risorse contenute) e ogni riferimento a una risorsa contenuta deve essere valido. Questo vincolo viene applicato separatamente dall'integrità referenziale e non può essere disattivato in quanto è definito negli invarianti FHIRPath di ogni singola risorsa.