基于电子病历的临床医疗大数据挖掘流程与方法

基本信息

作者:
阮彤1,高炬 2,冯东雷 3,钱夕元1,王婷1,孙程琳1
1.华东理工大学,上海 200237;
2.上海曙光医院,上海 200025;
3.万达信息股份有限公司,上海 200233

发表:
2017年大数据期刊
关键词:
医疗知识图谱;临床专病库;数据质量评估;电子病历;疾病预测;疗效对比
摘要:
  以医院电子病历为核心的临床数据记录了病人的疾病、诊断和治疗信息。挖掘此类数据,可以辅助医生进 行临床科研与临床诊疗。首先提出了临床大数据挖掘过程中碰到的各项难题,总结了临床医疗大数据挖 掘的核心流程,流程包括以临床数据集成、基于知识图谱的临床专病库的构建过程、电子病历数据质量 的评估方法以及以临床疗效分析与疾病预测为核心的临床医疗大数据应用等任务,进而对流程中的每个 任务提出了解决方案,给出了实验结果。最后,展望了未来临床电子病历挖掘应用和技术的发展。

研究背景及本文的主要工作

背景

  1. 医疗健康大数据能为个人的健康规划、疾病防治以及国家卫生策略提供更好的数据基础。
    医疗健康大数据研究对辅助医生给病人选择更好的治疗方案,进而提升医疗服务质量,降低医疗成本有积极的作用,得到了各国政府的大力支持。
    医疗健康大数据包含来自于移动终端的个人健康数据、医院临床数据、基因数据以及疾病预防控制的流调数据
  2. 医疗健康大数据的获取并不容易,但是,医疗机构经过长期的历史积累已拥有大量的电子病历(electronic medical record,EMR)数据。
  3. 对于临床科研而言,与临床实验获得的数据或是人工 构造的专病队列数据相比,EMR数据具有采集成本低和数据实时等优势。因此,以医院电子病历为基础的临床大数据挖掘工作具有较好的数据基础。

主要工作

  本文介绍了医疗大数据挖掘的整体流程、基于知识图谱的临床文本结构化过程、电子病历数据质量的评估方法及部分挖掘应用的成果。

基于电子病历的临床大数据挖掘整体流程

图1 基于电子病历的临床医疗大数据挖掘整体流程
  1. 对来自不同医院信息系统的病人数据进行数据集成,形成临床数据中心(clinical data repository,CDR)。数据来源包括医院信息系统(hospital information system,HIS)、临床信息系统(clinical information system,CIS)、实验室信息系统(laboratory information system,LIS)、放射信息管理系统(radioiogy information system,RIS)、影像归档和通信系统(picture archiving and communication system,PACS)和病案系统等信息系统。
  2. 基于CDR构造面向特殊疾病的专病库,如大肠癌病例库、心衰病例库等。在构建临床专病库时,要确定符合疾病特征的病例;确定需要的病例字段,对于结构化的字段,需要从原始的电子病历库中抽取,例如年龄与性别,对于半结构化或非结构化字段,需要使用文本抽取等技术,结合知识库对其进行结构化。在这个过程中,需要建立知识图谱,以方便自动化的病例数据抽取。
  3. 需要对病例库进行数据质量评估,评估其是否适用于挖掘。评估指标包括数据完整性、一致性、医疗实体及其编码的一致性、数据精确性等。若病历库达到评估要求,即可进行第四步的数据挖掘,如果不能,则需 要回到前面步骤,重新抽取和整理数据。
  4. 确定挖掘目标,选择合适的模型,设计并实施实验。如果实验发生问题,可能需要改进算法,也有可能是数据质量缘故,需要回到前面步骤,重新抽取和整理数据。

基于中文医疗健康知识图谱构建临床专病库

存在的问题:

  1. 挖掘与预测算法通常处理的是结构化数据。然而,在临床中,大量的医疗文书是以文本形式存在的。需要将文本结构化。
  2. 由于病历中大量存在的同义词或上下位词以及ICD编码的局限性,病历的自动处理的实现也存在困难。

解决方案:

  先建立一个标准化的、包含疾病、症状等在内的医疗健康知识图谱,然后通过文本挖掘与实体链接手段,将结构化的文本与知识库相关联。如图2所示,


图2 基于知识图谱/知识库的结构化病历库的构建

