Partage via


Vue d’ensemble de la recherche FHIR

La spécification Fast Healthcare Interoperability Resources (FHIR®) définit une API permettant d’interroger des ressources dans une base de données de serveur FHIR. Cet article vous guide dans certains aspects clés de l’interrogation des données dans FHIR. Pour des informations complètes sur l’API de recherche FHIR, reportez-vous à la documentation sur la Recherche FHIR de HL7.

Dans cet article, nous allons montrer la syntaxe de recherche FHIR au travers d’exemples d’appels d’API avec l’espace réservé {{FHIR_URL}} pour représenter l’URL du serveur FHIR. Dans le cas du service FHIR dans les Services de données de santé Azure, cette URL serait https://<WORKSPACE-NAME>-<FHIR-SERVICE-NAME>.fhir.azurehealthcareapis.com.

Des recherches FHIR peuvent être effectuées sur un type de ressource spécifique, un compartiment spécifié ou toutes les ressources de la base de données du serveur FHIR. La façon la plus simple d’exécuter une recherche dans FHIR consiste à utiliser une requête GET. Par exemple, si vous souhaitez extraire toutes les ressources Patient de la base de données, vous pouvez utiliser la requête suivante :

GET {{FHIR_URL}}/Patient

Vous pouvez également effectuer une recherche en utilisant POST. Pour effectuer une recherche en utilisant POST, les paramètres de recherche sont livrés dans le corps de la requête. Cela facilite l’envoi de requêtes avec des séries de paramètres plus longues et plus complexes.

Avec POST ou GET, si la requête de recherche réussit, vous recevez un pack FHIR searchset contenant la ou les instances de ressource retournées par la recherche. Si la recherche échoue, vous trouverez les détails de l’erreur dans une réponse OperationOutcome.

Dans les sections suivantes, nous aborderons les différents aspects de l’interrogation de ressources dans FHIR. Après avoir consulté ces rubriques, reportez-vous à la page des exemples de recherche FHIR, qui présente des exemples de différentes méthodes de recherche FHIR.

Paramètres de recherche

Lorsque vous effectuez une recherche dans FHIR, vous recherchez les ressources qui correspondent à certains critères de recherche. L’API FHIR spécifie un ensemble riche de paramètres de recherche pour affiner les critères de recherche. Chaque ressource dans FHIR véhicule des informations sous la forme d’un ensemble d’éléments, et les paramètres de recherche permettent d’interroger les informations contenues dans ces éléments. Dans un appel d’API de recherche FHIR, si une correspondance positive est trouvée entre des paramètres de recherche de la requête et les valeurs d’élément correspondantes stockées dans une instance de ressource, le serveur FHIR retourne un pack contenant les instances de ressource dont les éléments répondent aux critères de recherche.

Pour chaque paramètre de recherche, la spécification FHIR définit les types de données qui peuvent être utilisés. La prise en charge du service FHIR pour les différents types de données est décrite ci-dessous.

Type de paramètre de recherche Service FHIR dans les Services de données de santé Azure Azure API pour FHIR Commentaire
nombre Oui Oui
date Oui Oui
string Oui Oui
token Oui Oui
référence Oui Oui
composite Partiel Partiel La liste des types composites pris en charge figure plus loin dans cet article.
quantité Oui Oui
uri Oui Oui
spécial Non Non

Paramètres de recherche courants

Il existe des paramètres de recherche courants qui s’appliquent à toutes les ressources dans FHIR. Ceux-ci sont répertoriés ci-dessous, ainsi que leur prise en charge dans le service FHIR :

Paramètre de recherche commun Service FHIR dans les Services de données de santé Azure Azure API pour FHIR Commentaire
_id Oui Oui
_lastUpdated Oui Oui
_tag Oui Oui
_type Oui Oui
_security Oui Oui
_profile Oui Oui
_has Oui Oui
_query No Non
_filter Non Non
_list Non Non
_text Non Non
_content Non Non

