

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Paramètres de recherche FHIR R4 pour HealthLake
<a name="reference-fhir-search-parameters"></a>

Utilisez l'[https://hl7.org/fhir/R4/http.html#search](https://hl7.org/fhir/R4/http.html#search)interaction FHIR pour rechercher un ensemble de ressources FHIR dans un magasin de HealthLake données en fonction de certains critères de filtrage. L'`search`interaction peut être effectuée à l'aide d'une `POST` demande `GET` ou. Pour les recherches impliquant des informations personnelles identifiables (PII) ou des informations de santé protégées (PHI), il est recommandé d'utiliser des `POST` demandes, car les informations personnelles et les PHI sont ajoutées dans le corps de la demande et sont cryptées pendant le transfert.

**Note**  
L'`search`interaction FHIR décrite dans ce chapitre est construite conformément à la norme HL7 FHIR R4 pour l'échange de données sur les soins de santé. Comme il s'agit d'une représentation d'un service HL7 FHIR, il n'est pas proposé par le biais de AWS CLI et AWS SDKs. Pour plus d'informations, consultez la [https://hl7.org/fhir/R4/http.html#search](https://hl7.org/fhir/R4/http.html#search)documentation de l'** RESTful API FHIR R4**.  
Vous pouvez également interroger les banques de HealthLake données avec SQL à l'aide d'Amazon Athena. Pour plus d'informations, consultez la section Intégration.