中文医疗健康知识图谱构建

  为方便后续的电子病历结构化以及大数据挖掘工作,笔者项目组利用互联网数据与百科数据,构造了自己的知识图谱。从医学角度来说,可能存在不精准之处,但用于数据的预处理过程确是有效的。笔者团队的知识图谱的构建过程如下。

1. 模式图定义
图3 医疗知识图谱的模式

  图3展示了笔者定义的医疗知识图谱的模式。笔者定义了5个顶层概念:症状、疾病、药品、科室和检查。“症状”概念又细分为“中医症状”和“西医症状”两个子概念,“药品”细分为“中药”和“西药” 两个子概念。概念之间通过“症状相关疾病”“疾病相关科室”等属性进行关联。每个概念都给出了实例,这些实例形成了临床实践中一个场景:一位“头部”患有“头痛”的患者同时患有“打喷嚏”“恶寒”等 症状,则该患者需要去“内科”就诊,并进行“血检”和“测温”等相关检查。该患者最终被诊断为“夏季感冒”,并伴有“扁桃体发炎”,建议服用西药“阿司匹林”和中药“小柴胡”。

2. 医疗知识抽取

  基于上文定义的模式图,抽取实体(症状、疾病与检查等)、属性和属性值,用来构建医疗知识图谱。知识抽取分为医疗健康网站的知识抽取和中文百科站点的知识抽取两部分。
1) 医疗健康网站的知识抽取
  笔者收集了多个医疗健康网站作为知识抽取的数据源,医疗健康网站包含症状、疾病、药品、检查和科室5种类型的实体,每一类实体都有两种类型的页面:实体列表页面和实体详情页面。其中,实体列表页面列举了该网站上所有属于该类型的实体,实体详情页面则展示了某个实体的详细信息。 具体抽取过程如下:
a)从实体列表页面出发,爬取所有实体的详情页面,这一过程抽取了实体的类型。
b)相同类型的实体,它们的详情页面具有相 同的页面结构,因此基于统一的超文本标记语言,从页面中提取出实体的属性信息。
c)基于人工总结的 Hearst模板[10]从详情页面的摘要中抽取实 体的同义词。
2) 中文百科站点的知识抽取
  选取了3个最大的中文百科站点(百度百科、互动百科和中文维基百科)进行知识抽取,包括抽取和分类两个阶段。
a) 将医疗健康网站抽取得到的实体作为种子集,获取它们在百科页面中的分类。然后抽取分类中包含的所有实体,形成一 个实体集合。
b) 这些集合中包含了和目标无关的噪声实体,因此训练一个分类器对抽取阶段得到的结果进行分类。训练数据的正例来自医疗健康网站不同类型的实体,负例则由医疗健康网站中“美容”“养生”和“心理”列表页面下的实体组成。分类器的特征来自百科实体页面的“实体名”“摘要”“目录”“正文”和“分类”5个字段。笔者基于启发式规则将百科实体页面的5个字段转化成一系列二值型特征。
3) 医疗知识融合
  知识融合阶段对抽取结果进行实体对齐、实体类型对齐和实体属性对齐。
  实体对齐指建立实体之间的同义关系,具体操作是指将医疗健康网站和中文百科站点抽取的同义关系加入医疗知识图谱中。
  实体类型对齐解决了一个实体对应多个互斥类型的数据冲突问题。采用基于投票和数据源优先级的方法确定实体类型。整体思路是:票数最高的结果作为实体的最终类型;当出现多个类型获得最高票数时,根据最高票数中权重最大的数据源确定最终结果。
  实体属性对齐主要建立抽取的实体属性到模式图中属性的映射关系。对于医疗健康网站,相同类型实体包含了相同的实体属性,笔者手工制定实体属性到模式图的映射规则。例如,从“信息框”中抽取的 “关节疼痛”的3个属性为症状部位、相关科室和相关疾病,分别映射到模式图中的症状相关部位、症状相关科室和症状相关疾病。

临床专病库的构建

  专病病例库的构建有3个步骤:专病病例确定、专病病例库所需字段确定与提取以及专病病历文本结构化。

专病病例确定

  使用ICD 9以及 ICD 10编码中涉及该疾病的所有编码集合抽取相关病历。并使用该疾病名称及其同义词从疾病名称字段进行抽取。
  这个过程目前是手动完成的,未来会对现有的ICD编码库补充部分层次结构,并自动对疾病名称进行编码,进而寻找某一类疾病的所有病例。

