Healthcare Natural Language API 是 Cloud Healthcare API 的一部分,它使用自然语言模型从医疗文本中提取医疗保健信息。
本概念指南说明了使用 Healthcare Natural Language API 的基础知识,包括:
- 可以向 Healthcare Natural Language API 发出的请求类型
- 如何构建向 Healthcare Natural Language API 发出的请求
- 如何处理来自 Healthcare Natural Language API 的响应
概览
Healthcare Natural Language API 会从医学文本中提取医疗保健信息。这些医疗保健信息可能包括:
- 医学概念,例如药物、手术和身体异常状况
- 功能特征,例如时间关系、主体和确定性评估
- 关系,例如副作用和药物剂量
在 Healthcare Natural Language API 与 AutoML Entity Extraction for Healthcare 之间选择
Healthcare Natural Language API 提供预训练的自然语言模型,用于从医学文本中提取医学概念和关系。Healthcare Natural Language API 会将文本映射到一组预定义的医学知识类别。
借助 AutoML Entity Extraction for Healthcare,您可以创建使用您自己的带注释医学文本和您自己的类别训练的自定义实体提取模型。如需了解详情,请参阅 AutoML Entity Extraction for Healthcare 文档。
可用位置
Healthcare Natural Language API 在以下位置可用:
地点名称 | 地点描述 |
---|---|
asia-south1 |
印度孟买 |
australia-southeast1 |
澳大利亚悉尼 |
europe-west2 |
英国伦敦 |
europe-west4 |
荷兰 |
northamerica-northeast1 |
加拿大蒙特利尔 |
us-central1 |
美国爱荷华州 |
Healthcare Natural Language API 特征
Healthcare Natural Language API 检查医学文本中的医学概念和关系。您可以使用 analyzeEntities
方法执行实体分析。
实体分析请求
Healthcare Natural Language API 是一个 REST API,由 JSON 请求和响应组成。以下部分介绍了如何从给定医学文本中提取不同的医学数据洞见:
实体分析请求包含以下字段:
documentContent
:请求的数据,由医学文本组成。医学文本的大小上限为 20,000 个 Unicode 字符。licensedVocabularies[]
:可选。SNOMED CT 词汇。仅适用于美国用户。alternativeOutputFormat
:可选。FHIR 软件包格式。
实体分析响应字段
实体分析会返回一组检测到的医学知识提及、医学概念以及医学知识提及之间的关系,包括:
entityMentions
:源医学文本中医学知识实体的出现实例。每个实体提及都包含以下字段:mentionId
:响应中实体提及的唯一标识符。type
:实体提及的医学知识类别。text
:由textContent
字段组成,用于描述包含实体提及的医学文本摘录,以及offset
(实体提及在源医学文本中的位置)。temporalAssessment
:指定关联的实体如何与实体提及相关:CURRENT
、CLINICAL_HISTORY
、FAMILY_HISTORY
、UPCOMING
或OTHER
之一。certaintyAssessment
:医学概念的否定或限定:LIKELY
、SOMEWHAT_LIKELY
、UNCERTAIN
、SOMEWHAT_UNLIKELY
、UNLIKELY
或CONDITIONAL
之一。subject
:指定医学概念与之相关的正文:PATIENT
、FAMILY_MEMBER
或OTHER
之一。linkedEntities
:可能与此实体提及相关的医学概念的列表。关联的实体指定将医学概念关联到entities
中的实体的entityId
。
entities
:描述来自关联实体字段的医学概念。每个实体使用以下字段进行描述:entityId
:linkedEntities
字段中的唯一标识符。preferredTerm
:医学概念的首选术语。vocabularyCodes
:医学概念在支持的医学词汇中的表示形式。
relationships
:定义实体提及之间的有向关系。在示例中,关系的正文是“人胰岛素疗法”,关系的对象是“5 个单位”。confidence
:表示关系中模型的置信度,为 0 到 1 之间的数字。
除了列出的字段之外,响应可能还包含 additionalInfo
字段,其中会说明实体提及类型的任何其他说明。请参阅其他信息。
支持的语言
Healthcare Natural Language API 仅支持从英语文本中提取医疗保健信息。
支持的医学词汇
Healthcare Natural Language API 支持以下医学词汇:
- 剖析学基础模型
- 基因本体论
- 人类基因组组织基因命名委员会
- 人类表型术语集
- ICD-10 操作编码系统
- ICD-10-CM
- ICD-9-CM
- LOINC
- MeSH
- MedlinePlus 健康主题
- 超级叙词表名称
- NCBI 生物分类数据库
- NCI 叙词表
- 美国国家药品档案
- 在线人类孟德尔遗传
- RXNORM
- SNOEDED CT(仅面向美国用户提供)
支持的医学知识类别
Healthcare Natural Language API 会为 entityMentions.type
字段分配医学知识类别。支持的医学知识类别列表如下。属于肿瘤学、社会决定因素 (SDOH) 和受保护健康信息 (PHI) 群组的实体提及类型仅在预览版中提供:
分组 | 医学知识类别 | 说明 |
---|---|---|
常规 | 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
|
研究的直接或间接导致肿瘤形成的基因,例如 BRCA1、p53 和 ALK。 | |
HISTOLOGICAL_GRADE
|
一种分类系统,用于对癌细胞的外观进行分级。 | |
LAB_SPECIMEN
|
从人体收集的生物材料,用于测试或采样。 | |
RADIATION_DOSAGE
|
给予患者的辐射量。 | |
ONSET
|
日期注释,表示患者首次观察到癌症相关问题的日期。 | |
VARIATION_CODE
|
为在主要编码系统(例如 ClinVar 和 HGVS)下检测到的特定基因组变体分配的代码。 | |
健康的社会决定因素 (SDoH)(预览版) | AGE
|
年龄标识符。包括描述年龄的短语,例如“看起来比实际年龄年轻”“中年”“78 岁”或“青少年”。
注意:根据《健康保险流通与责任法案》(HIPAA),只有当年龄超过 90 周岁时,个人的年龄才会被归类为受保护健康信息 (PHI)。如需了解详情,请参阅 HIPAA 隐私权规则摘要。 |
FAMILY
|
描述患者家庭结构或亲属的短语,例如“已婚,有两个孩子”“兄弟”“妻子”“有支持性的父母”或“离婚”。 | |
LIVING_SITUATION
|
描述患者居住情况的短语,例如“与室友同住”“有全天候的护理人员”或“最近搬家”。 | |
SOCIAL_IDENTITY
|
描述患者或家庭社会身份的字词,包括种族、民族、性取向、宗教、国籍、所说或不说过的语言或原籍国。 | |
PHYSICAL_APPEARANCE
|
描述患者或家庭成员最明显或最明显的身体特征的短语,例如“右脸颊有疤痕”“唐氏综合症”“肥胖”或“左腿截肢”。 | |
OCCUPATION
|
描述患者或家庭成员职业和就业状况的短语,例如“退休母亲”“从事焊接工作 20 年”或“去年失业”。 | |
受保护健康信息 (PHI)(预览版) | PERSON_NAME
|
个人的通用名称标识符。包括头衔,例如“博士”“Mrs.”或“MD” |
ORGANIZATION_NAME
|
收集 PHI 的医疗组织(例如诊所、养老院或医院)的标识符。 | |
GENERIC_ID
|
用于识别医疗记录、患者、医生、医院的通用 ID,例如患者的社会保障号或提供者的编号。 | |
LOCATION
|
地理位置,可能包含建筑物、街道、城市、州/省级行政区或邮政编码的名称和编号。 | |
PHONE_NUMBER
|
用于指示电话号码、传真号码或寻呼器号码的数字。 | |
EMAIL_ADDRESS
|
电子邮件地址标识符。 | |
URL
|
网站的地址。 | |
ZIPCODE
|
邮政编码标识符。 |
支持的功能特征类别
Healthcare Natural Language API 可以根据情景推断实体提及的功能特征或特性。例如,在语句“kusuma 的母亲有糖尿病”中,条件“糖尿病”的功能特征为 subject
FAMILY_MEMBER
。
时间关系
temporalAssessment
字段中返回的时间关系描述了此实体提及如何与主体在时间上相关。
Healthcare Natural Language API 支持以下时间关系:
CURRENT
CLINICAL_HISTORY
FAMILY_HISTORY
UPCOMING
OTHER
主体
subject
字段中返回的主体描述了实体提及与之相关的个体。
Healthcare Natural Language API 支持以下主体:
PATIENT
FAMILY_MEMBER
OTHER
确定性评估
certaintyAssessment
字段中返回的确定性评估描述了原始记录者的置信度。例如,如果原始备注包含“患者喉咙痛”,确定性评估会返回 LIKELY
值,以表明记录者认为患者可能喉咙痛的置信度。如果原始备注包含“患者喉咙不痛”,则确定性评估会返回 UNLIKELY
值,以表明记录者认为患者不太可能喉咙痛的置信度。
确定性评估可以是以下值之一:
LIKELY
SOMEWHAT_LIKELY
UNCERTAIN
SOMEWHAT_UNLIKELY
UNLIKELY
CONDITIONAL
其他信息
additionalInfo
字段提供有关实体提及的更多详细信息。例如,DATE
实体提及的 additionalInfo
字段可能包含与日期类型相关的详细信息,这些详细信息可归类为以下某种类型:
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
实体提及之间所支持的关系
Healthcare Natural Language API 可以根据周围的医学文本推断实体提及之间的关系。在响应中,关系的主体由 subjectId
标识,关系的对象由 objectId
标识。
Healthcare Natural Language API 支持实体提及之间的以下关系:
主体 | 对象 |
---|---|
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 输出作为 FHIR 软件包
当您请求 analyzeEntities
方法并将 alternativeOutputFormat
字段设置为 FHIR_BUNDLE
时,响应将包含以下 JSON 对象:
- 实体提及、实体和关系
- 表示为字符串的 FHIR R4 软件包,其中包含 JSON 格式的所有实体、实体提及和关系
如需创建 FHIR R4 软件包,Healthcare Natural Language API 会将实体提及、实体和关系映射到 FHIR 资源及其元素。下表列出了其中一些映射。
Healthcare Natural Language API 实体提及 | 医学知识类别 | 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 |
如需将实体从文本中提取为 FHIR R4 软件包,请参阅将输出提取为 FHIR R4 软件包。