Receber resultados da pesquisa de dados de saúde

Depois de importar dados do FHIR R4 para o app de pesquisa de saúde, é possível consultar os dados importados para receber resultados relevantes. É possível pesquisar usando os seguintes tipos de consultas:

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

Além disso, é possível filtrar sua pesquisa usando consultas filtradas por data. Para mais informações, consulte Definir um filtro resource_datetime.

Ao pesquisar no console Google Cloud , primeiro você precisa 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 de 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. O produto não foi criado para responder a perguntas sobre recomendações de diagnóstico ou tratamento. O uso pretendido deste produto é recuperar e resumir informações médicas fornecidas pelos usuários.

Devido à limitação dos dados de teste, este produto pode ou não ser aplicável a grupos etários de 0 a 18 anos e de 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 alguns exemplos de como o produto deve ser usado:

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

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

    • "Mostre o A1c mais recente"
  • Perguntas e respostas extrativas para responder a perguntas específicas em que as evidências podem estar espalhadas por vários recursos:

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

Confira exemplos de como não usar este produto:

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

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

Diretrizes de consulta

As diretrizes a seguir podem ajudar você a criar uma consulta que ofereça melhores resultados de pesquisa:

  • Pesquise consultas com uma 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 "resumo". Enquanto a consulta "hipertensão" traz resultados específicos de documentos relevantes, a consulta "resumo" pode trazer resultados de documentos que não são relevantes.

  • Preserve o contexto: como a pesquisa não é uma conversa, é melhor fornecer o contexto completo de cada consulta. Por exemplo, se a consulta inicial for "hipertensão" e você quiser continuar falando sobre o mesmo assunto, "quando a hipertensão foi diagnosticada" é uma segunda consulta melhor do que "quando ela foi diagnosticada".

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

  • Evite pedir inferências: a Pesquisa oferece resultados mais precisos quando o modelo pode retornar informações textuais dos documentos pesquisados em vez de calcular ou deduzir com base nas informações pesquisadas. Por exemplo, em vez de perguntar "quanto o peso do paciente mudou", você pode perguntar "liste o peso do paciente nas últimas 10 consultas" e calcular a mudança de peso separadamente.

Destaque de correspondências nos resultados

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

Os resultados dos seguintes tipos de recursos oferecem suporte ao destaque de correspondência:

  • 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 referidos no campo DocumentReference.content[0].attachment.url. O texto destacado está dentro de 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. Realce de correspondências em um documento digitalizado DocumentReference.

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

  • Para documentos "Composition" e "DiagnosticReport", o campo match_highlighting contém os índices de início e fim 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 aninha o campo page_number, que é definido como 0 para imagens e 1 para a primeira página de arquivos PDF.

Quando você visualiza os resultados da pesquisa usando o console Google Cloud , o destaque de correspondência é ativado por padrão.

Antes de começar

Antes de pesquisar, faça o seguinte:

Você pode 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 FHIR relevantes.

A imagem a seguir mostra os resultados da pesquisa quando a palavra-chave é "lipídio". Este exemplo não inclui um resumo nem uma resposta de IA generativa.

A consulta é "lipídio".
Figura 2. Pesquisar usando palavra-chave.

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

Console

  1. No console Google Cloud , acesse a página Aplicativos de IA.

    Aplicativos de IA

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

  3. No menu de navegação, clique em Pré-lançamento.

  4. No campo ID do paciente, insira o ID do paciente cujos dados você quer consultar. Os IDs de 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 para pesquisar.

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

  7. Pressione Enter para enviar a consulta.

    • Os resultados da pesquisa são exibidos em tabelas paginadas categorizadas com base no tipo de recurso do FHIR.
    • Por padrão, os resultados da pesquisa para todos os tipos de recursos 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 abaixo da 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 Ordenar: cronologia inversa e selecione Relevância na lista. Para mais informações, consulte Ordenar resultados da 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 os recursos Composition, DiagnosticReport e DocumentReference, é possível ordenar os resultados de acordo com a relevância. Para mais informações, consulte Ordenar resultados da 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 seu Google Cloud projeto.
    • 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 vazio 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ê recebe resultados para consultas complexas de linguagem natural. Por exemplo, a imagem a seguir mostra os resultados da consulta em linguagem natural: "Resultados de exames relacionados ao diabetes".

A consulta é "Quais são os exames de lipídios do paciente?".
Figura 4. Pesquisar usando consultas em linguagem natural.

Para pesquisar usando uma consulta em linguagem natural, siga estas etapas.