专病病例库所需字段确定与提取

  专病库的字段使用Delphi过程[11]向3类专家收集。第一类是从事临 床科研的临床医生;第二类是从事医疗大 数据挖掘的科研人员;第三类是医院信息 科的数据管理人员以及负责系统构建与数 据集成的IT工程师。
  由临床专家和数据挖 掘专家填写需求字段,医院信息科工作人员根据需求字段填写字段来源。然后进行3轮调查,确定临床症—治—效分析及医疗大数据挖掘所需的字段。

专病病历文本结构化

  下面以病历文本中症状的结构化为例进行说明。

  1. 首先需要识别出文本中的症状,其识别方法参见上文医疗实体抽取方法的相关介绍。


    表1 症状构成元素
  2. 然后需要对识别出的症状进行构成成分分析。中文症状可以拆分为以下16种组成成分:原子症状、连词、否定词、存在词、程度词、发展词、能够词、不能词、动作词、情景限定词、方位词、部位词、中 心词、感觉词、特征词、修饰词,见表1。
    对中文症状进行构成分析,类似于中文分词与词性标注,可以把它看成序列标注任务,运用条件随机场(conditional random field,CRF)或双向长短期记忆(long short-term memory,LSTM)网 络+CRF等方法进行实现。在得到每个症状的构成成分之后,便可以对其进行归一化处理,如对于原子症状“疼”“痛”“疼 痛”,统一为“疼痛”;对于程度词及否定词,“无”可以量化成0,“轻微”可以量化成0.2,“有点”可以量化成0.4,“明显” 可以量化成0.6,“广泛”可以量化成0.8,“极度”可以量化成1。此外,还可以根据切分出的症状构成成分,将抽取出的症状与知识库中的症状实体进行软链接,从而实现症状的标准化。

电子病历数据质量评估

步骤:

表2 心血管疾病质量评估指标体系
  1. 使用Delphi过程收集评估需求。根据临床医生定义、疾病的诊疗指南、相关文献等多个来源的需求,明确用户使用数据的目的和重点关注的数据。
  2. 确定和采集评估数据。根据评估需求,明确评估的数据范围,抽取出待评估数据集。电子病历主要有两类,即门诊病历和住院病历。门诊病历通常较短,包含信息较少,也缺乏对患者治疗情况的跟踪,因而,电子病历信息抽取和文本挖掘研究大多关注于住院病历。
  3. 建立评估需求与评估数据之间 的映射关系。根据临床科研人员、大数据挖掘人员的需求,补充需求字段来源与字段类型,其中需求字段来源用于说明字段来源于哪几个系统的哪几个字段,字段类型用于说明是文本、结构化还是影像类型。
  4. 提出质量评估指标。根据用户使用数据的目的选择评估度量或自定义评估度量。针对研究人员的心血管疗效分析需求,提出心血管疗效分析评估度量指 标,具体对数据整体质量、患者基础数据质量、诊断数据质量、治疗数据质量以及疗效数据质量建立评估度量指标,得到的指标体系见表2。
  5. 执行数据质量评估,针对每个评估度量进行数据质量评估,根据评分标准得到评估,该过程可以自动执行或者人工评估。
  6. 分析评估结果。根据评估结果分析数据集的质量问题,判定是否适合于研究目的。

结论:

  电子病历数据用于疗效分析研究具有一定的可用性,但现有数据质量在很多方面还存在一些问题。

改进措施:

  1. 首先,需要集成更多的医院系统。例如,心电图和心脏彩超的数据影响着心血管疾病的诊疗,也是疗效评估的依据。而HIS和LIS中缺乏此类检查数据,系统需要集成医院的RIS和PACS,确保用于疗效分析研究数据的可用性。
  2. 其次,改进与规范数据录入规程,加强各环节的管理,例如,一些家族史或是症状信息可由患者自助录入。
  3. 最后,引入更多的元数据规范,现有症状与检查名称缺乏规范,需要大量的数据后处理工作,可以引入更为完整的元数据规范,如SNOMED以及 LOINC。

临床医疗大数据挖掘应用

基于深度学习的疾病预测

背景:
  1. 目前,大多数医疗领域相关工作都集中于疾病风险预测和疗效预测[12-18],诊疗模式预测的相关工作较少。
  2. 诊疗模式预测的工作目前使用的方法大多数还是基于规则和传统机器学习算法,深度学习在医疗领域涉及还不深。
实现

