Ao consultar dados de saúde, você pode usar filtros para refinar as respostas da pesquisa. Em uma solicitação de pesquisa, é possível fornecer filtros para aplicar critérios que incluem ou excluem determinadas respostas de pesquisa.
Por exemplo, quando você pesquisa os dados de um único paciente, o corpo da solicitação de pesquisa precisa conter a seguinte expressão de filtro que especifica o ID do paciente:
"filter": "patient_id: ANY(\"PATIENT_ID\")"
Esta página mostra como definir filtros para a pesquisa de saúde.
Antes de começar
Antes de começar, faça o seguinte:
- Crie um app de pesquisa de saúde e um repositório de dados de pesquisa de saúde e importe dados do FHIR R4. Para mais informações, consulte Criar um app de pesquisa de saúde e Criar um repositório de dados de pesquisa de saúde.
- Confira a lista de recursos do FHIR R4 com suporte da Pesquisa da Vertex AI como campos indexáveis, pesquisáveis e recuperáveis. Para mais informações, consulte a Referência do esquema de dados do FHIR R4 para cuidados de saúde.
- Entenda a sintaxe da expressão de filtro.
Definir filtros
Os filtros são especificados no campo filter
no corpo da solicitação do
método servingConfigs.search
.
A definição do filtro segue a sintaxe da expressão do filtro.
Na expressão de filtro, o literal pode ser qualquer campo indexável da
resposta à consulta de pesquisa. Por exemplo, se a resposta contiver um recurso de observação,
o patient_id
que o recurso de observação referencia pode ser usado como um literal de filtro.
As seções a seguir mostram alguns exemplos de como criar filtros.
Definir um filtro resource_datetime
Este exemplo mostra como especificar um filtro para uma pesquisa que inclui apenas
os recursos com um valor de resource_datetime
mais recente do que a data
e o valor de hora especificados.
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}} }'
Substitua:
PROJECT_ID
: o ID do seu projeto do Google Cloud.DATA_STORE_ID
: o ID do repositório de dados da Vertex AI para Pesquisa.QUERY
: a consulta de pesquisa.PATIENT_ID
: o ID do recurso do paciente cujos dados você quer pesquisar.DATE_TIME_VALUE
: o valor do camporesource_datetime
que representa uma data e hora no formato dateTime do FHIR. Confira alguns exemplos desse campo:- Para especificar uma data e hora com um fuso horário separado por um separador
T
:2022-08-05T01:00:00+00:00
- Para especificar uma data:
2022-08-05
- Para especificar um mês:
2022-08
- Para especificar um ano:
2022
- Para especificar uma data e hora com um fuso horário separado por um separador
Definir um filtro de tipo de recurso
O exemplo a seguir mostra como criar um filtro que usa um operador AND
para filtrar primeiro todos os recursos de composição e depois filtrar aqueles que
têm uma data posterior à data e hora especificadas.
"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""
Definir um filtro de recurso FHIR
É possível usar um filtro para verificar se um recurso FHIR está presente no repositório de dados da Pesquisa da Vertex AI. Por exemplo, é possível pesquisar um
recurso DocumentReference com o ID
6112d1ac-c6bd-4755-d689-bfb71d59afc5
usando o filtro abaixo.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"