Cuando consultas datos de atención médica, puedes usar filtros para definir mejor las respuestas de la búsqueda. En una solicitud de búsqueda, puedes proporcionar filtros para aplicar criterios que incluyan o excluyan ciertas respuestas de búsqueda.
Por ejemplo, cuando buscas los datos de un solo paciente, el cuerpo de la solicitud de búsqueda debe contener la siguiente expresión de filtro que especifica el ID del paciente:
"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 Cómo crear una app de búsqueda de atención médica y Cómo crear un almacén de datos de búsqueda de atención médica.
- Revisa la lista de recursos de FHIR R4 que admite Vertex AI Search como campos indexables, recuperables y que se pueden buscar. Para obtener más información, consulta la referencia del esquema de datos de FHIR R4 para la atención médica.
- Comprende la sintaxis de la expresión de filtro.
Define filtros
Los filtros se especifican en el campo filter
en el cuerpo de la solicitud del método servingConfigs.search
.
La definición del filtro sigue la sintaxis de la expresión de filtro.
En la expresión del filtro, el literal puede ser cualquier campo indexable de la respuesta a la búsqueda. Por ejemplo, si la respuesta contiene un recurso Observation, el patient_id
al que hace referencia el recurso Observation se puede usar como un filtro literal.
En las siguientes secciones, se muestran algunos ejemplos de cómo construir filtros.
Define un filtro resource_datetime
En este ejemplo, se muestra cómo especificar un filtro para una búsqueda que incluya solo aquellos recursos que tengan un valor de resource_datetime
posterior a la fecha y la hora especificadas.
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 del proyecto de Google Cloud.DATA_STORE_ID
: el ID del almacén de datos de Vertex AI Search.QUERY
: Es la búsqueda.PATIENT_ID
: Es el ID del recurso del paciente cuyos datos deseas buscar.DATE_TIME_VALUE
: Es el valor del camporesource_datetime
que representa una fecha y hora en el formato dateTime de FHIR. Estos son algunos ejemplos de este campo:- Para especificar una fecha y una hora con una zona horaria separadas por un separador
T
, usa lo siguiente:2022-08-05T01:00:00+00:00
- Para especificar una fecha, sigue estos pasos:
2022-08-05
- Para especificar un mes, usa
2022-08
. - Para especificar un año, usa
2022
.
- Para especificar una fecha y una hora con una zona horaria separadas 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 composición y, luego, filtrar aquellos cuya fecha es 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 Vertex AI Search. Por ejemplo, puedes buscar un recurso DocumentReference que tenga el ID 6112d1ac-c6bd-4755-d689-bfb71d59afc5
con el siguiente filtro.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"