摘 要:移动预约挂号系统是数字化医院建设中的一个重要环节,它给医院带来便利的同时也方便了患者。本文首先对现有移动预约挂号方式进行了分析,然后结合J2ME与J2EE在移动应用中的优势,提出了基于J2ME与J2EE的移动预约挂号系统,系统总体上采用了四层架构。本文重点阐述了该四层架构中关键部分的设计与实现方法,包括数据库端设计实现,EJB层设计实现,Web层设计实现,移动客户端设计等。
关键词:数字医院;移动预约挂号;J2ME;J2EE
1.引言
目前,医疗挂号的预约方式主要有现场预约、自助挂号机预约、自动语音电话预约、人工电话预约、网上预约、短信预约和WAP预约。其中移动预约挂号凭借着最庞大的客户群体,成为各医院争相关注的热点。其优点是:充分利用移动网络的优势,借助最为普及的信息终端,减少医院挂号的人力成本,促进医疗资源优化配置;减少患者现场挂号排队等候的烦恼和交叉感染机会;减少患者在医院内非医疗性停留时间,合理安排患者就诊。
然而,目前的移动预约还存在种种弊端:网上预约挂号要求患者必须会用电脑并且有条件上网;与普通短信编辑不同,短信预约挂号必须使用由医院编制的特殊代码;而WAP手机预约挂号安全性较差、缺乏个性化、通信流量大,网络延时长。表1显示了现有移动预约方式与J2ME预约方式的对比。
表1短信预约、WAP预约与J2ME预约的比较
对比项目 短信预约 WAP预约 J2ME预约 系统性能 差 一般 好 用户体验 差 一般 好 通信费用 低 高 一般 基于现有的移动预约挂号方式还存在上述弊端,本文提出基于J2ME和J2EE平台,设计并实现了一个移动预约挂号系统MAS(Mobile Appointment System),该系统是预约挂号系统在移动终端上的扩展,主要应用于在大中型医院中实施预约挂号。这种应用扩展了原有预约挂号系统的适用场合,使得预约挂号更加随时随地、更加方便。 用户只需拥有支持J2ME的手机或PDA,即可在移动网络覆盖的区域内享受预约挂号服务。
2.移动预约挂号系统的设计与实现
2.1整体流程设计
移动预约挂号系统是预约挂号系统在移动客户端上的扩展,这种扩展增强了现有的预约挂号系统,保证了预约挂号服务对患者是随时随地可用的。移动预约挂号系统的业务逻辑主要是:患者到医院看病前,通过支持J2ME的手机或PDA进行预约,患者的预约请求被确认后,在规定的时间段到医院就诊时,由门诊的分诊人员为病人分诊,然后由患者预约的医生为其进行诊疗。图1描述了患者预约时的流程。图2为移动预约挂号系统的用例图。
图1 患者预约流程 图2移动预约挂号系统用例图
移动预约挂号系统与网上预约挂号系统的主要区别在于客户端的不同,网上预约挂号系统只限于固定的PC机通过网络访问,而移动预约挂号系统则可通过移动客户端(手机或PDA)实现随时随地的访问。本文设计和实现一个使得患者可以通过移动设备随时随地访问医院数据的预约挂号系统。
移动预约挂号系统的用户就是需要到医院就诊的患者,所以本系统的功能主要是面向患者的,需要实现基本功能如下:
1) 预约挂号:选择医生及相应的就诊时间,实施预约挂号。
2) 挂号查询:查询自己的预约挂号记录。
3) 取消预约:在系统允许时间内取消不能按时如约的预约诊次。
4) 医生查询:查询医生基本信息如个人专长,从而选择适合自己的医生。
5) 排诊查询:查询医院的排诊表,便于选用医生及就诊时间。
2.2数据库端设计实现
移动预约挂号系统包括移动客户端和服务器端。其中,移动客户端选用J2ME平台,服务器端则基于J2EE平台。本文给出的移动预约挂号系统总体架构由四层构成,分别为:数据库层、EJB层、Web层与MIDP客户层。
移动预约挂号系统是由数据库驱动的应用程序,数据库中核心表的构成有:科室信息表DEPARTMENT、医生信息表DOCTOR、预约信息表RESERVATION、患者信息表PATIENT、排诊信息表SCHEDULE。
在移动预约挂号系统的数据库设计中,抽象出以下数据实体:AccountEJB、DepartmentEJB、DoctorEJB、ReservationEJB、ScheduleEJB。
实体Bean分为两类:Bean管理的持久性(BMP)和容器管理的持久性(CMP),BMP给开发人员更多的灵活性,但为此需要付出更多的代码,本系统的实体Bean均为CMP。实体Bean可以使用EJB2.0规范的许多新特性与HIS关系数据库交互。容器管理的持久性(CMP)、容器管理的关系((CMR)和在部署描述符中定义的EJB查询语言(EJB-QL),将会大大提高开发效率。不必编写低级JDBC调用,也不必编写代码来管理关系,这些功能都内建于EJB框架中。
由于MASFacadeEJB为所有系统客户端操作提供统一接口,客户端操作不直接和实体Bean如DoctorBean或ReservitionBean联系,而是都通过MASFacadeEJB来联系,这样可以增强可扩展性、提高效率,用户端只需要一次Remote方式对MASFacadeEJB调用就可以了,而MASFacadeEJB会自动定位到与它同一台服务器的那些实体Bean,无疑减少网络拥挤,提高了速度。
EJB层主要实现所有的商业逻辑,访问数据库等。考虑到Web层需要与多个实体Bean交互,因而引入了会话Bean。设计中使用了会话门面模式,MASFacadeBean向EJB层外部隐藏了各业务组件之间所有的复杂交互活动,它向EJB客户提供了一个简单的接口,提供给用户统一的粗粒度访问。EJB2.0规范中添加了本地接口与本地Home接口来优化对同一个容器中其他bean的访问。因为J2EE RI服务器中Servlet容器与EJB容器之间的调用属于本地引用,所有的EJB都只需本地接口与本地home接口。图3表示了移动预约挂号系统EJB层的静态结构图。
移动预约挂号系统中,应用服务器层采用了J2EE的多层框架。该层又划分为应用表示层(Web层)与业务逻辑层(EJB层),其中应用表示层有专门负责与移动设备客户端的J2ME应用程序交互的Servlet。业务逻辑层主要由EJB模块构成,用于处理具体的业务逻辑。服务器使用Servlet接收并处理移动设备J2ME应用发送的HTTP请求,并调用相应的EJB模块处理业务逻辑,将处理的结果交由Servlet返回给MIDP客户端,以此来完成无线通信设备与服务器的交互过程。
图3 EJB层静态类图 图4 Web层静态类图
移动设备不支持直接访问数据库的能力,而企业管理系统多数都由大型数据库支持,因此我们需要编写一套服务器端程序来接受无线设备的请求指令,通过解析请求、执行逻辑、响应结果的方式把数据再传回给无线设备。在一般的JAVA技术构建的企业系统中,通常采用servlet来响应客户端的请求,由servlet直接访问数据资源或通过JavaBean或通过EJB来访问企业资源。根据企业原有系统的体系结构以及企业系统的需求,可以采用多种组合方式来实现。
移动预约挂号系统采用J2EE构建系统,业务逻辑和数据的存取交给EJB来完成,在Web层调用EJB来实现业务逻辑运算和数据存取,servlet只需接收客户请求,并将调用EJB将请求参数传递给EJB,获取EJB传回的结果之后,再传递给客户端MIDlet。移动预约挂号系统Web层包含MASSessionListener、MASServlet以及MASBD,如图4所示。
2.3移动客户端设计
移动预约挂号系统采用整体的MVC架构,移动客户端MIDP程序充当了视图、控制器和移动客户端模型,因而MIDP客户端主要通过移动客户端模型类、控制类、视图类以及MIDlet主类来实现。主类为应用程序的入口类,而控制类控制整个应用程序流程,反映了整个用户的交互过程。
3.小结
本文首先分析了现有移动预约挂号方式的优势以及不足,将最新的移动应用技术与预约挂号相结合,设计与实现了基于J2ME与J2EE的移动预约挂号系统,该系统弥补了现有移动预约挂号方式的不足,在扩展了预约挂号应用空间的基础上提供了友好的用户界面,实现了随时随地轻松预约,减少了患者在医院内非医疗性停留时间的同时,实现了更加个性化与人性化的服务。
论文阐述了基于 J2ME与J2EE 平台的移动预约挂号系统的设计和实现,对系统设计中的几个主要方面进行了详细的分析,着重说明了J2ME与J2EE四层架构中各层采用的设计策略和实现技术,包括移动客户层,应用表示层和业务逻辑层等。
参考文献:
[1] 陈飞霞,刘冬生,现阶段我院的挂号模式及未来的发展趋势[J]中华医院管理杂志2005, Vol 21, So. 2
[2] 焦进杰,张艳玲,焦琳,门诊挂号系统的多样性[J].医学信息.2005,.5 454~455
[3] 黄如春,王忠民,手机短消息在门诊预约挂号中的应用[J]. 中国医疗器械信息.. .4 12~14
[4] 詹建飞,J2ME开发精解[M],北京:电子工业出版社,2006.1,49~51
[5] Erich Gamma.李英军等译.设计模式-可复用面向对象软件基础.机械工业出版社M].2000
[6] 阎宏,Java与模式[M],北京:电子工业出版社,2002.10,561~564
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。