基于电子病历数据处理方法研究

2018-12-08 09:29余艳霞王燕闻谊
数字技术与应用 2018年8期
关键词:电子病历数据挖掘信息技术

余艳霞 王燕 闻谊

摘要:本文针对电子病历数据中存在的数据结构复杂、数据冗余性、数据不完整性、数据不一致性等特点,采取数据抽取、数据清理、数据集成和数据转换等方法对这些数据进行了处理,旨在提取电子病历数据库中有价值的信息并挖掘隐含在其中的医学诊断规则和模式,从而为疾病的诊断和治疗提供科学的、准确的辅助决策。

关键词:电子病历;数据挖掘;信息技术

中图分类号:R197.324 文献标识码:A 文章编号:1007-9416(2018)08-0035-04

1 前言

近年来,随着医疗信息系统在我国的不断普及信息技术在医学领域不断发展,很多大中型医疗机构已经构建了相当完善的数据信息系统,积累了大量的电子病历数据。但是,国内大多数医院并没有对数据进行进一步的分析和研究,只是运用传统的数据检索和统计方法来对数据进行处理,更多的还是停留在对电子病历数据的增加、删除、修改和查询上,比如说,医院会根据病人的多次住院情况记录来进行比较,总体上了解病人的病情发展情况,并未对这些记录做进一步的分析,来发现其中的规律。这就产生了“数据丰富,但信息贫乏”的现象。电子病历数据形式含有文字、图像、影像和切片等,主要还是以文本为主,这些文本包括了病人的基本信息以及患者在医院就诊的相关信息。这些数据中存在大量复杂的、重复的、不完整的数据。如果直接在这些数据进行研究,效果肯定不会很好,甚至会出现结果的严重偏差,而医学研究关系到人的生命和身体健康,因此,需要对这些数据进行处理。只有这样,才能改进数据的质量,提高数据的利用率,保证结果的正确性和合理性。

在进行数据处理之前,需要对电子病历系统的结构和电子病历数据的特点有一定的了解,知道电子病历系统中的数据结构,如出院记录、病名名称和手术记录等在数据库中对应的表名等,它属于哪个表空间,含有哪些字段属性,还有就是每个字段的类型和长度分别是什么。电子病历数据的特点如下:

(1)数据不完整性、不一致性。电子病历中的数据一般会由医院的医务人员进行操作,目前国内还没一套很标准的规范,以至于不同的人会对同一种病描述的不一样,从而会产生数据的不一致性。其次,电子病历只是对患者病情的概括性描述,并不能完全表达患者的病情,可能还会产生遗漏,这种情况会造成数据的不完整。

(2)数据结构复杂。电子病历数据表现的形式很多,有文本类型的,有图像类型的,还有数字类型。这些形式的使得我们无法以统一的格式对它们进行挖掘,需要采取不同的方法。

(3)数据冗余性。随着医疗技术的快速发展,每天都会产生大量的数据,这些数据中会存在一些重复的数据。比如说,有些疾病,比如说流行性感冒,患者表现的症状还有医生给出的治疗方案一般都很相似,这样就会造成数据库中数据的重复,还有就是患者在不同医院进行就诊也会产生重复的数据。这些情况都会造成数据的冗余。

(4)數据隐私性。电子病历数据包含了患者的所有在医院进行治疗的信息。其中有些信息就属于病人的隐私,如姓名、年龄、联系方式、婚姻情况和所患疾病等,在数据处理过程中需要对这些信息进行保护。

下面分别对数据处理常用的方法包括数据抽取、数据清理、数据变换和数据规约等进行研究。

2 数据抽取方法

数据抽取方法的主要目标在从电子病历数据中找出符合我们要求的特征属性。考虑到电子病历数据的数据格式多样,本文从两方面对数据进行抽取,具体描述如下:

(1)结构化的数据。对于已经结构化的数据,根据研究的目标从数据库中找到相应的数据,取出我们所需的属性的值即可。图1所示的是从Oracle数据库中截取的关于病人出院诊断记录表中的部分截图,里面包括了患者的ID号,诊断编码和诊断病名名称等属性。

我们可以使用SQL语句从中选出病人的ID号和对应的诊断病名名称,并对数据格式进行转换,然后利用算法寻找不同疾病之间的关系。

(2)非结构化的数据。电子病历中含有大量非结构化的数据,要想在这些数据中挖掘出有效的信息,我们需要将它们转换为结构化的数据来进行处理。我国的电子病历共享文档很多都是以XML文档的形式存在,这种非结构化的数据形式并不利于我们进行处理和分析。我们需要将XML文档映射到关系数据库中。在研读了一些资料发现,将XML文档直接映射到关系数据库并没有很好的方法。因此,本文所用的科研数据库采用将XML文档与对象之间、对象与关系数据库之间进行映射的方法来解决这个问题。首先,通过对象的序列化和反序列化来实现XML文档和对象之间的相互转换,然后,通过对象关系映射(ORM)来实现对象与关系数据库之间的相互转化。映射流程如图2所示。

电子病历共享文档结构化需要经过两个步骤。(1)电子数据抽取:通过XSLT技术,将CDA文档中的电子病历数据抽取出来放在一个简化的XML文档中。医疗数据包含在文档中的元素或者属性当中,这些数的类型和意义已经在关系数据库表中定义了,因此,只需提取电子病历共享文档中的数据,和关系数据库中表中的字段对应。(2)XML数据映射到关系数据库:运用Java中对象的发序列技术,将抽取数据后的XML文档反序列化为Java对象,并且处理好对象之间的关系,然后通过ORM将这些java对象存储到关系数据库中。

对于非结构化的文本数据,需要利用自然语言处理技术(NLP)对其进行处理。对文本数据进行处理需要经历以下几个步骤:

(1)文本分词。文本分词是文本预处理过程中不可缺少的部分,与英文文本中单词中有空格不同,汉语文本字之间是连续的,所以要想获取特征词,就必须对这些文本数据进行分词是,常用得中文分词工具有ICTCLAS2015汉语分词系统、IKAnalyer分词、庖丁解牛分词等。本文中运用的是ICTCLAS分词工具对电子病历系统中的文本文件进行处理,ICTCLAS由中科院研发,是最早的中文分词工具,采用C/C++进行编写。选择其作为分词工具主要考虑到以下几个方面原因:首先,自2000年诞生以来,目前全球用户已经突破30万人,得到很高认可;其次,该分词工具支持许多操作系统,如Linux、Windows。另外,还支持不同的语言进行开发,如C/C++、java等主流语言开发;最后,它可以同时支持中英文分词。

图3表示的是电子病历数据中部分片段截图。

上述病历片段在经过ICTCLAS分词工具分词后的结果如图4所示。

(2)去停用词。文本数据中并不是所有的词都能代表数据的特征,如“你”、“我”、“他”、“的”、“地”等,这些词需要从文本中去掉。ICTCLAS分词工具中会有这些词的文档,用户自己还可以加入自己的一些无关的停用词。

(3)词频统计。这一步非常关键。在去除掉停用词后,剩下的词就是文本的精华所在,此时,判断一个词的重要性就要统计它们在文档中出现的次数,即词频。一个词在文本中出现的次数越多,则说明这个词语越能表征这个文本。比如说,在糖尿病的诊断病例中,临床症状会多次出现“多饮”、“多尿”等词语。这些词语就可以代表对糖尿病进行诊断的特征。

(4)特征转换。就是把提取出来的特征转换为适合算法运行的形式。

3 数据清理方法

电子病历数据会含有一些不完整的、有噪声的和不一致的数据,我们需要对这些数据进行数据清理。如在本文研究的电子病历数据中的出院诊断记录中在疾病诊断一栏就有许多缺失的数据。这些数据如果直接被用来进行数据处理的话,会很大程度上影响结果,给人产生误导,所以说对其进行数据清理是十分必要的。

(1)缺省值处理。由于电子病历系统中数据量特别的大,更新的数据快的特点,会产生很多缺失的数据。如XXX医院的电子病历系统中出院诊断记录中有许多缺省的诊断数据。常用解决缺省值的办法有忽略元组,这种方法在缺失数据特别少的时候特别有效;在医学专家的指导下,人工填写缺失值,该方法效率比较低,很花费时间。本文为了避免缺省数据对算法挖掘效果的影响,采用的办法就是直接删除掉缺省的数据。

(2)重复数据处理。在仔细分析了电子病历数据库中的表中的数据后,发现这些数据中含有许多重复的或者相似的记录,比如说,患者中诊断结果中有“高血压”、还有“高血压3级”,按照医学原理,它们属于同一种病。所以在关联规则的挖掘中的实验中,我们把他们都按照“高血压”来处理,所以删除“高血压3级”的记录,类似的还有“糖尿病”与“2型糖尿病”等等。

4 数据集成方法

电子病历数据来源十分广泛,可以来源于某些电子仪器,可以来源医生对病情的记录等等,我们需要把这些数据进行整合且进行统一存储,建立数据仓库的过程实际上就是数据集成。本文的数据源统一来自ORACLE11G数据库,数据进行抽取后同样存于ORACLE11G数据库。

5 数据转换方法

电子病历系统中的许多数据不能直接拿来就能进行关联处理的,必须在进行挖掘工作前对数据进行变换,所以需要把电子病历数据转化为包含项的事务数据格式。电子病历数据包括数值属性、类别属性等。数值属性如患者的年龄、医院检测数据等,我们不可能把每个数值都当作一个项进行处理,这样会导致数据维度太高,不利于关联处理,我们需要根据某种标准数据进行区间划分,不同区间分别对应一个标识。比如对患者的年龄,可以分为3个区间,A1:age<30,A2:3060。对于类别属性,如出院诊断记录中病名名称,它们的值是分类的,比如说诊断结果为心脏病、高血压等,每一种诊断结果都对应关联处理的一个项,这样就可以发现不同疾病间隐藏的关系。

以糖尿病数据为例,在进行数据变换之前,首先通过阅读适当医学资料和咨询医院专家来确定划分的标准。本文对9个属性进行数据转换如下所示。

(1)年龄:A1:小于30岁;A2:30岁到60岁;A3:大于60岁。

(2)性别:M:男;F:女。

(3)临床表现:Z1:多饮、多尿、多食和消瘦;Z2:疲乏无力、身体肥胖;Z3:其它。

(4)是否嗜烟:S1:是;S2:否。

(5)是否嗜酒:D1:是;D2:否。

(6)是否空腹:L1:是;L2:否。

(7)血糖含量:B1:血糖含量小于7毫摩尔/升;B2:血糖含量在7毫摩尔/升和10毫摩尔/升之间;B3:血糖含量在10毫摩尔/升和15毫摩尔/升之间;B4:血糖含量大于15毫摩尔/升之间。

(8)视力情况:E1:不正常;E2:正常。

(9)糖尿病类型:I1:1型糖尿病;I2:2型糖尿病。

数据经过这些变换后,就可应用关联规则算法进行规则挖掘了,来发现这些属性之间的关系了。图5表现数据进行数据转换后的部分结果展示。

6 结语

本文针对电子病历数据中存在的数据结构复杂、数据冗余性、数据不完整性、数据不一致性等特点,采取数据抽取、数据清理、数据变换和数据规约等方法对这些数据进行了处理,旨在提取电子病历数据库中有价值的信息并挖掘隐含在其中的医学诊断规则和模式,从而为疾病的诊断和治疗提供科学的、准确的辅助决策。也就是说,医院中关于患者的病历数据中蕴含着丰富的信息和知识,比如说疾病的主要特征、疾病之間隐含的关系以及疾病的发展规律等,这些信息的提取可以在一定程度上帮助科研人员进行医学研究、辅助医生临床诊断,从而促进医学发展。来发现数据中有用的规则和知识。并且可以利用这些规律去辅助医生诊断、改善医院管理、丰富研究内容。快速、有效地从这些的数据中发现隐藏其中的、有用的信息和知识,从而提高医疗水平,因此,对电子病历数据进行研究无论在科研方面还是在应用方面都很有意义。

参考文献

[1]郭煜.电子病历与手写病历缺陷比较及对策分析[J].基层医学论坛,2012,(z1):91-92.

[2]Ravindranath K R. Clinical Decision Support System for heart diseases using Extended sub tree[C]//Pervasive Computing (ICPC), 2015 International Conference on. IEEE, 2015:1-5.

[3]丁衛平,祁恒,董建成,等.基于关联规则的电子病历挖掘算法研究与应用[J].微电子学与计算机,2007,24(3):69-73.

[4]胡光阔,王天朝,江晓云,等.基于粗糙集理论的数据挖掘技术临床应用研究[J].中国数字医学,2011,06(1):26-27.

[5]王欣萍,李燕.数据挖掘技术于医学电子病历系统的应用[J].现代预防医学,2008,35(13):2450-2451.

[6]Hoogendoorn M, Moons L M G, Numans M E, et al. Utilizing data mining for predictive modeling of colorectal cancer using electronic medical records[M]//Brain Informatics and Health. Springer International Publishing, 2014: 132-141.

[7]Zhongguang Q, Zong-yuan M, Zhao-zhi D. The application of rough set in the Chinese medicine rheumatic arthritis diagnosis[J]. Chinese Journal of Biomedical Engineering,2001,20(4):357-363.

[8]庄军,郭平,周杨,等.电子病历数据预处理技术[J].计算机科学,2007,34(3):141-144.

[9]Utama P A, Distiawan B. Spark-gram: Mining frequent N-grams using parallel processing in Spark[C]//2015 International Conference on Advanced Computer Science and Information Systems (ICACSIS). IEEE, 2015: 129-136.

[10]Gui F, Ma Y, Zhang F, et al. A distributed frequent itemset mining algorithm based on Spark[C]//Computer Supported Cooperative Work in Design (CSCWD), 2015 IEEE 19th International Conference on. IEEE, 2015: 271-275.

猜你喜欢
电子病历数据挖掘信息技术
新一代信息技术征稿启示
新一代信息技术征稿启示
新一代信息技术征稿启示
基于并行计算的大数据挖掘在电网中的应用
一种基于Hadoop的大数据挖掘云服务及应用
基于GPGPU的离散数据挖掘研究