API Natural Language de Healthcare

La API Natural Language de Healthcare forma parte de la API Cloud Healthcare, que usa modelos de lenguaje natural para extraer información sanitaria de textos médicos.

En esta guía conceptual se explican los conceptos básicos para usar la API Natural Language de Healthcare, entre los que se incluyen los siguientes:

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

Información general

La API Natural Language de Healthcare extrae información sanitaria de textos médicos. Esta información sanitaria puede incluir lo siguiente:

  • Conceptos médicos, como medicamentos, procedimientos y enfermedades
  • Funciones funcionales, como las relaciones temporales, los sujetos y las evaluaciones de certeza
  • Relaciones, como efectos secundarios y dosis de medicamentos

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

La API Natural Language de Healthcare ofrece modelos de lenguaje natural preentrenados para extraer conceptos y relaciones médicos de texto médico. La API Natural Language de Healthcare asigna 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 con tus propias categorías. Para obtener más información, consulta la documentación de AutoML Entity Extraction for Healthcare.

Ubicaciones disponibles

La API Natural Language de Healthcare 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.)

Funciones de la API Natural Language de Healthcare

La API Natural Language de Healthcare inspecciona el texto médico para identificar conceptos y relaciones médicas. Para analizar entidades, usa el método analyzeEntities.

Solicitudes de análisis de entidades

La API Natural Language de Healthcare es una API REST y consta de solicitudes y respuestas JSON. En las siguientes secciones se muestra cómo extraer diferentes estadísticas médicas de un texto médico determinado:

La solicitud de análisis de entidades contiene los siguientes campos:

Campos de respuesta del análisis de entidades

El análisis de entidades devuelve un conjunto de menciones de conocimientos médicos detectadas, conceptos médicos y relaciones entre menciones de conocimientos médicos, entre los que se incluyen los siguientes:

  • entityMentions: ocurrencias de entidades de conocimientos médicos en el texto médico de origen. Cada mención de entidad tiene los siguientes campos:

    • mentionId: identificador único de una mención de entidad en la respuesta.
    • type: la categoría de conocimientos médicos de la mención de la entidad.
    • text: consta del campo textContent y describe el fragmento del texto médico que contiene la mención de la entidad, así como offset, la ubicación de la mención de la entidad en el texto médico de origen.
    • temporalAssessment: especifica cómo se relaciona la entidad vinculada con la mención de la entidad. Puede ser CURRENT, CLINICAL_HISTORY, FAMILY_HISTORY, UPCOMING o OTHER.
    • certaintyAssessment: la negación o la cualificación del concepto médico, uno de los valores LIKELY, SOMEWHAT_LIKELY, UNCERTAIN, SOMEWHAT_UNLIKELY, UNLIKELY o CONDITIONAL.
    • subject: especifica el tema al que se refiere el concepto médico. Puede ser PATIENT, FAMILY_MEMBER o OTHER.
    • linkedEntities: una lista de conceptos médicos que podrían estar relacionados con esta mención de entidad. Las entidades vinculadas especifican el entityId, que vincula un concepto médico a una entidad de entities.
  • entities: describe los conceptos médicos de los campos de entidades vinculadas. Cada entidad se describe mediante los siguientes campos:

    • entityId: identificador único del campo linkedEntities.
    • preferredTerm: un término preferente para el concepto médico.
    • vocabularyCodes: la representación del concepto médico en los vocabularios médicos admitidos.
  • relationships: define relaciones dirigidas entre menciones de entidades. En el ejemplo, el sujeto de la relación es "Insulin regimen human" (Pauta de insulina humana) y el objeto de la relación es "5 units" (5 unidades).

  • confidence: una indicación de la confianza del modelo en la relación como un número entre 0 y 1.

Además de los campos indicados, la respuesta también puede contener el campo additionalInfo, que indica cualquier descripción adicional sobre el tipo de mención de la entidad. Consulta Información adicional.

Idiomas disponibles

La API Natural Language de Healthcare solo admite la extracción de información sanitaria de texto en inglés.

Vocabularios médicos admitidos

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

  • Modelo fundacional de anatomía
  • Ontología de genes
  • HUGO Gene Nomenclature Committee
  • Ontología de fenotipos humanos
  • Sistema de codificación de procedimientos ICD-10
  • CIE-10-MC
  • CIE-9-MC
  • LOINC
  • MeSH
  • Temas de salud de MedlinePlus
  • Nombres de Metatesauro
  • Taxonomía del NCBI
  • Tesauro del NCI
  • National Drug File
  • Online Mendelian Inheritance in Man
  • RXNORM
  • SNOMED CT (solo disponible para usuarios de EE. UU.)

Categorías de conocimientos médicos admitidas

La API Natural Language de Healthcare asigna una categoría de conocimientos médicos al campo entityMentions.type. A continuación, se incluye una lista de las categorías de conocimientos médicos admitidas. Los tipos de menciones de entidades que pertenecen a los grupos de oncología, determinantes sociales de la salud (DSS) e información médica protegida (PHI) solo están disponibles en la vista previa:

Grupo Categoría de conocimientos médicos Descripción
General ANATOMICAL_STRUCTURE Una parte compleja del cuerpo humano, como las células, los órganos y los sistemas.
BODY_FUNCTION Función que lleva a cabo el cuerpo humano.
BF_RESULT El resultado de una función corporal.
BODY_MEASUREMENT Medición normal del cuerpo humano, como los signos vitales, obtenida sin pruebas ni procedimientos complejos mediante instrumentos básicos, como un termómetro o un estetoscopio.
BM_RESULT El resultado de una medición corporal.
BM_UNIT Unidad de medida de una medida corporal.
BM_VALUE Valor de una medida corporal.
LABORATORY_DATA Los resultados de las pruebas de una muestra corporal.
LAB_RESULT Descripción cualitativa de los datos de laboratorio, como "aumentado", "disminuido", "positivo" o "negativo".
LAB_VALUE Valor de una instancia de los datos de laboratorio.
LAB_UNIT Unidad de medida del valor de laboratorio.
MEDICAL_DEVICE Un instrumento físico o virtual.
MEDICINE Un fármaco u otra preparación para el tratamiento o la prevención de una enfermedad.
MED_DOSE Una dosis de un medicamento.
MED_DURATION Periodo de administración de un medicamento.
MED_FORM Las características físicas de un medicamento específico.
MED_FREQUENCY La frecuencia con la que se toma un medicamento.
MED_ROUTE Lugar del cuerpo en el que se administra un medicamento.
MED_STATUS El estado de un medicamento, como "continuar", "empezar", "reiniciar", "detener", "cambiar", "aumentar" y "reducir".
MED_STRENGTH Cantidad de principio activo en una dosis de un medicamento.
MED_UNIT Unidad de medida del principio activo de un medicamento.
MED_TOTALDOSE Cantidad de medicamento que se debe tomar a la vez.
PROBLEM Una afección médica, incluidos los resultados y las enfermedades.
PROCEDURE Un procedimiento de diagnóstico o tratamiento.
PROCEDURE_RESULT Los resultados de un procedimiento.
PROC_METHOD El método utilizado para llevar a cabo un procedimiento.
SEVERITY La gravedad de la afección médica.
SUBSTANCE_ABUSE Una descripción del abuso de una sustancia psicoactiva.
Oncología (versión preliminar) CLINICAL_STATUS El estado de un caso de cáncer, como "activo", "recurrente", "con recaída" y "resuelto".
DATE Una anotación de fecha, como la fecha del diagnóstico, la fecha del procedimiento o la fecha de un tratamiento de radiación. Extrae todos los elementos de una fecha y puede que no incluya el año.
DIMENSIONS Mediciones de un tumor, una masa o un crecimiento anormal.
GENE_STUDIED Los genes estudiados que provocan la formación de tumores de forma directa o indirecta, como BRCA1, p53 y ALK.
HISTOLOGICAL_GRADE Un sistema de clasificación para calificar el aspecto de una célula cancerosa.
LAB_SPECIMEN Material biológico recogido del cuerpo para realizar pruebas o tomar muestras.
RADIATION_DOSAGE Cantidad de radiación que se administra a un paciente.
ONSET Una anotación de fecha que representa la fecha en la que un paciente observó por primera vez problemas relacionados con el cáncer.
VARIATION_CODE Código asignado a la variante genómica específica que se detecta en un sistema de codificación principal, como ClinVar y HGVS.
Determinantes sociales de la salud (vista previa) AGE Un identificador de edad. Incluye frases que describen la edad, como "parece más joven de lo que dice", "de mediana edad", "78 años" o "adolescente".

Nota: La ley HIPAA clasifica la edad de una persona como información médica protegida solo cuando es superior a 90 años. Para obtener más información, consulta el resumen de la norma de privacidad de la ley HIPAA.

FAMILY Frases que describan la estructura familiar o los familiares del paciente, como "casado con dos hijos", "hermano", "mujer", "padres que le apoyan" o "divorciado".
LIVING_SITUATION Frases que describan la situación vital del paciente, como "vive con compañeros de piso", "tiene un enfermero en casa las 24 horas" o "se ha mudado recientemente".
SOCIAL_IDENTITY Frases que describan la identidad social del paciente o de la familia, como la raza, la etnia, la orientación sexual, la religión, la nacionalidad, los idiomas que habla o no habla o el país de origen.
PHYSICAL_APPEARANCE Frases que describan el rasgo físico más evidente o notable del paciente o de la familia, como "cicatriz en la mejilla derecha", "síndrome de Down", "obeso" o "pierna izquierda amputada".
OCCUPATION Frases que describan la ocupación y la situación laboral del paciente o de su familia, como "madre jubilada", "trabajó como soldador durante 20 años" o "perdió el trabajo el año pasado".
Información médica protegida (PHI) (vista previa) PERSON_NAME Identificador de nombre genérico de una persona. Incluye títulos, como "Dr.". "Sra." o "Dr."
ORGANIZATION_NAME Un identificador de una organización médica que recoge IPH, como una clínica, una residencia de ancianos o un hospital.
GENERIC_ID Un ID genérico que identifica historiales médicos, pacientes, médicos u hospitales, como el número de la seguridad social del paciente o el número de un proveedor.
LOCATION Una ubicación geográfica que puede contener nombres y números de edificios, calles, ciudades, estados o códigos postales.
PHONE_NUMBER Número que indica un número de teléfono, de fax o de buscapersonas.
EMAIL_ADDRESS Un identificador de dirección de correo electrónico.
URL Dirección de un sitio web.
ZIPCODE Un identificador de código postal.