Paramètres spécifiques de ressources

Le service FHIR dans les Services de données de santé Azure prend en charge presque tous les paramètres de recherche spécifiques de ressources définis dans la spécification FHIR. Les paramètres de recherche qui ne sont pas pris en charge sont répertoriés dans les liens ci-dessous :

Vous pouvez également voir la prise en charge actuelle des paramètres de recherche dans la déclaration de capacité FHIR avec la requête suivante :

GET {{FHIR_URL}}/metadata

Pour afficher les paramètres de recherche pris en charge dans la déclaration de capacité, accédez à CapabilityStatement.rest.resource.searchParam pour les paramètres de recherche spécifiques de ressources et à CapabilityStatement.rest.searchParam pour les paramètres de recherche qui s’appliquent à toutes les ressources.

Remarque

Le service FHIR dans Azure Health Data Services n’indexe pas automatiquement les paramètres de recherche qui ne sont pas définis dans la spécification FHIR de base. Toutefois, le service FHIR prend en charge des paramètres de recherche personnalisée.

Paramètres de recherche composite

Les recherches composites dans FHIR vous permettent de rechercher des paires d’éléments en tant qu’unités connectées logiquement. Par exemple, si vous recherchez des observations où la taille du patient est supérieure à 150 cm, vous voulez vous assurer qu’une propriété de l’observation contient le code de taille et une valeur supérieure à 150 cm (la valeur ne doit se rapporter qu’à la taille). Par exemple, vous ne voulez pas retourner une correspondance positive sur une observation avec le code de taille et une envergure de plus de 150 cm. Les paramètres de recherche composites évitent ce problème en recherchant sur des paires prédéfinies d’éléments dont les valeurs doivent toutes deux répondre aux critères de recherche pour qu’une correspondance positive se produise.

Le service FHIR dans les Services de données de santé Azure prend en charge les paires de types de paramètres de recherche suivantes pour les recherches composites :

  • Référence, Jeton
  • Jeton, Date
  • Jeton, Nombre, Nombre
  • Jeton, Quantité
  • Jeton, Chaîne
  • Jeton, Jeton

Pour plus d’informations, consultez la documentation sur les paramètres de recherche composite de HL7.

Remarque

Les paramètres de recherche composite ne prennent pas en charge les modificateurs, conformément à la spécification FHIR.

Modificateurs &préfixes

Les modificateurs vous permettent de qualifier les paramètres de recherche avec des conditions supplémentaires. Voici une liste de modificateurs FHIR et leur prise en charge dans le service FHIR :

Modificateurs Service FHIR dans les Services de données de santé Azure Azure API pour FHIR Commentaire
:missing Oui Oui
:exact Oui Oui
:contains Oui Oui
:text Oui Oui
:type (référence) Oui Oui
:not Oui Oui
:below (URI) Oui Oui
:above (URI) Oui Oui
:in (jeton) Non Non
:below (jeton) Non Non
:above (jeton) Non Non
:not-in (jeton) Non Non
:identifier Non Non

Pour les paramètres de recherche qui ont un ordre spécifique (nombres, dates et quantités), vous pouvez utiliser un préfixe avant la valeur du paramètre pour affiner les critères de recherche (par exemple, Patient?_lastUpdated=gt2022-08-01 où le préfixe gt signifie « supérieur à »). Le service FHIR dans les Services de données de santé Azure prend en charge tous les préfixes définis dans la norme FHIR.

Paramètres des résultats de la recherche

FHIR spécifie un ensemble de paramètres de résultat de recherche pour aider à gérer les informations retournées par une recherche. Pour plus d’informations sur l’utilisation des paramètres de résultats de recherche dans FHIR, visitez le site web HL7. Vous trouverez ci-dessous la liste des paramètres de résultats de recherche FHIR et leur prise en charge dans le service FHIR.