Console

  1. No console Google Cloud , acesse a página Aplicativos de IA.

    Aplicativos de IA

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

  3. No menu de navegação, clique em Pré-lançamento.

  4. No campo ID do paciente, insira o ID do paciente cujos dados você quer consultar. Os IDs de 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 consulta em linguagem natural, como "Resultados de exames relacionados ao diabetes".

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

  7. Pressione Enter para enviar a consulta.

    • Os resultados da pesquisa são exibidos em tabelas paginadas categorizadas com base no tipo de recurso do FHIR.
    • Por padrão, os resultados da pesquisa para todos os tipos de recursos do FHIR são mostrados em ordem cronológica inversa.
  8. Opcional. Selecione uma ou mais categorias de recursos do FHIR 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 Ordenar: cronologia inversa e selecione Relevância na lista. Para mais informações, consulte Ordenar resultados da 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 em linguagem natural. Este exemplo usa o método servingConfigs.search. Para pesquisar usando uma consulta em 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 os recursos Composition, DiagnosticReport e DocumentReference, é possível ordenar os resultados de acordo com a relevância. Para mais informações, consulte Ordenar resultados da pesquisa de saúde.

  1. Poste 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 seu Google Cloud projeto.
    • 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 exames 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 vazio ou não o especifica, o destaque de correspondência é definido como MATCH_HIGHLIGHTING_DISABLED e desativado em todos os documentos.

Pesquisar usando consultas em linguagem natural com respostas da 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 gerá-la.

Ao usar o console, é possível selecionar o modelo de linguagem grande (LLM) para respostas de IA generativa. Para mais informações, consulte Configurar resultados da pesquisa para dados de saúde.

Ao usar a API REST, é possível 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 com disponibilidade geral baseado no modelo gemini-1.5-flash-001. Para mais informações, consulte Modelos em disponibilidade geral (GA).

  • gemini-1.5-pro-002 ou preview: um modelo de prévia baseado no modelo gemini-1.5-pro.

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

A consulta é "Quais são os exames de lipídios do paciente". Os resultados da pesquisa são mostrados em formato tabular . Os resultados da pesquisa são acompanhados de um resumo gerado pela IA generativa que diz: "O paciente não tem alergias conhecidas".
Figura 3. Pesquise usando uma consulta em linguagem natural com uma resposta de IA generativa.

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

Console

  1. No console Google Cloud , acesse a página Aplicativos de IA.

    Aplicativos de IA

  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 da pesquisa para dados de saúde.
    3. Salve e publique suas preferências.
  5. No menu de navegação, clique em Pré-lançamento.

  6. No campo ID do paciente, insira o ID do paciente cujos dados você quer consultar. Os IDs de 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, insira uma consulta em linguagem natural, como "AINEs", "Quais são os exames de lipídios do paciente" ou "Qual é o resultado mais recente de A1C".

    Se você ativou o preenchimento automático, uma lista de sugestões vai aparecer abaixo da barra de pesquisa enquanto 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 exibidos em tabelas paginadas categorizadas com base no tipo de recurso do FHIR.
    • Por padrão, os resultados da pesquisa para todos os tipos de recursos do FHIR são mostrados em ordem cronológica inversa.
  10. Opcional. Abra um segmento da resposta que tenha citações para ver as referências nos resultados da pesquisa.

  11. Opcional. Selecione uma ou mais categorias de recursos do FHIR 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 Ordenar: cronologia inversa e selecione Relevância na lista. Para mais informações, consulte Ordenar resultados da 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 em linguagem natural com respostas de IA generativa. Este exemplo usa o método servingConfigs.search.

  • Para pesquisar usando uma consulta em linguagem natural, adicione o campo naturalLanguageQueryUnderstandingSpec ao corpo da solicitação.
  • Para incluir índices de citações inline, adicione o campo includeCitations. Esse é 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 os recursos Composition, DiagnosticReport e DocumentReference, é possível ordenar os resultados de acordo com a relevância. Para mais informações, consulte Ordenar resultados da pesquisa de saúde.

  1. Poste 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 seu Google Cloud projeto.
    • APP_ID: o ID do app da Vertex AI para Pesquisa que você quer consultar.
    • QUERY: a consulta em linguagem natural, como "AINEs", "Quais são os exames de lipídios dos pacientes?" ou "Qual é o resultado mais recente de A1C?". 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 vazio ou não o especifica, o destaque de correspondência é definido como MATCH_HIGHLIGHTING_DISABLED e desativado em todos os documentos.