针对上述问题,本文在深入分析非结构化信息管理框架UIMA规范和云计算编程模型MapReduce等相关技术上,提出了一种在云计算环境下基于UIMA对海量电子病历中的非结构化文本信息进行分析并建立索引的解决方案,设计并实现了相应的原型系统。
与传统的文本分析系统相比,本文工作具有以下特点:
1. 将UIMA框架与云计算编程模型MapReduce相结合,提出了一种在云计算环境下基于UIMA对海量电子病历中的非结构化文本信息进行分析并建立索引的解决方案。该方案既利用了基于MapReduce的云计算环境的处理能力,又保持了基于UIMA规范的系统构架的开放性,可根据不同的分析需求开发不熟不同的分析引擎。
2. 基于上述解决方案的原型系统提供对基于跨机构文档共享规范XDS的电子病历数据中心的接口,并可根据云计算平台Hadop的输入要求对电子病历中的非结构化文本信息进行预处理:原型系统对这些非结构化文本信息的分析和索引建立实现并行处理。
3. 开发实现了一个基于UIMA规范的中文分析引擎。该引擎以开源的中文分词软件IKAnalyzer为基础,结合外部的受控医学词汇CMV服务,可标注分析结构化电子病历中用自然语言记录的非结构化中文文本信息。
围绕上述目标,本文的研究主要内容包括:
(1)对医院内部或跨医院区域范围内的海量电子病历中国非结构化信息检索问题进行分析。
(2)剖析UIMA框架并研究其关键组件,包括Collection Reader、分析引擎,CAS消费等。
(3)研究云计算的关键技术、数据管理技术,编程模型,研究主流的开源云计算平台,包括Hadoop、Eucalyptus等。
(4)提出一种在云计算环境下基于UIMA对海量电子病历中的非结构化文本信息进行分析并建立索引的解决方法。
(5)结合外部医学词典,开发遵循UIMA规范并可对电子病历非结构化信息进行标注的分析引擎。
(6)基于上述方法设计并实现相应的原型系统,以验证其有效性和可行性。
UIMA概述
UIMA是非结构化信息管理框架,在处理文档、电子邮件、视频和其他非结构化信息中搜索特定的文本甚至概念,从而发现、组织和传送有用的知识给客户。在分析非结构化的信息的过程中,应用的算法有统计的方法、基于规则的自然语言处理(NLP)、信息修复(IR)、机器学习(Machine Learning)和本体论(Ontologies)等。
4.基于云计算和UIMA的电子病历文本分析方法
(1)UIMA和Hadoop整合
(2)电子病历的预处理
(3)分析引擎的定制
解决方案
基于UIMA和Hadoop的海量电子病历文本分析解决方案
系统框架
工作总结
电子病历的结构化是计算机可理解的电子病历基础。但在结构化的电子病历中存在大量的非结构化信息,例如医嘱和治疗记录。如果医生在临床表现等治疗记录时尽量用自然语言描述可以不需要改变他们习惯的记录方式,从而可以自由地表达各种信息。但是对于计算机来说,理解这些记录时很困难的。另一方面,在医院内部或跨医院的区域范围内,电子病历数据是海量的。针对医院内部或跨医院区域范围内的电子病历数据中心的海量电子病历中非结构化信息检索问题,结合UIMA和云计算技术,提出一种在云计算环境下基于UIMA的海量电子病历文本分析方法并实现原型系统。
主要工作包括:
(1)分析研究了UIMA架构及其核心组件;深入研究了云计算关键技术、开源云计算框架Hadoop及其作业调度。
(2)提出了一种在云计算环境下基于UIMA对海量电子病历中的非结构化文本信息进行分析并建立索引的解决方案。该方案将UIMA框架与云计算编程模型MapReduce相结合,首先对从遵循IHE XDS规范的海量电子病历数据源获取的非结构化文本信息进行预处理;然后通过Hadoop平台的Map函数,调用遵循UIMA规范的分析引擎进行分析及标注处理,结果以<关键词.UUID>键值对作为Map的输出;最后通过执行Reduce函数,读取Map函数产生的中间结果,完成数据的汇总,将相同的key的键值对合并,建立倒排索引至索引库。
(3)设计并实现了基于上述解决方案的原型系统。该系统采用分层架构,整合了开源的UIMA参考是要和Hadoop平台,主要包括文本分析、索引建立和配置管理等功能模块
(4)开发实现一个基于UIMA规范的中文分析索引。该索引以开源的中文分词软件IKAnalyzer为基础,结合外部的受控医学词汇CMV(Controlled Medical Vocabulary)服务,可标注分析结构化电子病历中用自然语言记录的非结构化中文文本信息。
6 工作展望
由于时间和实验环境的,本系统目前功能还较为单一,后续可以考虑做成一个通用的海量电子病历信息处理平台,同时将抽取的信息做后续处理,结合OWL等实现知识发现。知识管理,发挥更大价值。
实验中采用了Mysql作为医嘱索引载体,不是很理想,因为在集群规模较小时效果不错,但对于大集群而言,Mysql就有很大的局限。考虑后期采用开放源代码的全文检索引擎工具包lucene建立医嘱等非结构化信息的全文索引及信息检索。
为了获得更高的处理效率,可以改进Hadoop的调度方法,使得集群的负载更加均衡。因为Hadoop的作业调度默认的是采用FIFO(First In First Out,先进先出)的调度策略,不能够达到有效的负载平衡,在一定程度上是Hadoop集群应用的瓶颈。尽管Hadoop调度策略已经有改进,虽然提出了一种基于优先级的加权轮询算法,但调度效果仍然不尽如人意。下载本文