Receber resultados da pesquisa de dados de saúde

Depois de importar dados do FHIR R4 para seu app de pesquisa de saúde, você pode consultar os dados importados para receber resultados relevantes. Você pode pesquisar usando os seguintes tipos de consultas:

  • Consulta de palavra-chave
  • Consulta do Natural Language
  • Consulta de linguagem natural com uma resposta de IA generativa

Além disso, você pode filtrar sua pesquisa usando consultas com filtro de data. Para mais informações, consulte Definir um filtro resource_datetime.

Ao pesquisar no console do Google Cloud, primeiro é necessário fornecer um ID do paciente e pesquisar os dados de um único paciente por vez. Ao pesquisar usando a API REST, é possível pesquisar em todo o repositório de dados.

Esta página mostra como pesquisar dados de saúde usando os vários tipos de consultas.

Uso pretendido da Vertex AI para Pesquisa para pesquisar dados de saúde

O uso pretendido da Vertex AI para Pesquisa não é fornecer informações relacionadas à prevenção, diagnóstico ou tratamento de doenças. As perguntas sobre recomendações de diagnóstico ou tratamento não são tratadas pelo produto. O uso pretendido deste produto é extrair e resumir as informações médicas fornecidas pelos usuários.

Devido aos dados de teste limitados, este produto pode ou não ser aplicável aos grupos de 0 a 18 anos e 85 anos ou mais. Portanto, ao analisar a saída gerada, os clientes precisam considerar a representatividade das subpopulações nos dados de origem.

Confira abaixo alguns exemplos de como esse produto deve ser usado:

  • Consultas exploratórias para encontrar informações de um paciente relevantes para um tema:

    • "Resumir os usos da aspirina"
    • "pressão arterial"
    • "diabetes management?"
  • Consultas de navegação para encontrar recursos específicos que podem ser mapeados para uma consulta estruturada:

    • "Mostre a versão a1c mais recente"
  • Extraia perguntas e respostas para responder a perguntas específicas em que as evidências podem estar espalhadas entre os recursos:

    • "Esse paciente já foi tratado com uma cefalosporina?"
    • "O paciente já fez uma avaliação psiquiátrica"

Confira a seguir exemplos de como não usar o produto:

  • Recomendações de diagnóstico e tratamento:

    • "Qual é o diagnóstico diferencial desse paciente?"
    • "Quais medicamentos devo prescrever ao paciente?"

Diretrizes de consulta

As diretrizes a seguir podem ajudar você a formular uma consulta que pode melhorar os resultados da pesquisa:

  • Pesquisar consultas com intenção específica: como o modelo não sabe o que você está procurando, é melhor fornecer uma consulta segmentada do que uma vaga. Por exemplo, pesquisar a palavra-chave "hipertensão" é melhor do que pesquisar a palavra-chave "resumo". Enquanto a consulta "hipertensão" mostra resultados específicos de documentos relevantes, a consulta "resumo" pode mostrar resultados de documentos que não são relevantes.

  • Preservar o contexto: como a pesquisa não é interativa, é melhor fornecer o contexto completo para cada consulta. Por exemplo, se a consulta inicial for "hipertensão" e você quiser acompanhar o mesmo tópico, a consulta "quando a hipertensão foi diagnosticada" é melhor do que "quando ela foi diagnosticada".

  • Simplifique a consulta: sempre que possível, divida consultas complexas em consultas mais simples. Por exemplo, em vez de pesquisar "creatinina e albumina", crie consultas diferentes para "creatinina", "albumina" e "razão creatinina-albumina", dependendo do seu objetivo.

  • Evite pedir inferências: a pesquisa fornece resultados mais precisos quando o modelo pode retornar informações literalmente dos documentos pesquisados, em vez de calcular ou deduzir as informações pesquisadas. Por exemplo, em vez de consultar "quanto o peso do paciente mudou", você pode consultar "listar o peso do paciente nas últimas 10 visitas" e calcular a mudança de peso separadamente.

Destaques de correspondência nos resultados

