王晓煜,张奇松,黄 浩
(1.大连东软信息学院 信息技术与商务管理系,辽宁 大连 116033;2.系统工程研究所,北京 210003)
公共卫生管理系统是面向基层用户使用,构建专业的实时化工作站。公共卫生管理系统是以社区卫生服务站、村卫生所、市行政机构、预防保健机构二三级医疗机构为实现目标对象,进而完成在服务运行中动态更新档案、信息共享以及流动处理等过程。该系统能够有效进行流行性疾病的预防、基本健康知识的普及、急性疾病的医治以及基础卫生监督等功能,实现一体化的医疗服务体系,进而改进并完善基层地区的医疗卫生服务专用网,建立功能明确、信息通畅、协调一致的公共卫生服务系统。该系统能够提高基层的医疗服务质量以及突发医疗卫生事件的紧急应对能力,使每位居民能够拥有平等的公共医疗机会。
本文以SOA为架构模型基础,并实际医疗功能业务相结合,研究并设计了一套公共卫生管理系统的结构模型。该公共卫生管理系统结构如图1所示。
该系统结构可分为5个层次,具体功能如下。
表示层:该层主要被界面库的调用,用户可以直接操作此层,输入用户数据,表示层的下一层次——控制层可以将输入的数据传递给相应的服务组件。同时表示层还可以将底层处理好的数据传递给用户,供用户使用。
控制层:该层是整个系统的业务的入口,能对表示层收集的数据进行简单的处理。
服务组合层:部分复杂的业务流程由服务组合层负责处理。同时控制层的传入该层的消息数据在该层次中进行加密,同时将该加密数据传递给相应的功能组件。同时,系统中流程设计器的可以对业务功能进行建模重组,模型的建模由流程引擎负责,并通过监控机制对建模的过程进行监控和管理。
图1 系统结构
服务层:该层次依据SOA相应规范,定义各种的业务功能服务组件,从而处理各种不同的功能业务。该层次可以利用单个服务组件处理简单业务,也可以将多种服务组件组合起来处理较为负责的业务。
持久化层:该层为系统数据库的相应访问组件和实现Web服务的具体方式,同时对访问数据库进行策略定义以及对系统日志文件进行处理。
系统结构中同时应用了数据加密技术来确保数据能在网络中的安全的传输,同时对数据结构进行序列化和反序列化处理。各种服务的交互、重组以及管理由服务总线完成,UDDI帮助Web服务提供者在网络上发布服务信息,使Web服务使用者能够发现Web服务。
结合实际需求,本文将系统分为5个组成部分,分别为:基本信息管理、儿童保健管理、妇女保健管理、预防接种管理、死亡登记管理。系统功能模块如图2所示。
图2 系统功能模块图
5大组成部分,基本囊括了社会各层次人群的需求。每个部分包括的功能模块如下。
(1)基本信息管。负责存储和管理相关卫生服务机构服务人员信息。
(2)儿童保健管理。负责存储和管理18岁以下儿童信息,包括出生证的管理、儿童保健信息管理、伤残儿童的信息管理等功能模块。
(3)妇女保健管理。负责存储和管理适龄妇女信息,包括孕妇信息、高危孕妇信息、产前保健信息、高危产妇的产前筛查与诊断以及新生儿出生缺陷监测等功能模块。
(4)预防接种管理。主要负责存储和管理新生适龄儿童疫苗的接种信息。
⑪项贤明:《教育全球化全景透视:维度、影响与张力》,《北京师范大学学报》(社会科学版)2008年第1期。
(5)死亡登记管。负责存储和管理自然死亡人群的信息。
传统信息系统架构中,每当信息系统连接数据库时,数据库的表示层就会产生一个连接请求,建立相应的数据库连接。但如果在短时间之内,数据库表示层产生的连接请求较多,这时系统就会产生连接负担,系统需用大量的资源来存储相应的数据库连接,同时也无法保证数据库中的每个连接能被监控,从而无法确保数据库连接能够正常的工作,进而影响数据库的访问速度和安全性。针对此问题,本文提出了使用SDO技术对数据库进行连接,通过该技术可以使多个数据库实例使用一个数据库连接,从而减少系统开销,保证系统能够运行流畅。同时SDO技术支持访问离线数据模式,通过对数据进行批量处理,从而避免频繁操作一个数据库实例连接,导致的网络不稳定性。
SDO技术能够屏蔽底层数据库的异构性,研发工作者不必对底层的数据有较深的了解,只需调用SDO通用方法即可,实现了底层数据与顶层应用技术分离。
图3 SDO实现数据保存流程图
由于该系统业务繁杂,各功能模块相互影响,因此本文只以妇女保健管理功能为例,对访问底层数据库的web服务进行说明。本文对数据访问服务进行定义,将其命为Data Services。该服务包括get和save两个方法对妇女保健管理业务的主要数据库进行保存操作。get方法为获取业务信息的方法,相对简单,因此本文主要介绍keep方法。其方法形式为,keep(String view,String datum),keep方法中定义的形式参数包括需要保存的数据以及保存数据的相应表名。save方法的功能用于将输入的数据保存到系统相应的数据库的表中。采用SDO实现的将妇女保健管理信息保存到系统数据库中,其流程图如图3所示。
该层是系统的核心部分,业务逻辑的实现即由本层实现。本文仍以妇女保健管理业务功能为例,对服务层的组件进行设计。妇女保健管理业务需要对存储在各医院分系统中的的患者信息进行调用,并在医院数据库端的接口的上进行服务封装,同时对相应服务进行设计,并由各基层医院的服务器对其进行承载。
根据实际情况,各基层医院的数据库将会被调用,因此需要将各数据库对外接口封装成统一的Web服务,即nosocomium。nosocomium服务包含两个方法:get(String view,String sqls),该方法有两个形式参数,table Names为各个医院服务器上数据库中存储患者信息的存储表,sqls参数为查询语句,其返回值类型为布尔类型;另一方法为boolean save Person Inforations(String tables,String datum),其中形式参数tables为数据库表名,datum为系统所需数据。利用该方法,患者信息数据可以被保存到基层医院分系统的数据库的相应的表中。
该层次能够对服务进行统一的组织和协调,进而形成的复杂的业务流程,最后该层次将业务流程以Web的方式对外界进行发布。该层次只需定义相应业务的逻辑关系,业务的实现由调用的服务来具体实现,能够将业务功能的逻辑部分和实现部分进行分离。由于业务流程在系统中被设计成单独的一个层次,因此基层医院可以对相应流程进行快速地、动态地、灵活地配置和发布,使系统能够适应动态变化的业务需求。同样以妇女保健挂历业务为例介绍基于BPEL的服务组合技术实现业务流程的自动化过程。
当进行妇女保健登记业务时,首先需要将相应妇女保健信息存储在医院数据库,然后将保健信息发送到系统数据库中。系统业务流程如下。
医生上网登录系统,将相应的妇女保健信息录入系统数据库中。
提交信息后,系统自动判断是否将患者信息保存到医院数据库服务器端。
如信息被保存到医院数据库中,信息将会被直接发送到系统的核心部分。
如信息不需要被保存到医院服务器数据库中时,需要在医院数据库服务器上数据库中的个人健康档案表为相应患者建立健康档案,再将妇女保健信息推送到核心系统数据库中。
系统的业务流程自动化是基于BPEL技术实现的,该技术能够整合了主系统和分系统的 Web服务,不同系统之间的业务将会被整合,从而实现登记业务的完全自动化。妇女保健登记业务的业务流程图如图4所示:
BPEL是一种针对业务流程的执行语言,业务流程和系统参与者的交互是BPEL语言的基础,是一种描述了业务流程的语法,常用于业务流程建模活动。BPEL可以直接调用符合web规范的服务,业务流程的逻辑是通过结构化活动控制的。通过BPEL流程实现对妇女保健登记业务建模需要用到了BPEL的元素主要包括以下部分:基本活动、结构化活动、错误处理器和补偿处理器。(图4)
图4 妇女保健登记业务流程
本文介绍公共卫生系统的需求背景,结合具体的业务需求和SOA架构的特点,提出了相应新的系统架构模型。同时在分析系统业务的基础上,详细划分了系统的功能模块,介绍了每个功能模块包含的子模块和功能。最后介绍了该系统数据库详细设计。
[1]谢亮.基于J2EE的安全物流信息系统的设计与实现[J].物流技术,2012,31(9):396-399.
[2]吴步丹,金芝.面向服务的建模:一种全过程复用的方法[J].计算机学报,2008,31(8):1293-1308.
[3]邹永贵,王剑.基于SOA的面向服务LBS[J].重庆邮电大学学报:自然科学版,2008,20(5):610-613.
[4]阮彤,金志超.面向跨企业多方协同应用的 Web服务安全模型[J].计算机工程,2013,39(2):55-66.
[5]徐栋,顾春华.SaaS数据层的多租户设计模式研究[J].计算机应用与软件,2013,30(5):216-219.
[6]李保栋,孔兰菊.SaaS交付平台多租户数据管理模型研究[J].小型微型计算机系统,2012,33(12).
[7]孔兰菊,李庆忠.一种SaaS交付平台的多租户数据迁移策略[J].计算机应用与软件,2011,28(11):52-56.