Busca datos de atención médica

Después de importar datos de FHIR R4 a tu app de búsqueda de atención médica, puedes consultar los datos importados para obtener resultados relevantes. Puedes realizar búsquedas con los siguientes tipos de consultas:

  • Búsqueda de palabras clave
  • Consulta sobre el lenguaje natural
  • Búsqueda de lenguaje natural con una respuesta de IA generativa

Además, puedes filtrar tu búsqueda con consultas filtradas por fecha. Para obtener más información, consulta Cómo definir un filtro resource_datetime.

Cuando realizas una búsqueda en la consola de Google Cloud, primero debes proporcionar un ID de paciente y buscar en los datos de un solo paciente a la vez. Cuando realizas una búsqueda con la API de REST, puedes buscar en todo tu almacén de datos.

En esta página, se muestra cómo buscar datos de atención médica con los diversos tipos de consultas.

Uso previsto de Vertex AI Search para buscar datos de atención médica

El uso previsto de Vertex AI Search no es proporcionar información relacionada con la prevención, el diagnóstico o el tratamiento de enfermedades. El producto no está diseñado para responder preguntas sobre diagnósticos o recomendaciones de tratamiento. El uso previsto de este producto es recuperar y resumir la información médica existente que proporcionan los usuarios.

Debido a la limitación de los datos de prueba, es posible que este producto sea aplicable o no a los grupos de edad de 0 a 18 años y de 85 años en adelante. Por lo tanto, cuando revisen el resultado generado, los clientes deben considerar la representatividad de las subpoblaciones dentro de sus datos de origen.

Los siguientes son algunos ejemplos de cómo se debe usar este producto:

  • Consultas exploratorias para encontrar información de un paciente relevante para un tema:

    • “Resumen de los usos de la aspirina”
    • "blood pressure"
    • "¿Cómo controlas la diabetes?"
  • Búsquedas de navegación para encontrar recursos específicos que se podrían asignar a una búsqueda estructurada:

    • "Muéstrame el valor de A1c más reciente"
  • Preguntas y respuestas extractivas para responder preguntas específicas en las que la evidencia puede estar repartida entre varios recursos:

    • "¿Se trató a este paciente con una cefalosporina?"
    • "¿Se sometió el paciente a una evaluación psiquiátrica?"

Los siguientes son ejemplos de cómo no se debe usar este producto:

  • Recomendaciones de diagnóstico y tratamiento:

    • "¿Cuál es el diagnóstico diferencial de este paciente?"
    • "¿Qué medicamentos debo recetarle al paciente?"

Lineamientos de consulta

Los siguientes lineamientos pueden ayudarte a formular una consulta que te brinde mejores resultados de búsqueda:

  • Busca consultas con un intent específico: Como el modelo no sabe lo que estás buscando, es mejor proporcionar una búsqueda segmentada que una vaga. Por ejemplo, es mejor buscar la palabra clave "hipertensión" que la palabra clave "resumen". Mientras que la consulta “hipertensión” muestra resultados específicos de documentos relevantes, la consulta “resumen” puede mostrar resultados de documentos que no son relevantes.

  • Preserva el contexto: Como la búsqueda no es conversacional, es mejor proporcionar el contexto completo de cada búsqueda. Por ejemplo, si tu consulta inicial es “hipertensión” y quieres hacer un seguimiento sobre el mismo tema, “cuándo se diagnosticó hipertensión” es una mejor segunda consulta que “cuándo se diagnosticó la”.

  • Simplifica la consulta: Siempre que sea posible, divide las consultas complejas en consultas más simples. Por ejemplo, en lugar de buscar "creatinina y albúmina", crea diferentes consultas para "creatinina", "albúmina" y "proporción de creatinina y albúmina", según tu objetivo.

  • Evita solicitar inferencias: La búsqueda proporciona resultados más precisos cuando el modelo puede mostrar información literal de los documentos en los que busca, en lugar de calcular o deducir la información buscada. Por ejemplo, en lugar de consultar "cuánto cambió el peso del paciente", puedes consultar "enumerar el peso del paciente en las últimas 10 visitas" y, luego, calcular el cambio de peso por separado.

