Obtener resultados de búsqueda de datos sanitarios

Después de importar datos de FHIR R4 en tu aplicación de búsqueda de datos sanitarios, puedes consultar los datos importados para obtener resultados relevantes. Puedes buscar con los siguientes tipos de consultas:

  • Consulta de palabra clave
  • Consulta en lenguaje natural
  • Consulta en 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 Definir un filtro resource_datetime.

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

En esta página se muestra cómo buscar datos sanitarios usando los distintos tipos de consultas.

Uso previsto de Vertex AI Search para buscar datos sanitarios

Vertex AI Search no se ha diseñado para 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 obtener y resumir la información médica proporcionada por los usuarios.

Debido a la limitación de los datos de las pruebas, es posible que este producto no se aplique a los grupos de edad de 0 a 18 años y de 85 años o más. Por lo tanto, al revisar los resultados generados, los clientes deben tener en cuenta la representatividad de las subpoblaciones en sus datos de origen.

A continuación se muestran algunos ejemplos de cómo se debe usar este producto:

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

    • "Summarize the aspirin uses" ("Resume los usos de la aspirina")
    • "presión arterial"
    • "¿gestión de la diabetes?"
  • Consultas de navegación para encontrar recursos específicos que se puedan asignar a una consulta estructurada:

    • "Show me the most recent a1c" ("Muéstrame la hemoglobina glucosilada más reciente")
  • Preguntas y respuestas extractivas para responder a preguntas específicas en las que las pruebas pueden estar repartidas en varios recursos:

    • "¿Se ha tratado alguna vez a este paciente con una cefalosporina?"
    • "¿Se ha sometido el paciente a una evaluación psiquiátrica?"

A continuación, se muestran 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 recetar al paciente?"

Directrices de las consultas

Las siguientes directrices pueden ayudarte a formular una consulta que te proporcione mejores resultados de búsqueda:

  • Busca consultas con una intención específica: como el modelo no sabe lo que buscas, es mejor que proporciones una consulta específica en lugar de una vaga. Por ejemplo, es mejor buscar la palabra clave "hipertensión" que "resumen". Mientras que la consulta "hipertensión" muestra resultados específicos de documentos relevantes, la consulta "resumen" puede mostrar resultados de documentos que no sean relevantes.

  • Mantener el contexto: como la búsqueda no es conversacional, es mejor proporcionar el contexto completo de cada consulta. Por ejemplo, si tu consulta inicial es "hipertensión" y quieres hacer un seguimiento sobre el mismo tema, es mejor que la segunda consulta sea "¿cuándo se diagnosticó la hipertensión?" en lugar de "¿cuándo se diagnosticó ?".

  • Simplifica la consulta: siempre que sea posible, divide las consultas complejas en otras más sencillas. Por ejemplo, en lugar de buscar "creatinina y albúmina", crea diferentes consultas para "creatinina", "albúmina" y "relación creatinina/albúmina", en función de tu objetivo.

  • Evita pedir inferencias: la Búsqueda proporciona resultados más precisos cuando el modelo puede devolver información literal de los documentos en los que busca, en lugar de calcular o deducir a partir de la información buscada. Por ejemplo, en lugar de preguntar "¿Cuánto ha cambiado el peso del paciente?", puedes preguntar "¿Cuál es el peso del paciente en las últimas 10 visitas?" y, después, calcular el cambio de peso por separado.

Resaltar coincidencias en los resultados

El resaltado de coincidencias es una configuración que destaca partes del texto de un resultado de búsqueda que coinciden contextualmente con la consulta de búsqueda.

Los resultados de los siguientes tipos de recursos admiten el resaltado de coincidencias:

  • Composición: destaca el texto contextual del campo Composition.section[].text.div.
  • DiagnosticReport: destaca el texto contextual del campo DiagnosticReport.conclusion.
  • DocumentReference: destaca el texto contextual de los documentos a los que se hace referencia en el campo DocumentReference.content[0].attachment.url. El texto resaltado está dentro de un cuadro de delimitación. El cuadro delimitador se representa mediante dos conjuntos de coordenadas normalizadas en la respuesta de búsqueda. Los documentos que admiten el resaltado de coincidencias son archivos PDF y archivos de imagen con tipos admitidos. En la siguiente imagen se muestra cómo se destaca el texto en un documento escaneado del tipo de recurso DocumentReference:

    La consulta es "insulina".
    Imagen 1. Resaltado de coincidencias en un documento escaneado de DocumentReference.

Cuando hagas búsquedas con la API REST, debes habilitar el resaltado de coincidencias en tu solicitud de búsqueda mediante el campo matchHighlightingCondition. La respuesta contiene el campo match_highlighting, que puedes usar para renderizar el texto destacado en tu aplicación de búsqueda:

  • En los documentos Composition y DiagnosticReport, el campo match_highlighting contiene los índices de inicio y finalización del token que se debe destacar.
  • En el caso de los documentos DocumentReference, el campo match_highlighting contiene las coordenadas del cuadro delimitador que destaca el texto. El cuadro delimitador se representa mediante dos conjuntos de coordenadas normalizadas cuyo origen se encuentra en la esquina superior izquierda del documento. Este campo también anida el campo page_number, que se define como 0 para las imágenes y 1 para la primera página de los archivos PDF.

