Intégrité référentielle FHIR

Cette page explique le concept d'intégrité référentielle qui concerne les ressources d'un magasin FHIR dans l'API Cloud Healthcare.

Le magasin FHIR applique l'intégrité du référentiel aux références à d'autres ressources du même magasin :

  • Lors de la création, de la mise à jour, ou de l'application d'un correctif d'une ressource, l'opération échouera si le contenu résultant de la ressource contient une référence à une ressource ou à une version de ressource qui n'existe pas.
  • Lors de la suppression d'une ressource, l'opération échoue si d'autres ressources du magasin y font référence.

Vous pouvez désactiver l'intégrité référentielle en paramétrant l'option disableReferentialIntegrity lors de la création du magasin.

Exclusions et limites

La spécification FHIR autorise diverses formes de références, dont certaines ne sont pas couvertes par l'intégrité référentielle :

  • Une référence externe spécifiée par une URL qui ne correspond pas à l'URL de base du magasin FHIR.
  • Une référence logique spécifiée par un identifiant d'entreprise.
  • Une référence ne contenant qu'une chaîne d'affichage lisible.
  • Problème connu : les références au sein d'extensions FHIR ne sont pas soumises à l'intégrité référentielle.

Certaines méthodes d'API peuvent nuire à l'intégrité référentielle dans certaines conditions :

  • FHIR permet aux références de pointer vers une version d'historique spécifique d'une ressource au format [resource type]/[resource ID]/_history/[version ID]. L'intégrité référentielle est appliquée à ces références lors de la création ou de la mise à jour, mais lorsque vous utilisez la Resource-purge pour supprimer les anciennes versions d'une ressource. Les références entrantes sontpas cochée.
  • La méthode FHIR import n'applique pas l'intégrité référentielle. La méthode peut être utilisée lorsqu'une intégrité référentielle n'est pas requise ou lorsque l'entrée est connue pour satisfaire à l'intégrité référentielle. Dans ce dernier cas, les références à l'intérieur du magasin FHIR atteindront la cohérence à terme une fois chaque ressource importée.
  • La méthode deidentify peut potentiellement créer un magasin FHIR dans un état qui ne satisfait pas à l'intégrité référentielle temporairement pendant l'opération, ou de manière permanente si des filtres sont utilisés pour sélectionner un sous-ensemble de ressources.

Un état dans lequel l'intégrité est appliquée, mais qui a été enfreint par l'une des situations précédentes, entraînera le rejet des mises à jour de ressources sur une ressource contenant une référence non valide, sauf si la mise à jour corrige ou supprime toutes les références non valides. Un état de ce type peut également créer des difficultés pour les applications utilisant le magasin qui supposent l'intégrité.

Ressources contenues

La spécification FHIR comporte une contrainte exigeant que chaque ressource contenue soit référencée à partir d'un emplacement de sa ressource conteneur (y compris les références d'autres ressources contenues), et que chaque référence à une ressource contenue soit valide. Cette contrainte est appliquée indépendamment de l'intégrité référentielle et ne peut être désactivée, car elle est définie dans les invariants FHIRPath sur chaque ressource individuelle.