Filtrar a pesquisa de serviços de saúde

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:

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.

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 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 campo resource_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

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\")"