Usa la API de Healthcare Natural Language

En esta página, se explica cómo habilitar la API de Healthcare Natural Language, configurar los permisos y llamar al método analyzeEntities para extraer estadísticas médicas a partir de texto médico.

Descripción general

La API de Healthcare Natural Language proporciona soluciones de aprendizaje automático para obtener estadísticas a partir de texto médico. La API de Healthcare Natural Language forma parte de la API de Cloud Healthcare. Para obtener una descripción general de la API de Healthcare Natural Language, consulta la documentación conceptual de la API de Healthcare Natural Language.

La API de Healthcare Natural Language analiza texto médico no estructurado, como registros médicos o reclamos de seguros. Luego, genera una representación de datos estructurados de las entidades de conocimiento médico almacenadas en estas fuentes de datos para el análisis y la automatización posteriores. Por ejemplo, puede hacer lo siguiente:

  • Extrae información sobre conceptos médicos, como enfermedades, medicamentos, dispositivos médicos, procedimientos y sus atributos clínicos relevantes.
  • Asigna conceptos médicos a vocabularios estándar como RxNorm, ICD-10, MeSH y SNOMED CT (solo usuarios de EE.UU.)
  • Obtén estadísticas médicas a partir de texto y, luego, intégralas a productos de análisis de datos en Google Cloud

Ubicaciones disponibles

La API de Healthcare Natural Language está disponible en las siguientes ubicaciones:

Nombre de la ubicación Descripción de la ubicación
asia-south1 Bombay, India
australia-southeast1 Sídney, Australia
europe-west2 Londres, Reino Unido
europe-west4 Países Bajos
northamerica-northeast1 Montreal, Canadá
us-central1 Iowa, EE.UU.

Habilita la API de Healthcare Natural Language

Antes de comenzar a usar la API de Healthcare de Natural Language, debes habilitarla para tu proyecto de Google Cloud. Puedes usar la API de Healthcare Natural Language sin habilitar ni usar las funciones de la API de Cloud Healthcare.

Para habilitar la API, completa los siguientes pasos:

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Crear una cuenta de servicio:

    1. En la consola de Google Cloud, ve a la página Crear cuenta de servicio.

      Ve a Crear cuenta de servicio
    2. Elige tu proyecto.
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. La consola de Google Cloud completa el campo ID de cuenta de servicio en función de este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haz clic en Crear y continuar.
    5. Otorga el rol Project > Owner a la cuenta de servicio.

      Para otorgar el rol, busca la lista Seleccionar un rol y, luego, selecciona Project > Owner.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

      No cierres la ventana del navegador. La usarás en la próxima tarea.

  5. Haz lo siguiente para crear una clave de cuenta de servicio:

    1. En la consola de Google Cloud, haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
    2. Haga clic en Claves.
    3. Haz clic en Agregar clave y, luego, en Crear clave nueva.
    4. Haga clic en Crear. Se descargará un archivo de claves JSON en tu computadora.
    5. Haga clic en Cerrar.
  6. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene tus credenciales. Esta variable solo se aplica a la sesión actual de Cloud Shell. Por lo tanto, si abres una sesión nueva, deberás volver a configurar la variable.

  7. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  8. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  9. Crear una cuenta de servicio:

    1. En la consola de Google Cloud, ve a la página Crear cuenta de servicio.

      Ve a Crear cuenta de servicio
    2. Elige tu proyecto.
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. La consola de Google Cloud completa el campo ID de cuenta de servicio en función de este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haz clic en Crear y continuar.
    5. Otorga el rol Project > Owner a la cuenta de servicio.

      Para otorgar el rol, busca la lista Seleccionar un rol y, luego, selecciona Project > Owner.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

      No cierres la ventana del navegador. La usarás en la próxima tarea.

  10. Haz lo siguiente para crear una clave de cuenta de servicio:

    1. En la consola de Google Cloud, haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
    2. Haga clic en Claves.
    3. Haz clic en Agregar clave y, luego, en Crear clave nueva.
    4. Haga clic en Crear. Se descargará un archivo de claves JSON en tu computadora.
    5. Haga clic en Cerrar.
  11. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene tus credenciales. Esta variable solo se aplica a la sesión actual de Cloud Shell. Por lo tanto, si abres una sesión nueva, deberás volver a configurar la variable.

  12. Habilita Cloud Healthcare API.

    Habilita la API

  13. Instala Google Cloud CLI.
  14. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init

Configura los permisos

Para usar las funciones de esta guía, debes tener el permiso healthcare.nlpservice.analyzeEntities, que se incluye en la función healthcare.nlpServiceViewer.

Para asignar esta función, ejecuta el comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member serviceAccount:SERVICE_ACCOUNT_ID \
    --role roles/healthcare.nlpServiceViewer

Extrae entidades, relaciones y atributos contextuales

