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:
- Extraer entidades, relaciones y atributos contextuales
- Incluir vocabularios con licencia
- Extraer la salida como un paquete FHIR R4
La solicitud de análisis de entidades contiene los siguientes campos:
documentContent
: Los datos de la solicitud, que consisten en texto médico. El tamaño máximo del texto médico es de 20.000 caracteres Unicode.licensedVocabularies[]
: opcional. El vocabulario SNOMED CT. Disponible solo para usuarios de EE. UU.alternativeOutputFormat
: opcional. El formato del paquete FHIR.
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 campotextContent
y describe el fragmento del texto médico que contiene la mención de la entidad, así comooffset
, 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 serCURRENT
,CLINICAL_HISTORY
,FAMILY_HISTORY
,UPCOMING
oOTHER
.certaintyAssessment
: la negación o la cualificación del concepto médico, uno de los valoresLIKELY
,SOMEWHAT_LIKELY
,UNCERTAIN
,SOMEWHAT_UNLIKELY
,UNLIKELY
oCONDITIONAL
.subject
: especifica el tema al que se refiere el concepto médico. Puede serPATIENT
,FAMILY_MEMBER
oOTHER
.linkedEntities
: una lista de conceptos médicos que podrían estar relacionados con esta mención de entidad. Las entidades vinculadas especifican elentityId
, que vincula un concepto médico a una entidad deentities
.
entities
: describe los conceptos médicos de los campos de entidades vinculadas. Cada entidad se describe mediante los siguientes campos:entityId
: identificador único del campolinkedEntities
.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.