Antes de comenzar

Antes de realizar la búsqueda, haz lo siguiente:

Puedes buscar en tu almacén de datos de atención médica con una palabra clave. Por ejemplo, puedes realizar búsquedas con palabras clave como "a1c", "insulina" o "úlcera" para obtener recursos de FHIR relevantes.

En la siguiente imagen, se muestran los resultados de la búsqueda cuando la palabra clave es “lípido”. Este ejemplo no incluye un resumen ni una respuesta de IA generativa.

La consulta es "lipid".
Figura 1. Buscar con una palabra clave

Para realizar una búsqueda con una palabra clave, completa los siguientes pasos.

Console

  1. En la consola de Google Cloud, ve a la página Agent Builder.

    Agent Builder

  2. Selecciona la app de búsqueda de atención médica que quieras consultar.

  3. En el menú de navegación, haz clic en Vista previa.

  4. En el campo ID de paciente, ingresa el ID del paciente cuyos datos deseas consultar. Los IDs de paciente distinguen mayúsculas de minúsculas.

  5. Presiona Intro o haz clic en Obtener vista previa para enviar el ID del paciente.

  6. En la barra de búsqueda Buscar aquí, escribe una palabra clave para realizar la búsqueda.

    Si habilitaste el autocompletado, verás una lista de sugerencias de autocompletado debajo de la barra de búsqueda a medida que escribes.

  7. Presiona Intro para enviar la consulta.

    • Los resultados de la búsqueda se muestran en tablas paginadas que se clasifican según su tipo de recurso de FHIR.
    • De forma predeterminada, los resultados de la búsqueda de todos los tipos de recursos de FHIR se muestran en orden cronológico inverso.
  8. Opcional. Para filtrar los resultados, selecciona una o más categorías de recursos de FHIR que se encuentran debajo de la barra de búsqueda.

  9. Opcional. Para ordenar los resultados según la relevancia para los recursos de Composition, DocumentReference y DiagnosticReport, haz clic en el filtro Ordenar: Cronológico inverso y, en la lista, selecciona Relevancia. Para obtener más información, consulta Ordena los resultados de la búsqueda de atención médica.

REST

En el siguiente ejemplo, se muestra cómo buscar los datos de FHIR R4 de un solo paciente en la app de búsqueda de atención médica con una palabra clave. En este ejemplo, se usa el método servingConfigs.search.

De forma predeterminada, los resultados de la búsqueda se muestran en orden cronológico inverso. Cuando realizas una búsqueda en los recursos de Composition, DiagnosticReport y DocumentReference, puedes ordenar los resultados de la búsqueda según la relevancia. Para obtener más información, consulta Ordena los resultados de la búsqueda de atención médica.

  1. Busca con una palabra clave.

    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}}
    }'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto de Google Cloud.
    • APP_ID: El ID de la app de Vertex AI Search que quieres consultar.
    • KEYWORD_QUERY: Es la palabra clave que deseas buscar en los datos clínicos del paciente filtrado, como “diabetes” o “a1c”.
    • PATIENT_ID: Es el ID del recurso del paciente cuyos datos deseas buscar.

Con Vertex AI Search, puedes obtener resultados para consultas complejas de lenguaje natural. Por ejemplo, la siguiente imagen muestra los resultados de la consulta de lenguaje natural: "Resultados de laboratorio relacionados con la diabetes".

La consulta es "¿Cuáles son los análisis de lípidos del paciente?".
Figura 2. Buscar con una consulta de lenguaje natural

Para realizar una búsqueda con una consulta de lenguaje natural, sigue estos pasos.