HealthLake prend en charge le sous-ensemble suivant de paramètres de recherche FHIR R4. Pour de plus amples informations, veuillez consulter [Paramètres de recherche FHIR R4 pour HealthLake](#reference-fhir-search-parameters).

## Types de paramètres de recherche pris en charge
<a name="search-parameter-types"></a>

Le tableau suivant indique les types de paramètres de recherche pris en charge dans HealthLake.


**Types de paramètres de recherche pris en charge**  

| Paramètre de recherche  | Description | 
| --- | --- | 
| \$1identifiant | ID de ressource (il ne s'agit pas d'une URL complète) | 
| \$1Dernière mise à jour | Date de dernière mise à jour. Le serveur a le pouvoir discrétionnaire de définir la précision des limites. | 
| \$1tag | Effectuez une recherche à l'aide d'une balise de ressource. | 
| \$1profil | Recherchez toutes les ressources associées à un profil. | 
| \$1sécurité | Effectuez une recherche sur les étiquettes de sécurité appliquées à cette ressource. | 
| \$1source | Recherchez d'où vient la ressource. | 
| \$1texte | Effectuez une recherche sur le récit de la ressource. | 
| createdAt | Recherchez sur l'extension personnalisée CreatedAt. | 

**Note**  
Les paramètres de recherche suivants ne sont pris en charge que pour les banques de données créées après le 9 décembre 2023 : \$1security, \$1source, \$1text, CreateDat.

Le tableau suivant présente des exemples de modification des chaînes de requête en fonction des types de données spécifiés pour un type de ressource donné. Pour des raisons de clarté, les caractères spéciaux de la colonne des exemples n'ont pas été codés. Pour que la requête soit réussie, assurez-vous que la chaîne de requête a été correctement codée.


**Exemples de paramètres de recherche**  

| Types de paramètres de recherche | Détails  | Exemples | 
| --- | --- | --- | 
|  Number  | Recherche une valeur numérique dans une ressource spécifiée. Des chiffres significatifs sont observés. Le nombre de chiffres significatifs est défini par la valeur du paramètre de recherche, à l'exception des zéros en tête. Les préfixes de comparaison sont autorisés. |  `[parameter]=100` `[parameter]=1e2` `[parameter]=lt100`  | 
|  Date/ DateTime  |  Recherche une date ou une heure spécifique. Le format attendu est `yyyy-mm-ddThh:mm:ss[Z\|(+\|-)hh:mm]` mais peut varier. Accepte les types de données suivants : `date``dateTime`,`instant`,`Period`, et`Timing`. Pour plus de détails sur l'utilisation de ces types de données dans les recherches, consultez la [date](https://www.hl7.org/fhir/search.html#date) dans la documentation de l'** RESTful API FHIR R4**. Les préfixes de comparaison sont autorisés.  |  `[parameter]=eq2013-01-14` `[parameter]=gt2013-01-14T10:00` `[parameter]=ne2013-01-14`  | 
|  String  |  Recherche une séquence de caractères en distinguant majuscules et minuscules. Supporte `HumanName` les deux `Address` types. Pour plus de détails, consultez la saisie du [type de HumanName données](https://www.hl7.org/fhir/datatypes.html#HumanName) et les entrées du [type de `Address` données](https://www.hl7.org/fhir/datatypes.html#Address) dans la documentation **FHIR R4**. La recherche avancée est prise en charge à l'aide de `:text` modificateurs.  |  `[base]/Patient?given=eve` `[base]/Patient?given:contains=eve`  | 
|  Jeton  |  Recherche une close-to-exact correspondance par rapport à une chaîne de caractères, souvent comparée à une paire de valeurs de code médical. La distinction majuscules/minuscules est liée au système de code utilisé lors de la création d'une requête. Les requêtes basées sur les subsumptions peuvent aider à réduire les problèmes liés à la distinction majuscules/minuscules. Pour plus de clarté, `\|` il n'a pas été encodé.  |  `[parameter]=[system]\|[code]`: Ici, il `[system]` fait référence à un système de codage et `[code]` à une valeur de code trouvée dans ce système spécifique. `[parameter]=[code]`: Ici, votre saisie correspondra soit à un code, soit à un système. `[parameter]=\|[code]`: Ici, votre entrée correspondra à un code, et la propriété du système n'a aucun identifiant.  | 
|  Composite  |  Recherche plusieurs paramètres au sein d'un même type de ressource à l'aide des modificateurs `$` et de l'`,`opération. Les préfixes de comparaison sont autorisés.  |  `/Patient?language=FR,NL&language=EN` `Observation?component-code-value-quantity=http://loinc.org\|8480-6$lt60` `[base]/Group?characteristic-value=gender$mixed`  | 
|  Quantity  |  Recherche un nombre, un système et un code sous forme de valeurs. Un numéro est requis, mais le système et le code sont facultatifs. Basé sur le type de données de quantité. Pour plus de détails, consultez [la section Quantité](https://www.hl7.org/fhir/datatypes.html#Quantity) dans la documentation du **FHIR R4**. Utilise la syntaxe supposée suivante `[parameter]=[prefix][number]\|[system]\|[code]`  |  `[base]/Observation?value-quantity=5.4\|http://unitsofmeasure.org\|mg` `[base]/Observation?value-quantity=5.4\|http://unitsofmeasure.org\|mg` `[base]/Observation?value-quantity=5.4\|http://unitsofmeasure.org\|mg` `[base]/Observation?value-quantity=le5.4\|http://unitsofmeasure.org\|mg`  | 
|  Référence  |  Recherche des références à d'autres ressources.  |  `[base]/Observation?subject=Patient/23` `test`  | 
|  URI  |  Recherche une chaîne de caractères identifiant sans ambiguïté une ressource particulière.  |  `[base]/ValueSet?url=http://acme.org/fhir/ValueSet/123`  | 
|  Spécial  |  Recherches basées sur des extensions de PNL médicale intégrées.  | 

## Paramètres de recherche avancés pris en charge par HealthLake
<a name="search-parameters-advanced"></a>

HealthLake prend en charge les paramètres de recherche avancée suivants.


| Nom | Description | Exemple | Capacité | 
| --- | --- | --- | --- | 
| \$1include | Utilisé pour demander que des ressources supplémentaires soient renvoyées dans une demande de recherche. Elle renvoie les ressources référencées par l'instance de ressource cible. | Encounter?\$1include=Encounter:subject |   | 
| \$1revinclude | Utilisé pour demander que des ressources supplémentaires soient renvoyées dans une demande de recherche. Elle renvoie des ressources qui font référence à l'instance de ressource principale. | Patient?\$1id=patient-identifier&\$1revinclude=Encounter:patient |   | 
| \$1summary | Le résumé peut être utilisé pour demander un sous-ensemble de la ressource. | Patient?\$1summary=text | Les paramètres récapitulatifs suivants sont pris en charge : \$1summary=true\$1summary=false,,\$1summary=text,\$1summary=data. | 
| \$1elements | Demandez qu'un ensemble spécifique d'éléments soit renvoyé dans le cadre d'une ressource dans les résultats de recherche. | Patient?\$1elements=identifier,active,link |   | 
| \$1total | Renvoie le nombre de ressources correspondant aux paramètres de recherche.  | Patient?\$1total=accurate | Support\$1total=accurate,\$1total=none. | 
| \$1sort | Indiquez l'ordre de tri des résultats de recherche renvoyés à l'aide d'une liste séparée par des virgules. Le - préfixe peut être utilisé pour n'importe quelle règle de tri de la liste séparée par des virgules afin d'indiquer l'ordre décroissant.  | Observation?\$1sort=status,-date | Support : tri par champs avec typesNumber, String, Quantity, Token, URI, Reference. Le tri par n'Dateest pris en charge que pour les magasins de données créés après le 9 décembre 2023. Support jusqu'à 5 règles de tri. | 
| \$1count | Contrôlez le nombre de ressources renvoyées par page du bundle de recherche. | Patient?\$1count=100 | La taille de page maximale est de 100. | 
| chaining | Éléments de recherche des ressources référencées. .Dirige la recherche en chaîne vers l'élément de la ressource référencée. | DiagnosticReport?subject:Patient.name=peter |   | 
| reverse chaining (\$1has) | Recherchez une ressource en fonction des éléments des ressources qui y font référence.  | Patient?\$1has:Observation:patient:code=1234-5 |   | 

`_include`

L'utilisation `_include` dans une requête de recherche permet de renvoyer également des ressources FHIR spécifiées supplémentaires. `_include`À utiliser pour inclure des ressources liées vers le bas. 

**Example — À utiliser `_include` pour retrouver les patients ou le groupe de patients chez lesquels une toux a été diagnostiquée**  
Vous devez effectuer une recherche sur le type de `Condition` ressource en spécifiant le code de diagnostic de la toux, puis en utilisant « `_include` Spécifier que vous souhaitez que le `subject` diagnostic soit également renvoyé ». Dans le type de `Condition` ressource, on `subject` entend soit le type de ressource du patient, soit le type de ressource du groupe.  
Pour des raisons de clarté, les caractères spéciaux de l'exemple n'ont pas été codés. Pour réussir une requête, assurez-vous que la chaîne de requête a été correctement encodée.  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/
Condition?code=49727002&_include=Condition:subject
```

`_include:iterate`Modificateur

Le `_include:iterate` modificateur permet l'inclusion récursive de ressources référencées sur deux niveaux. Par exemple, 

```
GET /ServiceRequest?identifier=025C0931195&_include=ServiceRequest:requester&_include:iterate=PractitionerRole:practitioner
```

renverra le ServiceRequest, son associé PractitionerRole (via la référence du demandeur), puis inclura de manière récursive le praticien référencé par celui-ci. PractitionerRole Ce modificateur est disponible pour tous les types de ressources dans HealthLake.

`_include=*`Modificateur

Le `_include=*` modificateur est un caractère générique qui inclut automatiquement toutes les ressources directement référencées par les résultats de recherche. Par exemple, 

```
GET /ServiceRequest?specimen.accession=12345&_include=*
```

renverra la correspondance ServiceRequest ainsi que toutes les ressources auxquelles elle fait référence (telles que le patient, le praticien, le spécimen, etc.) sans qu'il soit nécessaire de spécifier chaque chemin de référence individuellement. Ce modificateur est disponible pour tous les types de ressources dans HealthLake.

`_revinclude`

L'utilisation `_revinclude` dans une requête de recherche permet de renvoyer également des ressources FHIR spécifiées supplémentaires. `_revinclude`À utiliser pour inclure des ressources liées à l'envers.

**Example — À utiliser `_revinclude` pour inclure des types de ressources de rencontre et d'observation connexes liés à un patient spécifique**  
Pour effectuer cette recherche, vous devez d'abord définir l'individu `Patient` en spécifiant son identifiant dans le paramètre `_id` de recherche. Ensuite, vous devez spécifier des ressources FHIR supplémentaires à l'aide de la structure `Encounter:patient` et`Observation:patient`.  
Pour des raisons de clarté, les caractères spéciaux de l'exemple n'ont pas été codés. Pour réussir une requête, assurez-vous que la chaîne de requête a été correctement encodée.  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/
Patient?_id=patient-identifier&_revinclude=Encounter:patient&_revinclude=Observation:patient
```

`_summary`

L'utilisation `_summary` dans une requête de recherche permet à l'utilisateur de demander un sous-ensemble de la ressource FHIR. Il peut contenir l'une des valeurs suivantes : `true, text, data, false` Toutes les autres valeurs seront considérées comme non valides. Les ressources renvoyées seront marquées `'SUBSETTED'` dans le méta.tag, pour indiquer que les ressources sont incomplètes. 
+ `true`: renvoie tous les éléments pris en charge marqués comme « résumé » dans la définition de base de la ou des ressources.
+ `text`: Renvoie uniquement les éléments « text », « id », « méta » et uniquement les éléments obligatoires de haut niveau.
+ `data`: Renvoie toutes les parties sauf l'élément « texte ».
+ `false`: renvoie toutes les parties de la ou des ressources

Dans une seule demande de recherche, il `_summary=text` ne peut pas être combiné avec `_include` des paramètres `_revinclude` de recherche. 

**Example — Récupère l'élément « texte » des ressources destinées aux patients dans un magasin de données.**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_summary=text
```

`_elements`

L'utilisation `_elements` dans une requête de recherche permet de demander des éléments de ressources FHIR spécifiques. Les ressources renvoyées seront marquées `'SUBSETTED'` dans le méta.tag, pour indiquer que les ressources sont incomplètes. 

Le `_elements` paramètre consiste en une liste de noms d'éléments de base séparés par des virgules, tels que les éléments définis au niveau racine de la ressource. Seuls les éléments listés doivent être renvoyés. Si les valeurs des `_elements` paramètres contiennent des éléments non valides, le serveur les ignorera et renverra des éléments obligatoires et des éléments valides. 

`_elements`ne sera pas applicable aux ressources incluses (ressources renvoyées dont le mode de recherche est`include`).

Dans une seule demande de recherche, il `_elements` ne peut pas être combiné avec les paramètres `_summary` de recherche. 

**Example — Obtenez les éléments « identifiant », « actif », « lien » des ressources destinées aux patients dans votre banque de HealthLake données.**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_elements=identifier,active,link
```

`_total`

L'utilisation `_total` dans une requête de recherche renverra le nombre de ressources correspondant aux paramètres de recherche demandés. HealthLake renverra le nombre total de ressources correspondantes (ressources renvoyées dont le mode de recherche est`match`) dans la réponse `Bundle.total` de recherche. 

`_total`prend en charge `accurate` les valeurs des `none` paramètres. `_total=estimate`n'est pas pris en charge. Toutes les autres valeurs seront considérées comme non valides. `_total`n'est pas applicable aux ressources incluses (ressources renvoyées dont le mode de recherche est`include`). 

**Example — Obtenez le nombre total de ressources pour les patients dans un magasin de données :**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_total=accurate
```

`_sort`

L'utilisation `_sort` dans la requête de recherche organise les résultats dans un ordre spécifique. Les résultats sont classés par ordre de priorité en fonction de la liste des règles de tri séparées par des virgules. Les règles de tri doivent être des paramètres de recherche valides. Toutes les autres valeurs seront considérées comme non valides. 

Dans une seule demande de recherche, vous pouvez utiliser jusqu'à 5 paramètres de recherche de tri. Vous pouvez éventuellement utiliser un `-` préfixe pour indiquer l'ordre décroissant. Le serveur triera par ordre croissant par défaut. 

Les types de paramètres de recherche de tri pris en charge sont les suivants :`Number, String, Date, Quantity, Token, URI, Reference`. Si un paramètre de recherche fait référence à un élément imbriqué, il n'est pas pris en charge pour le tri. Par exemple, une recherche sur le « nom » du type de ressource Patient fait référence à l'élément Patient.Name dont le type de HumanName données est considéré comme imbriqué. Par conséquent, le tri des ressources pour les patients par « nom » n'est pas pris en charge.

**Example — Accédez aux ressources des patients dans un magasin de données et triez-les par date de naissance dans l'ordre croissant :**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_sort=birthdate
```

`_count`

Le paramètre `_count` est défini comme une instruction au serveur concernant le nombre de ressources à renvoyer sur une seule page.

La taille de page maximale est de 100. Toute valeur supérieure à 100 n'est pas valide. `_count=0`n'est pas pris en charge.

**Example — Recherchez la ressource Patient et définissez la taille de la page de recherche sur 25 :**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_count=25
```

`Chaining and Reverse Chaining(_has)`

Le chaînage et le chaînage inversé dans FHIR constituent un moyen plus efficace et plus compact d'obtenir des données interconnectées, réduisant ainsi le besoin de plusieurs requêtes distinctes et rendant la récupération de données plus pratique pour les développeurs et les utilisateurs.

Si un niveau de récursivité renvoie plus de 100 résultats, il HealthLake renverra 4xx pour éviter que le magasin de données ne soit surchargé et ne provoque des paginations multiples.

**Example — Chainage - Obtient tout DiagnosticReport ce qui fait référence à un patient dont le nom est Peter.**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/DiagnosticReport?subject:Patient.name=peter
```

**Example — Chainage inversé - Accédez aux ressources du patient, où la ressource du patient est référencée par au moins une observation dont le code de l'observation est 1234, et où l'observation fait référence à la ressource du patient dans le paramètre de recherche du patient.**  
  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_has:Observation:patient:code=1234
```

## Modificateurs de recherche pris en charge
<a name="search-parameter-modifiers"></a>

Les modificateurs de recherche sont utilisés avec les champs basés sur des chaînes. Tous les modificateurs de recherche HealthLake utilisés utilisent une logique booléenne. Par exemple, vous pouvez `:contains` spécifier qu'un champ de chaîne plus grand doit inclure une petite chaîne pour qu'il soit inclus dans les résultats de recherche.


**Modificateurs de recherche pris en charge**  

| Modificateur de recherche | Type | 
| --- | --- | 
| :manquant | Tous les paramètres sauf Composite | 
| :exact | String | 
| :contient | String | 
| :non | Jeton | 
| :texte | Jeton | 
| :identifiant | Référence | 
| :ci-dessous | URI | 

## Comparateurs de recherche pris en charge
<a name="search-comparators"></a>

Vous pouvez utiliser des comparateurs de recherche pour contrôler la nature de la correspondance lors d'une recherche. Vous pouvez utiliser des comparateurs lorsque vous effectuez une recherche dans les champs de numéro, de date et de quantité. Le tableau suivant répertorie les comparateurs de recherche et leurs définitions pris en charge par HealthLake.


**Comparateurs de recherche pris en charge**  

|  Comparateur de recherche  |  Description  | 
| --- | --- | 
| eq | La valeur du paramètre dans la ressource est égale à la valeur fournie. | 
| ne | La valeur du paramètre dans la ressource n'est pas égale à la valeur fournie. | 
| gt | La valeur du paramètre dans la ressource est supérieure à la valeur fournie. | 
| lt | La valeur du paramètre dans la ressource est inférieure à la valeur fournie. | 
| gm | La valeur du paramètre dans la ressource est supérieure ou égale à la valeur fournie. | 
| le | La valeur du paramètre dans la ressource est inférieure ou égale à la valeur fournie. | 
| sa | La valeur du paramètre dans la ressource commence après la valeur fournie. | 
| eb | La valeur du paramètre dans la ressource se termine avant la valeur fournie. | 

## Les paramètres de recherche FHIR ne sont pas pris en charge par HealthLake
<a name="search-parameters-unsupported"></a>

HealthLake prend en charge tous les paramètres de recherche FHIR à l'exception de ceux répertoriés dans le tableau suivant. Pour une liste complète des paramètres de recherche FHIR, consultez le registre des paramètres de [recherche FHIR](https://hl7.org/fhir/R4/searchparameter-registry.html). 


**Paramètres de recherche non pris en charge**  

|  |  | 
| --- |--- |
| Composition du bundle | Lieu : à proximité | 
| Identifiant du bundle | C onsent-source-reference | 
| Message groupé | Patient sous contrat | 
| Type d'offre groupée | Contenu des ressources | 
| Horodatage du bundle | Requête de ressources | 