Références aux ressources FHIR

Cette page explique comment l'API Cloud Healthcare est compatible avec les références aux ressources FHIR.

Présentation

Les références aux ressources FHIR sont des liens directionnels d'une ressource source vers une ressource cible. Les références aux ressources FHIR peuvent être utilisées pour associer des ressources. Par exemple, le type de ressource FHIR Observation comporte un champ subject de type Reference, qui peut être utilisé pour créer un lien vers une ressource Patient comme sujet de l'observation.

Les références aux ressources FHIR peuvent également être circulaires. Par exemple, le type de ressource FHIR CarePlan comporte un champ replaces qui peut pointer vers un autre élément CarePlan.

L'élément le plus important de la structure de référence FHIR est la référence. Les autres éléments, tels que display et identifier, sont conservés tels qu'ils se trouvent dans l'API Cloud Healthcare.

Les formats de Reference.reference acceptés dans l'API Cloud Healthcare incluent les formats suivants :

Documentation de référence sur les ressources locales

Les références aux ressources sont définies en tant que RESOURCE_TYPE/RESOURCE_ID. L'API Cloud Healthcare est également compatible avec la spécification du nom complet du magasin FHIR devant RESOURCE_TYPE/RESOURCE_ID. Par exemple, FHIR_STORE_NAME/RESOURCE_TYPE/RESOURCE_ID. Si vous utilisez ce format, le nom du magasin doit correspondre au magasin FHIR de la requête. Sinon, la demande est rejetée en raison de références non locales.

L'option de configuration du magasin FhirStore.disableReferentialIntegrity contrôle la vérification de l'intégrité du référentiel pour la validation de référence locale, qui est activée par défaut. Pour plus d'informations sur la vérification de l'intégrité référentielle, consultez la section Intégrité référentielle.

Documentation de référence avec versions gérées

L'API Cloud Healthcare est compatible avec les références à une version spécifique de la ressource cible. Pour créer un lien vers une version spécifique de la ressource cible, utilisez le format indiqué après RESOURCE_ID/_history/VERSION_ID] dans la documentation de référence locale.

Lorsque la vérification de l'intégrité référentielle est activée, le serveur vérifie que la version historique existe dans le magasin FHIR. La méthode Resource-purge supprime les versions historiques, qu'elles soient référencées ou non.

Documentation de référence conditionnelle

Au lieu de spécifier explicitement l'ID de ressource cible, executeBundle accepte une requête de recherche référence conditionnelle pour la ressource cible qui résout à l'ID de ressource cible au moment de la requête. Par exemple, Patient?identifier=abc.

Si la requête de recherche ne résout pas une ressource cible ou renvoie plusieurs ressources cibles, le serveur rejette la requête, que la vérification de l'intégrité référentielle soit activée ou non.

URI commençant par urn:uuid ou urn:oid

Lorsque vous utilisez la méthode executeBundle avec un groupe de transactions, vous pouvez utiliser des identifiants uniques universels (UUID) ou des identifiants d'objet(OID) pour résoudre des références à d'autres des ressources créées ou mises à jour dans le même groupe. Pour en savoir plus, consultez la page Gérer les lots FHIR.

URL externe complète

Les URL externes complètes, telles que http://www.example.com/abc, sont stockées sans modification dans le champ de référence. L'API Cloud Healthcare ne résout pas l'URL et ne tente pas de vérifier sa validité.

Lorsque l'URL externe complète correspond à l'URL complète du magasin FHIR de la requête, la référence est traitée comme une référence de ressource locale.

Documentation de référence sur les fragments

Une documentation de référence sur les fragments pointe vers une ressource autonome intégrée à une ressource. Par exemple, si un enregistrement d'observation mentionne un médecin généraliste, mais qu'il n'existe pas d'annuaire de professionnels contrôlés, aucune ressource de praticien ne peut être créée. Le médecin généraliste est une ressource autonome dans l'enregistrement d'observation. Les champs de référence d'une ressource peuvent pointer vers les ressources intégrées à l'aide de la forme #[INLINE_RESOURCE_ID].

Dans l'exemple FHIR R4 suivant, p1 et p2 sont des ID de ressources intégrés référencés sous forme #p1 et #p2 :

{
  "resourceType": "Observation",
  "contained": [
    {
      "resourceType":"Patient",
      "id": "p1",
      "generalPractitioner": {"reference": "#p2"}
    },
    {
      "resourceType":"Practitioner",
      "id": "p2"
    }
  ],
  "status": "final",
  "subject": {"reference": "#p1"},
  "performer": [{"reference": "#p2"}]
}

L'élément [INLINE_RESOURCE_ID] doit exister en tant que ressource autonome dans la ressource, sinon le serveur rejette la requête. La ressource autonome ne peut être référencée que par son conteneur ou d'autres ressources autonomes dans le même conteneur.