摘要:随着医院信息系统的快速发展,为医院带来了海量数据。对这些数据的有效利用、分析,挖掘其中隐含的信息,能为医院管理提供更好的决策支持。但如何从医院信息化进程中产生的海量多源异构数据中甄选出高质量数据,是医疗大数据领域首当其冲的问题。文章在尽量不影响改变医院现有系统的基础上,利用数据中间件的形式,对多源异构数据进行清洗转换,为上层应用提供标准数据集。
Abstract: The rapid development of hospital information system has brought huge amounts of data for the hospital. The effective use of these data, analysis, and to mine the hidden information, can provide better decision support for hospital management. But how to select high quality data from the massive multi-source heterogeneous data in the process of hospital information is the most important problem in the field of big medical data. This paper is trying to make use of the form of data middleware to clean and convert multi-source heterogeneous data, and provide the standard data set for the upper application on the basis of not changing the existing hospital system.
关键词:大数据;多源异构数据;模式匹配
Key words: big data;multi-source heterogeneous data;pattern matching
中***分类号:TP311.5;P208 文献标识码:A 文章编号:1006-4311(2017)08-0080-03
0 引言
信息技术及互联网的高速发展和全球的数字信息资源的急剧增加,推动着大数据时代的来临,各行各业每天都在产生数量巨大的数据碎片。在“大数据时代”我们所要做的事情就是对隐藏于大数据中有价值的信息进行分析与挖掘[1],将分散的数据变为有用的信息,再加以创新和积累形成知识。只有形成了知识的数据才具有资产价值。我们面临的第一个挑战就是如何采集高质量的数据。高质量的数据集需满足以下5种特性:精确性、一致性、完整性、同一性和实效性。精确性指数据符合规定的精度,不超出误差范围;一致性指数据之间不能存在相互矛盾;完整性指数据的值不能为空;同一性指实体的标识是唯一的;时效性指数据的值反映了实际的状态。此外,还需考虑到人为因素,即数据不能是人工伪造的。
数据质量问题在医疗行业中表现得尤为突出。医院信息化在近三十年的飞速发展过程中,信息系统的建设规模越来越大,应用越来越复杂多样。这些系统因其处理的业务和采用的技术架构不同,其采集、处理、存储和交换数据的标准均存在较大的差异。从数据的结构形式来看,分为结构化数据、半结构化数据和非结构化数据。例如:PACS和心电监护系统等产生视频、音频等以多媒体格式存储的非结构化数据;HIS和LIS产生患者档案、医嘱处方、化验单等以标准表单形式存储的结构化数据;电子病历又以产生半结构化数据为主。另一方面,从信息记录的模式来看,同一实体可能在多个系统均有记录,但是其具体属性集合可能各有不同。就算是同一属性,其命名或数据更是可能在交互过程因为系统或者手工记录的原因发生错误从而存在相互矛盾冲突的地方。
从以上现象我们不难看出,医疗行业中的数据呈现出一种多源异构性,而且该特征会产生严重的数据质量问题。“失之毫厘谬以千里”,这种不良的数据会对医疗大数据的后续应用产生极为不利的影响。为解决这个问题,我们必须对这些多源构的数据集进行收集和整合,转换为新的高质量的数据集,从而为上层的大数据分析应用打下良好的基础。
1 系统设计
如果采用传统的数据仓库策略,我们的方法简单说来可以分为以下几步:先抽取原始数据,再根据业务规则对其进行清洗和转换,最后按标准的格式将数据装载到数据仓库中。其简称为ELT。这种策略可以提供有力的决策支持,但是也存在一些不足之处。首先,数据仓库的策略多为离线处理,面对海量的实时数据处理,处理效率不高。其次,这种策略在抽取之前就需要定义好规则和标准,难以应对可能随时会变更的需求。最后,如果想要在不中断在用生产系统即无增量数据产生的前提下,对海量的存量数据进行一次性的ELT,成本太高。针对以上的不足,本文提出的解决方案如下。
系统的结构***如***1所示。在不影响医院在用的生产系统的基础上,增加数据实时采集子系统和增量式映射管理平台两个中间件。生产系统上的实时数据和历史数据,先经过数据采集子系统进行采集和过滤,然后将这些数据分发至备份数据存储集群进行存储,再由映射管理平台对这些异构数据进行实时整合,建立缓存库和知识库,并为大数据分析平台提供标准化的数据接口。
1.1 数据实时采集子系统
1.1.1 数据采集模块
该模块的功能可分为历史数据采集和实时数据采集。其中,历史数据的采集采用设置规则过滤后全量导入的方式;实时数据的采集采用基于数据库日志解析的方式来获取增量变更实现数据的同步,这种方法对在用的生产系统几乎不会产生任何负面的影响。
1.1.2 数据预处理模块
该模块负责对数据进行以下预处理:
①无效信息过滤。识别并剔除错误数据和重复数据,提高处理效率和整合的准确度[3]。
②数据加密。为保障数据安全,对原始数据进行加密。
③数据压缩。对原始数据采用无损的压缩处理,提升存储空间利用率和传输效率。
1.2 增量式映射管理平台
该平台包括查询处理模块、模式匹配模块、语义转换模块、知识库管理模块、缓存管理模块及缓存库和知识库。该平台的工作流程如下[3]:
①查询处理模块接到数据查询请求,首先查找缓存管理模块中是否己经整合过该请求。如查找成功,对于已缓存了数据集的,直接返回结果;对于未缓存数据集的查询,进入步骤④。如果查找失败,则进入步骤③。
②调用模式匹配模块,根据查询需求对各异构数据与标准目标数据进行匹配,建立映射关系。
③根据模式的映射关系,转换查询请求并下发到各匹配的异构数据源。
④查询处理模块整合返回的结果数据集,并调用语义转换模块对部分结果进行语义转换并通过知识库管理模块更新知识库。
⑤查询处理模块通过同一数据接口标准向上层系统提供查询结果。
为提高系统效率,各个模块在必要情况下会对部分数据或中间结果进行缓存,而不是每次都重新计算或者重新查找。系统会随着中间计算结果和映射的缓存不断扩大,知识库的不断丰富,不断提升查询的效率跟精确度。
以下对系统的关键处理模块――模式匹配模块和语义转换模块进行介绍。
1.2.1 模式匹配模块
该模块的匹配流程如***2所示。
***中,进行模式匹配的依据为属性的相似度,其简易的度量公式(模式匹配算法公式)如下:
sim(S1.ei,S2.ej)=AGG(simf(S1.ei,S2.ej))
其中,ei与ej是分属于模式S1和S2的两个属性,simf是基于特征f的相似度算法。AGG为聚合函数。该公式根据一定的聚合规则,综合考虑多个相似度算法的结果,得出两个属性的最终相似度。目前国内外正在研究的相似度算法即属性匹配器有:基于单词相似度的属性匹配器,基于单词编辑距离的属性匹配器,基于数据类型的属性匹配器,基于数据实例的属性匹配器。在实际应用场景中,还可以根据业务实际情况,添加自定义的属性匹配器,通过各属性匹配器的合理搭配使用,提高属性近似度的精度。
1.2.2 语义转换模块(详见***3)
该模块主要负责将各异构数据源的属性数据转换成标准数据。例如,上层分析系统可能需要获取医嘱的具体内容,而某些数据源中仅仅包含医嘱代码。这时,语义转换模块就可以根据知识库中医嘱代码与医嘱具体内容的映射关系,将医嘱代码转换为医嘱内容。我们设定一个阀值T,当在一个数据表中成功匹配到T及以上个样例数据则匹配成功。如***3所示的匹配过程中,我们设定的T值为1,经过第一轮匹配,我们发现table1中存在样例数据(“qd”“每日一次”),table2中存在样例数据(“bid”“每日两次”),即从知识库中匹配到了两个数据表。根据tablel和table2中的数据,继续转换query中 “advice_code”属性未转换的数据。tablel中存在“qid”与“q2h”的数据,table2中存在“qn”与“qh”的数据,可直接转换。但是query中“M.D.S”却没有找到对应的结果。进行第二次迭代匹配,l现了table3并在其中找到了“M.D.S”对应的转换结果[3]。以上示例过程中,我们通过增加迭代匹配的次数,来提高转换率。但是这种处理会导致执行时间的延长。因此,在实际场景中,我们需要对转换率和执行时间做一个折衷。另外,还可以通过机器学习、人为干预等方式,丰富我们的知识库,从而提高其支撑的语义转换模块的转换率。语义转换最理想的目标是使得所有转换只需一次匹配就能完成所有查询数据的转换。
2 结语
本文针对医疗数据中的多源异构特征产生的数据质量问题,提出了初步的解决方案。但是文中提到的几个处理过程相对简单,存在很大的改善空间,比如可利用云计算技术,采用分布式的采集和存储提高效率。其依赖的模式匹配器的算法也需要对国内外的研究进展保持跟踪,不断进行优化调整。此外,对医院存在的大量非结构化数据的处理,以及对冲突数据的处理,也是本系统可以扩展的一个研究点。
参考文献:
[1]邹北骥.大数据分析及其在医疗领域中的应用[D].计算机教育,2014(7).
[2]李晓菲.数据预处理算法的研究与应用[D].西南交通大学,2006.
[3]叶茂伟.大规模异构数据即时整合系统的研究与实现[D].浙江大学,2016.
转载请注明出处学文网 » 多源异构数据整合系统在医疗大数据中的应用