Lorsque vous interrogez des données de santé, vous pouvez utiliser des filtres pour affiner vos 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.
"filter": "patient_id: ANY(\"PATIENT_ID\")"
Cette page explique comment définir des filtres pour la recherche dans le secteur de la santé.
Avant de commencer
Avant de commencer, procédez comme suit :
- Créez une application de recherche dans le secteur de la santé et un data store de recherche dans le secteur de la santé, puis importez des données FHIR R4. Pour en savoir plus, consultez Créer une application de recherche dans le secteur de la santé et Créer un datastore de recherche dans le secteur de la santé.
- Consultez la liste des ressources FHIR R4 que la recherche d'agent prend en charge en tant que champs indexables, interrogeables 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é.
- Comprenez la syntaxe des expressions de filtre.
Définir des filtres
Les filtres sont spécifiés dans le filter champ du corps de la requête de la
servingConfigs.search méthode.
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, le patient_id auquel la ressource Observation fait référence peut être utilisé 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 valeur de date et d'heure spécifiée.
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 Google Cloud projet.DATA_STORE_ID: ID du data store de recherche d'agent.QUERY: requête de recherche.PATIENT_ID: ID de ressource du patient dont vous souhaitez rechercher les données.DATE_TIME_VALUE: valeur du champresource_datetimequi représente 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
Tséparateur :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
- Pour spécifier une date et une heure avec un fuseau horaire séparé par un
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 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 ressource FHIR
Vous pouvez utiliser un filtre pour vérifier si une ressource FHIR est présente dans le data store de recherche d'agent. 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\")"