Paramètres de résultat de la recherche Service FHIR dans les Services de données de santé Azure Azure API pour FHIR Commentaire
_elements Oui Oui
_count Oui Oui _count est limité à 1000 ressources. S’il est défini plus de 1 000, seuls 1 000 sont retournés et un avertissement est inclus dans le bundle.
_include Oui Oui Les éléments récupérés avec _include sont limités à 100. _includesur PaaS et OSS sur Azure Cosmos DB ne prend pas en charge :iterate (#2137).
_revinclude Oui Oui Les éléments récupérés avec _revinclude sont limités à 100. _revincludesur PaaS et OSS sur Azure Cosmos DB ne prend pas en charge :iterate (#2137). Il existe également un code d’état incorrect pour une demande incorrecte #1319.
_summary Oui Oui
_total Partiel Partiel _total=none et _total=accurate
_sort Partiel Partiel sort=_lastUpdated est pris en charge sur le service FHIR. Pour le service FHIR et les serveurs FHIR SQL Database OSS, le tri par chaînes et champs DateHeure sont pris en charge. Pour l’API Azure pour FHIR et les bases de données Azure Cosmos DB OSS créées après le 20 avril 2021, le tri est pris en charge sur le prénom, le nom, la date de naissance et la date clinique.
_contained Non Non
_containedType Non Non
_score Non Non

Remarque :

  1. Par défaut, _sort organise les enregistrements dans l’ordre croissant. Vous pouvez également utiliser le préfixe - pour trier dans l’ordre décroissant. Le service FHIR ne permet de trier que sur un seul champ à la fois.
  2. Le service FHIR prend en charge les recherches par caractères génériques avec revinclude. Ajout du paramètre de requête « . » dans la requête revinclude, il dirige le service FHIR pour référencer toutes les ressources mappées à la ressource source.

Par défaut, le service FHIR dans les Services de données de santé Azure est défini pour une gestion tolérante. Cela signifie que le serveur ignore les paramètres inconnus ou non pris en charge. Si vous souhaitez utiliser une gestion stricte, vous pouvez inclure l’en-tête Prefer et définir handling=strict.

Chaîné et recherche en chaînée inversée

Une recherche chaînée vous permet d’effectuer des requêtes affinées pour les ressources qui ont une référence à une autre ressource. Par exemple, si vous souhaitez trouver des rencontres où le nom du patient est Jane, utilisez :

GET {{FHIR_URL}}/Encounter?subject:Patient.name=Jane

La . dans la requête ci-dessus oriente le chemin de la recherche chaînée vers le paramètre cible (name dans ce cas).

De même, vous pouvez effectuer une recherche chaînée inversée avec le paramètre _has. Cela vous permet de récupérer des instances de ressources en spécifiant des critères sur d’autres ressources qui font référence aux ressources intéressantes. Pour obtenir des exemples de recherche chaînée et chaînée inversée, reportez-vous à la page Exemples de recherche FHIR .

Pagination

Comme mentionné ci-dessus, les résultats d’une recherche FHIR sont disponibles sous forme paginé dans un lien fourni dans le searchset bundle. Par défaut, le service FHIR affiche 10 résultats de recherche par page, mais cela peut être augmenté (ou diminué) en définissant le _count paramètre. S’il y a plus de correspondances que d’ajustement sur une page, le bundle inclut un next lien. La récupération répétée à partir du next lien génère les pages de résultats suivantes. Notez que la valeur du _count paramètre ne peut pas dépasser 1 000.

Actuellement, le service FHIR dans les Services de données de santé Azure prend uniquement en charge le lien next, et pas les liens first, lastou previous dans les packs retournés à partir d’une recherche.

Étapes suivantes

Maintenant que vous avez découvert les principes de base de la recherche FHIR, consultez la page d’exemples de recherche pour plus d’informations sur la façon de rechercher à l’aide de paramètres de recherche, de modificateurs et d’autres méthodes de recherche FHIR.

FHIR® est une marque déposée de HL7 utilisé avec l’autorisation de HL7.