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 references, 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.
  • Les références à l'intérieur des extensions FHIR ne sont soumises à l'intégrité référentielle que si complexDataTypeReferenceParsing est défini sur ENABLED. Il s'agit de la valeur par défaut pour les nouveaux stores FHIR.

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 leur création ou de leur mise à jour. Cependant, lors de l'utilisation de la méthode Resource-purge pour supprimer les versions historiques d'une ressource, les références entrantes ne sont pas cochées.
  • La méthode FHIR import n'applique pas l'intégrité référentielle. La méthode peut être utilisée lorsque l'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 au sein du magasin FHIR atteignent la cohérence à terme une fois que chaque ressource a été importée avec succès.
  • 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.