Filtrer la recherche de données de santé

Lorsque vous interrogez des données de santé, vous pouvez utiliser des filtres pour affiner les réponses de recherche. Dans une requête de recherche, vous pouvez fournir des filtres pour appliquer des critères qui incluent ou excluent certaines réponses de recherche.

Par exemple, lorsque vous effectuez une recherche sur les données d'un seul patient, le corps de la requête de recherche doit contenir l'expression de filtre suivante qui spécifie l'ID du patient:

"filter": "patient_id: ANY(\"PATIENT_ID\")"

Cette page vous explique comment définir des filtres pour la recherche de prestataires de santé.

Avant de commencer

Avant de commencer, procédez comme suit :

Définir des filtres

Les filtres sont spécifiés dans le champ filter du corps de la requête de la méthode servingConfigs.search.

La définition du filtre suit la syntaxe des expressions de filtre. Dans l'expression de filtre, le littéral peut être n'importe quel champ indexable de la réponse à la requête de recherche. Par exemple, si la réponse contient une ressource Observation, l'patient_id référencée par la ressource Observation peut être utilisée comme littéral de filtre.

Les sections suivantes présentent quelques exemples de création de filtres.

Définir un filtre resource_datetime

Cet exemple montre comment spécifier un filtre pour une recherche qui n'inclut que les ressources dont la valeur resource_datetime est postérieure à la date et à l'heure spécifiées.

REST

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID/servingConfigs/default_search:search" \
    -d '{
"query": "QUERY",
"filter": "patient_id: ANY(\"PATIENT_ID\") AND resource_datetime > \"DATE_TIME_VALUE,
"contentSearchSpec":{"snippetSpec":{"returnSnippet":true}}
}'

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud
  • DATA_STORE_ID: ID du data store Vertex AI Search.
  • QUERY: requête de recherche.
  • PATIENT_ID: ID de la ressource du patient dont vous souhaitez rechercher les données.
  • DATE_TIME_VALUE: valeur du champ resource_datetime représentant une date et une heure au format dateTime FHIR. Voici quelques exemples de ce champ :
    • Pour spécifier une date et une heure avec un fuseau horaire séparé par un séparateur T: 2022-08-05T01:00:00+00:00
    • Pour spécifier une date: 2022-08-05
    • Pour spécifier un mois: 2022-08
    • Pour spécifier une année: 2022

Définir un filtre de type de ressource

L'exemple suivant montre comment créer un filtre qui utilise un opérateur AND pour filtrer d'abord toutes les ressources de composition, puis celles dont la date est postérieure à une date et une heure spécifiées.

"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""

Définir un filtre de ressources FHIR

Vous pouvez utiliser un filtre pour vérifier si une ressource FHIR est présente dans le data store Vertex AI Search. Par exemple, vous pouvez rechercher une ressource DocumentReference dont l'ID est 6112d1ac-c6bd-4755-d689-bfb71d59afc5 à l'aide du filtre suivant.

"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"