Se usó la API de Cloud Translation para traducir esta página.
Switch to English

API de Healthcare Natural Language

La API de Healthcare de Natural Language es parte de la API de Cloud Healthcare que usa modelos de lenguaje natural para extraer información de atención médica del texto médico.

En esta guía conceptual, se explican los conceptos básicos del uso de la API de Healthcare Natural Language, incluidos los siguientes:

  • Tipos de solicitudes que puedes realizar a la API de Healthcare Natural Language
  • Cómo crear solicitudes a la API de Healthcare Natural Language
  • Cómo controlar las respuestas de la API de Healthcare Natural Language

Descripción general

La API de Healthcare Natural Language extrae información de atención médica del texto médico. Esta información de atención médica puede incluir lo siguiente:

  • Conceptos médicos, como medicamentos, procedimientos y problemas de salud
  • Características funcionales, como relaciones temporales, temas y evaluaciones de certeza
  • Relaciones, como efectos secundarios y dosis de medicamentos

Elige entre la API de Healthcare Natural Language y AutoML Entity Extraction for Healthcare

La API de Healthcare Natural Language ofrece modelos de lenguaje natural previamente entrenados para extraer conceptos y relaciones médicas del texto médico. La API de Healthcare Natural Language mapea el texto a un conjunto predefinido de categorías de conocimientos médicos.

AutoML Entity Extraction for Healthcare te permite crear un modelo de extracción de entidades personalizado entrenado con tu propio texto médico anotado y mediante tus propias categorías. Si deseas obtener más información, consulta la documentación de la extracción de entidades de AutoML para atención médica.

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
us-central1 Iowa, EE.UU.
europe-west4 Netherlands

Características de la API de Healthcare de Natural Language

La API de Healthcare Natural Language inspecciona textos médicos para detectar conceptos y relaciones médicas. Para realizar un análisis de entidades, usa el método analyzeEntities.

Campos de solicitudes del análisis de entidades

La API de Healthcare Natural Language es una API de REST que consiste en una solicitud JSON y respuestas. En el siguiente ejemplo, se muestra una solicitud simple a la API de Healthcare Natural Language mediante curl:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data "{
    'nlpService': 'projects/PROJECT_ID/locations/LOCATION/services/nlp',
    'documentContent': 'Insulin regimen human 5 units IV administered.'
}" "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

La solicitud de ejemplo muestra los siguientes campos:

  • nlpService contiene el nombre del recurso del servicio de NLP.
  • documentContent contiene los datos de la solicitud, que constan del texto médico. El tamaño máximo del texto médico es de 10,000 caracteres Unicode.

Campos de respuesta del análisis de entidades

El análisis de entidades muestra un conjunto de menciones de conocimientos médicos detectados, conceptos médicos y relaciones entre las menciones del conocimiento médico.

La siguiente respuesta de ejemplo muestra la respuesta a la solicitud de ejemplo en los campos de solicitudes de análisis de entidades:

{
  "entityMentions": [
    {
      "mentionId": "1",
      "type": "MEDICINE",
      "text": {
        "content": "Insulin regimen human"
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/3537244"
        },
        {
          "entityId": "UMLS/3714501"
        },
        {
          "entityId": "UMLS/21641"
        },
        {
          "entityId": "UMLS/795635"
        },
        {
          "entityId": "UMLS/1533581"
        },
        {
          "entityId": "UMLS/4721402"
        }
      ],
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.87631082534790039
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.9999774694442749
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.99999970197677612
      },
      "confidence": 0.41636556386947632
    },
    {
      "mentionId": "2",
      "type": "MED_DOSE",
      "text": {
        "content": "5 units",
        "beginOffset": 22
      },
      "confidence": 0.56910794973373413
    },
    {
      "mentionId": "3",
      "type": "MED_ROUTE",
      "text": {
        "content": "IV",
        "beginOffset": 30
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/348016"
        }
      ],
      "confidence": 0.9180646538734436
    }
  ],
  "entities": [
    {
      "entityId": "UMLS/1533581",
      "preferredTerm": "Therapeutic Insulin",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C581"
      ]
    },
    {
      "entityId": "UMLS/21641",
      "preferredTerm": "Insulin",
      "vocabularyCodes": [
        "FMA/83365",
        "LNC/LA15805-7",
        "LNC/LP14676-8",
        "LNC/LP16325-0",
        "LNC/LP32542-0",
        "LNC/LP70329-5",
        "LNC/MTHU002108",
        "LNC/MTHU019392",
        "MSH/D007328",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/348016",
      "preferredTerm": "Intravenous",
      "vocabularyCodes": [
        "LNC/LA9437-0",
        "LNC/LP32453-0",
        "MTH/NOCODE",
        "NCI/C13346"
      ]
    },
    {
      "entityId": "UMLS/3537244",
      "preferredTerm": "Insulins",
      "vocabularyCodes": [
        "MSH/D061385",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/3714501",
      "preferredTerm": "Insulin Drug Class",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "VANDF/4021631"
      ]
    },
    {
      "entityId": "UMLS/4721402",
      "preferredTerm": "INS protein, human",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C2271"
      ]
    },
    {
      "entityId": "UMLS/795635",
      "preferredTerm": "insulin, regular, human",
      "vocabularyCodes": [
        "LNC/LP17001-6",
        "MSH/D061386",
        "MTH/NOCODE",
        "NCI/C29125",
        "RXNORM/253182",
        "VANDF/4017559",
        "VANDF/4017569",
        "VANDF/4019786"
      ]
    }
  ],
  "relationships": [
    {
      "subjectId": "1",
      "objectId": "2",
      "confidence": 0.53775161504745483
    },
    {
      "subjectId": "1",
      "objectId": "3",
      "confidence": 0.95007365942001343
    }
  ]
}