Categorías de funciones admitidas

La API Natural Language de Healthcare puede inferir las características funcionales o los atributos de una mención de entidad a partir del contexto. Por ejemplo, en la frase "La madre de Kusuma tiene diabetes", la condición "diabetes" tiene la característica funcional de subject FAMILY_MEMBER.

Relaciones temporales

Las relaciones temporales, que se devuelven en el campo temporalAssessment, describen cómo se relaciona temporalmente esta mención de entidad con el sujeto.

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

  • CURRENT
  • CLINICAL_HISTORY
  • FAMILY_HISTORY
  • UPCOMING
  • OTHER

Asuntos

Los temas, que se devuelven en el campo subject, describen a la persona a la que se refiere la mención de la entidad.

La API Natural Language de Healthcare admite los siguientes temas:

  • PATIENT
  • FAMILY_MEMBER
  • OTHER

Evaluaciones de certeza

Las evaluaciones de certeza, que se devuelven en el campo certaintyAssessment, describen la confianza de la persona que tomó las notas originales. Por ejemplo, si la nota original contiene "El paciente tiene dolor de garganta", la evaluación de certeza devuelve un valor LIKELY para indicar la confianza de la persona que toma la nota en que es probable que el paciente tenga dolor de garganta. Si la nota original contiene la frase "El paciente no tiene dolor de garganta", la evaluación de certeza devuelve un valor UNLIKELY para indicar la confianza del anotador en que era poco probable que el paciente tuviera dolor de garganta.

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

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

Información adicional

El campo additionalInfo proporciona información adicional sobre una mención de entidad. Por ejemplo, el campo additionalInfo de una mención de entidad DATE puede incluir detalles sobre el tipo de fecha, categorizado como uno de los siguientes:

  • ADMISSION_DATE
  • CONSULTATION_DATE
  • DISCHARGE_DATE
  • SERVICE_DATE
  • VISIT_DATE
  • DIAGNOSIS_DATE
  • MED_STARTED_DATE
  • MED_ENDED_DATE
  • NOTE_DATE
  • PROCEDURE_DATE
  • RADIATION_STARTED_DATE
  • RADIATION_ENDED_DATE
  • STAGE_DATE

Relaciones admitidas entre menciones de entidades

La API Natural Language de Healthcare puede inferir relaciones entre menciones de entidades basándose en el texto médico circundante. En la respuesta, el sujeto de la relación se identifica con subjectId y el objeto de la relación, con objectId.

La API Natural Language de Healthcare admite las siguientes relaciones entre 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

Salida de la API Natural Language de Healthcare como paquete FHIR

Cuando solicitas el método analyzeEntities con el campo alternativeOutputFormat definido como FHIR_BUNDLE, la respuesta incluye los siguientes objetos JSON:

  • Las menciones a entidades, las entidades y las relaciones
  • Un paquete FHIR R4 representado como una cadena que incluye todas las entidades, las menciones de entidades y las relaciones en formato JSON.

Para crear el paquete FHIR R4, la API Natural Language de Healthcare asigna las menciones de entidades, las entidades y las relaciones a los recursos FHIR y sus elementos. En la siguiente tabla se muestran algunas de estas asignaciones.

Menciones de entidades de la API Natural Language de Healthcare Categoría de conocimientos médicos Recursos y elementos de FHIR R4
PROBLEM Condition
PROBLEM Condition.category
PROBLEM Condition.status
PROBLEM ANATOMICAL_STRUCTURE Condition.bodySite
PROBLEM ANATOMICAL_STRUCTURE Condition.evidence
PROBLEM SEVERITY Condition.severity
PROCEDURE Procedure
PROCEDURE Procedure.status
PROCEDURE Procedure.code
PROCEDURE ANATOMICAL_STRUCTURE Procedure.bodySite
PROCEDURE MEDICAL_DEVICE Procedure.usedCode
PROCEDURE PROBLEM Procedure.reasonReference
MEDICINE MedicationStatement
MEDICINE MedicationStatement.status
MEDICINE MedicationStatement.medication
MEDICINE PROBLEM MedicationStatement.reasonReference
MEDICINE MED_DOSE MedicationStatement.dosage.doseAndRate.doseQuantity
MEDICINE MED_FREQUENCY MedicationStatement.dosage.text
MEDICINE MED_ROUTE MedicationStatement.dosage.route
MEDICINE MED_STRENGTH MedicationStatement.dosage.doseAndRate.doseQuantity
MEDICINE MED_UNIT MedicationStatement.dosage.doseAndRate.doseQuantity

Para extraer entidades de texto como un paquete FHIR R4, consulta Extraer la salida como un paquete FHIR R4.