Partager 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 tout au long des 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.

Tout au long de cet article, nous montrons la syntaxe de recherche FHIR dans des exemples d’appels d’API avec l’espace {{FHIR_URL}} réservé pour représenter l’URL du serveur FHIR. Si le service FHIR se trouve dans Azure Health Data Services, cette URL est 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 Patient ressources 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.

POST Avec l’une ou GETl’autre des requêtes de recherche, vous recevez un bundle FHIR searchset contenant les instances de ressources 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 abordons les différents aspects de l’interrogation des 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 la base de données pour rechercher des ressources qui correspondent à certains critères. 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 se trouve entre les 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 bundle contenant les instances de ressources dont les éléments répondent aux critères de recherche.

Pour chaque paramètre de recherche, la spécification FHIR définit le type de données qui peut être utilisé. 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 suit 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. Celles-ci sont répertoriées comme suit, ainsi que leur support 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. Le service FHIR prend en charge les paramètres de recherche personnalisés.

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 souhaitez pas une correspondance positive sur une observation avec le code de hauteur et un code de longueur de bras de plus de 60 pouces. 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 Azure Health Data Services 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. Vous trouverez ci-dessous un tableau des 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, reportez-vous au site web HL7 . Voici un tableau des paramètres de résultat 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. L’ajout d’un paramètre de requête « . » dans une requête revinclude 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 . requête précédente dirige 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é précédemment, 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.

Remarque

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