En el ejemplo, se muestran los siguientes campos de respuesta:

  • entityMentions son casos de entidades de conocimiento médico en el texto médico de origen. Cada mención de entidad tiene los siguientes campos:

    • mentionId es un identificador único para una mención de entidad en la respuesta.
    • type es la categoría de conocimiento médico de la mención de la entidad.
    • text consiste en textContent, el extracto del texto médico que contiene la mención de la entidad, y offset, la ubicación de la entidad mencionada en el texto médico de origen.
    • temporalAssessment especifica cómo se relaciona la entidad vinculada con la mención de entidades, una de CURRENT, PERSONAL_HISTORY, FAMILY_HISTORY, FUTURISTIC o ALLERGY.
    • certaintyAssessment es la negación o calificación del concepto médico, uno de POSITIVE, POSSIBLE_POSITIVE, UNCERTAIN, POSSIBLE_NEGATIVE, NEGATIVE o CONDITIONAL.
    • subject especifica el sujeto con el que se relaciona el concepto médico, uno de PATIENT, FAMILY_MEMBER o OTHER.
    • linkedEntities enumera los conceptos médicos que podrían estar relacionados con esta mención de entidad. Las entidades vinculadas especifican el objeto entityId que vincula un concepto médico con una entidad en entities.
  • entities describe los conceptos médicos de los campos de entidades vinculadas. Cada entidad se describe mediante los siguientes campos:

    • entityId es el identificador único de linkedEntities.
    • preferredTerm el término preferido para el concepto médico.
    • vocabularyCodes son la representación del concepto médico en los vocabularios médicos compatibles.
  • relationships definen las relaciones dirigidas entre las menciones de entidades. En la muestra, el asunto de la relación es “Persona con tratamiento de insulina” y el objeto de la relación es de “5 unidades”. confidence indica la confianza del modelo en la relación como un número entre 0 y 1.

Vocabularios médicos compatibles

La API de Healthcare Natural Language admite los siguientes vocabularios médicos:

  • Modelo fundacional de la anatomía
  • Ontología génica
  • HUGO Gene Nomenclature Committee
  • Human Phenotype Ontology
  • ICD-9-CM
  • MeSH
  • Nombres de Metathesaurus
  • NCBI Taxonomy
  • Tesauro del NDI
  • Archivo Nacional de Fármacos
  • Online Mendelian Inheritance in Man
  • RXNORM
  • LOINC
  • Sistema de programación de procedimientos ICD-10

Categorías de conocimiento médico compatibles

La API de Healthcare Natural Language admite las siguientes categorías de conocimiento médico:

Categoría de conocimiento médico Descripción
PROBLEM Afección médica, incluidos resultados y enfermedades
SEVERITY Gravedad de la afección médica
PROCEDURE Procedimiento de diagnóstico o tratamiento
PROC_METHOD Método en el que se realiza un procedimiento
PROCEDURE_RESULT Resultados de un procedimiento
MEDICINE Droga o cualquier otra preparación para el tratamiento o la prevención de enfermedades
MED_DOSE Dosis de medicamento
MED_DURATION Duración del medicamento
MED_FORM Características físicas de un medicamento específico
MED_FREQUENCY Frecuencia con la que se toma el medicamento
MED_ROUTE Ubicación del cuerpo en el que se administra el medicamento
MED_STATUS En el caso de un medicamento existente, el estado puede ser un modificador, como “continuar”, “iniciar”, “reiniciar”, “detener”, “cambiar”, “aumentar” o “disminuir”.
MED_STRENGTH Cantidad de ingredientes activos en una dosis de medicamento
MED_TOTALDOSE Cantidad de medicamentos que deben tomarse al mismo tiempo
MED_UNIT Unidad de medida para el ingrediente activo en un medicamento
ANATOMICAL_STRUCTURE Parte compleja del cuerpo humano
LABORATORY_DATA Resultados de la prueba de una muestra corporal
LAB_RESULT Descripción cualitativa de datos del laboratorio, como aumento, disminución, positivo o negativo
LAB_VALUE Valor de una instancia de datos de laboratorio
LAB_UNIT Unidad de medida para un valor de laboratorio
BODY_MEASUREMENT Una medición normal del cuerpo humano, como un signo vital
BM_RESULT Resultado de la medición corporal
BM_VALUE Valor de una medición corporal
BM_UNIT Unidad de medida del cuerpo
MEDICAL_DEVICE Instrumento físico o virtual
SUBSTANCE_ABUSE Abuso de una sustancia psicoactiva
BODY_FUNCTION Función que realiza el cuerpo humano
BF_RESULT Resultado de la función corporal

Categorías de características funcionales compatibles

La API de Healthcare de Natural Language puede inferir características o atributos funcionales de una mención de entidad desde el contexto. Por ejemplo, en la declaración “La madre de Kusuma tiene diabetes”, la condición “diabetes” tiene la característica funcional de subject FAMILY_MEMBER.

Relaciones temporales

Relaciones temporales, que se muestran en el campo temporalAssessment, describen cómo se relaciona esta entidad con el tema de forma temporal.

La API de Healthcare de Natural Language admite las siguientes relaciones temporales:

  • CURRENT
  • CLINICAL_HISTORY
  • FAMILY_HISTORY
  • UPCOMING
  • ALLERGY

Asuntos

Asuntos, que se muestran en el campo subject, describen la persona a la que se relaciona la mención de entidad.

La API de Healthcare Natural Language admite los siguientes temas:

  • PATIENT
  • FAMILY_MEMBER
  • OTHER

Evaluaciones de certeza

Evaluaciones de certeza, mostradas en el campo certaintyAssessment, describen la confianza del candidato original. Por ejemplo, si la nota original contiene "El paciente tiene dolor de garganta", la evaluación de certeza muestra un valor LIKELY para indicar la confianza del candidato para indicar que es probable que el paciente haya tenido. una garganta dolorosa. Si la nota original contiene "El paciente no tiene un dolor de garganta", la evaluación de certeza muestra un valor NOT_LIKELY para indicar que la confianza del anotador no es probable que el paciente haya tenido un problema. una garganta dolorosa.

Las evaluaciones de certeza pueden ser uno de los siguientes valores:

  • LIKELY
  • SOMEWHAT_LIKELY
  • UNCERTAIN
  • SOMEWHAT_UNLIKELY
  • UNLIKELY
  • CONDITIONAL

Relaciones admitidas entre las menciones de entidades

La API de Healthcare de Natural Language puede inferir relaciones entre las menciones de entidades en función del texto médico alrededor. En la respuesta, el tema de la relación se identifica mediantesubjectId y el objeto de la relación se identificaobjectId para crear el adjunto de VLAN de supervisión.

La API de Healthcare de Natural Language admite las siguientes relaciones entre las menciones de entidades:

Asunto Objeto
ANATOMICAL_STRUCTURE MEDICAL_DEVICE
BODY_FUNCTION BF_RESULT
BODY_MEASUREMENT BM_RESULT
BODY_MEASUREMENT BM_UNIT
BODY_MEASUREMENT BM_VALUE
LABORATORY_DATA LAB_RESULT
LABORATORY_DATA LAB_UNIT
LABORATORY_DATA LAB_VALUE
MEDICINE MED_DOSE
MEDICINE MED_DURATION
MEDICINE MED_FORM
MEDICINE MED_FREQUENCY
MEDICINE MED_ROUTE
MEDICINE MED_STATUS
MEDICINE MED_STRENGTH
MEDICINE MED_TOTALDOSE
MEDICINE MED_UNIT
PROBLEM ANATOMICAL_STRUCTURE
PROBLEM MEDICINE
PROBLEM PROCEDURE
PROBLEM SEVERITY
PROCEDURE ANATOMICAL_STRUCTURE
PROCEDURE PROC_METHOD
PROCEDURE PROCEDURE_RESULT
SUBSTANCE_ABUSE SEVERITY