基于XML的电子病历数据存储方案探讨
对我国现有的基于XML技术的电子病历数据存储方案进行调研分析,结合我院电子病历系统的建设经验,分析了XML电子病历数据的特点,提出了优化电子病历存储的构想。经过实践有效地提高电子病历系统的整体性能,使医院信息化建设水平上了一个新的台阶。
Abstract:To conduct research and analysis of existing data storage solutions based on electronic medical records XML technology,combined with experience in building our hospital electronic medical records system,and analyzes the characteristics of XML data in electronic medical records,electronic medical records presented the idea to optimize storage.Proven effective in improving the overall performance of the electronic medical record system,so the level of hospital information construction on a new level.
Key words:Electronic medical record;XML technology;Data storage
電子病历(Eletronic Medical Record,EMR)作为医院的财富,它的价值体现在“长期、大量”的病历信息作为医疗科研的数据基础。医院管理和医院信息化面临的重要问题就是应该如何对病历数据进行有序保存和高效利用。我院从2009年开始进行以电子病历为核心的医院信息化建设,通过逐步地完善与优化电子病历数据存储方案,对提升电子病历系统的整体性能发挥一定的作用。
1 基于XML的电子病历系统
XML(Extensible Markup Language,可扩展的标记语言)是一种定义语义标记的规则,这些标记将文档分成许多部件并且对分散的部件加以标识。XML也用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法的元标记语言。
电子病历信息来源于CIS系统、LIS系统、PACS系统等,数据可能存在不同类型的数据库中,其中包含大量不确定的、非结构化的信息,对扩展性要求很高。传统的关系型数据库很难满足此类医疗数据的存储和应用。XML技术因为其本身具有自我定义、自我描述、良好扩展性等优点,早已成为医疗信息描述、转换的得力工具。XML在电子病历应用过程中,其核心作用是数据交换,其次是数据描述与存储。XML电子病历系统提供的功能主要分为信息采集、整理归档、访问服务、WEB浏览服务及管理服务等,基于XML的电子病历系统的模型结构见图1。
2 电子病历数据的特点
2.1电子病历数据内容涉及广泛 广泛地说,电子病历数据包括:门诊病历、住院病历、病程记录、手术记录、会诊记录、出院记录、病案首页、护理记录、
护理评估单、体温单等,甚至可包含PACS图文报告,LIS检验结棍,病理报告,等等。
2.2电子病历数据结构和样式的复杂性
2.2.1电子病历数据的结构和样式的几种类型分别是:文本型(如入院记录),表格型(如护理记录单),图文混排型(如外科手术记录、PACS图文报告),图形数据(如护理体温单)等,见图2。
2.2.2由于各患者的病情不同,即使用同一个模板书写出的病历,在内容和细节上差也会很大。
2.2.3电子病历数据的样式由于当前书写习惯上的共识也决定了其复杂性,如产科病历中“39+3w”等,说明了病历的样式上还需要通过类似上下角标的字体来表达它特点的意义。
2.3电子病历本身的特殊要求也增加了数据的复杂性 电子病历执行着三级检诊痕迹保留,因此对于检诊产生的修改和删除的痕迹,即便是所见即所得的检诊方式也需要特殊的语法来存储这些电子病历数据。
2.4电子病历数据量和长期存储特性 按照我国《医疗机构管理条例实施细则》第53条规定,医疗机构的门诊病历的保存期不得少于15年,住院病历的保存期不得少于30年。从纸质病历延伸到电子病历,就必须实现长期在线存储并实时应用于临床和科研。随着时间的推移,医疗管理和医疗技术将会不断变化与更新,病历格式、内容等也会随之出现较大的变换,因此电子病历系统需要解决如何适应变换和保持电子病历的连续性的问题。
2.5结构化电子病历标准术语不完善性 国内结构化电子病历经过几年的发展,目前电子病历书写文书的标准已有很多,但CPOE(computerized physician order entry)的标准却鲜见。由于电子处方系统CPOE在信息化中是一个中轴线,医疗行为在医嘱上基本都会得到体现,但在缺乏标准的情况下,电子病历与HIS的数据将无法交互。虽然1987年美国国家标准局公布了HL7(healthlevel7),为医疗信息系统提供统一的信息接口标准,并且在美国所有医疗信息系统中强制执行该标准。但我国目前尚未制定一个相对完善的标准化体系,仍然缺乏一致的标准和对标准的支持。所以说一个可以满足将来术语扩展的电子病历系统是关键技术之一。3 XML存储方式
当前我国XML数据存储方法主要有:关系数据库方式、文件系统方式、Native XML数据库存储方式。
3.1关系数据库存储方式 关系数据库存储方式是指将XML半结构数据转换为结构化数据后存储于二维表中,利用关系数据库的成熟技术来实现XML数据的存储和管理。存储的过程首先确定XML文档到关系数据库的映射策略,创建关系模式,然后使用DMO/SAX/SQL方法拆分XML文档,将拆分后的数据存储
到已创建的关系数据库的相应字段中。以下这些都是基于关系型数据库的大字段存储,如Microsoft 公司的sqlserver数据库中text/image,瑞典MySQL AB 公司的mysql数据库中text/longtext/clob/blob,甲骨文公司的oracle数据库中long/blob/clob。
3.2文件系统方式 文件系统方式相对比较简单,它把XML文档以文本文件的形式存放到相应的文件夹中,通过操作系统自身文件管理体系来管理其中的XML数据。这种方法通常是通过DOM和SAX等编程接口直接来实现应用程序对XML数据的访问和存取。
3.3原生(native)XML数据库存储方式 原生XML数据库专门用于存储XML文档的数据库,XML文档是基本存储单元,由于XML数据无需经过映射,在物理结构和逻辑结构一致,所以保持了数据的完整性。将电子病历的元素内容以XML文档方式保存到支持XML结构的数据库中,从目前的主流数据库Oracle、SQLServer、DB2这些大型数据来说,都支持xml文件存储。这些数据库的功能为基于XQuery查询的XML 数据检索提供了良好的底层。
4 XML电子病历数据的存储方式分析
4.1关系数据库存储方式不利于长期存储电子病历数据 卫生部规定住院病历至少要保存30年,所以电子病历的数据量相当庞大。由于面向结构化数据的关系型数据库无法直接处理电子病历中存在的半结构化数据,所以基于XML的电子病历系统与医院管理信息系统间需要数据格式的转换。
由于XML文档和数据库模式之间的转换会耗费一定时间,如果把文件直接存储到数据库的大字段类型中,随着数据的日益增长将会严重影响列表显示和统计的效率。
影响查询速度的原因,除了行数,还包括表所占的物理空间的大小。当表空间内的数据量较小时,在查询方面感觉不到明显的差异。但是如果大字段所存储的数据都是大型文本或较大的文件时,会导致数据库表的物理空间快速增大,所占用的空间甚至可达到整表所占空间的90%以上。当庞大的记录数占用了大量的表空间后,数据查询的速度必将受到影响,即使通过提高服务器本身的硬件性能和优化索引,但根本问题其实并没有得到解决。
4.2完全采用XML数据库来存储XML文件有一定的缺陷
4.2.1很难满足动态的XML病历保存及样式显示。电子病历由于有字体、表格等格式的存在,每个患者的病历内容几乎不同,因此实现样式和XML数据分离的方式存在一定难度。如怀孕“39+3w”,此节点在XML文件里是一个元素,如果在单个元素内实现样式是比较困难的。我们再看一个例子,见图3,“婚育史”在结构中不是一个单独的结点,它将展开一个婚育史的子树,详细描述年龄、子女数等。因此数据库方式很难用一个固定的Scheme和相对的样式来保证这些变化。除非牺牲类似这种展开节点的粒度,但同时也就失去了结构化电子病历的
意义。
4.2.2很难满足电子病历升级数据兼容的需求。XML文档的结构和内容要遵循XML基本语法,符合相应的文档规则,还受到一定模式的约束。国内出现过很多基于数据库存储电子病历升级不兼容的问题,原有数据库的开发都是基于既定的XML schema 进行。因为XML schema没有数据类型的支持,在大多数应用环境下表现能力不足,而且结构不够结构化,重用的代价相对较高,为满足升级需求不得不放弃兼容原来的数据,完全采用XML数据库存储数据就发生过这种情况。如果因为系统升级就导致电子病历原有数据不能兼容,查看旧版系统的病历还必须使用旧版本系统进行,电子病历升级也完全失去了意义。
4.2.3各历史阶段病历样式版本管理困难。随着时间的推移,由于病历样式和内容的变换,电子病历系统需要管理大量的样式。如何很好的管理这些样式是一大难题,一旦样式丢失,就不能正确按照原来格式复原显示病历,于是又产生了新的问题。
4.2.4电子病历痕迹管理困难。痕迹实际上是一种样式,这种样式的随机性非常大而且无法预计,样式相同的概率几乎为零,导致的后果就是不得不为每份病历文件都保留一份样式,因此数据库中样式和内容分离的优势就彻底的消失了。所以说基于数据库的XML文档来存储电子病历非常适合国外的电子病历系统,它们格式固定,内容简洁;但相对于目前国内电子病历系统多样性与复杂性来说就格格不入,这也是为什么国外电子病历系统引进到国内却不能直接使用的原因。
4.3文件系統存储方式存储容易修改数据难 文件系统存储方式的XML文件是ASCII文件,没有直接经过压缩处理,存储信息量大并占用系统大量内存。查询时不能获取文档内部信息,不利于查询和修改,重要的是难以管理这些缺乏一致性和完整性的庞大数据。
另外,如果采用文件服务器来集中存储电子病历的XML文件,客户端则透过通用Internet文件系统CIFS(Common Internet File System)或网络文件系统NFS(Network File System)协议来读写文件服务器。但因文件服务器不是为了应付大量文件读写而设计,特别是类似三甲的大型综合性医院对电子病历数据的并发访问量需求非常高,在大量客户端同时读写的情况下该存储方式表现明显不佳。
5 优化方案
根据上述关于电子病历数据存储的问题,结合我院的电子病历系统的建设经验,总结了以下优化方案。5.1 XML文件的层次化结构与以患者为中心,由多部分内容组成的病历结构相符,所以一个XML文件对应一个患者的病历信息,方便数据管理。对于原有数据库的纯文本医疗文档,可以通过语义识别功能将文本信息转化为XML模式,这样便实现了病历文档的连续性。
5.2采用加密的压缩的XML文件来实现病历内容和样式保存。加密的XML文件保证了病历安全性,在非授权的情况下无法查看和更改病历;由于XML文件的压缩率可高达70%(即100K可以压缩到30K),压缩后的XML文件可以提高网络传输速率。通过采用上述方法既缓解了医院的网络压力,同时通过加密传输,保证了病历的传输安全性,见图4。
5.3采用基于Message Queue (消息队列技术)的分布式、Remoting通讯机制开发的中间件技术实现分布式的3层架构。其中服务层机制包括:消息服务、文件服务与接口服务三部分。消息服务提供了客户端系统访问认证机制和系统内的转换消息流,文件服务器用于认证与获取医疗档案,接口服务用于验证用户登陆验证,数据库连接获取等。
5.4 XML文件采用分布式存储方式。该技术将医院内网网络中各机器访问服务器资源中的硬盘空间集合并构成一个虚拟的存储设备,数据资源其实分散存储在医院每一个客户终端。如此便解决了长期海量存储问题的同时也保证了系统快速响应问题。
5.5归档后的病历信息由于占用存储空间大而且需要长期离线存储,所以适合使用文件方式存储。如电子病历中的PACS图片,病理报告等数据以多媒体文件的方式存储在服务器中,采用XLink技术将多媒体文件与XML文档关联,多媒体文件统一采用关系表建立索引实施管理。
6 结论
电子病历通过应用XML技术,使医疗数据实现离线存储、在线调用、包装迁移,避免了使用单一数据库存储产生的各种问题。如数据库访问速度跟数据量增长成正比,病歷数据无法离线存储,数据库结构不一致无法实现远程共享传输等。
由于电子病历系统长期存储代替纸张病历提供的医疗信息,这需要建立记录数据的长期存储和管理体系。建立长期存储系统的目的就是解决如何让相同的病历数据在不同时期与不同数据库结构能否兼容的问题。其数据管理系统应支持患者信息累积式增加,支持相同的病历数据在不同数据库环境中的迁移和备份。
参考文献:
[1]刘颖,张玉芳,熊忠阳.XML文档在关系数据库中的存储方法[J].计算机应用,2004,04.
[2]王秋云.XML数据存储方法的研究[J].重庆科技学院学报(自然科学版),2007,129(4).
[3]陈健,徐雅斌.基于XML的电子病历系统的设计与实现[J].北京信息科技大学学报,2009, 09,24(3).
[4]杨泽辉,刘长春.电子病历结构化模型分析与设计[J].中国数字医学,2011,6(7):46-48.
因篇幅问题不能全部显示,请点此查看更多更全内容