O destaque de correspondência é uma configuração que destaca partes do texto em um resultado de pesquisa que correspondem contextualmente à consulta de pesquisa.

Os resultados dos seguintes tipos de recurso oferecem suporte ao destaque de correspondências:

  • Composição: destaca o texto contextual do campo Composition.section[].text.div.
  • DiagnosticReport: destaca o texto contextual do campo DiagnosticReport.conclusion.
  • DocumentReference: destaca o texto contextual dos documentos citados no campo DocumentReference.content[0].attachment.url. O texto destacado está contido em uma caixa delimitadora. A caixa delimitadora é representada por dois conjuntos de coordenadas normalizadas na resposta da pesquisa. Os documentos que oferecem suporte ao destaque de correspondência são arquivos PDF e de imagem com tipos compatíveis. A imagem a seguir mostra como o texto é destacado em um documento digitalizado do tipo de recurso DocumentReference:

    A consulta é "insulina".
    Figura 1. Corresponder ao realce em um documento digitalizado de DocumentReference.

Ao pesquisar usando a API REST, é necessário ativar o destaque de correspondências no pedido de pesquisa usando o campo matchHighlightingCondition. A resposta contém o campo match_highlighting, que pode ser usado para renderizar o texto destacado no seu aplicativo de pesquisa:

  • Para documentos de composição e de relatório de diagnóstico, o campo match_highlighting contém os índices inicial e final do token que precisa ser destacado.
  • Para documentos DocumentReference, o campo match_highlighting contém as coordenadas da caixa delimitadora que destaca o texto. A caixa delimitadora é representada por dois conjuntos de coordenadas normalizadas com origem no canto superior esquerdo do documento. Esse campo também aninhado no campo page_number, que é definido como 0 para imagens e 1 para a primeira página de arquivos PDF.

Quando você exibe uma prévia dos resultados da pesquisa usando o console do Google Cloud, o destaque de correspondências é ativado por padrão.

Antes de começar

Antes de pesquisar, faça o seguinte:

É possível pesquisar no repositório de dados de saúde usando uma palavra-chave. Por exemplo, você pode pesquisar usando palavras-chave como "a1c", "insulina" ou "úlcera" para receber recursos relevantes do FHIR.

A imagem a seguir mostra os resultados da pesquisa quando a palavra-chave é "lipid". Esse exemplo não inclui um resumo ou uma resposta de IA generativa.

A consulta é "lipid".
Figura 2. Pesquise usando a palavra-chave.

Para pesquisar usando uma palavra-chave, siga estas etapas.

Console

  1. No Console do Google Cloud, acesse a página Criador de agentes.

    Agent Builder.

  2. Selecione o app de pesquisa de saúde que você quer consultar.

  3. No menu de navegação, clique em Visualizar.

  4. No campo ID do paciente, insira o ID do paciente cujos dados você quer consultar. Os IDs dos pacientes diferenciam maiúsculas de minúsculas.

  5. Pressione Enter ou clique em Visualizar para enviar o ID do paciente.

  6. Na barra de pesquisa Pesquisar aqui, digite uma palavra-chave.

    Se você tiver ativado o preenchimento automático, uma lista de sugestões vai aparecer abaixo da barra de pesquisa conforme você digita.

  7. Pressione Enter para enviar a consulta.

    • Os resultados da pesquisa são mostrados em tabelas paginadas categorizadas com base no tipo de recurso do FHIR.
    • Por padrão, os resultados da pesquisa de todos os tipos de recurso do FHIR são mostrados em ordem cronológica inversa.
  8. Opcional. Para filtrar os resultados, selecione uma ou mais categorias de recursos do FHIR que estão na barra de pesquisa.

  9. Opcional. Para ordenar os resultados de acordo com a relevância para os recursos Composition, DocumentReference e DiagnosticReport, clique no filtro Sort: Reverse Chronological e selecione Relevance na lista. Para mais informações, consulte Ordenar resultados de pesquisa de saúde.

REST

O exemplo a seguir mostra como pesquisar os dados FHIR R4 de um único paciente no app de pesquisa de saúde usando uma palavra-chave. Este exemplo usa o método servingConfigs.search.