Console

  1. En la consola de Google Cloud, ve a la página Agent Builder.

    Agent Builder

  2. Selecciona la app de búsqueda de atención médica que quieras consultar.

  3. En el menú de navegación, haz clic en Vista previa.

  4. En el campo ID de paciente, ingresa el ID del paciente cuyos datos deseas consultar. Los IDs de paciente distinguen mayúsculas de minúsculas.

  5. Presiona Intro o haz clic en Obtener vista previa para enviar el ID del paciente.

  6. En la barra de búsqueda Buscar aquí, ingresa una búsqueda en lenguaje natural, como "Resultados de laboratorio relacionados con la diabetes".

    Si habilitaste el autocompletado, verás una lista de sugerencias debajo de la barra de búsqueda a medida que escribes.

  7. Presiona Intro para enviar la consulta.

    • Los resultados de la búsqueda se muestran en tablas paginadas que se clasifican según su tipo de recurso de FHIR.
    • De forma predeterminada, los resultados de la búsqueda de todos los tipos de recursos de FHIR se muestran en un orden cronológico inverso.
  8. Opcional. Selecciona una o más categorías de recursos de FHIR que se encuentran debajo de la barra de búsqueda para filtrar los resultados.

  9. Opcional. Para ordenar los resultados según la relevancia para los recursos de Composition, DocumentReference y DiagnosticReport, haz clic en el filtro Ordenar: Cronológico inverso y, en la lista, selecciona Relevancia. Para obtener más información, consulta Ordena los resultados de la búsqueda de atención médica.

REST

En el siguiente ejemplo, se muestra cómo buscar los datos de FHIR R4 de un solo paciente en la app de búsqueda de atención médica con una consulta de lenguaje natural. En este ejemplo, se usa el método servingConfigs.search. Para realizar una búsqueda con una consulta de lenguaje natural, debes agregar el campo naturalLanguageQueryUnderstandingSpec al cuerpo de la solicitud.

De forma predeterminada, los resultados de la búsqueda se muestran en orden cronológico inverso. Cuando realizas una búsqueda en los recursos de Composition, DiagnosticReport y DocumentReference, puedes ordenar los resultados de la búsqueda según la relevancia. Para obtener más información, consulta Ordena los resultados de la búsqueda de atención médica.

  1. Publica una consulta en lenguaje 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"}
    }'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto de Google Cloud.
    • APP_ID: El ID de la app de Vertex AI Search que quieres consultar.
    • NATURAL_LANGUAGE_QUERY: Es la consulta en lenguaje natural, como "Resultados de laboratorio relacionados con la diabetes" o "¿Está tomando algún medicamento el paciente?".
    • PATIENT_ID: Es el ID del recurso del paciente cuyos datos deseas buscar.

Realiza búsquedas con consultas en lenguaje natural con respuestas de IA generativa

Cuando buscas los datos de FHIR de un paciente con una consulta de lenguaje natural, puedes optar por obtener una respuesta de IA generativa junto con los resultados de la búsqueda. La respuesta resume los resultados de la búsqueda y también muestra las referencias que se usan para generarla.

Cuando usas la consola, puedes seleccionar el modelo de lenguaje grande (LLM) para las respuestas de IA generativa. Para obtener más información, consulta Cómo configurar los resultados de la búsqueda de datos de atención médica.

Cuando usas la API de REST, puedes especificar uno de los siguientes modelos de LLM para obtener respuestas de IA generativa en el campo version:

  • gemini-1.5-flash-001/answer_gen/v1 o stable: Un modelo estable y disponible de forma general que se basa en el modelo gemini-1.5-flash-001. Para obtener más información, consulta Modelos de disponibilidad general (DG).
  • gemini-1.0-pro-002/answer_gen/v1: Una búsqueda de Vertex AI basada en el modelo gemini-1.0-pro-002. Para obtener más información, consulta Modelos de disponibilidad general (DG).
  • medlm-medium/answer_gen/v1 opreview: Un modelo preliminar que se basa en el modelo de MedLM. Para obtener más información, consulta Modelo de MedLM.

En la siguiente imagen, se muestra un ejemplo de una consulta de lenguaje natural con una respuesta de IA generativa. El resumen de la búsqueda proporciona una respuesta a la consulta, ya que resume los resultados relevantes. Puedes expandir los segmentos que tienen citas para ver las referencias que se usan para generar el segmento seleccionado. No todas las respuestas generadas tienen citas.

La consulta es "¿Cuáles son los análisis de lípidos del paciente?". Los resultados de la búsqueda se muestran en un formato tabular . Los resultados de la búsqueda se acompañan de un resumen generado por IA generativa que dice "El paciente no tiene alergias conocidas".
Figura 3: Realiza búsquedas con consultas de lenguaje natural con respuestas de IA generativa.