Cuando previsualiza los resultados de búsqueda con la Google Cloud consola, el resaltado de coincidencias está habilitado de forma predeterminada.

Antes de empezar

Antes de hacer búsquedas, haz lo siguiente:

Puedes buscar en tu almacén de datos sanitarios con una palabra clave. Por ejemplo, puedes buscar con palabras clave como "a1c", "insulin" o "ulcer" para obtener recursos FHIR relevantes.

En la siguiente imagen se muestran los resultados de búsqueda cuando la palabra clave es "lípidos". En este ejemplo no se incluye un resumen ni una respuesta de IA generativa.

La consulta es "lípidos".
Imagen 2. Busca por palabra clave.

Para buscar con una palabra clave, sigue estos pasos.

Consola

  1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

    Aplicaciones de IA

  2. Selecciona la aplicación de búsqueda de información sanitaria que quieras consultar.

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

  4. En el campo ID de paciente, introduce el ID del paciente cuyos datos quieras consultar. Los IDs de paciente distinguen entre mayúsculas y minúsculas.

  5. Pulsa Intro o haz clic en Vista previa para enviar el ID del paciente.

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

    Si has habilitado la función Autocompletar, verás una lista de sugerencias debajo de la barra de búsqueda a medida que escribas.

  7. Pulsa Intro para enviar la consulta.

    • Los resultados de búsqueda se muestran en tablas paginadas que se clasifican según su tipo de recurso FHIR.
    • De forma predeterminada, los resultados de 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 varias categorías de recursos FHIR situadas debajo de la barra de búsqueda.

  9. Opcional. Para ordenar los resultados según la relevancia de los recursos 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 el artículo Ordenar resultados de búsqueda de atención sanitaria.

REST

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

De forma predeterminada, los resultados de búsqueda se devuelven en orden cronológico inverso. Cuando buscas en los recursos Composition, DiagnosticReport y DocumentReference, puedes ordenar los resultados de búsqueda por relevancia. Para obtener más información, consulta el artículo Ordenar resultados de búsqueda de atención sanitaria.

  1. Buscar 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}}
    "displaySpec": {
        "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION"
      }
    }'
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de tu proyecto de Google Cloud .
    • APP_ID: el ID de la aplicación de Vertex AI Search que quieres consultar.
    • KEYWORD_QUERY: la palabra clave que quieres buscar en los datos clínicos del paciente filtrado, como "diabetes" o "a1c".
    • PATIENT_ID: el ID del recurso del paciente cuyos datos quieres buscar.
    • MATCH_HIGHLIGHTING_CONDITION: una cadena que puede tener los siguientes valores:
      • MATCH_HIGHLIGHTING_DISABLED: desactiva el resaltado de coincidencias en todos los documentos.
      • MATCH_HIGHLIGHTING_ENABLED: activa el resaltado de coincidencias en todos los documentos. Si deja este campo vacío o no lo especifica, el resaltado de coincidencias se define como MATCH_HIGHLIGHTING_DISABLED y se desactiva en todos los documentos.

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

La consulta es "¿Cuáles son los análisis de lípidos del paciente?".
Imagen 4. Buscar usando consultas en lenguaje natural.

Para hacer búsquedas con consultas en lenguaje natural, sigue estos pasos.

Consola

  1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

    Aplicaciones de IA

  2. Selecciona la aplicación de búsqueda de información sanitaria que quieras consultar.

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

  4. En el campo ID de paciente, introduce el ID del paciente cuyos datos quieras consultar. Los IDs de paciente distinguen entre mayúsculas y minúsculas.

  5. Pulsa Intro o haz clic en Vista previa para enviar el ID del paciente.

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

    Si has habilitado la función Autocompletar, verás una lista de sugerencias debajo de la barra de búsqueda a medida que escribas.

  7. Pulsa Intro para enviar la consulta.

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

  9. Opcional. Para ordenar los resultados según la relevancia de los recursos 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 el artículo Ordenar resultados de búsqueda de atención sanitaria.

REST

En el siguiente ejemplo se muestra cómo buscar los datos de FHIR R4 de un solo paciente en la aplicación de búsqueda de asistencia sanitaria mediante una consulta en lenguaje natural. En este ejemplo se usa el método servingConfigs.search. Para buscar con una consulta en lenguaje natural, debe añadir el campo naturalLanguageQueryUnderstandingSpec al cuerpo de la solicitud.

