基于web的新农合信息系统的设计与实现
2013-03-14甘金明庞光垚
甘金明,庞光垚
(1.2.梧州学院软件开发中心,广西梧州543002)
基于web的新农合信息系统的设计与实现
甘金明1,庞光垚2
(1.2.梧州学院软件开发中心,广西梧州543002)
随着我国新型农村合作医疗制度的逐步完善以及农民观念的转变,农村合作医疗机构的业务量已大幅增加。该文通过对新型农村合作医疗的现状分析,在JavaEE技术平台基础上使用B/S模式进行开发,利用Struts,Spring和Hibernate经典组合实现系统主体的四层架构,并结合MSSQLServer数据库和Webservice远程调用技术实现了新农合系统的信息化管理和医院系统的数据共享。建立起一个符合国家标准、具备先进工作流程、能够有效管理信息的县级新型农村合作医疗信息系统。
新农合;医疗补偿;Web服务;SSH框架
近年来,我国政府一直把农村卫生工作作为重中之重。为了保障农村生产力、维护农村社会发展和振兴农村经济,最终提升全民族的综合素质,其中首要问题就是解决农村看病难问题,党和政府为了完善农村医疗条件也曾采取过一些措施,但整体上农村卫生工作仍旧困难重重。目前中国除台湾、香港和澳门不实行新型农村合作医疗政策外,有31个省、市自治区范围内共2862个县级行政区域实现了农村合作医疗。而各个省市的县级行政区域还没有形成完整的农村合作医疗信息化平台,虽然有少数地区拥有农村合作医疗系统,但是没能完全实现农民看病在定点医疗机构实时报销,更加没有任何一个平台实现跨县的直报问题。以梧州市为例,梧州市有县(市)区级新农合经办机构7个,乡镇级经办机构63个,全市新农合定点医疗机构1179个,其中市级12个,县级20个,乡镇级64个,村级1083个,县级及以下经办机构和定点医疗机构目前还没有建立统一的新农合信息管理系统平台。
新型农村合作医疗牵涉面广,参加的农民人数多,监督管理要求高、范围广,关系到广大农民群众的切身利益。所以必须充分结合最新的科技和信息技术手段以解决传统手工操作下存在的种种弊端[1],本文就是根据梧州市的情况,建立起一个符合国家标准、具备先进工作流程、能够有效管理信息的、适合梧州市实际医疗补偿情况的县级新型农村合作医疗信息系统。更好地为广大农民群众提供快速便捷的医疗补偿,更好地为各级卫生部门和定点医疗机构提供快捷、准确、全面的信息服务,最终为新农合决策提供服务。
1 系统总体设计
1.1 总体方案设计
新农合信息系统总体上可以分为4个部分,分别是:Web客户端、服务器端、医院HIS端、异地备份等,目标系统总拓扑图如图1所示。
图1 总体方案设计图
1.1.1 Web客户端
Web客户端是目标系统主要功能使用的入口。WEB浏览器是客户端最主要的应用软件,目标系统功能实现的核心部分都集中到服务器上,而浏览器通过TCP/IP的方式和服务器进行数据交互。用户通过Web客户端的交互界面登录中心服务器系统,农合补偿人员打开补偿界面,输入农民就诊信息就可以进行医疗补偿;会计打开相关界面可以查看、制作各种报表;县农合办领导打开系统界面可以对新农合全局进行监控和数据统计。另外一方面,管理员也可以通过交互界面,在客户端输入命令,以http的方式把指令传输到服务器,服务器在接受指令并解析之后,可以对系统的各种信息进行维护和管理。
1.1.2 服务器端
服务器端是整个新农合系统的核心,一方面需要接收用户数据,另一方面还需要对数据进行处理,并把得到的结果返回给用户。服务器端从结构上分为3个部分:应用服务器、数据库服务器和备份服务器。内容上通过网络把部署安装在服务器上的新农合信息系统以TCP/IP协议的方式向Web客户端提供服务。
1.1.3 医院HIS端
医院HIS端主要是解决目标系统与医院信息系统的数据交互问题,把以往医院与患者的直接结算关系,慢慢过渡到医院与患者、医院与新农合信息系统的关系。把就诊信息如就诊记录、医嘱清单、费用清单和出院记录等从医院信息系统中传输到新农合信息系统中来,然后新农合信息系统再对这些数据进行处理并返回结算结果。通过这部分内容的探究,使医院系统能够和新农合信息系统达到数据共享,最终实现医院就诊直补。
1.1.4 异地备份
虽然中心服务器机房有磁盘阵列的措施进行数据备份,但是一旦发生了偷盗、地震、火灾等无法预计的险情,就会造成机房所有数据的丢失。所以异地备份很重要,可以降低这些风险,保证目标系统的稳定运行。
1.2 系统总体功能模块设计(见下页图2)
图2 系统总体功能模块图
各功能模块说明如下:
(1)医疗补偿
医疗补偿模块主要用于实现参合农民在医院就诊之后的医疗补偿,要求能确保农民获得的补偿快速便捷、正确无误。
(2)医疗补偿审核
医疗补偿审核模块主要用于县农合办对于镇农合办补偿数据和医院直补数据进行终审,要求能够保证国家新农合基金的使用规范、合法、有效。
(3)医院HIS接口
医院HIS接口模块主要实现新农合信息系统与各医院HIS进行数据交互,要求医院HIS系统能够实现看病直补,从而减轻农民负担,以及要求农合办能够对补偿数据进行监管和报表查询。
(4)参合信息管理
参合信息管理主要用于农合办对参合农民的个人信息、家庭信息、缴费信息和证卡信息进行管理,要求做到信息正确无误统一管理。
(5)基金管理
基金管理模块主要用于对新型农村合作医疗基金信息进行管理和维护,包括基金构成情况、基金使用情况、基金结余情况统计、预警提示。
(6)报表中心
报表中心模块主要用于农合办会计对套帐、凭证、参合情况和基金使用情况等的统计和分析,要求报表获取正确无误、具有清晰的条理性。
(7)基础数据管理
基础数据管理模块主要是对支持系统运行的机构信息、医疗信息和系统使用人员的信息进行维护。(8)系统参数维护
系统参数维护模块主要是对新型农村合作医疗系统运行参数、机构项目、数据字典、用户权限、系统日志进行日常管理和维护。要求医疗系统运行参数能够方便设置,在一定范围内适应需求变更。
2 Webservice远程技术调用的应用
参合农民到定点医疗机构就诊,按一般医院流程:挂号、就诊、结算。在结算的时候医院HIS调用新农合端的远程接口,传输数据到新农合系统进行存档和计算,新农合端补偿核心完成计算之后返回计算结果,医院系统再根据计算结果直接在总费用扣除,最后结算出院。
核心功能“医疗补偿”、“农民验证”等都统一在农合端实现,然后通过Webservice技术,以用户验证和加密的方式向医院HIS系统提供这些服务[2],如图3所示。
在新农合信息系统中,系统把“医疗补偿”抽取成了一个核心组件,该组件不仅包括了调用其他医疗、个人信息、就诊信息等业务逻辑还包括了对数据的操作。在此基础上,新农合信息系统开发了另外一个远程组件叫“医院补偿接口”,该组件使用Webservice远程技术通过用户验证以及其他加密方式把“医疗补偿”组件的功能进行二次封装,开放的内容包括获取个人信息、入院登记、处方录入、费用结算、费用补偿明细等。最后,医院系统也通过Webservice远程技术调用“医院补偿接口”,把该组件的内容与医院HIS系统进行数据交互[3],最终完成了医院HIS系统对新农合进行医疗直补的能力[4]。
图3 医院接口原理图
3新农合系统的实现
3.1 四层架构的实现
本系统在目标的详细设计过程中,把系统分为四层。层具有弱耦合的特性,层是向下依赖的,底层的实现细节对上层屏蔽,而上层设计的改变和上层对底层调用方式的改变对底层没有任何影响。本系统在MVC模式的基础上把模型层拓展为了业务逻辑层和数据持久层,结合JavaEE平台成熟框架,构建了B/S模式的四层代码结构[5-6]。
3.1.1 数据持久层
数据库连接是程序业务逻辑与数据库物理存储之间的的桥梁,数据库连接畅通才能保证程序业务逻辑与数据库物理存储之间的数据交换。但是在系统运行中,数据库连接是一种昂贵的对性能起决定性的资源,这一点在多用户并发的时候尤为突出。所以为了提升目标系统程序的健壮性以及伸缩性等性能指标,系统引进了数据库连接池。数据库连接池负责对连接进行分配和管理,在池中保持一定数量的数据库连接,程序进行数据操作时直接使用以及用完后直接放回池中。通过避免数据库的频繁连接和释放从而提升了系统性能。
在系统中,为了在兼顾性能的同时,简便开发难度以及降低系统理解度,系统使用了Hibernate架构,该架构在面向对象及关系型数据库之间的转换能进行很好的处理。系统在Hibernate的实现中,使用了受管于Spring的方式进行开发。
3.1.2 业务逻辑层
业务逻辑层是本系统四层架构中最具有核心价值的一部分,该层的主要内容是目标系统中业务领域知识、工作流程、商业规则等实际业务的代码实现。本系统中,医疗补偿计算方式、基金管理办法和判别农民是否参合方法等都属于该层的实现内容。
Spring的引入,可以解决企业应用开发的复杂性。Spring框架作为容器接管系统的所有业务逻辑代码,配置文件根据不同的领域分层多个XML:1.applicationContext.xml:接管Hibernate,配置与Hibernate相关的参数;2.applicationContextTimeTask.xml:任务调度,定时触发报表生成等操作;3.commonContext.xml:公共基础层业务管理;
4.dispatcher-servlet.xml:Spring的控制层逻辑,把常用数据放入内存进行管理;5.domainContext.xml:业务逻辑核心Bean管理;
6.httpinvokerRMI.xml:用于Spring与Spring之间的远程调用;
7.repositoryContext.xml:持久层的核心定义;
8.springReport.xml:报表管理;
9.WebServiceRMI.xml:远程调用,用于医院接口。
3.1.3 控制层
控制层主要是对业务逻辑实现和界面进行解耦,降低代码耦合度,提高系统可拓展性,主要负责响应用户请求以及接收用户数据,并且调用业务层的逻辑进行处理,返回数据给视图层。以本文目标系统中的医疗补偿为例,控制层主要负责接收用户的补偿请求以及就诊数据,并且调用业务层的补偿计算进行数据计算,最后把计算结果返回给界面。
系统使用Struts2技术进行控制层的实现,主要内容有两个方面:Action控制器、拦截器。Action控制器的实现,首先需要继承ActionSupport类,才具备Struts的功能,然后是接收请求和数据进行处理。拦截器主要是对界面的非法输入进行拦截和对表单数据类型自动转换。
3.1.4 视图层
视图层是系统易用性最主要的设计要素,系统易用性如何取决于视图层的设计是否完善。该层主要负责用户请求和数据的输入以及结果的呈现。请求和数据输入使用常规HTML代码,数据呈现使用Struts2的标签进行解析。
3.2 系统功能模块的实现
以农合端补偿录入为例,在参合农民到镇农合办提交材料之后,镇农合办工作人员刷卡后系统读取个人信息之后进入录入界面,使用Ajax异步读取疾病代码,使得页面选择疾病的时候可以根据拼音码、五笔码和部分汉字进行录入。调用流程为:当用户输入每个字的拼音码、五笔简码或者部分字体的时候,js立刻响应,用ajax的方式把这些编码发送到控制层负责处理json数据包的Action中,然后控制层的Action调用业务逻辑获取疾病种类,得到结果之后以json数据包的形式返回界面,最后js把json解析为下拉框,提供给用户使用,如图4所示。
图4 农合端补偿录入界面图
3.3 系统的测试
测试是目的性极强的一项工作。所以需要先对测试用例进行设计,测试用例设计就是编写一个描述输入、动作、或者时间和一个期望结果文档,其主要作用就是确定应用程序的某个特性是否能正常工作。以本文为例,在需求获取阶段我们不仅得到了医疗补偿计算公式的所有细节,还得到了农合办手工补偿的具体记录。在此基础上再结合测试环境、测试目的、预置条件以及操作步骤,最终设计出了医疗补偿的测试用例,如下页表1所示。
表1 医疗补偿测试用例表
在表1规定的条件下,把该参合农民的住院数据录入系统并且依次进行结算,与测试用例的“预期结果”吻合。
4 结论
本文的研究成果实现了梧州市县级新型农村合作医疗信息化平台,对梧州市新农合的数据进行规范和统一管理。实现了梧州市参合农民在定点医疗机构看病实时报销,简化各类新农合审批流程,降低管理成本,使广大农民朋友从中受益,从而直接产生经济效益。系统运行一年将产生500多万的数据量,随着系统数据的增长,为了能够更好地服务农民,对系统运行进行优化,对已有的补偿数据进行挖掘将是下一步的研究工作。
[1]张平,袁明灯.农村合作医疗面临的问题和对策思考[C].2006.
[2]黄勇.我院HIS与新农合信息系统接口的实施与探讨[J].医学信息,2010(4)918-820.
[3]Chuangwei ZhangXu Yin.Design and implementation of single- service multi- function Webservice [C].International Conference on Computer Science and Service System,2011,76.
[4]李晓东,杨扬,郭文彤.基于企业服务总线的数据共享与交换平台[J].计算机工程,2006(11):32-39.
[5]陈辉,赵宏升,张艳春.Struts+Spring+Hibernate框架的整合实现[N].河南大学学报:自然科学版,2010.
[6]刘胜林,张叙天,王国宏.基于BS模式的医疗设备维护信息平台的开发与应用[J].中国医疗器械杂志临床医学工程,2012(2): 145-148.
TP399
A
1673-8535(2013)06-0001-08
甘金明(1976-),男,梧州学院软件开发中心副教授,研究方向:计算机应用,图像处理。
庞光垚(1986-),男,梧州学院软件开发中心助理工程师,研究方向:软件工程。
(责任编辑:覃华巧)
2013-10-18