Questa pagina spiega il concetto di integrità referenziale in relazione alle risorse all'interno di un archivio FHIR nell'API Cloud Healthcare.
L'archivio FHIR applica l'integrità referenziale ai riferimenti ad altre risorse all'interno dello stesso archivio:
- 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 elimini una risorsa, l'operazione non andrà a buon fine se nello spazio di archiviazione sono presenti altre risorse che fanno riferimento a quella risorsa.
L'integrità referenziale può essere disattivata impostando l'opzione
disableReferentialIntegrity
al momento della creazione del negozio.
Esclusioni e limitazioni
La specifica FHIR consente varie 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 dell'attività.
- 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. - Il metodo
deidentify
può potenzialmente creare un archivio FHIR in uno stato che non soddisfa l'integrità referenziale temporaneamente durante l'operazione o in modo permanente se vengono utilizzati filtri per selezionare un sottoinsieme di risorse.
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 prevede che a ogni risorsa contenuta debba essere riferito da qualche parte all'interno della risorsa contenente (inclusi i riferimenti da altre risorse contenute) e che ogni riferimento a una risorsa contenuta debba 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.