Ressources
Paramètres de recherche
Lien vers la spécification FHIR : https://hl7.org/FHIR/search.html
1) Paramètres de recherche disponibles
Pour afficher les paramètres de recherche pris en charge par l’API, vous pouvez interroger le CapabilityStatement.
Requête :
GET [base]/metadata
2) Paramètres de type texte (string)
Les recherchers de type texte peuvent s’effectuer sur les différentes ressources disponibles.
2.1) Recherche sans “modifier”
Requête :
GET [base]/Organization?name=Renard
Réponse (simplifiée) :
HTTP 200 OK
resourceType: Bundle
type: searchset
Organization found: name=Renard et Renard
Organization found: name=Renard SCOP
Organization found: name=Renard EURL
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v1/Organization?name=Renard"
2.2) Recherche avec le “modifier” “contains”
Requête :
GET [base]/Organization?name%3Acontains=EURL
Réponse (simplifiée) :
HTTP 200 OK
resourceType: Bundle
type: searchset
Organization found: name=Perez EURL
Organization found: name=Gautier EURL
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v1/Organization?name%3Acontains=EURL"
2.3) Recherche avec le “modifier” “exact”
Requête :
GET [base]/Organization?name%3Aexact=Gautier%20EURL
Réponse (simplifiée) :
HTTP 200 OK
resourceType: Bundle
type: searchset
Organization found: id=org-183 name=Gautier EURL
Organization found: id=org-358 name=Gautier EURL
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v1/Organization?name%3Aexact=Gautier%20EURL"
3) Paramètres de type token
Le serveur supporte la recherche par code, par système ou par les deux.
Recherche par code
Requête :
GET [base]/Organization?identifier=org-org-148
Réponse (simplifiée) :
HTTP 200 OK
resourceType: Bundle
type: searchset
Organization found: id=org-148 name=Renard et Renard
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v1/Organization?identifier=org-org-148"
4) Paramètres de type date
La recherche par date supporte les préfixes suivants:
Préfix | Nom | Description |
---|---|---|
eq | equal | La valeur du paramètre dans la ressource est égale à la valeur saisie |
ne | not equal | La valeur du paramètre dans la ressource n’est pas égale à la valeur saisie |
gt | greater | La valeur du paramètre dans la ressource est supérieure à la valeur saisie |
lt | less | La valeur du paramètre dans la ressource est inférieure à la valeur saisie |
ge | greater or equal | La valeur du paramètre dans la ressource est supérieure ou égale à la valeur saisie |
le | less or equal | La valeur du paramètre dans la ressource est inférieure ou égale à la valeur saisie |
sa | starts after | La valeur du paramètre dans la ressource démarre après la valeur saisie |
eb | ends before | La valeur du paramètre dans la ressource termine avant la valeur saisie |
ap | approximately | La valeur du paramètre dans la ressource est approximativement la même que la valeur fournie. Il est à noter que la valeur recommandée pour l’approximation est de 10% de la valeur indiquée |
Plus d’informations sur les [dates] (https://build.fhir.org/search.html#date)
Plusiseurs “précisions” sont supportées : yyyy par année, yyyy-MM-dd par jour, et par date complète.
Quelques exemples :
- _lastUpdated=gt2020 : après 2020
- _lastUpdated=ge2020 : 2020 et après (2020 inclus)
- _lastUpdated=lt2022-12-15 : avant le 15 décembre 2022 exclus
- _lastUpdated=lt2022-12-15T15:00:00 : avant le 15 décembre 2022 15h (GMT)
- _lastUpdated=eq2021 : durant l’année 2021
Requête :
GET [base]/Organization?_lastUpdated=ge2022-08-05T14%3A51%3A04
Réponse (simplifiée) :
HTTP 200 OK
resourceType: Bundle
type: searchset
Organization found: id=org-148 lastUpdate=Fri Aug 05 14:51:03 CEST 2022
Organization found: id=org-149 lastUpdate=Fri Aug 05 14:51:03 CEST 2022
Organization found: id=org-144 lastUpdate=Fri Aug 05 14:51:03 CEST 2022
Organization found: id=org-386 lastUpdate=Fri Aug 05 14:51:03 CEST 2022
Organization found: id=org-145 lastUpdate=Fri Aug 05 14:51:03 CEST 2022
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v1/Organization?_lastUpdated=ge2022-08-05T14%3A51%3A04"
5) Paramètres de type référence (reference)
Cette partie de la spécification est en cours de construction.
6) Paramètres de type uri
Cette partie de la spécification est en cours de construction.
7) Paramètres combinés
Les paramètres combinés permettent d’effectuer des recherches en les cumulant. Ce cumul se fait de manière inclusive ou alternative.
7.1) Paramètres ET (AND)
Requête :
GET [base]/Organization?name%3Acontains=Renard&name%3Acontains=et
Réponse (simplifiée) :
HTTP 200 OK
resourceType: Bundle
type: searchset
Organization found: id=org-148 | name=Renard et Renard
Organization found: id=org-176 | name=Renard et Renard
Organization found: id=org-128 | name=Renard et Renard
Exemples de code:
curl -H# "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v1/Organization?name%3Acontains=Renard&name%3Acontains=et"
7.2) Paramètres OU (OR)
Requête :
GET [base]/Organization?name%3Acontains=Renard%2Cet
Réponse (simplifiée) :
HTTP 200 OK
resourceType: Bundle
type: searchset
Organization found: id=org-148 | name=Renard et Renard
Organization found: id=org-386 | name=Lopez et Lopez
Organization found: id=org-145 | name=Maillard et Maillard
Exemples de code:
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v1/Organization?name%3Acontains=Renard%2Cet"
8) Paramètres des résultats de la recherche
Il s’agit d’un ensemble de paramètres permettant de gérer les résultats retournés par une recherche. Vous trouverez ci-dessous la liste des paramètres de résultats de recherche pris en charge dans notre contexte.
8.1) Paramètre “_count”
Il permet de contrôler le nombre maximal de ressources retournées sur une page lorsqu’une réponse de l’API est paginée. Par exemple, _count=10 renvoie un maximum de 10 ressources. La valeur par défaut est 50.
Requête:
GET [base]/Device?_count=200
8.2) Paramètre “_total”
Comme son nom l’indique, ce paramètre indique le nombre total d’éléments (ressources) qui correspondent aux critères de recherche. Ce paramètre peut prendre 3 valeurs : none, estimate ou accurate.
- none : le total n’est pas affiché
- estimate : le total affiché est une estimation
- accurate : le total affiché est précis
Cet exemple montre comment utiliser le paramètre _total=none pour ne pas afficher le total :
Requête:
GET [base]/Device?_total=none
Par défaut, l’affichage (ou pas) du total dépend principalement du temps nécessaire à son calcul. Ainsi, si le temps de calcul est trop important, le total ne sera pas inclus dans la réponse. Dans la majorité des cas, le total est affiché sauf dans certains cas particuliers, comme les recherches textuelles (champs de type string) sur de gros volumes de données. Par exemple, rechercher tous les PractitionerRole ayant un nom d’exercice contenant « Martin ».
8.2) Paramètre “include”
Le paramètre _include permet d’afficher dans le résultat les ressources mères liées à la ressource fille. La/Les ressource(s) mère(s) es/sont récupérée(s) à partir de la ressource fille.
Exemples:
GET [base]/PractitionerRole?_include=PractitionerRole:organization
Cette requête par exemple remonte les PractitionerRole ainsi que les Oganization auxquelles ils sont rattachés.
8.2) Paramètre “revinclude”
Le paramètre _revinclude permet d’afficher dans le résultat les ressources filles liées à la ressource mère. La/Les ressource(s) filles est/sont récupérée(s) à partir de la ressource mère.
Exemples:
GET [base]/Organization?_revinclude=Organization:partof
Cette requête par exemple remonte les Entités Géographiques (EG) et les Entités Juridiques (EJ) de rattachement.
8.2) Paramètre “_elements”
Le paramètre _elements permet de préciser la liste d’attributs qui doit être retournée avec la ressource.
Exemples:
GET [base]/Practitioner?_elements=identifier,active
Dans la requête ci-dessus, la réponse retournée contiendra un lot de practitioner, mais chaque entrée n’inclura que les attributs identifier et active du practitioner.
A noter que la réponse contient également une meta.tag valeur de SUBSETTED pour indiquer que tous les attributs de la ressource ne sont pas inclus.
...
"tag": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationValue",
"code": "SUBSETTED",
"display": "Resource encoded in summary mode"
}
]
},
"identifier": [
{
"use": "official",
"type": {
"coding": [
{
"system": "http://interopsante.org/CodeSystem/v2-0203",
"code": "IDNPS"
}
]
},
"system": "urn:oid:1.2.250.1.71.4.2.1",
"value": "810000001916"
},
{
"use": "official",
"type": {
"coding": [
{
"system": "http://interopsante.org/CodeSystem/v2-0203",
"code": "RPPS"
}
]
},
"system": "http://rpps.fr",
"value": "10000001916"
}
],
"active": true
...
Code source des exemples
Vous retrouverez le code source de ces exemples sur notre repository git: