2. 郑州大学 第三附属医院 河南 郑州 450052
2. The Third Affiliated Hospital, Zhengzhou University, Zhengzhou 450052, China
医疗信息化离不开电子病历的支撑.电子病历是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式[1].美国麻省总医院门诊电子病历系统于1960年开发完成并投入使用,是早期最著名的电子病历系统[2].我国的电子病历的广泛实施起步较晚,自2010年国家卫生计生委医政医管局出台《电子病历基本规范(试行)》[1]之后,电子病历在各级医疗机构广泛实施.海量的电子病历数据是医疗领域的大数据,蕴含着大量的医疗知识和患者的健康信息,亟待得到有效应用.
电子病历包括一些自由文本(半结构或无结构)数据,采用自然语言处理技术(natural language processing,NLP)对电子病历进行结构化和信息抽取,是充分利用电子病历所蕴藏知识的重要一步.本文在分析中文产科电子病历自由文本结构及内容的基础上,对数据进行了清洗,去除病历中存在的噪音数据,按照治疗类型采用最大熵(maximum entropy,ME)模型对电子病历进行了分类,并采用支持向量机(support vector machine,SVM)对电子病历中的相似或相同句子进行了去重处理及差异化分析,为后续利用产科电子病历大数据进行信息抽取及临床决策支持奠定了基础.
1 相关工作国外对于电子病历的研究起步较早,有针对电子病历系统的研究[3],也有NLP技术在临床决策支持中的研究[4].文献[5]用SVM构建分类器对电子病历中的命名实体进行识别,并且采用ME模型对电子病历实体关系进行抽取.文献[6]采用统计模型(条件随机和ME)与规则相结合的方法识别电子病历中的命名实体.文献[7]用半监督的方法,用SVM作为分类器对电子病历实体关系进行抽取.文献[8]开发了一个临床决策支持系统,用于提高诊断准确性,实现精准医疗.文献[9]用神经网络的方法对双胞胎胎儿体重进行估计[9].此外,医疗领域还有其独有的语言资源,如一体化医学语言系统(unified medical language system,UMLS)[10],国际疾病分类标准(international classification of diseases,ICD)[11]和医学系统命名法-临床术语(systematized nomenclature of medicine-clinical terms,SNOMED CT)[12]等资源,这些资源为英文电子病历的研究提供了术语规范及知识层级结构.
针对中文的电子病历的研究则起步较晚,文献[13]和[14]从不同的角度针对电子病历的结构化进行了研究.文献[15]对出院小结中存在的问题进行了归纳.此外,从自然语言处理的角度,文献[16]采用分词和词性联合模型——管道模型对中文电子病历的词性标注进行研究.文献[17]采用条件随机和深度学习的方法对实体和关系抽取进行了研究.在语言资源建设方面,文献[18]借鉴I2B2的标注规范初步构建了电子病历命名实体和实体关系标注语料库.文献[19]构建了中文医学一体化医学语言系统(Chinese unified medical language system,CUMLS).文献[20]构建了中药一体化医学语言系统(traditional Chinese medical language system,TCMLS).针对中文产科电子病历,文献[21]对产科电子病历中的手术知情同意书进行了研究.文献[22]运用统计学的方法探讨了产科病历的质量问题,分析其缺陷并制定出相应的改进措施.到目前为止,还鲜有公开的中文电子病历的数据集,并且缺乏公开的中文生物医学领域语言资源的支撑,这也为开展中文电子病历研究带来了一定的困难.
2 产科电子病历的结构及特点 2.1 基本结构和内容中国的电子病历书写以《电子病历基本规范(试行)》[1]为基本指导.图表和自由文本是电子病历数据的主要表现形式[23],而自由文本这种非结构化数据是信息抽取研究的最主要对象.本文着重介绍病程记录和出院小结两部分的结构和内容.病程记录包括首次病程记录(每份病历中一个)、日常病程记录(也称查房记录,每份病历中有一个或多个)、上级医师查房记录和出院小结(每份病历一个)等.本文以15家医院随机抽取的产科3 034份电子病历为研究对象,对电子病历结构及内容进行了分析.所使用的数据均已作隐私化处理.病程记录及出院小结结构及所包含的内容如表 1所示.
医院信息管理系统在设计时为了减少输入工作量,通常采用直接套用模板,或在原有病历上修改的方式录入.这种方式会导致一些问题,如电子病历中重复内容较多,信息不一致,时间先后顺序错误等.本文主要针对电子病历中存在的信息的冗余与缺失以及信息的错误这两类问题进行分析.
2.2.1 信息冗余与缺失根据电子病历章节特征,采用基于规则的方法对电子病历进行结构化时发现,电子病历中存在首次病程记录和出院小结缺失的情况.由于已经隐私化处理,无法建立两个病历之间的关联,根据信息抽取的需求,对缺失这两部分的电子病历直接从数据集中移除.移除的病历一共279份.
对冗余信息的处理,采用自动比对的方式进行筛选,当检测到同一个病历中有多个首次病程记录或出院小结时,根据信息的完整性以及记录时间,甄选出正确的首次病程记录或出院小结.
2.2.2 电子病历数据错误及识别通过分析,本文所采集的电子病历中,第一类较为集中的错误是时序错误.按诊疗顺序及诊疗时间,病历中出现时间超前,甚至为未来时间的情况.如本文抽样采集的数据为2015年电子病历,个别病历中出现记录时间为“2016.12.23”的情况.针对时序错误问题,根据产科治疗的时序逻辑,首次病程记录中出现的时间一般不会早于末次月经时间,且不会晚于预产期的时间.根据诊疗活动的逻辑顺序,设计出了时序检测方案,具体算法如图 1所示.经时序错误检测,共发现有10份病历出现时序错误.
第二类错误是电子病历中的逻辑错误.针对产科住院者的情况,在电子病历的入院诊断和出院诊断中,会出现“孕X产Y”这样明确的诊断.根据在产科所进行的如顺产、剖宫产、引产、流产、保胎治疗等医疗活动中,在入院诊断中为“孕X产Y”,出院诊断则应为“孕X产Y”或“孕X产Y+1”.如入院诊断是“孕2产0”,当所进行的治疗为保胎治疗,出院诊断是“孕2产0”,此出院诊断与入院诊断逻辑一致.但是某一份病历中入院诊断和出院诊断中都是“孕4产2”,但在出院诊断中有“剖娩了一个男婴和一个女婴”,据此可判断此病历出现了逻辑错误.基于以上分析,发现如果进行生产,则首次病程记录中的入院诊断中的“孕X产Y”,出院小结中的出院诊断应为“孕X产Y+1”,而其余医疗活动,入院诊断和出院诊断中的“孕X产Y”应保持一致.根据这一规律,用规则分别提取到这两部分内容进行比对,经过处理发现共有52份出现此类逻辑错误的病历.
2.3 信息过滤及结构整理电子病历是对病人诊疗活动的完整记录,其中有些数据是常规的告知性信息,并非患者的个性信息,如手术前的风险告知等内容,对所有的患者都是相同的.这部分内容会成为数据分析与挖掘时的噪音,因此从病历中剔除这类无特定病人信息的告知性文本.此外,电子病历的原始文本是所有内容混排在一起,为了进行数据分析,需要把首次病程记录、查房记录和出院小结按章节进行整理,对首次病程记录按表 1所示的内容,如主诉、入院查体、产科检查、辅助检查、入院诊断、诊断依据、鉴别诊断和诊疗计划等进行结构化.为了便于进一步的研究,先把病程记录和出院小结提取出来,然后对首次病程记录的格式进行整理.
3 产科电子病历的自动分类患者在产科的诊疗按其是否分娩可分为保胎治疗、分娩和其他,按分娩方式可分为顺产、剖宫产、引产和流产.本文把产科电子病历分为:顺产、剖宫产、引产、流产、保胎治疗和其他6类.诸如产后并发症等入住产科的病历,则归入其他类别.相同的诊疗活动,电子病历的内容及结构较为相似,因此把产科电子病历按诊疗活动分为不同种类,便于对同一种类电子病历的信息进行抽取处理.本文采用最大熵模型和基于规则的方法对电子病历进行自动分类.
3.1 最大熵原理最大熵模型的基本原理是在已知部分信息的前提下,关于未知分布最合理的推断是符合已知信息最不确定或最大随机的推断.对于任意一个随机变量X,随机变量的不确定性越大,熵也就越大.
$ p\left( y|x \right)=\frac{1}{Z\left( x \right)}\exp \left[\sum\limits_{i=1}^{k}{{{\lambda }_{i}}{{f}_{i}}\left( x, y \right)} \right], $ | (1) |
$ Z\left( x \right)=\sum\limits_{y}{\exp \left( \sum\limits_{i}{{{\lambda }_{i}}{{f}_{i}}\left( x, y \right)} \right).} $ | (2) |
其中:p(y|x)是条件概率,在给定x的情况下,y发生的概率;Z(x)是归一化常数,如式(2)所示,并且确保
实验数据是人工标注了1 500份经过数据清洗的电子病历,包含顺产(29.4%)、剖宫产(30.47%)、保胎治疗(30.13%)、引产(5.73%)、流产(2.47%)和其他(1.8%)6类,其中1 000份作为训练语料,500份作为测试语料.本实验选用最大熵工具包(https://github.com/lzhang10/maxent),分词工具是ICTCLAS(https://codeload.github.com/NLPIR-team/NLPIR-ICTCLAS/zip/master),词表是在互联网和《妇产科学》[24]上收集的妇产科医疗术语和药物名称等一共1 751个.实验采用P、R和F-1值作为评价指标.
基于规则的方法是在观察语料过程中,根据电子病历特点,将其分类特征形式化,形成了两个规则集Ruleset1和Ruleset2,其中|Ruleset1| < |Ruleset2|.Ruleset1规则集中主要是显式特征,包括“入院诊断”和“出院诊断”中“孕X产Y”形式及含有某个类别特定的关键字,通过对“孕X产Y”比对及关键字匹配确定相应的类别.采用Ruleset1的分类效果较差,P为82.47%,保胎类别的准确率P_bt为94.01%.
进一步总结了非明显特征,加入到规则集Ruleset1中,形成Ruleset2.Ruleset2中增加了诸如流产和引产在月份上的区别,2.2.2节所提到的入院诊断和出院诊断中“孕X产Y”判断分类等规则.采用规则集Ruleset2进行分类时,P为88.53%,保胎类别的准确率P_bt为97.51%.虽然基于规则的方法也有比较好的分类结果,但总结规则的工作比较烦琐,费时费力,人工成本较高,且没有学习能力,因此无法有效推广.通过表 2中的F-1值可以看出,最大熵模型能够对病历很好的分类,F-1达到了最高的88.16%,并且能够很好地推广利用.
根据目前现有电子病历的特点,每个类别的电子病历有大量的重复和相似性信息.如果能去除这部分重复的信息,保留个性,则能提高后期的信息抽取等工作的效率.例如在主诉中出现的“发育正常,营养中等”都是正常的指标,且多份电子病历中的首次病程记录中均相同,并非诊断的决定性因素,因此本文考虑通过计算句子相似度,去同存异,仅留存个性信息.但若句子中有数值信息,如末次月经时间,双顶径等,是诊断所依据的关键信息,因此在进行文本去重时,首先将这类句子筛选出来,不参与相似度计算.
4.1 句子相似度计算本文采用基于语义的方法计算句子的相似度(https://my.oschina.net/twosnail/blog/370744#comment-list),具体公式为
$ {{\mathit{\boldsymbol{S}}}_{s}}=\frac{{{\mathit{\boldsymbol{S}}}_{1}}\times {{\mathit{\boldsymbol{S}}}_{2}}}{\left\| {{\mathit{\boldsymbol{S}}}_{1}} \right\|\times \left\| {{\mathit{\boldsymbol{S}}}_{2}} \right\|}, $ | (3) |
其中S1、S2是两个句子的语义向量表示.S1和S2的计算方式如下:
1) 给定句子Ti,分词后,得到的所有词W构成的向量为句子Ti的向量表示,即Ti={w1,w2,…,wn}.
2) 给定两个句子Ti、Tj的向量表示,将Ti、Tj中的所有词wi进行合并,重复的词只保留一个,得到两个向量之和,称为Ti、Tj的并集,表示T=TiUTj.
3) 给定句子Ti的向量表示Ti={w1,w2,…,wn}和一个词wi,依次计算wi和Ti中每一个词的相似度(值为0到1之间),所有结果中的最大值称为wi在Ti中的语义分数,表示为Ci.
4) 给定两个句子Ti、Tj的向量表示,Ti和Tj的集合T={w1,w2,…,wn},对T中的每一个词wi,计算wi在Ti中的语义分数Ci=score(如果wi在Ti中出现,则score=1;如果wi在Ti中没有出现,本文设score=0.2),T中每个分词的语义分数组成的一个向量,称为Ti基于T的语义向量,表示为Si={C1,C2,…,Cn}.
4.2 实验数据准备基于相同类型诊疗活动电子病历更为相似的原则,采用第3节所训练最大熵模型对未标注的1 255份电子病历进行分类,并对分类结果进行人工校对,加上第3节所用1 500份电子病历,抽取所包含的824份剖宫产类别的首次病程记录进行文本去重.在进行相似度计算之前,先对数据做如下处理.
1) 用标点符号“;”(中文分号)、“.”(中文句号)、“、”(中文顿号)、“,”(中文逗号)、“:”(中文冒号)、“; ” (英文分号)、“:” (英文冒号)和正则表达式“[1-9]{1}\\.”把首次病程记录切分成一条条的短句,共130 910条短句.
2) 含有数字的短句可能包含关键信息,去除含有数字的短句,剩余10 023条短句.
3) 进行分词处理.
4.3 实验结果通过对相似度计算结果的分析,将相似度的阈值设置为0.9,这个阈值能将相似度较高的句子剔除,保留个性化信息.实验数据中的10 023短句,经过相似度计算,删除相似度高于0.9之后,剩余3 146条短句.可以看出,经过相似度处理之后,短句减少了68.6%.例如句子“患者自觉胎动明显增多或者减少”和句子“患者胎动无明显异常”有一定差别,相似度为0.694 9,因此不能删除.句子“唐氏筛查及四维彩超正常”和句子“四维彩超及唐氏筛查均无异常”相似度较高为0.900 7,则进行删除.通过这样的差异化分析,保留了更有价值的信息,并且减小了数据规模,为进一步的辅助诊断及高效的信息抽取奠定了基础.
5 总结与展望本文完成的主要工作有:分析产科电子病历的基本结构及内容,对电子病历中存在的问题及数据清洗进行了介绍.采用基于规则及最大熵模型按诊疗活动类型对电子病历的自动分类进行了研究;依据分类结果,采用语义相似度的计算方法剔除电子病历中相似度较高的句子,为差异化分析及信息抽取奠定基础.本文所完成的工作对产科的电子病历进行了初步的分类及处理,今后将在此基础上以医学专业叙词表为基础,构建知识图谱,对电子病历中所包含的实体、关系以及所蕴含的知识进行识别和抽取,针对不同类型的生产方式进行研究分析,为临床专家提供医疗辅助决策.
[1] |
李晓雅. 卫生部出台《电子病历基本规范(试行)》[J]. 中国社区医师(医学专业), 2010, 11(3): 21. (0) |
[2] |
杨孝光, 李运明, 张虎军, 等. 发达国家及地区电子病历发展现状与启示[J]. 西南军医, 2013, 15(3): 345-346. (0) |
[3] |
KOHANE I S, GREENSPUN P, FACKLER J, et al. Building national electronic medical record systems via the world wide web[J]. American journal of ophthalmology, 1996, 122(3): 191-207. (0) |
[4] |
DEMNERFUSHMAN D, CHAPMAN W W, MCDONALD C J. What can natural language processing do for clinical decision support?[J]. Journal of biomedical informatics, 2009, 42(5): 760-772. DOI:10.1016/j.jbi.2009.08.007 (0) |
[5] |
BRUIJN B, CHERRY C, KIRITCHENKO S, et al. Machine-learned solutions for three stages of clinical information extraction: the state of the art at i2b2 2010[J]. Journal of the American medical informatics association, 2011, 18(5): 557-562. DOI:10.1136/amiajnl-2011-000150 (0) |
[6] |
CLARK C, ABERDEEN J, COARR M, et al. MITRE system for clinical assertion status classification[J]. Journal of the American medical informatics association, 2010, 18(5): 563-567. (0) |
[7] |
RYAN R J. Groundtruth budgeting: a novel approach to semi-supervised relation extraction of medical language[D]. Cambridge: Massachusetts institute of technology, 2011: 2-66. http://dspace.mit.edu/handle/1721.1/66456
(0) |
[8] |
CASTANEDA C, NALLEY K, MANNION C, et al. Clinical decision support systems for improving diagnostic accuracy and achieving precision medicine[J]. Journal of clinical bioinformatics, 2015, 5(1): 1-16. DOI:10.1186/s13336-015-0016-6 (0) |
[9] |
MOHAMMADI H, NEMATI M, ALLAHMORADI Z, et al. Ultrasound estimation of fetal weight in twins by artificial neural network[J]. Journal of biomedical science and engineering, 2011, 4(1): 46-50. DOI:10.4236/jbise.2011.41006 (0) |
[10] |
BODENREIDER O. The unified medical language system (UMLS): integrating biomedical terminology[J]. Nucleic acids research, 2004, 32: 267-270. (0) |
[11] |
UZUNER Ö, LUO Y, SZOLOVITS P. Evaluating the state-of-the-art in automatic de-identification[J]. Journal of the American medical informatics association, 2007, 14(5): 550-563. DOI:10.1197/jamia.M2444 (0) |
[12] |
UZUNER Ö, SOLTI I, CADAG E. Extracting medication information from clinical text[J]. Journal of the American medical informatics association, 2010, 17(5): 514-518. DOI:10.1136/jamia.2010.003947 (0) |
[13] |
于一, 廖睿, 叶大田. 电子病历结构化方法概述[J]. 北京生物医学工程, 2007, 26(1): 103-106. (0) |
[14] |
李伟. 非结构化病历文档结构化转换方法研究[D]. 天津: 河北工业大学, 2013. http://cdmd.cnki.com.cn/Article/CDMD-10080-1014031581.htm
(0) |
[15] |
赵津京, 滕国洲, 冷建文, 等. 出院小结存在的问题及对策[J]. 解放军医院管理杂志, 2009, 16(1): 34-35. (0) |
[16] |
赵芳芳. 面向中文电子病历的词性标注技术研究[D]. 哈尔滨: 哈尔滨工业大学, 2014. http://cdmd.cnki.com.cn/Article/CDMD-10213-1014081844.htm
(0) |
[17] |
叶枫, 陈莺莺, 周根贵, 等. 电子病历中命名实体的智能识别[J]. 中国生物医学工程学报, 2011, 30(2): 256-262. (0) |
[18] |
杨锦锋, 关毅, 何彬, 等. 中文电子病历命名实体和实体关系语料库构建[J]. 软件学报, 2016, 27(11): 2725-2746. (0) |
[19] |
李丹亚, 胡铁军, 李军莲, 等. 中文一体化医学语言系统的构建与应用[J]. 情报杂志, 2011, 30(2): 147-151. (0) |
[20] |
曾召, 王小平. UMLS与中医药一体化语言系统的建立[J]. 中华医学图书情报杂志, 2006, 15(3): 1-3. (0) |
[21] |
李廉. 电子病历妇产科手术知情同意书缺陷分析与改进措施[J]. 中国病案, 2015, 16(2): 56-59. (0) |
[22] |
江林, 童亚非, 李兴海, 等. 妇产科住院病历书写质控与持续改进[J]. 现代医学, 2011, 39(3): 353-355. (0) |
[23] |
杨锦锋, 于秋滨, 关毅, 等. 电子病历命名实体识别和实体关系抽取研究综述[J]. 自动化学报, 2014, 40(8): 1537-1562. (0) |
[24] |
谢幸, 苟文丽. 妇产科学[M]. 第8版. 北京: 人民卫生出版社, 2013.
(0) |