The Healthcare Natural Language API is a part of the Cloud Healthcare API that uses natural language models to extract healthcare information from medical text.
This conceptual guide explains the basics of using the Healthcare Natural Language API, including:
- The types of requests you can make to the Healthcare Natural Language API
- How to construct requests to the Healthcare Natural Language API
- How to handle responses from the Healthcare Natural Language API
Overview
The Healthcare Natural Language API extracts healthcare information from medical text. This healthcare information can include:
- Medical concepts, such as medications, procedures, and medical conditions
- Functional features, such as temporal relationships, subjects, and certainty assessments
- Relations, such as side effects and medication dosage
Choosing between the Healthcare Natural Language API and AutoML Entity Extraction for Healthcare
The Healthcare Natural Language API offers pre-trained natural language models to extract medical concepts and relationships from medical text. The Healthcare Natural Language API maps text into a predefined set of medical knowledge categories .
AutoML Entity Extraction for Healthcare lets you create a custom entity extraction model trained using your own annotated medical text and using your own categories. For more information, see the AutoML Entity Extraction for Healthcare documentation .
Available locations
The Healthcare Natural Language API is available in the following locations:
Location name | Location description |
---|---|
asia-south1
|
Mumbai, India |
australia-southeast1
|
Sydney, Australia |
europe-west2
|
London, UK |
europe-west4
|
Netherlands |
northamerica-northeast1
|
Montréal, Canada |
us-central1
|
Iowa, USA |
Healthcare Natural Language API features
The Healthcare Natural Language API inspects medical text for medical concepts and
relations. You perform entity analysis using the analyzeEntities
method.
Entity analysis requests
The Healthcare Natural Language API is a REST API and consists of JSON requests and responses. The following sections show how to extract different medical insights from a given medical text:
- Extract entities, relations, and contextual attributes
- Include licensed vocabularies
- Extract output as a FHIR R4 bundle
The entity analysis request contains the following fields:
-
documentContent
: The data for the request, which consists of medical text. The maximum size of the medical text is 20,000 Unicode characters. -
licensedVocabularies[]
: Optional. The SNOMED CT vocabulary. Available only for US users. -
alternativeOutputFormat
: Optional. The FHIR bundle format.
Entity analysis response fields
The entity analysis returns a set of detected medical knowledge mentions, medical concepts, and relations between medical knowledge mentions, including the following:
-
entityMentions
: occurrences of medical knowledge entities in the source medical text. Each entity mention has the following fields:-
mentionId
: a unique identifier for an entity mention in the response. -
type
: the medical knowledge category of the entity mention. -
text
: consists of thetextContent
field, and describes the excerpt of the medical text containing the entity mention, andoffset
, the location of the entity mention in the source medical text. -
temporalAssessment
: specifies how the linked entity relates to the entity mention, one ofCURRENT
,CLINICAL_HISTORY
,FAMILY_HISTORY
,UPCOMING
, orOTHER
. -
certaintyAssessment
: the negation or qualification of the medical concept, one ofLIKELY
,SOMEWHAT_LIKELY
,UNCERTAIN
,SOMEWHAT_UNLIKELY
,UNLIKELY
, orCONDITIONAL
. -
subject
: specifies the subject that the medical concept relates to, one ofPATIENT
,FAMILY_MEMBER
, orOTHER
. -
linkedEntities
: a list of medical concepts that might be related to this entity mention. Linked entities specify theentityId
, which links a medical concept to an an entity inentities
.
-
-
entities
: describes the medical concepts from the linked entities fields. Each entity is described using the following fields:-
entityId
: a unique identifier from thelinkedEntities
field. -
preferredTerm
: a preferred term for the medical concept. -
vocabularyCodes
: the representation of the medical concept in supported medical vocabularies .
-
-
relationships
: define directed relationships between entity mentions. In the sample, the subject of the relationship is "Insulin regimen human" and the object of the relationship is "5 units". -
confidence
: an indication of the model's confidence in the relationship as a number between 0 and 1.
Apart from the listed fields, the response might also contain the additionalInfo
field, which states any additional description about the entity mention type.
See Additional information
.
Supported languages
The Healthcare Natural Language API only supports extracting healthcare information from English text.
Supported medical vocabularies
The Healthcare Natural Language API supports the following medical vocabularies:
- Foundational Model of Anatomy
- Gene Ontology
- HUGO Gene Nomenclature Committee
- Human Phenotype Ontology
- ICD-10 Procedure Coding System
- ICD-10-CM
- ICD-9-CM
- LOINC
- MeSH
- MedlinePlus Health Topics
- Metathesaurus Names
- NCBI Taxonomy
- NCI Thesaurus
- National Drug File
- Online Mendelian Inheritance in Man
- RXNORM
- SNOMED CT (available for US users only)
Supported medical knowledge categories
The Healthcare Natural Language API assigns a medical knowledge category to the entityMentions.type
field.
A list of supported medical knowledge categories is as follows. The entity mention types that belong to the oncology, social determinants of health (SDOH), and protected health information (PHI) groups are only available in Preview
:
ANATOMICAL_STRUCTURE
BODY_FUNCTION
BF_RESULT
BODY_MEASUREMENT
BM_RESULT
BM_UNIT
BM_VALUE
LABORATORY_DATA
LAB_RESULT
LAB_VALUE
LAB_UNIT
MEDICAL_DEVICE
MEDICINE
MED_DOSE
MED_DURATION
MED_FORM
MED_FREQUENCY
MED_ROUTE
MED_STATUS
MED_STRENGTH
MED_UNIT
MED_TOTALDOSE
PROBLEM
PROCEDURE
PROCEDURE_RESULT
PROC_METHOD
SEVERITY
SUBSTANCE_ABUSE
CLINICAL_STATUS
DATE
DIMENSIONS
GENE_STUDIED
HISTOLOGICAL_GRADE
LAB_SPECIMEN
RADIATION_DOSAGE
ONSET
VARIATION_CODE
AGE
Note: HIPAA classifies the age of a person as PHI only when it's above 90. For more information, see Summary of the HIPAA Privacy Rule .
FAMILY
LIVING_SITUATION
SOCIAL_IDENTITY
PHYSICAL_APPEARANCE
OCCUPATION
PERSON_NAME
ORGANIZATION_NAME
GENERIC_ID
LOCATION
PHONE_NUMBER
EMAIL_ADDRESS
URL
ZIPCODE
Supported functional feature categories
The Healthcare Natural Language API can infer functional features, or attributes,
of an entity mention from context. For example, in the statement
"Kusuma's mother has diabetes", the condition "diabetes" has the functional
feature of subject
FAMILY_MEMBER
.
Temporal relationships
Temporal relationships, returned in the temporalAssessment
field, describe
how this entity mention relates to the subject temporally.
The Healthcare Natural Language API supports the following temporal relationships:
-
CURRENT
-
CLINICAL_HISTORY
-
FAMILY_HISTORY
-
UPCOMING
-
OTHER
Subjects
Subjects, returned in the subject
field, describe the individual the entity
mention relates to.
The Healthcare Natural Language API supports the following subjects:
-
PATIENT
-
FAMILY_MEMBER
-
OTHER
Certainty assessments
Certainty assessments, returned in the certaintyAssessment
field, describe
the original note taker's confidence. For example, if the original note
contains "The patient has a sore throat", the certainty assessment
returns a LIKELY
value to indicate the note taker's confidence that it
was likely that the patient had a sore throat. If the original note contains "The patient does
not have a sore throat", the certainty assessment returns an UNLIKELY
value to indicate the note taker's confidence that it was unlikely
that the patient had a sore throat.
Certainty assessments can be one of the following values:
-
LIKELY
-
SOMEWHAT_LIKELY
-
UNCERTAIN
-
SOMEWHAT_UNLIKELY
-
UNLIKELY
-
CONDITIONAL
Additional information
The additionalInfo
field provides additional details about an entity
mention. For example, the additionalInfo
field for a DATE
entity mention might
consist of details about the type of the date, categorized as one of the following:
-
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
Supported relationships between entity mentions
The Healthcare Natural Language API can infer relationships between entity
mentions based on the surrounding medical text. In the response, the subject of
the relationship is identified by subjectId
and the object of the
relationship is identified by objectId
.
The Healthcare Natural Language API supports the following relationships between entity mentions:
Subject | Object |
---|---|
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
|
Healthcare Natural Language API output as a FHIR bundle
When you request the analyzeEntities
method with the alternativeOutputFormat
field set to FHIR_BUNDLE
, the response includes the following JSON objects:
- The entity mentions, the entities, and the relationships
- A FHIR R4 bundle represented as a string, that includes all the entities, the entity mentions, and the relationships in JSON format
To create the FHIR R4 bundle, the Healthcare Natural Language API maps the entity mentions, entities, and relationships to FHIR resources and their elements. The following table lists some of these mappings.
Healthcare Natural Language API entity mentions | Medical Knowledge Category | FHIR R4 resources and elements |
---|---|---|
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
|
To extract entities from text as a FHIR R4 bundle, see Extract output as a FHIR R4 bundle .