Cuando consultas datos sanitarios, puedes usar filtros para acotar las respuestas de búsqueda. En una solicitud de búsqueda, puede proporcionar filtros para aplicar criterios que incluyan o excluyan determinadas respuestas de búsqueda.
Por ejemplo, cuando buscas en 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 datos sanitarios.
Antes de empezar
Antes de empezar, haz lo siguiente:
- Crea una aplicación de búsqueda de datos sanitarios y un almacén de datos de búsqueda de datos sanitarios, e importa datos de FHIR R4. Para obtener más información, consulta los artículos Crear una aplicación de búsqueda de información sanitaria y Crear un almacén de datos de búsqueda de información sanitaria.
- Consulta la lista de recursos FHIR R4 que admite Vertex AI Search como campos indexables, en los que se pueden realizar búsquedas y que se pueden recuperar. Para obtener más información, consulta la referencia del esquema de datos FHIR R4 de Healthcare.
- Familiarízate con la sintaxis de las expresiones de filtro.
Definir 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 la expresión 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 Observation, el patient_id
al que hace referencia el recurso Observation se puede usar como literal de filtro.
En las siguientes secciones se muestran algunos ejemplos de cómo crear filtros.
Definir un filtro resource_datetime
En este ejemplo se muestra cómo especificar un filtro para una búsqueda que incluya solo los recursos que tengan 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}} }'
Haz los cambios siguientes:
PROJECT_ID
: el ID de tu proyecto de Google Cloud .DATA_STORE_ID
: el ID del almacén de datos de Vertex AI Search.QUERY
: la consulta de búsqueda.PATIENT_ID
: el ID del recurso del paciente cuyos datos quieres buscar.DATE_TIME_VALUE
: el valor del camporesource_datetime
, que representa una fecha y una 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
, haz lo siguiente:2022-08-05T01:00:00+00:00
- Para especificar una fecha, sigue estos pasos:
2022-08-05
- Para especificar un mes, sigue estos pasos:
2022-08
- Para especificar un año, haz lo siguiente:
2022
- Para especificar una fecha y una hora con una zona horaria separadas por un separador
Definir un filtro de tipo de recurso
En el siguiente ejemplo se muestra cómo crear un filtro que use un operador AND
para filtrar primero todos los recursos Composition y, después, los que tengan una fecha posterior a una fecha y hora especificadas.
"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""
Definir un filtro de recursos FHIR
Puedes usar un filtro para comprobar si un recurso 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\")"