Por padrão, os resultados da pesquisa são retornados em ordem cronológica inversa. Ao pesquisar nos recursos Composition, DiagnosticReport e DocumentReference, você pode ordenar os resultados da pesquisa de acordo com a relevância. Para mais informações, consulte Ordenar resultados de pesquisa de saúde.

  1. Pesquise usando uma palavra-chave.

    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/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
    "query": "KEYWORD_QUERY",
    "filter": "patientId: ANY(\"PATIENT_ID\")",
    "contentSearchSpec":{"snippetSpec":{"returnSnippet":true}}
    "displaySpec": {
        "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION"
      }
    }'
    

    Substitua:

    • PROJECT_ID: o ID do projeto Google Cloud .
    • APP_ID: o ID do app da Vertex AI para Pesquisa que você quer consultar.
    • KEYWORD_QUERY: a palavra-chave que você quer pesquisar nos dados clínicos do paciente filtrado, como "diabetes" ou "a1c".
    • PATIENT_ID: o ID do recurso do paciente cujos dados você quer pesquisar.
    • MATCH_HIGHLIGHTING_CONDITION: uma string que pode ter os seguintes valores:
      • MATCH_HIGHLIGHTING_DISABLED: desativa o destaque de correspondências em todos os documentos.
      • MATCH_HIGHLIGHTING_ENABLED: ativa o destaque de correspondência em todos os documentos. Quando você deixa esse campo em branco ou não o especifica, o destaque de correspondência é definido como MATCH_HIGHLIGHTING_DISABLED e desativado em todos os documentos.

Com a Vertex AI para Pesquisa, você pode receber resultados para consultas de linguagem natural complexas. Por exemplo, a imagem a seguir mostra os resultados da consulta de linguagem natural: "Resultados de laboratório relacionados à diabetes".

A consulta é "Quais são os exames de lípidos do paciente?".
Figura 4. Pesquise usando a consulta em linguagem natural.

Para pesquisar usando a consulta de linguagem natural, siga estas etapas.

Console

  1. No Console do Google Cloud, acesse a página Criador de agentes.

    Agent Builder.

  2. Selecione o app de pesquisa de saúde que você quer consultar.

  3. No menu de navegação, clique em Visualizar.

  4. No campo ID do paciente, insira o ID do paciente cujos dados você quer consultar. Os IDs dos pacientes diferenciam maiúsculas de minúsculas.

  5. Pressione Enter ou clique em Visualizar para enviar o ID do paciente.

  6. Na barra de pesquisa Pesquisar aqui, insira uma consulta em linguagem natural, como "Resultados de laboratório relacionados à diabetes".

    Se você tiver ativado o preenchimento automático, uma lista de sugestões vai aparecer abaixo da barra de pesquisa conforme você digita.

  7. Pressione Enter para enviar a consulta.

    • Os resultados da pesquisa são mostrados em tabelas paginadas categorizadas com base no tipo de recurso do FHIR.
    • Por padrão, os resultados da pesquisa de todos os tipos de recurso do FHIR são mostrados em ordem cronológica inversa.
  8. Opcional. Selecione uma ou mais categorias de recursos do FHIR que estão abaixo da barra de pesquisa para filtrar os resultados.

  9. Opcional. Para ordenar os resultados de acordo com a relevância para os recursos Composition, DocumentReference e DiagnosticReport, clique no filtro Sort: Reverse Chronological e selecione Relevance na lista. Para mais informações, consulte Ordenar resultados de pesquisa de saúde.

REST

O exemplo a seguir mostra como pesquisar os dados FHIR R4 de um único paciente no app de pesquisa de saúde usando uma consulta de linguagem natural. Este exemplo usa o método servingConfigs.search. Para pesquisar usando uma consulta de linguagem natural, adicione o campo naturalLanguageQueryUnderstandingSpec ao corpo da solicitação.

