刘丽华,石彦芳
(河北软件职业技术学院,河北 保定 071000)
随着计算机技术和网络技术的快速发展,医院实施管理信息系统已成为必然。传统的医院管理都是依靠手工操作,耗费大量的人力资源来记录和查询信息,而且大量纸质资料需要大型资料库来保存,信息的查询耗时又耗力,很不方便。医院管理信息系统的建立是医疗现代化的重要标志,现代化的医院管理系统采用高效的信息技术和管理理念,把人员从繁重琐事中解脱出来,把医院的各种资料分门别类的存储起来,以便在需要的时候能够及时有效地查询所需信息,让病人得到及时的治疗,也促进了信息共享和管理水平的提高。
J2EE(Java 2 platform enterprise edition)是由Sun公司提出的多层、分布式、基于组件的企业级应用模型标准。J2EE是为支持Java语言服务器端部署而提供的一种与平台无关的、可移植的、多用户的、安全和标准的企业级平台。随着技术的不断成熟,现己逐渐成为企业应用开发的主流设计之一。
(1)Servlet
Servlet是可部署在Web服务器上的Java程序,它提供了用来扩展和增强Web服务器功能的技术,以及一种与协议和平台无关的、可移植的并为Web客户端和服务器传递动态内容的方法。它从客户端浏览器接收请求,动态产生应答,然后发送到客户端浏览器。
(2)JSP
Servlet通常嵌入表现为HTML页面的表示逻辑和为完成某项任务而操作数据的业务逻辑中,任何部分代码的变动将导致程序的重新部署。Java Server Page(JSP)和 Servlet功能非常相似,服务器端的JSP脚本第一次接收到客户端的请求是先编译形成一个相应的Servlet类,然后加载到服务器,处理客户端请求。两者间最大的不同是,JSP不是纯Java代码,而是一种脚本语言,JSP更注重表示逻辑,JSP页面可以包含HTML、Java代码及JavaBean组件。JSP页面可通过使用自定义标签、表达式语言、Struts标签及Tiles模板等来消除Java代码,实现页面布局管理,提高了页面的可重用性、可扩展性的可维护性。
MVC 是“Model-View-Controller”的缩写,即模型-视图-控制器。它的模式是Xerox PARC在20世纪80年代为编程语言Smalltalk—80设计的一种软件设计模式。MVC把应用程序分为3个部分:模型、视图和控制器,它们分别担负不同的任务,图1显示了这几个模块各自的功能以及它们的相互关系。
图1 MVC模型
如图1所示,视图是客户与服务器端交互的界面。通过视图可以向用户显示用户所请求的数据,并接受用户的输入,但是它并不进行任何实际的业务处理。模型是应用程序的主题,是用来处理客户端请求数据的业务逻辑模块,一个模型可以为多个视图提供数据,也可以被多个视图重用。控制器接收用户的输入并调用相应的模型和视图去完成用户的请求。当用户提交Web页面发送HTML请求时,控制器接收用户请求并决定调用哪个相应的模型组件去处理用户请求,根据处理结果调用相应的视图组件来显示模型返回的数据。
Struts是目前JavaWeb开发中比较成熟的一种框架,它通过把 Servlet、JSP、JavaBean、自定义标签和信息资源整合到一个统一的框架中,为Web开发提供了具有高可配置性的MVC开发模式。本文在MVC模式的指导下设计并实现了一个基于Struts框架的医院管理系统。实践表明,采用这种方法开发应用软件能扩大软件代码的复用率,提高软件代码的复用质量和开发效率。
医院管理信息系统的有效运行,将提高医院各项工作的效率和质量,减少各类事务性工作,使他们腾出更多的精力和时间来服务于病人,改善经营管理,保证病人和医院的经济利益,并为医院创造经济效益。
本系统采用当前比较流行的基于J2EE的MVC设计模式,图2给出了本系统采用的B/S三层架构。
图2 医院管理信息系统三层架构图
从图2中可看出,系统架构以Web浏览器作为客户端,由Web服务器容器的控制器Action-Servlet接收客户端请求,根据请求调用相应的模型类处理请求并选择合适的Jsp视图作出响应,数据库则采用传统的大型企业级数据库Oracle作为数据库服务器。处理过程如下:客户端(即Web浏览器)向Web服务器提出服务请求,Web服务器接收到客户请求后把客户请求传递给Web容器中的核心控制器ActionServlet,ActionServelt查询Struts配置文件,根据配置文件选择适当的Action类处理客户端请求,验证用户提交信息,并选择相应的视图文件向客户做出应答或选择适当的模型类处理数据,根据模型类数据处理结果选择所对应的视图文件显示在客户端。
通过系统分析,本系统的用户有前台操作人员、医生、病人、管理员、高级管理人员等。我们将医院管理信息系统分解成若干个子系统,分别是住院管理、门诊管理、药品管理、主数据维护、高级管理人员查询等子系统,设计过程中充分考虑了医院特殊的业务管理方式,如急诊业务、医保病人业务、内部职工业务等。各模块的功能具体如下:
(1)住院管理子系统:实现病人的入院和出院管理、病人住院期间电子病案、医生诊疗、病房和床位管理、查询、报表等功能。
(2)门诊管理子系统:实现门诊病人的挂号、医生诊疗处方管理、生成账单、退药管理、查询、报表等功能。
(3)药品管理子系统:实现药品库房管理、药品维护、查询、报表、销量统计等。
(4)主数据维护子系统包括:提供医务人员数据、病人列表、化验室服务列表、病房列表管理等功能。
(5)高级管理层查询子系统:给高级管理人员提供各部门信息报告。
数据库在一个医院管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。医院管理信息系统所需要收集的数据范围广、种类多、数量大,系统数据库的海量存储量和安全问题是极其重要的。因此,本系统采用Ora-cle数据库系统解决方案实现面向主题的、集成的、稳定的、随时间变化的数据仓库,使用数据挖掘技术支持决策分析,同时完善数据库的双机备份及恢复机制,全天候安全保障,运行可靠[4]。
数据库表设计遵循E-R图和3NF(范式)要求,对数据库中关键字以及数据表之间的关系仔细斟酌,保证数据库结构化、规范化和标准化,尽量实现数据的独立性和可维护性,充分考虑共享数据资源的正确性和一致性,建立用户权限设计和双机热备份机制以保证数据的安全性。
根据以上原则,本系统设计了系统用户信息表、医护人员信息表、病人信息表、病人结账表、医院检验表、检验结果表、门诊病人拿药信息表、药品信息表、病床信息表、病房信息表等10个表用来存储系统数据。
本系统视图组件的实现采用JSP页面。在JSP页面里,可以加入JavaScript代码用于页面验证,从而节省服务器资源并提高响应时间。另外,在JSP页面里大量使用自定义标记符、JSTL和表达式语言,尽量不使用脚本语言,简化了JSP页面,增加了页面的可读性。在控制器Action类处理用户提交的request请求之前,使用ActionForm类进行数据检索、转换及数据验证,增强了软件的灵活性。例如住院管理的病人注册管理页面add_Patie nt.jsp,提交请求/admin/add_Patient.do,ActionServlet接受请求,首先将用户提交的病人数据给AddPatientForm进行验证,如果有错,返回页面,如果验证没错,提交给AddPatientAction处理数据。
模型组件是系统中最重要的一部分,它包含了业务实体和业务规则,负责访问和更新持久化数据,本系统的模型组件使用JavaBean类和服务组件实现,实现了 User、MedicalStaff、Patient、Medicine、LabService、LabResult、Wards、Beds、Report、Bill等几个JavaBean域对象类和相应的数据表相对应,还有各个Bean类相对应的DAO类用来封装JDBC API技术实现数据库的访问,使用XXXService组件类实现业务逻辑,使业务逻辑和数据访问逻辑分离,有利于应用程序的维护。
控制器由Struts框架的核心控制器Action-Servlet类和自定义的Action类实现,ActionServlet接收所有的HTTP请求,根据配置文件struts-config.xml的配置信息,检查是否有相关联的表单,如果有,则在指定作用域内创建或定位相应的表单,使用请求参数的数据填充表单Bean,调用验证方法验证请求信息,验证没有错误,把请求分发给相应的Action,调用Action对象的execute方法处理用户请求。
(1)RFID技术与医院综合管理系统的集成应用。通过RFID技术可以进行患者的身份识别、医院工作人员的身份识别、药品识别以及医疗设备识别等,系统应用RFID技术,能够高效地进行药品、资产、患者和医院工作人员的管理。
(2)触摸屏查询软件的应用。配置触摸屏等信息查询设备,让客户及时方便地了解医院科室分布情况,普通病人和医保病人等就诊流程,专家介绍、专家就诊时间,价格查询,医院相关规定等,提高了系统的查询效率,有利于医务公开。
(3)提供与银行连接的财务收费系统连接以支持病人的信用卡划卡消费。
系统采用基于J2EE平台的MVC设计思想,按照现代医院管理模式进行设计,覆盖了医院医疗诊治各环节和医院管理各主要方面,使系统具有很好的开放性和可扩展性,能够高效率地适应各类医院管理不断变化的需求。医院对医疗信息管理以病人为中心,实现了医院管理的人性化、数字化、智能化、管理规范化的目标,医保管理信息接口可以使医保病人的费用数据和诊疗信息直接传递到当地的劳动保障部门。而且,基于Web界面的客户端操作方便,查询、统计信息快捷,极大地提高了工作效率。
[1]NIIT公司.使用Servlet和JSP技术开发Web组件(NIIT公司培训教材)[Z].上海:NIIT公司,2009.
[2]闫术卓,杨强.struts 2技术详解[M].北京:电子工业出版社,2008.
[3]何菊.基于UML的医院信息系统建模[J].医学信息,2005,18(9):1047-1049.
[4]苏强,姚晓耘,厉譞.医院客户关系管理模型及系统设计[J].上海交通大学学报,2006,40(8):1422-1427.
[5]彭晏飞,杨德权.基于MVC+Struts的H I S设计与实现[J].计算机与现代化,2008(2):113-115.
[5]刘丽华,李丹.基于J2EE平台的客户关系管理系统设计[J].中国商贸,2010(23).