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, ao pesquisar 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 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.
- Consulte a lista de recursos FHIR R4 que a Pesquisa do agente oferece suporte como campos indexáveis, pesquisáveis e recuperáveis. Para mais informações, consulte Referência do esquema de dados FHIR R4 de saúde.
- Entenda a sintaxe da expressão de filtro.
Definir filtros
Os filtros são especificados no filter campo no corpo da solicitação do
servingConfigs.search método.
A definição do filtro segue a sintaxe
da expressão de 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 referenciado pelo recurso de observação poderá 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 que têm um valor resource_datetime posterior ao valor de data e 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}}
}'
Substitua:
PROJECT_ID: o ID do seu Google Cloud projeto.DATA_STORE_ID: o ID do repositório de dados da Pesquisa do agente.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_datetimeque 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 primeiro filtrar todos os recursos de composição e, em seguida, filtrar aqueles cuja data é posterior a uma 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 do agente. Por exemplo, você pode pesquisar um recurso DocumentReference que tenha o ID 6112d1ac-c6bd-4755-d689-bfb71d59afc5 usando o filtro a seguir.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"