Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 la recherche FHIR dans Services de données de santé Azure, notamment les paramètres de recherche, les modificateurs, la pagination et les recherches chaînées. 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, l’espace {{FHIR_URL}} réservé représente l’URL de base du service FHIR dans des exemples d’appels d’API qui illustrent la syntaxe de recherche FHIR. Si le service FHIR se trouve dans Services de données de santé Azure, cette URL est https://<WORKSPACE-NAME>-<FHIR-SERVICE-NAME>.fhir.azurehealthcareapis.com.
Vous pouvez effectuer des recherches FHIR 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, utilisez la requête suivante.
GET {{FHIR_URL}}/Patient
Vous pouvez également effectuer une recherche en utilisant POST. Pour effectuer une recherche à l’aide POSTde , incluez les paramètres de recherche dans le corps de la requête. Cette méthode facilite l’envoi de requêtes avec des séries de paramètres plus longues et plus complexes.
En utilisant POST ou GET, si la requête de recherche aboutit, vous recevez un lot FHIR searchset contenant les instances de ressources renvoyées par la recherche. Si la recherche échoue, la OperationOutcome réponse contient les détails de l’erreur.
Dans les sections suivantes, vous allez découvrir les différents aspects de l’interrogation des ressources dans FHIR. Lorsque vous avez terminé d’examiner ces rubriques, consultez la page d’exemples de recherche FHIR, qui contient des exemples de différentes méthodes de recherche FHIR.
Paramètres de recherche
Lorsque vous effectuez une recherche dans FHIR, vous recherchez dans la base de données 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.
Si les paramètres de recherche correspondent positivement aux valeurs d’élément de ressource, le serveur FHIR retourne un ensemble des ressources correspondantes.
Pour chaque paramètre de recherche, la spécification FHIR définit le type de données que vous pouvez utiliser. Le tableau suivant décrit la prise en charge dans le service FHIR pour les différents types de données.
| 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 | |
| ficelle | 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
Les paramètres de recherche courants s’appliquent à toutes les ressources dans FHIR. Le tableau suivant répertorie ces paramètres, 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 |
Non | 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 liens suivants répertorient les paramètres de recherche qui ne sont pas pris en charge :
Vous pouvez également voir la prise en charge actuelle des paramètres de recherche dans l’instruction de fonctionnalité FHIR à l’aide de la requête suivante :
GET {{FHIR_URL}}/metadata
Pour afficher les paramètres de recherche pris en charge dans l’instruction de fonctionnalité, accédez aux paramètres de recherche spécifiques aux CapabilityStatement.rest.resource.searchParam ressources et CapabilityStatement.rest.searchParam aux paramètres de recherche qui s’appliquent à toutes les ressources.
Remarque
Le service FHIR dans Services de données de santé Azure 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 traitent les paires d’éléments comme une unité unique. Par exemple, lorsque vous recherchez des observations où la hauteur d’un patient est supérieure à 60 pouces, le code de hauteur et la valeur doivent provenir de la même observation. Sans recherche composite, une observation avec le code de hauteur et une valeur de longueur de bras supérieure à 60 pouces peut également correspondre. Les paramètres de recherche composite évitent ce problème en exigeant que les deux valeurs d’une paire d’éléments prédéfinie répondent aux critères.
Le service FHIR dans 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 et préfixes pour les paramètres de recherche FHIR
Les modificateurs vous permettent de qualifier les paramètres de recherche avec des conditions supplémentaires. Le tableau suivant présente les 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, tel que des nombres, des dates et des quantités, utilisez un préfixe avant la valeur du paramètre pour affiner les critères de recherche. Par exemple, Patient?_lastUpdated=gt2022-08-01 utilise le préfixe gt pour signifier supérieur à celui-ci. 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 de résultat de recherche FHIR
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 . Le tableau suivant présente les 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é à 1 000 ressources. Si vous la définissez à une valeur supérieure à 1 000, le service renvoie seulement 1 000 ressources et inclut un avertissement dans le lot. |
_include |
Oui | Oui |
_include sur PaaS et OSS sur Azure Cosmos DB ne prend pas en charge :iterate(#2137). |
_revinclude |
Oui | Oui |
_revinclude sur 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 OSS SQL DB, le tri sur des champs de type chaîne et dateTime est 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 | |
_not-referenced |
Oui | Non |
_not-referenced=*:* pour rechercher des ressources que d’autres ressources ne font pas référence. Par exemple, /Patient?_not-referenced=*:* est utilisé pour rechercher les ressources patient que d’autres ressources ne référencent pas.
/Patient?_not-referenced=Encounter:subject est utilisé pour rechercher des ressources Patient que les ressources Encounter ne répertorient pas comme sujet. Une liste peut également être utilisée pour plusieurs champs référencés ; par exemple, /Patient/$bulk-delete?_not-referenced=Encounter:subject&_not-referenced=DiagnosticReport:subject sert à rechercher des ressources Patient auxquelles les ressources Encounter et DiagnosticReport ne font pas référence. |
Remarque
- Par défaut,
_sortorganise 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. - Le service FHIR prend en charge les recherches génériques avec le
_revincludeparamètre. L’ajout du paramètre de requête.dans une requête_revincludeindique au service FHIR de référencer toutes les ressources associé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. Ce paramètre signifie que le serveur ignore les paramètres inconnus ou non pris en charge. Si vous souhaitez utiliser une gestion stricte, incluez l’en-tête Prefer et définissez handling=strict.
Recherches _include et _revinclude
Le service FHIR prend en charge les requêtes de recherche qui utilisent les paramètres _include et _revinclude. Ces paramètres vous permettent de récupérer des ressources de référence dans les résultats de la recherche.
Le _include paramètre de recherche active la récupération d’une ressource FHIR particulière et toute autre ressource FHIR qu’il référence. Lorsqu’il est utilisé dans une requête, le _include paramètre retourne la ressource et les ressources spécifiées qu’il référence. Le _revinclude paramètre de recherche fonctionne dans l’inverse, ce qui permet la récupération d’une ressource, ainsi que toutes les autres ressources qui le référencent, ce qui permet de rechercher des ressources en fonction de leurs relations avec d’autres ressources. Pour des informations détaillées sur include et _revinclude dans les paramètres de recherche, reportez-vous à la documentation sur la recherche FHIR.
Paramètres de la demande
Lorsque vous exécutez une demande de recherche avec _include et _revinclude des paramètres, utilisez les paramètres facultatifs suivants pour contrôler le nombre.
| Nom | Valeur | Description |
|---|---|---|
_count |
Valeur par défaut : 10 Valeur maximale : 1 000 | La valeur représente le nombre de ressources ciblées à récupérer par requête. |
_includesCount |
Valeur par défaut : 1000 | La valeur représente le nombre de ressources correspondantes référencées par les ressources cibles à récupérer par requête. |
La réponse des recherches _include et _revinclude contient jusqu’à 1 000 éléments. S’il y a plus de 1 000 éléments mis en correspondance, la réponse fournit un lien que vous pouvez utiliser pour parcourir le jeu de résultats complet.
Dans l’exemple suivant, une demande de recherche d’observations est effectuée pour le patient avec l’identificateur 123.
GET {{FHIR_URL}}/Observation?subject.identifier=123&_include=Observation:subject&_includesCount=10
La réponse contient des données d’observation pour le patient 123. Les ressources correspondantes sont fournies 10 par page, avec un lien fourni pour parcourir le jeu de résultats complet.
{
"resourceType": "Bundle",
"id": "b5491e39-8f8f-4405-a4cf-2a6716755d73",
"meta": {
"lastUpdated": "2025-04-10T21:09:42.6517693+00:00"
},
"type": "searchset",
" link": [
{
"relation": "next",
"url": "{{FHIR_URL}}/Observation?subject.identifier=123&_include=Observation:subject&_includesCount=10&ct=er97f5lRTbShgbGOqaGhgbGlsZGFmaWJiYWBgYGpSSwAAAD%2F%2Fw%3D%3D"
},
{
"relation": "related",
"url": "{{FHIR_URL}}/Observation/$include?subject.identifier=123&_include=Observation:subject&_includesCount=10&includesCt=er97f5lRTbShgbGOqaGhgbGlsZGFmaWJiYWBgYGhAaaYqYmOqQUWYaNYAAAAAP%2F%2F"
},
{
"relation": "self",
"url": "{{FHIR_URL}}/Observation?subject.identifier=123&_include=Observation:subject&_includesCount=10”
}
],
"entry": [….]
}
Recherche chaînée et chaînée inversée
Une recherche chaînée vous permet d’effectuer des requêtes ciblées pour les ressources qui référencent 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
Dans 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. Ce paramètre récupère les instances de ressources en spécifiant des critères sur d’autres ressources qui référencent les ressources d’intérêt. Pour obtenir des exemples de recherche chaînée et inversée, consultez la page des exemples de recherche FHIR .
Numérotation des pages
Comme mentionné précédemment, vous pouvez afficher les résultats d’une recherche FHIR sous forme paginée via un lien fourni dans le lot searchset. Par défaut, le service FHIR affiche 10 résultats de recherche par page, mais vous pouvez modifier ce nombre en définissant le _count paramètre. S’il y a plus de correspondances qu’il n’est possible d’en afficher sur une seule page, le lot comprend un lien next. La récupération répétée à partir du next lien génère les pages de résultats suivantes. La _count valeur du paramètre ne peut pas dépasser 1 000.
Actuellement, le service FHIR dans Services de données de santé Azure ne prend en charge que le lien next et ne prend pas en charge les liens first, last ou previous dans les lots renvoyés par une recherche.
Questions fréquentes (FAQ)
Que signifie « prise en charge partielle » dans les paramètres de recherche non pris en charge de R4 ?
Certains paramètres de recherche spécifiques aux ressources couvrent plusieurs types de données, et le service FHIR dans Services de données de santé Azure peut uniquement prendre en charge ce paramètre de recherche sur l’un de ces types de données. Par exemple, Condition-abatement-age et Condition-onset-age correspondent à deux types de données différents : Age et Range. Toutefois, le service FHIR dans Services de données de santé Azure prend en charge ces deux paramètres de recherche sur Range, mais pas sur Age.
L’opération $lastn pour les observations est-elle prise en charge ?
Cette opération n’est pas prise en charge. L’autre approche consiste à utiliser _count pour restreindre les ressources retournées par page et _sort fournir des résultats dans l’ordre décroissant.
Étapes suivantes
Pour en savoir plus sur la recherche FHIR, consultez la page des exemples de recherche . Vous trouverez des détails sur la recherche à 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.