Para realizar búsquedas con respuestas de IA generativa, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Agent Builder.

    Agent Builder

  2. Selecciona la app de búsqueda de atención médica que quieras consultar.

  3. En el menú de navegación, haz clic en Configuraciones.

  4. Personaliza el widget de búsqueda:

    1. En el campo Tipo de búsqueda, selecciona Búsqueda con una respuesta.
    2. Selecciona el modelo que deseas usar para generar el resumen. Para obtener más información, consulta Cómo configurar los resultados de la búsqueda de datos de atención médica.
    3. Guarda y publica tus preferencias.
  5. En el menú de navegación, haz clic en Vista previa.

  6. En el campo ID de paciente, ingresa el ID del paciente cuyos datos deseas consultar. Los IDs de paciente distinguen mayúsculas de minúsculas.

  7. Presiona Intro o haz clic en Obtener vista previa para enviar el ID del paciente.

  8. En la barra de búsqueda Buscar aquí, ingresa una consulta en lenguaje natural, como "nsaids", "¿Cuáles son los análisis de lípidos del paciente?" o "¿Cuál es el resultado de A1C más reciente?".

    Si habilitaste el autocompletado, verás una lista de sugerencias debajo de la barra de búsqueda a medida que escribes.

  9. Presiona Intro para enviar la consulta.

    • La respuesta de la IA generativa se muestra debajo de la barra de búsqueda.
    • Los resultados de la búsqueda se muestran en tablas paginadas que se clasifican según su tipo de recurso de FHIR.
    • De forma predeterminada, los resultados de la búsqueda de todos los tipos de recursos de FHIR se muestran en un orden cronológico inverso.
  10. Opcional. Expande un segmento de la respuesta que tenga citas para ver sus referencias en los resultados de la búsqueda.

  11. Opcional. Selecciona una o más categorías de recursos de FHIR que se encuentran debajo de la barra de búsqueda para filtrar los resultados.

  12. Opcional. Para ordenar los resultados según la relevancia para los recursos de Composition, DocumentReference y DiagnosticReport, haz clic en el filtro Ordenar: Cronológico inverso y, en la lista, selecciona Relevancia. Para obtener más información, consulta Ordena los resultados de la búsqueda de atención médica.

REST

En el siguiente ejemplo, se muestra cómo buscar los datos de FHIR R4 de un solo paciente en la app de búsqueda de atención médica con una consulta de lenguaje natural con respuestas de IA generativa. En este ejemplo, se usa el método servingConfigs.search.

  • Para realizar una búsqueda con una consulta de lenguaje natural, debes agregar el campo naturalLanguageQueryUnderstandingSpec al cuerpo de la solicitud.
  • Para incluir índices de citas intercalados, debes agregar el campo includeCitations. Este es un campo booleano con el valor predeterminado establecido en false.

De forma predeterminada, los resultados de la búsqueda se muestran en orden cronológico inverso. Cuando realizas una búsqueda en los recursos de Composition, DiagnosticReport y DocumentReference, puedes ordenar los resultados de la búsqueda según la relevancia. Para obtener más información, consulta Ordena los resultados de la búsqueda de atención médica.

  1. Publica una consulta en lenguaje 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
              },
              "summarySpec": {
                "summaryResultCount": 1,
                "includeCitations": true,
                "modelSpec": {
                  "version": "MODEL_VERSION"
                }
              }
            },
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED"
            }
          }'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto de Google Cloud.
    • APP_ID: El ID de la app de Vertex AI Search que quieres consultar.
    • QUERY: La consulta en lenguaje natural, como "nsaids", "¿Cuáles son los análisis de lípidos de los pacientes?" o "¿Cuál es el resultado más reciente de A1C?" Si la consulta incluye un apóstrofo ', debes reemplazarlo por la referencia de carácter numérico del apóstrofo: '.
    • PATIENT_ID: Es el ID del recurso del paciente cuyos datos deseas buscar.
    • MODEL_VERSION: Es la versión del modelo que deseas usar para generar la respuesta.