Por padrão, os resultados da pesquisa são retornados em ordem cronológica inversa. Ao pesquisar nos recursos Composition, DiagnosticReport e DocumentReference, você pode ordenar os resultados da pesquisa de acordo com a relevância. Para mais informações, consulte Ordenar resultados de pesquisa de saúde.

  1. Postar uma consulta em linguagem natural.

    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/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
    "query": "NATURAL_LANGUAGE_QUERY",
    "filter": "patientId: ANY(\"PATIENT_ID\")",
    "contentSearchSpec":{"snippetSpec":{"returnSnippet":true}},
    "naturalLanguageQueryUnderstandingSpec":{"filterExtractionCondition":"ENABLED"},
    "displaySpec": {
        "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION"
      }
    }'
    

    Substitua:

    • PROJECT_ID: o ID do projeto Google Cloud .
    • APP_ID: o ID do app da Vertex AI para Pesquisa que você quer consultar.
    • NATURAL_LANGUAGE_QUERY: a consulta em linguagem natural, como "Resultados de laboratório relacionados a diabetes" ou "O paciente está tomando algum medicamento?".
    • PATIENT_ID: o ID do recurso do paciente cujos dados você quer pesquisar.
    • MATCH_HIGHLIGHTING_CONDITION: uma string que pode ter os seguintes valores:
      • MATCH_HIGHLIGHTING_DISABLED: desativa o destaque de correspondências em todos os documentos.
      • MATCH_HIGHLIGHTING_ENABLED: ativa o destaque de correspondência em todos os documentos. Quando você deixa esse campo em branco ou não o especifica, o destaque de correspondência é definido como MATCH_HIGHLIGHTING_DISABLED e desativado em todos os documentos.

Pesquisar usando a consulta de linguagem natural com a resposta de IA generativa

Ao pesquisar os dados FHIR de um paciente usando uma consulta em linguagem natural, você pode escolher receber uma resposta de IA generativa junto com os resultados da pesquisa. A resposta resume os resultados da pesquisa e também mostra as referências usadas para gerar a resposta.

Ao usar o console, você pode selecionar o modelo de linguagem grande (LLM) para respostas de IA generativa. Para mais informações, consulte Configurar resultados de pesquisa para dados de saúde.

Ao usar a API REST, você pode especificar um dos seguintes modelos de LLM para receber respostas de IA generativa no campo version:

  • gemini-1.5-flash-001/answer_gen/v1 ou stable: um modelo estável e geralmente disponível com base no modelo gemini-1.5-flash-001. Para mais informações, consulte Modelos de disponibilidade geral (GA).
  • gemini-1.0-pro-002/answer_gen/v1: uma pesquisa da Vertex AI baseada no modelo gemini-1.0-pro-002. Para mais informações, consulte Modelos de disponibilidade geral (GA).
  • gemini-1.5-pro-002 ou preview: um modelo de visualização baseado no modelo gemini-1.5-pro.

A imagem a seguir mostra um exemplo de consulta de linguagem natural com resposta de IA gerativa. O resumo da pesquisa fornece uma resposta para a consulta resumindo as descobertas dos resultados relevantes. É possível expandir os segmentos que têm citações para conferir as referências usadas para gerar o segmento selecionado. Nem todas as respostas geradas têm citações.

A consulta é "Quais são os
laboratórios de lípidos do paciente?". Os resultados da pesquisa são mostrados em um formato
tabular . Os
resultados da pesquisa são acompanhados por um resumo gerado pela IA generativa que diz "O paciente não tem
alergias conhecidas".
Figura 3. Pesquise usando a consulta de linguagem natural com a resposta de IA generativa.

