电子病历系统技术架构
(一)电子病历平台实现技术
参照《基于电子病历的医院信息集成平台建设技术解决方案》,建设医院信息平台软件架构。由于基于电子病历的医院信息集成平台建设是一个循序渐进的过程,需要逐步完善和梳理才能建成,因此根据《电子病历系统功能规范(试行)》内容要求,电子病历系统平台体系架构先要实现医院信息集成平台的核心部分,随着消息集成平台及各子系统的接入,最终实现基于电子病历的医院信息系统建设。
按照循序渐进的原则,电子病历平台在接口引擎集成上可以分为3个层次:最基础的是点对点的接口;然后是消息接口引擎,支持异步消息交换;最后是可进行流程控制、消息转换的院级消息集成平台。
由于电子病历系统是生产系统,临床数据存储库(climicd data repository,CDR)属于动态型,数据状态随着业务的变化而变化的,在现实的系统中存在即使最终状态的数据也会被修改的现象。在实际应用中遇到同步来的检验报告在实验室信息系统(LIS)中被删除的现象,因此被动集成方式在保证数据整合完整性和准确性方面依然面临问题。
在医疗集成接口引擎上,一方面降低接口开发的负担,无论接口协议是标准的还是非标准的、是可选的还是强制的;另一方面通过异步消息,降低系统耦合,确保在大规模数据交换的时候业务系统互不影响。
(二)电子病历系统实现技术
在技术架构实现上,当前的主流技术架构都适合电子病历系统开发。目前医疗信息化软件大部分是基于C/S架构(client/server)基础开发的,是建立在局域网的基础上的。它的优点是基于客户机和服务器模式,大部分运算在客户机上运行,有助于提高工作效率。基于此,C/S架构长期以来获得了医疗机构的青睐。
B/S架构(brower/server)因其移动性具有优势,对客户端运行环境要求较低,通过浏览器就能够运行,对台式机、笔记本电脑,以及手机、PAD等手持设备都兼容运行。但因为屏幕和操作方式的问题,要想达到良好的运行效果,对不同终端还是要作相应的交互调整。
即使在移动医疗时代,在医院业务中整个信息处理依旧是比较复杂的。在不同的业务层面,对信息化的要求也不同,如有的业务要求信息化速度快、速率高,因此C/S架构是比较适合解决整个医院信息化体系的处理方式。B/S架构也有其优势,如移动性和分布性等。目前,医院信息化将走向集成之路,医院会建设大数据整合的平台,并通过整合平台再分发到不同的业务应用中,比如移动医疗就可以搭建在B/S架构上,可以说在未来医院信息化建设中,C/S架构和B/S架构将并存。
无论是C/S架构还是B/S架构,应用的主要目标都是保证医院信息系统稳定,促进医院业务顺利开展,方便患者就医。因此,不管是哪种架构,只要达到这一目标,就是好的软件架构。
在技术实现上,C/S架构以窗体应用程序为主体的技术实现,如基于传统Windows操作系统的MFC(微软基础类库)技术、基于微软,NET框架(Microsoft.NET Framework)以后WPF技术实现的窗体技术。除了微软操作系统的窗体技术外,也有一部分使用跨平台,基于Java的AWT、Swing或SWT三大GUI窗体技术实现的客户端。B/S架构以浏览器网页浏览方式的技术实现,也有微软系统开发工具和Java系统开发工具之分。
目前比较流行的还有丰富互联网应用程序(rich Internet applications,RIA),又称丰富性网络应用服务,这是一种具有近似于传统桌面应用软件系统功能和特性的网络应用系统。RIA系统最大的特点是将大部分处理任务都从用户界面端移植到客户端,仅保留一些必要的数据与服务器端进行信息交互。RIA具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互动用户界面;在无刷新页面下提供快捷的界面响应时间;提供通用的用户界面特性,如拖放式(drag and drop)及在线和离线操作能力。RIA具有的Web应用程序的特点包括:立即部署、跨平台、采用逐步下载来检索内容和数据,以及可以充分利用被广泛采纳的互联网标准。RIA具有通信的特点包括:实时互动的声音和图像。目前主流的RIA应用实现技术主要有Adobe公司的Flex与AIR技术、Google的GWT、微软的Silver Light。
随着移动医疗的发展,基于IOS和Android移动操作系统上的开发系统也在局部发展起来,作为以上主流架构的有效补充。