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 armazenamento 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 da hora especificados.
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 projeto 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
Resposta
Você vai receber uma resposta JSON semelhante a esta resposta truncada. A resposta contém os resultados da pesquisa listados em ordem cronológica inversa com snippets, se estiverem disponíveis. O campo structData
contém os dados JSON estruturados do documento.
{ "results": [ { "id": "DOCUMENT_ID ", "document": { "name": "projects/PROJECT_ID /locations/us/collections/default_collection/dataStores/DATA_STORE_ID /branches/0/documents/DOCUMENT_ID ", "id": "DOCUMENT_ID ", "structData": { ... "resource_type": "FHIR_RESOURCE_TYPE ", "resource_datetime": "RESOURCE_DATETIME ", "patient_id": "PATIENT_ID ", "FHIR_RESOURCE_TYPE ": { ... } }, "derivedStructData": { "snippets": [ { "snippet": "SNIPPET_TEXT ", "snippet_status": "SUCCESS" } ] } } }] }
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\")"