1. 住院病人的向量表示
  使用LSTM模型对病人历次住院病历进行建模较为合理,具体建模使用参考文献[24](Sequence to sequence learning with neural networks)中提出的序列到序列(sequence to sequence,Seq2Seq)思想构造住院病人向量特征。

图4 Seq2Seq模型

  采用Seq2Seq模型的思想生成病人的向量表示。如图4所示,将模型编码出的中间编码C向量作为病人的特征。与原来模型不同的是,Seq2Seq的模型通常被用在机器翻译中,所以输出层选择的是softmax +交叉熵。而这里由于是自动编码器的思路,所以输出层和输入层的数据是一致的。
  使用深度学习的自动编码器,将病人的每一次住院记录编码成一个低维稠密的向量,用于病人的特征表示。然而,病人的 住院记录通常不止一次,那么对于编码出来的向量就需要用来表示其历次住院时的一个信息的总和。即对于一个病人,其就诊记录为x1, x2,…,xn,那么就需要生成对应的一组向量V={v1, v2,…,vn},对于一个向量vn,需要能够表示从x1一直到xn中所有 记录的信息。
  通过对出院次数分布进行统计,发现超过10次住院的病人仅占很少的比例,因此考虑到训练性能以及信息损失的问题,将Seq2Seq模型中的最大步长设置为10。对于超过10次和不满10次住院的病人采取如下的方法进行预处理:
● 将一个病人多次住院的记录进行拆分,即将 x1, x2,…,xn拆分成n条训练数据:{x1},{x1, x2},…,{ x1, x2,…,xn}。
● 对于超过10次住院的病人,由于最大步长为10,故需要进行裁剪,笔者选择保留最后10次的数据,将剩余的数据进行裁剪。即当 n>10时,仅保留{xn-9, xn-8,…, xn}这10次记录。
2. 疾病预测
表3 疾病预测对比实验

实验设置:
  使用支持向量机(support vector machine,SVM)进行疾病预测。*
  对于 一些疾病,由于其出现在实验数据中的样本较少,笔者采用了NearMiss[25]进行采样。
  表3对比实验结果为各个方法在各个疾病预测上的曲线下面积(area under curve,AUC)值。第一列是需要预测的疾病名称,第二列是本文的方法,第三列到第五列是PCA、K-means、GMM对比方法,第六列hand表示未对原始特征做预处理,第七列count是患者中有并发疾病的数目,第八列percent是患者中有并发疾病的百分比,第九列sample表示是否用了NearMIss进行采样。
实验结果及分析:
  从实验结果可知,使用Seq2Seq模型构造的特征在6项疾病预测中排第一,一项疾病排第二,明显优于其他特征生成方法。然而该方法并不是在所有疾病预测中占优。该方法优势在于不需要手工进行特征选择,而且在实践中发现,传统特征构造方法经常受限于窗口大小的选择(即在窗口范围内是否有再住院),不同的窗口大小会影响分类效果,不如基于Seq2Seq模型构造特征的方法简单方便。因此,本文方法是疾病预测任务的最佳选择。

基于倾向值匹配的疗效对比

  倾向值指被研究的个体在控制可观测到的混淆变量的情况下,受到某种自变量影响的条件概率。

实验设置

  因变量是再入院,笔者关注的自变量是心衰患者的十大伴随疾病,即高血压、糖尿病、冠心病、房颤、慢性肾功能不全、心脏瓣膜疾病、扩张性心肌病、肥厚性心肌病、慢性阻塞性肺疾病和脑梗塞或一过性脑缺血。需要控制的混淆变量包括患者的年龄、性别、用药、脉搏、检查等信息。

实验结果
表4 伴随疾病显著性影响

表4是倾向值匹配后,进行逻辑回归后的结果,其中高血压、糖尿病、冠心病、房颤、慢性肾功能不全、扩张性心肌病、脑梗塞或一过性脑缺血对心衰患者180天再入院有显著影响(其中,P值<0.05时,变量具有显著性影响)。

总结

  医院信息系统数据优点在于获取代价 低,缺点在于数据质量低,为此,本文给 出了如何基于医院电子病历数据进行大数 据挖掘的流程与应用示例。对于未来的工 作,从数据角度,需要融合更多数据字段 的病人数据;从方法角度,需要找到能够 支撑真实世界研究更细致、更有说服力的 统计学的方法,并且需要让现有的方法更 有可解释性;从信息技术角度,可以进一 步地将工作流程工具化,以便为医疗工作 者提供更好的科研支撑。

推荐阅读更多精彩内容