De forma predeterminada, los resultados de búsqueda se devuelven en orden cronológico inverso. Cuando buscas en los recursos Composition, DiagnosticReport y DocumentReference, puedes ordenar los resultados de búsqueda por relevancia. Para obtener más información, consulta el artículo Ordenar resultados de búsqueda de atención sanitaria.

  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"},
    "displaySpec": {
        "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION"
      }
    }'
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de tu proyecto de Google Cloud .
    • APP_ID: el ID de la aplicación de Vertex AI Search que quieres consultar.
    • NATURAL_LANGUAGE_QUERY: la consulta en lenguaje natural, como "Resultados de laboratorio relacionados con la diabetes" o "¿El paciente está tomando alguna medicación?".
    • PATIENT_ID: el ID del recurso del paciente cuyos datos quieres buscar.
    • MATCH_HIGHLIGHTING_CONDITION: una cadena que puede tener los siguientes valores:
      • MATCH_HIGHLIGHTING_DISABLED: desactiva el resaltado de coincidencias en todos los documentos.
      • MATCH_HIGHLIGHTING_ENABLED: activa el resaltado de coincidencias en todos los documentos. Si deja este campo vacío o no lo especifica, el resaltado de coincidencias se define como MATCH_HIGHLIGHTING_DISABLED y se desactiva en todos los documentos.

Buscar con una consulta en lenguaje natural y una respuesta de IA generativa

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

Cuando usas la consola, puedes seleccionar el modelo de lenguaje extenso (LLM) para las respuestas de IA generativa. Para obtener más información, consulta el artículo sobre cómo configurar los resultados de búsqueda de datos sanitarios.

Cuando usas la API 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 disponibles para todos los usuarios.

  • gemini-1.5-pro-002 o preview: un modelo de vista previa basado en el modelo gemini-1.5-pro.

En la siguiente imagen se muestra un ejemplo de una consulta en lenguaje natural con una respuesta de IA generativa. El resumen de la búsqueda proporciona una respuesta a la consulta resumiendo los hallazgos de los resultados relevantes. Puede desplegar los segmentos que tengan citas para ver las referencias que se han usado 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 búsqueda se muestran en formato tabular . Los resultados de búsqueda se acompañan de un resumen generado por IA generativa que dice: "El paciente no tiene alergias conocidas".
Imagen 3. Búsqueda con consultas en lenguaje natural y respuestas de IA generativa.

Para hacer una búsqueda con la respuesta de la IA generativa, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

    Aplicaciones de IA

  2. Selecciona la aplicación de búsqueda de información sanitaria 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 quieras usar para generar el resumen. Para obtener más información, consulta Configurar los resultados de búsqueda de datos sanitarios.
    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, introduce el ID del paciente cuyos datos quieras consultar. Los IDs de paciente distinguen entre mayúsculas y minúsculas.

  7. Pulsa Intro o haz clic en Vista previa para enviar el ID del paciente.

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

    Si has habilitado la función Autocompletar, verás una lista de sugerencias debajo de la barra de búsqueda a medida que escribas.

  9. Pulsa Intro para enviar la consulta.

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

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

  12. Opcional. Para ordenar los resultados según la relevancia de los recursos 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 el artículo Ordenar resultados de búsqueda de atención sanitaria.

REST

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

  • Para hacer búsquedas con una consulta en lenguaje natural, debe añadir el campo naturalLanguageQueryUnderstandingSpec al cuerpo de la solicitud.
  • Para incluir índices de citas en el texto, debes añadir el campo includeCitations. Se trata de un campo booleano cuyo valor predeterminado es false.

De forma predeterminada, los resultados de búsqueda se devuelven en orden cronológico inverso. Cuando buscas en los recursos Composition, DiagnosticReport y DocumentReference, puedes ordenar los resultados de búsqueda por relevancia. Para obtener más información, consulta el artículo Ordenar resultados de búsqueda de atención sanitaria.

  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
              },
              "displaySpec": {
                  "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION"
              }
              "summarySpec": {
                "summaryResultCount": 1,
                "includeCitations": true,
                "modelSpec": {
                  "version": "MODEL_VERSION"
                }
              }
            },
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED"
            }
      }'
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de tu proyecto de Google Cloud .
    • APP_ID: el ID de la aplicación de Vertex AI Search que quieres consultar.
    • QUERY: la consulta en lenguaje natural, como "AINEs", "¿Cuáles son los análisis de lípidos de los pacientes?" o "¿Cuál es el resultado más reciente de la prueba de hemoglobina A1c?". Si la consulta incluye un apóstrofo ', debes sustituirlo por la referencia de carácter numérico del apóstrofo: '.
    • PATIENT_ID: el ID del recurso del paciente cuyos datos quieres buscar.
    • MODEL_VERSION: la versión del modelo que quieres usar para generar la respuesta.
    • MATCH_HIGHLIGHTING_CONDITION: una cadena que puede tener los siguientes valores:
      • MATCH_HIGHLIGHTING_DISABLED: desactiva el resaltado de coincidencias en todos los documentos.
      • MATCH_HIGHLIGHTING_ENABLED: activa el resaltado de coincidencias en todos los documentos. Si deja este campo vacío o no lo especifica, el resaltado de coincidencias se define como MATCH_HIGHLIGHTING_DISABLED y se desactiva en todos los documentos.