Cuando consultas datos de atención médica, puedes usar filtros para definir mejor las respuestas de búsqueda. En una solicitud de búsqueda, puedes proporcionar filtros para aplicar criterios que incluyan o excluyan ciertas respuestas de búsqueda.
"filter": "patient_id: ANY(\"PATIENT_ID\")"
En esta página, se muestra cómo definir filtros para la búsqueda de atención médica.
Antes de comenzar
Antes de comenzar, haz lo siguiente:
- Crea una app de búsqueda de atención médica y un almacén de datos de búsqueda de atención médica, y luego importa datos de FHIR R4. Para obtener más información, consulta Crea una app de búsqueda de atención médica y Crea un almacén de datos de búsqueda de atención médica.
- Revisa la lista de recursos de FHIR R4 que admite la Búsqueda de agentes como campos indexables, aptos para búsquedas y recuperables. Para obtener más información, consulta Referencia del esquema de datos de FHIR R4 de atención médica.
- Comprende la sintaxis de las expresiones de filtro.
Define filtros
Los filtros se especifican en el campo filter del cuerpo de la solicitud del método
servingConfigs.search.
La definición del filtro sigue la sintaxis
de las expresiones de filtro.
En la expresión de filtro, el literal puede ser cualquier campo indexable de la respuesta a la consulta de búsqueda. Por ejemplo, si la respuesta contiene un recurso de Observation, el patient_id al que hace referencia el recurso de Observation se puede usar como un literal de filtro.
En las siguientes secciones, se muestran algunos ejemplos de cómo crear filtros.
Define un filtro resource_datetime
En este ejemplo, se muestra cómo especificar un filtro para una búsqueda que incluye solo aquellos recursos que tienen un valor resource_datetime posterior al valor de fecha y hora especificado.
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}}
}'
Reemplaza lo siguiente:
PROJECT_ID: el ID de tu Google Cloud proyecto.DATA_STORE_ID: el ID del almacén de datos de la Búsqueda de agentes.QUERY: la consulta de búsqueda.PATIENT_ID: el ID de recurso del paciente cuyos datos deseas buscar.DATE_TIME_VALUE: el valor del campo que representa una fecha y hora en el formato dateTime de FHIR.resource_datetimeEstos son algunos ejemplos de este campo:- Para especificar una fecha y hora con una zona horaria separada por un separador
T:2022-08-05T01:00:00+00:00 - Para especificar una fecha:
2022-08-05 - Para especificar un mes:
2022-08 - Para especificar un año:
2022
- Para especificar una fecha y hora con una zona horaria separada por un separador
Define un filtro de tipo de recurso
En el siguiente ejemplo, se muestra cómo crear un filtro que usa un operador AND para filtrar primero todos los recursos de Composition y, luego, filtrar aquellos cuya fecha sea posterior a una fecha y hora especificadas.
"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""Define un filtro de recursos de FHIR
Puedes usar un filtro para verificar si un recurso de FHIR está presente en el almacén de datos de la Búsqueda de agentes. Por ejemplo, puedes buscar un recurso de DocumentReference que tenga el ID 6112d1ac-c6bd-4755-d689-bfb71d59afc5 con el siguiente filtro.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"