pureXML:30秒内查询万条病历

电子病历是医院信息化建设的关键,也是患者寻求及时、有效治疗方案的可靠工具。虽然电子病历建设已经引起医疗卫生行业的广泛关注,但在医院信息化实践中并没有得到有效推广。除了标准化、相关立法等政策层面的因素外,处理和存储复杂的医疗数据方面的技术障碍也是电子病历未能真正推广的根本原因。

有效降低项目实施周期

电子病历系统涉及的数据结构异常复杂,几乎涵盖数据的所有类型。以病人信息为例,从医院管理到临床治疗,所涉及到的数据类型有表格、影像、X光、B超、CT、细胞学/病理学影像等,同时还包含既往病史、通科检查、专科检查、病程、医嘱、手术通知书、术前小结、术后小结、出院小结等非结构化的文字信息,有时甚至还会出现动态的视频内容。这些数据大多呈现树状型和链表型的层次化的结构特征。

由于XML是以阶层式的树状结构作为储存架构,透过元素和属性来包含数据,再利用XMLSchema控制数据的正确性,这种架构特性让XML随时可以新增字段。如果把XML技术应用到电子病历系统中,既能避免复杂的关联表的设计,减少开发的成本,也能使病历数据的格式更加规范并统一数据的交换接口,从而便于医疗数据的集成和海量XML数据的存储,从而大幅度缩短电子病历的开发周期。

如果采用传统的关系型数据库分析和处理这种复杂的数据和关系,就需要为其建立几十甚至几百张表的复杂关联,表结构设计非常复杂,难以理解,也缺乏整体性。数据库的结构变得十分复杂,数据库中的信息也变得十分难以理解。一旦要修改字段,牵动的范围相当大,既会影响到过去的数据,与其他数据表的关系也必须一并修改。电子病历的开发周期也因此变得很长,增加了建设成本。

由于在电子病历项目中采用XML技术,天网软件公司的项目实施周期大为缩短。该公司的技术总监王育东说:"我们只用了短短两个月的时间就把IBM的pureXML技术应用到电子病历项目中去了。"

不依赖一种语言

电子病历对医院来说是很有价值的临床数据。如果医院想在后期从电子病历数据中挖掘出更有价值的东西,就要对数据进行深层次的查询与分析,并整合各种类型的数据。此外,由于医学技术的发展,新的内容结构会不断地增加到病历中,而认识和技术手段的进步也会使原有的结构发生改变。

电子病历的描述模型要能适应上述结构上的变化,能够支持新的结构类型并能保持历史结构。要达到上述目标,电子病历就不能依赖任何一种开发语言,任何一种数据库,而应完全以XML来描述,并以XML格式来保存。根据XML的格式特点可知,XML文档由节点和叶子组成,因此在设计电子病历数据的模板时可把数据分为基本元素和复合元素,在编辑过程中动态地加载这些模板,根据当前的位置对节点顺序进行动态重排,并生成XML架构。这样就可实现基础电子病历数据的标准化,为以后数据的查询、分析等再利用奠定良好的基础。

然而,很多电子病历系统并非一开始便以XML作为数据载体,它们通常采用的是关系型数据库。XML数据只是存储在关系型数据库的一个字段里,查询时需要先把数据读取到内存,自己表达匹配,不仅操作繁琐,速度也很慢,对于开发人员而言简直是一场灾难。利用XML来对关系型数据库进行检索难度太大。

DB29.0的pureXML技术实现了关系型引擎与层次型引擎的结合,确立了混合结构型数据库的工作模式,让开发人员可以忽略底层的数据类型,不管是关系型数据库还是XML,开发人员都可以利用自己擅长的SQL或XQuery语言进行查询,工作效率得到很大提升。这个系统在协和医院进行测试时,不到30秒就完成了在6个检索条件下对1万条全结构化病历所进行的检索。

pureXML为电子病历数据的管理提供了多种管理和查询的渠道,同时又具备充分的开放特性,既回避了电子病历相关的医疗数据的复杂性和数据结构的多样性问题,又弥补了传统关系型数据库数据在电子病历数据的处理和查询方面的不足。