Lorsque vous interrogez des données de santé, vous pouvez utiliser des filtres pour affiner votre recherche réponses. 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 rechercher les données d'un seul patient, la requête de recherche Le corps doit contenir l'expression de filtre suivante, qui spécifie l'ID du patient:
"filter": "patient_id: ANY(\"PATIENT_ID\")"
Cette page explique comment définir des filtres pour la recherche médicale.
Avant de commencer
Avant de commencer, procédez comme suit :
- Créer une application de recherche médicale et un data store de recherche médical, puis l'importer Données FHIR R4. Pour en savoir plus, consultez Créer une application de recherche dans le secteur de la santé Créer un data store pour les recherches dans le domaine de la santé
- Consultez la liste des ressources FHIR R4 compatibles avec Vertex AI Search en tant que champs indexables, recherchables et récupérables. Pour en savoir plus, consultez la documentation de référence sur le schéma de données FHIR R4 pour le secteur de la santé.
- Familiarisez-vous avec la syntaxe des expressions de filtre.
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 provenant de
à la requête de recherche. Par exemple, si la réponse contient une ressource Observation,
Le patient_id
auquel la ressource "Observation" fait référence peut être utilisée comme filtre.
littérale.
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 CloudDATA_STORE_ID
: ID du data store Vertex AI Search.QUERY
: requête de recherche.PATIENT_ID
: ID de ressource du patient dont vous souhaitez rechercher les données.DATE_TIME_VALUE
: la valeur de la Champresource_datetime
représentant une date et une heure au format FHIR dateTime. 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 indiquer un mois:
2022-08
- Pour spécifier une année:
2022
- Pour spécifier une date et une heure avec un fuseau horaire séparé par un séparateur
Définir un filtre de type de ressource
L'exemple suivant montre comment créer un filtre qui utilise un AND
pour filtrer d'abord toutes les ressources de composition, puis celles dont
la date est postérieure à la date et à l'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
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\")"