Para pesquisar com a resposta de IA generativa, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Criador de agentes.

    Agent Builder.

  2. Selecione o app de pesquisa de saúde que você quer consultar.

  3. No menu de navegação, clique em Configurações.

  4. Personalize o widget de pesquisa:

    1. No campo Tipo de pesquisa, selecione Pesquisar com uma resposta.
    2. Selecione o modelo que você quer usar para gerar o resumo. Para mais informações, consulte Configurar resultados de pesquisa para dados de saúde.
    3. Salve e publique suas preferências.
  5. No menu de navegação, clique em Visualizar.

  6. No campo ID do paciente, insira o ID do paciente cujos dados você quer consultar. Os IDs dos pacientes diferenciam maiúsculas de minúsculas.

  7. Pressione Enter ou clique em Visualizar para enviar o ID do paciente.

  8. Na barra de pesquisa Pesquisar aqui, digite uma consulta em linguagem natural, como "nsaids", "Quais são os exames de lipidograma do paciente" ou "Qual é o resultado mais recente de A1C".

    Se você tiver ativado o preenchimento automático, uma lista de sugestões vai aparecer abaixo da barra de pesquisa conforme você digita.

  9. Pressione Enter para enviar a consulta.

    • A resposta da IA generativa aparece abaixo da barra de pesquisa.
    • Os resultados da pesquisa são mostrados em tabelas paginadas categorizadas com base no tipo de recurso do FHIR.
    • Por padrão, os resultados da pesquisa de todos os tipos de recurso do FHIR são mostrados em ordem cronológica inversa.
  10. Opcional. Abra um segmento da resposta que tenha citações para conferir as referências nos resultados da pesquisa.

  11. Opcional. Selecione uma ou mais categorias de recursos do FHIR que estão abaixo da barra de pesquisa para filtrar os resultados.

  12. Opcional. Para ordenar os resultados de acordo com a relevância para os recursos Composition, DocumentReference e DiagnosticReport, clique no filtro Sort: Reverse Chronological e selecione Relevance na lista. Para mais informações, consulte Ordenar resultados de pesquisa de saúde.

REST

O exemplo a seguir mostra como pesquisar os dados do FHIR R4 de um único paciente no app de pesquisa de saúde usando uma consulta de linguagem natural com respostas de IA generativa. Este exemplo usa o método servingConfigs.search.

  • Para pesquisar usando uma consulta de linguagem natural, adicione o campo naturalLanguageQueryUnderstandingSpec ao corpo da solicitação.
  • Para incluir índices de citação inline, adicione o campo includeCitations. Este é um campo booleano com o padrão definido como false.

Por padrão, os resultados da pesquisa são retornados em ordem cronológica inversa. Ao pesquisar nos recursos Composition, DiagnosticReport e DocumentReference, você pode ordenar os resultados da pesquisa de acordo com a relevância. Para mais informações, consulte Ordenar resultados de pesquisa de saúde.

  1. Postar uma consulta em linguagem natural.

    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/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "filter": "patientId: ANY(\"PATIENT_ID\")",
            "contentSearchSpec": {
              "snippetSpec": {
                "returnSnippet": true
              },
              "displaySpec": {
                  "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION"
              }
              "summarySpec": {
                "summaryResultCount": 1,
                "includeCitations": true,
                "modelSpec": {
                  "version": "MODEL_VERSION"
                }
              }
            },
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED"
            }
      }'
    

    Substitua:

    • PROJECT_ID: o ID do projeto Google Cloud .
    • APP_ID: o ID do app da Vertex AI para Pesquisa que você quer consultar.
    • QUERY: a consulta em linguagem natural, como "nsaids", "What are the patients lipid labs" ou "What is the most recent A1C result". Se a consulta incluir um apóstrofo ', substitua-o pela referência de caractere numérico do apóstrofo: '.
    • PATIENT_ID: o ID do recurso do paciente cujos dados você quer pesquisar.
    • MODEL_VERSION: a versão do modelo que você quer usar para gerar a resposta.
    • MATCH_HIGHLIGHTING_CONDITION: uma string que pode ter os seguintes valores:
      • MATCH_HIGHLIGHTING_DISABLED: desativa o destaque de correspondências em todos os documentos.
      • MATCH_HIGHLIGHTING_ENABLED: ativa o destaque de correspondência em todos os documentos. Quando você deixa esse campo em branco ou não o especifica, o destaque de correspondência é definido como MATCH_HIGHLIGHTING_DISABLED e desativado em todos os documentos.