Intégrité référentielle FHIR

Cette page explique le concept d'intégrité référentielle en ce 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 échouera si d'autres ressources du magasin font référence à cette ressource.

Vous pouvez désactiver l'intégrité référentielle en définissant l'option disableReferentialIntegrity au moment 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 :

  • Référence externe spécifiée par une URL qui ne correspond pas à l'URL de base du magasin FHIR.
  • Référence logique spécifiée par un identifiant d'entreprise.
  • Référence contenant uniquement 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 historique spécifique d'une ressource à l'aide du formulaire [resource type]/[resource ID]/_history/[version ID]. L'intégrité référentielle est appliquée à ces références lors de leur création ou mise à jour, mais lorsque vous utilisez la méthode Resource-purge pour supprimer les versions historiques d'une ressource, les références entrantes ne sont pas vérifiées.
  • La méthode FHIR import n'applique pas l'intégrité référentielle. La méthode peut être utilisée dans les cas où l'intégrité référentielle n'est pas requise ou lorsque l'on sait que l'entrée satisfait l'intégrité référentielle. Dans ce dernier cas, les références 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 contient une contrainte selon laquelle chaque ressource contenue doit être référencée quelque part dans la ressource qui la contient (y compris les références d'autres ressources contenues), et chaque référence à une ressource contenue doit être valide. Cette contrainte est appliquée indépendamment de l'intégrité référentielle et ne peut pas être désactivée, car elle est définie dans les invariants FHIRPath de chaque ressource individuelle.