Integrità referenziale FHIR

Questa pagina spiega il concetto di integrità referenziale in relazione alle risorse all'interno di un datastore FHIR nell'API Cloud Healthcare.

Il datastore FHIR applica l'integrità referenziale sui riferimenti ad altre risorse all'interno dello stesso datastore:

  • Durante la creazione, l'aggiornamento o l'applicazione di patch a una risorsa, l'operazione non riuscirà se il contenuto risultante della risorsa contiene un riferimento a una risorsa o a una versione inesistente.
  • Quando si elimina una risorsa, l'operazione non riuscirà se nell'archivio sono presenti altre risorse che fanno riferimento a tale risorsa.

L'integrità referenziale può essere disabilitata impostando l'opzione disableReferentialIntegrity al momento della creazione dello store.

Esclusioni e limitazioni

La specifica FHIR consente varie forme di references, alcune delle quali non sono coperte 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 su ENABLED. 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 specifica della cronologia 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 metodo Resource-purge per rimuovere le versioni storiche di una risorsa, i riferimenti in entrata non vengono selezionati.
  • Il metodo FHIR import non applica l'integrità referenziale. Questo metodo può essere utilizzato nei casi in cui non è richiesta l'integrità referenziale o quando l'input è noto per soddisfare l'integrità referenziale. Nel secondo caso, i riferimenti all'interno del datastore FHIR raggiungeranno la coerenza finale dopo che ogni risorsa è stata importata correttamente.
  • Il metodo deidentify può potenzialmente creare un datastore 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à è applicata in modo forzato ma è stata violata da una delle richieste precedenti comporterà il rifiuto degli aggiornamenti delle risorse su una risorsa che contiene un riferimento non valido, a meno che l'aggiornamento non risolva o rimuova tutti i riferimenti non validi. Uno stato del genere potrebbe anche creare difficoltà per le applicazioni che usano lo store che presuppongono integrità.

Risorse contenute

La specifica FHIR contiene un vincolo per cui è necessario fare riferimento a ogni risorsa contenuta da qualche punto all'interno della risorsa che lo contiene (inclusi i riferimenti ad altre risorse contenute) e che ogni riferimento a una risorsa contenuta deve essere valido. Questo vincolo viene applicato separatamente dall'integrità referenziale e non può essere disabilitato in quanto viene definito negli elementi non modificati di FHIR per ogni singola risorsa.