La API de Healthcare Natural Language usa modelos contextuales para extraer entidades médicas, relaciones y atributos contextuales. Cada entidad de texto se extrae a una entrada de diccionario médico. Para extraer este nivel de estadísticas médicas a partir de texto médico, usa el método projects.locations.services.nlp.analyzeEntities.

Para incluir el vocabulario con licencia de SNOMED CT en las menciones de tu entidad, consulta Cómo incluir vocabularios con licencia.

Para extraer estadísticas médicas de textos médicos mediante la API de Healthcare Natural Language, realiza una solicitud POST y especifica el texto de destino en el campo documentContent. El tamaño máximo del texto médico es de 20,000 caracteres Unicode.

En los siguientes ejemplos, se muestra cómo usar el método analyzeEntities para extraer estadísticas médicas del texto médico “Régimen de insulina 5 unidades IV se administrarán para la diabetes”.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_IDEl ID de tu proyecto de Google Cloud.
  • LOCATION: La ubicación del conjunto de datos

Cuerpo JSON de la solicitud:

{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

cat > request.json << 'EOF'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
EOF

Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
'@  | Out-File -FilePath request.json -Encoding utf8

Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content

Si la solicitud es exitosa, la respuesta incluirá la siguiente información:

  • Entidades de conocimiento médico reconocidas
  • Características funcionales
  • Relaciones entre las entidades reconocidas
  • Atributos contextuales
  • Asignaciones de las entidades de conocimiento médico a terminologías estándares

Para obtener una lista de los tipos de entidad, atributo y relación admitidos, consulta las funciones de la API de Healthcare Natural Language.

En la siguiente respuesta, se identifica la insulina terapéutica, la entidad con el código C581 en el sistema de terminología de NCI, como el medicamento. La respuesta también incluye la puntuación de confianza asignada a la respuesta. Para obtener más información sobre los campos de respuesta, consulta la documentación de analyzeEntities.

Incluye vocabularios con licencia

De forma predeterminada, las respuestas de la API de Healthcare Natural Language incluyen los vocabularios médicos compatibles.

Puedes incluir el vocabulario de los Términos clínicos de SNOMED, versión de EE.UU. (SNOMEDCT_US) en la respuesta si tu solicitud cumple con los siguientes requisitos:

  • La solicitud a la API se origina en EE.UU.
  • El campo licensedVocabularies en el cuerpo de la solicitud tiene el valor SNOMEDCT_US.

Si no necesitas el vocabulario de SNOMED CT, no se aplica ninguna de estas restricciones.

En el siguiente ejemplo, se muestra cómo incluir el vocabulario con licencia de SNOMED CT en el objeto LicensedVocabularies para extraer información médica del texto médico "Se administrarán el régimen de insulina 5 unidades IV para la diabetes".

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_IDEl ID de tu proyecto de Google Cloud.
  • LOCATION: La ubicación del conjunto de datos

Cuerpo JSON de la solicitud:

{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

cat > request.json << 'EOF'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}
EOF

Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}
'@  | Out-File -FilePath request.json -Encoding utf8

Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
Si la solicitud se realiza de forma correcta, la respuesta incluye códigos de vocabulario de los vocabularios con licencia SNOMEDCT_US y ICD10CM. El resultado es el siguiente, y los códigos de vocabulario con licencia solicitados están en negrita:

Extrae un resultado como un paquete de FHIR R4

Puedes extraer entidades de texto y asignarlas a recursos y elementos de FHIR R4. El paquete FHIR R4 resultante incluye todas las entidades, las menciones de entidades y las relaciones en formato JSON. Por ejemplo, la API de Healthcare Natural Language asigna la entidad base PROBLEM al recurso Condition de FHIR R4 y la entidad PROBLEM.ANATOMICAL_STRUCTURE al elemento de FHIR Condition.bodySite. Si deseas obtener una lista de otras asignaciones, consulta Resultado de la API de Healthcare Natural Language como un paquete de FHIR.

En los siguientes ejemplos, se muestra cómo extraer estadísticas médicas del texto médico “Insulina régimen 5 unit IV will be publicistered for diabetes” (en un paquete FHIR R4). Para obtener más información, consulta el objeto AlternativeOutputFormat.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_IDEl ID de tu proyecto de Google Cloud.
  • LOCATION: La ubicación del conjunto de datos

Cuerpo JSON de la solicitud:

{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

cat > request.json << 'EOF'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}
EOF

Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}
'@  | Out-File -FilePath request.json -Encoding utf8

Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
Si la solicitud se realiza correctamente, la respuesta contendrá un objeto JSON con las siguientes entradas:
  • La entidad reconocida se menciona con las entidades y sus relaciones en un formato similar al resultado en Extrae entidades, relaciones y atributos contextuales.
  • Una clave fhirBundle que contiene un recurso de paquete de FHIR con formato de string. El paquete de FHIR incluye todas las entidades, las menciones de entidades y las relaciones en formato JSON.