宁夏大学计算机毕业设计医院网上预约挂号系统_第1页
宁夏大学计算机毕业设计医院网上预约挂号系统_第2页
宁夏大学计算机毕业设计医院网上预约挂号系统_第3页
宁夏大学计算机毕业设计医院网上预约挂号系统_第4页
宁夏大学计算机毕业设计医院网上预约挂号系统_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 毕 业 设 计 ( 2015 届)题 目 基于B/S结构的医院预约挂号系统的设计与实现学 院 数学计算机学院 专 业 计算机科学与技术 年 级 2011级 学生学号 12011242631 学生姓名 曹靖森 指导教师 马子睿 2015年 5 月 8 日基于B/S结构的医院预约挂号系统的设计与实现数学计算机学院计算机科学与技术专业2015届 曹靖森摘要:在传统的医院挂号过程中,信息处理停留在手工方式,劳动强度大且工作效率低,有的病人排很长时间的队也不一定能挂上自己满意的号,而用网上预约的方式,使病人不用出门就可以挂到自己想要的号.本系统采用的是基于广域网的B/S结构平台,网页采用的是JSP技术

2、,它拥有卓越的系统可移植性,加上MySql数据库强大的后台数据支持,可以很好的实现系统的功能.本文主要介绍了医院网上挂号系统的设计与实现,对所用到的技术也做了一定的介绍.关键字:医院;网上挂号;JSP;MySql中图分类号:TP311.1The design and the implementation of the booking system of the online hospital registration based on the B/S structure Abstract: In the traditional hospital process,the manual infor

3、mation processing remain labor-intersive and low efficiency,some patients stood in line for a long time also to can not hang themselves.By using the method of online booking,The patient need not to go out while use.The system is designed as B/S structure based on the wide area network,JSP technics f

4、or it has excellent portability,coupled with a strong background MySql database data support,it can realize the function of the system very well.This article mainly introduces the design and implementation of hospital online registration system,and on the use of technology as well.Keywords: Hospital

5、; online registration; JSP;MySql 目录1 绪论1 1.1 课题背景及研究意义11.2 国内外研究现状21.3 系统简介21.3.1 系统解决的主要问题21.3.2 系统的特点32 开发环境及开发技术52.1 B/S架构52.2 mvc设计模式52.2.1 mvc设计模式简介52.2.2 mvc设计模式的优缺点62.3 javaEE架构72.3.1 javaEE简介72.3.2 javaEE的优势72.4 ajax技术82.4.1 ajax的优点82.5 数据库MySql93 系统设计11 3.1 需求模型的建立113.1.1 用例分析113.2 基本模型的建立

6、133.2.1 系统中的类的设计133.2.2 类图分析133.3 辅助模型153.3.1活动图153.3.2顺序图16 3.4 ER图173.5数据库设计194 系统实现224.1 系统首页的实现224.2 登录功能实现224.2 用户功能的实现234.2.1 用户注册功能的实现23 4.2.2 用户查询医生功能的实现254.2.3 预约模块的实现254.3 管理员模块的实现26 4.3.1 医生管理分页的实现264.3.2 增加医生模块的实现284.3.3 挂号信息管理模块的实现295 总结30参考文献32致谢33基于B/S结构的医院预约挂号系统的设计与实现1 绪论 1.1 课题背景及研究

7、意义随着经济与科学技术的高速发展,信息化的进程不断加快.随着计算机性能不断提高,价格不断下降,计算机已在医院医疗,教学,科研,管理的各个方面得到越来越广泛的应用1.然而,我国还有部分医院的信息处理停留在手工方式,劳动强度大且工作效率低,医师护士和管理人员的大量时间都消耗在事务性工作上,病人排队等候时间长,辗转过程多,影响了医疗的秩序.计算机化的医院信息系统已成为现代化医院运营必不可少的基础设施与技术支撑环境.门诊挂号系统是整个医院管理信息系统的第一个窗口,是病人到医院就诊要做的第一项工作.它用于收集病人的信息,协调科室医生管理,控制各科室的流量等等.医院网上预约挂号系统是一种基于互联网的新型挂

8、号系统,是卫生信息化建设的基础的项目之一2.利用该预约挂号系统,用户就可以在网上预约医院的专家、专科号,而无须再受排队之苦.它能更好的改善就医环境,简化就医环节,节约就医时间,真正体现了以病人为中心,一切从方便患者出发,符合当今医院人性化温馨服务的理念.目前,门诊一直是困扰医院提高服务质量的一个复杂环节,特别是医疗水平高、门诊量大的医院,而造成门诊质量难以提高的因素主要有两方面:一方面集中式挂号(现在流行的分层挂号只是相对而言一个范围较小的集中式挂号),就诊人员流量不均、具有不确定性,有明显的就诊高峰和低谷(表现在整个医院不同门诊时间段及同科室的不同时间段).高峰期病人挂号排队长,就诊时间长,

9、医生熟人插号现象,环境拥挤混乱,医生问诊时间短、不仔细、态度差.而低谷期,医生无病人看、溜号,医院资源浪费.另一方面专家号(特别是名专家号)难挂,出现倒号、炒号现象,严重损害病人利益,影响到医院的声誉.而采用网上预约挂号,可有效的解决这一现象,还通过有效的身份验证,杜绝倒、炒专家号的现象,提高医院门诊服务质量,取得良好的社会效益和经济效益.此外,病人到医院就诊前对医院的相关信息了解不多,对所要挂的专科医生的情况又不太了解,只能凭经验和印象进行选择,具有较大的盲目性.而当医院开通网上挂号预约服务以后,求医者只需坐在家中,轻点儿下鼠标,就可以挂上医院专家门诊号,可以做到“足不出户选医生”.网上预约

10、正悄然改变着都市求医者的看病观念.拥有相对固定的个人医生和习惯,预约看病,将不再遥远,所以应用必将越来越广泛3. 1.2 国内外研究现状随着互联网络的迅猛发展,Internet用户已呈几何级数增长,目前已经有很多医院投入使用网上挂号系统.据了解,预约挂号在国外颇为普及.在西方国家,病人看病都需要事先进行预约.随着预约挂号的深入推广,国内越来越多的医院也意识到预约服务在节约看病时间、分流患者、减轻医院压力上的作用4.据了解,尽管存在很多困难,但全国各地的医院在尝试预约挂号的实践中还是提供了很多有益的做法.在中国传统的医院门诊挂号是即时挂号、即时就诊门诊模式的.但是这种就诊的模式给患者带来许多不便

11、1.挂号时间长、候诊时间长、交费时间长、看病时问短.据统计,患者在门诊有60%以上的时间都是用来等候的,真正就诊的时间却很短.这样就给病人及家属带来了众多的不便.而在欧美国家,患者看病一般都需要预约挂号.除非急诊,很少有人直接到医院找医生的.没有提前24小时的电话预约,医院一般也不会接诊.一些医院设立的预约挂号部门,一般都由经验丰富的医生、护士担任接线员,以便根据患者自诉症状建议应挂科室,推荐专家.也有部分的医院可以同时通过网站预约的5. 随着网络功能及宣传手段不断优化和人民群众观念的不断更新,网上预约挂号前景无疑是可观的.按现在的中国门诊预约就诊患者的年龄及受教育程度和使用网络资源程度的情况

12、分析来看,各种预约方式和谐并存着才能满足不用类型的患者的需求.网上预约挂号的实施刚起步不久,预约挂号系统的不断改善优化还是一个循序渐进的过程,要先向更好地为习惯使用这一资源的患者服务的目标进发. 1.3 系统简介 1.3.1 系统解决的主要问题 病人去医院就医首先要到挂号窗口进行挂号,病人获得有效医疗服务最重要的保证就是能够挂到一个满意的号.目前病人挂号难已成为全国各个医院的首要问题,但是一直没有能够彻底解决.医院门诊挂号一直是大中型医院提高服务质量的关键环节,特别是门诊量较大、人口密度高、医疗设备先进、技术先进的综合型大医院,门诊挂号秩序混乱一直是普遍存在的现象.就上述问题着重分析了已下三个

13、方面的问题6.(1) 针对病人挂号集中的问题针对病人挂号集中、就诊人员流量变化大、不确定性明显等问题进行分析.很多医院高峰期病人必须排长队挂号,就诊需要等待的时间较长,更是有个别医生熟人肆意插号的现象,使得挂号秩序更加混乱;还有挂号医生多的时候,医生由于时间有限,导致医生询问病情不仔细,病人就诊时间短,有时发生接待病人态度差等现象.采用网上挂号能很好的解决这些问题,病人在网上预约好时间,到时间过去就行,不用等待很长时间排队;每个病人就诊时间经过合理分配,使医生可以详细了解病人病情并进行诊断. (2) 针对专家号一号难求的问题一般专家一天最多能看20-30个患者,而一些患者为了获得宝贵的就诊号需

14、要排上几个小时的队,也导致了“炒号”、“倒号”等不良现象的产生,损害了患者的经济利益,耽误了患者的就诊时间,甚至影响了医院的就诊质量和声誉.网上挂号因为采用的是实名认证的方式进行的注册,每个身份证号只能注册一次,而且本人挂号只能本人就诊,杜绝了“炒号”、“倒号”等现象的发生,做到了相对的公平.(3) 医院网上预约挂号的设计本文研究的基于WEB服务的预约挂号系统可以有效的解决挂号难的问题.患者不必去医院,只需坐在电脑前,通过浏览挂号系统网页,就能选择适合自己病情的医生进行挂号.不仅能大大减少患者的排队时间,还能缓解医院就诊挂号高峰期的拥挤,利用网络巨大的资源和空间,尽量为病人提供更优质的服务.1

15、.3.2 系统的特点(1) 系统功能的方便性使用医院网上挂号系统可以在任意地方登录网站进行挂号,也可以根据自己的状况选择合适自己病情的科室、专家及合适的就诊时间等,最后医院完成确认,以完成患者的预约挂号.该系统操作十分方便、省事.(2) 系统功能的实效性病人患病后都希望早日到医院就诊治疗,以解除病痛的困扰.正常情况去门诊挂号是带医院完成的第一件事,挂上号之后再去门诊进行就医.对于医疗技术较高的大中型医院来说,患者挂号总是需要排长队,有时排长时间的对也不一定能挂上号.网上预约挂号系统为用户提供了省时省力且实效的服务,为患者解决了挂号难的问题.(3) 系统资源信息的共享性计算机网络的应用及信息共享

16、之后,医院相关负责人员就可以把计划好的医生出诊信息及时发布到相关网站,患者及家属只需在家里的电脑上网就可以了解医院的挂号信息,因此,可以说计算机系统资源的共享性为医院挂号工作奠定了基础,为医院信息管理系统提供了方便使用的技术.通过计算机网络可以再最短的时间内把医生出诊信息及临时变化情况公布出来,在网上供患者和社会用户参考,避免了他们到医院就诊的盲目性.(4) 系统功能的适用性大医院的门诊大厅一般都是拥挤这等候挂号的人们,有的排队一夜甚至几天.这是真实的挂号情况,也是我国众多患病人群与现今有限的卫生医疗服务机构之间的矛盾的具体体现.医疗卫生部门管理者必须首要考虑这些问题.网络预约挂号不仅减轻了患

17、者和家人的麻烦,也在一定程度上缓解并改善了挂号窗口的紧张局面. 2 开发环境及开发技术医院网上挂号系统是以Servlet框架为主要的技术框架,以JSP技术为客户端的主要显示技术,以MySql数据库作为系统的数据存储单元.下面我们来介绍下本系统的开发环境以及开发中所用到的相关技术. 2.1 B/S架构本系统采用的是B/S架构,及浏览器和服务器结构,示意图如图2-1所示.浏览器显示出用户操作界面,接收用户在页面上输入的各种操作信息,在接到提交命令后向服务器发出请求,并接收由服务器返回的数据结果,然后向用户展示相应的信息.服务器端在这里的角色就如同桥梁,用来连接用户浏览器与数据库,将所需要的数据信息

18、进行分析传输7.对于医院网上挂号系统来说,采用B/S架构的系统所有的客户端都是浏览器,不需要对它做任何维护.绝大部分事务逻辑都是由服务器端来进行处理,然后在通过用户的浏览器实现,在客户端也就是前端界面只是有少量的逻辑需要处理.系统管理人员只需要做硬件维护,降低了系统管理人员工作量,提高了其工作效率.系统架构如图2.1所示:发出操作请求JDBC浏览器Tomcat数据库返回查询结果返回结果集图2.1系统架构 2.2 mvc设计模式 2.2.1 mvc设计模式简介MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,使许多交互和界面系统的构成基础,Microsof

19、t的MFC基础类也遵循了MVC的思想8. 对于界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制三种部件. 模型部件是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,他独立于具体的界面表达和I/O操作. 视图部件把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户.它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图. 控制部件是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协

20、调工作的部件.通常一个视图具有一个控制器. 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图.如果用户通过某个视图的控制器改变了模型的数据,所 有其它依赖于这些数据的视图都应反映到这些变化.因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新.这实际上是一种模 型的变化-传播机制. 2.2.2 mvc设计模式的优缺点MVC的优点表现在以下几个方面9: (1) 可以为一个模型在运行时同时建立和使用多个视图.变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步. (2) 视图与控制器的可接插性,允许更换视图和控制器

21、对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换. (3) 模型的可移植性.因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作.需要做的只是在新平台上对视图和控制器进行新的修改. (4) 潜在的框架结构.可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中. MVC的缺点表现在以下几个方面: (1) 增加了系统结构和实现的复杂性.对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率. (2) 视图与控制器间的过于紧密的连接.视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在

22、,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用. (3) 视图对模型数据的低效率访问.依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据.对未变化数据的不必要的频繁访问,也将损害操作性能. (4) 目前,一般高级的界面工具或构造器不支持MVC模式.改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难. 2.3 javaEE架构2.3.1 javaEE简介J2EE的基础部分是由 JSP(Java Server Page)和Java Servlet这两种技术共同构成.其定义了一套有用的API、一个运行时平台、应用程序接口和一个内置模型,并能

23、够将其所有功能组合成一个可扩展的、可移植的和设计得更好的应用程序10.J2EE平台支持简化的、基于组件开发模型.我们将组件技术加以利用,就可以把程序分割成许多小模块以适应不同程序员擅长的技术,使开发进行分工操作,并行开发让开发人员的技能得到最大限度的应用,最大限度的提高开发的效率.由于EJB模型遵循了高内聚低耦合的编程理念,使其代码的可移植性与重用性增强.基于组件的设计简化了应用程序的维护.由于组件耦合度低,所以能被独立地更新和替代,通过应用程序中特定的组件被更新,使其很容易将新的功能增加进来,更易于维护.以下是 J2EE 典型的四层结构如图2.211所示:图2.2 J2EE的四层结构图2.3

24、.2 javaEE的优势javaEE平台平台对分步式企业应用开发而言,在保存企业现有IT资产减少重复性投入的同时也满足了未来商业应用的需要,具有以下优点:(1) javaEE建立了企业应用开发所需要的一些技术标准,如企业业务组件(EJB)等;(2) javaEE自身具备完善的目录服务支持、高度的安全机制、高效的性能展现等众多技术优势,并且基于开放的标准,可以促进技术的更好发展;(3) javaEE为企业系统提供了完美的机制和统一的平台,不仅简化开发过程,也使得Web应用程序资源利用率更高.让系统具有高可用性、高可扩展性、易维护性;(4) javaEE缩短了产品研发时间,绝大多数的供应商的产品是

25、根据JavaEE标准而开发的,因此开发者可以摆脱中间件的困扰而专注于各自业务逻辑的应用开发;(5) javaEE使用负载平衡策略,使系统软硬件资源利用率及性能表现最大化,能够消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统. 2.4 ajax技术 Ajax的工作原理相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化. 在目前的Web2.0热潮中,Ajax正吸引着全世界的眼球,成为人们谈论最多的技术术语.组成Aj ax的各种技术使Web应用的交互如Flickr, Backpack和Google在这方面已经有质的飞跃.这个术语源自描述从基于网页的Web应用到基于数据

26、的应用的转换.它使浏览器可以为用户提供更为自然的浏览体验.每当需要更新时,客户端Web页面的修改是异步的和逐步增加的12.这样,匆Ajax在提交Web页面内容时大大提高了用户界面的速度.在使用Ajax的应用程序中没必要长时间等待整个页面的刷新.页面中需要更新的那部分才进行修改,如果可能的话,更新是在本地完成的,并且是异步的.2.4.1 ajax的优点相对于传统的WEB应用程序来说,采用Ajax技术的WEB应用程序具有如下的三个优点:(1) 浏览器分担一部分的业务逻辑,而不再是仅仅显示内容.在传统的WEB应用程序中,浏览器只显示内容.它的作用仅仅是显示服务器传送回来的页面,无法做出自己的判断,即

27、不参与到整个业务逻辑的处理中,也不了解用户在整个业务流程中的状态.所有的信息和逻辑都是在服务器进行处理,服务器决定了一切.而使用Ajax,一部分的业务逻辑就可以在客户端实现.通过JavaScript代码,客户端可以一直跟踪用户在整个业务流程中的状态.当用户进行操作时它可以相应的改变页面显示.在处理用户的输入时可以由它来决定是提交给服务器处理还是在本地单独进行处理,或者两种兼而有之.这样Ajax分担了一部分的业务逻辑,与传统的WEB应用程序的瘦客户端相比,它实现了一种胖客户端m,缓解了服务器端所承担的压力,有效的利用了客户端的资源.(2) 服务器仅仅传送数据,而不是内容.在传统的WEB应用程序中

28、,服务器向客户端传送的东西混合了数据、内容和模板文件.有时用户仅仅是进行了很少一部分的改动,只需要引起页面的部分改动,但是如果想和服务器交互的话,服务器仍然会将改动的数据连同整个页面全部传回客户端.而使用Aj ax,客户端只需要向服务器发送一个异步请求,服务器经过处理后仅将改变的数据返回给客户端,而并不是将页面混合数据传回来.然后客户端再根据传回的数据对页面实行部分更新或者部分加载.它消除了整个页面的加载,有利于增量修改,而不是完全的更新ys.由于服务器仅仅传送数据,这样使用Ajax可以有效的实现内容与数据的分离.同时服务器与客户端之间的通信量大大降低,减少了网络流量,有效的利用了网络带宽,缓

29、解了网络压力.(3) 与用户的交互更具有流畅性和连贯性.传统的WEB应用程序提供了两种方式来实现客户端与服务器的交互:超级链接和Form表单.无论使用哪种方式,与服务器的交互都需要重新刷新整个页面,用户在服务器的返回结果之前只能等待,整个操作失去了流畅性和连贯性.而使用Aj ax,由于Aj ax与服务器的交互是异步的,浏览器使用不同的线程来侦听服务器的响应和用户的其他操作.这样,用户在向服务器提交完数据后,可以继续进行其他的操作,完全没有停顿的感觉,使整个WEB程序就像使用桌面应用程序一样流畅自如. 2.5 数据库MySqlMySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,

30、目前属于Oracle公司13.MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性,MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,MySQL由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库.MySQL数据库的主要特点包括以下几点:(1)

31、性能出色:MySQL的核心程序采用完全的多线程编程,并且支持多处理器,极大地提高了程序的运行效率.因在开发MySQL这款数据库的时候运用了C语言作为编程语言,并且运用了多线程,所以它对CPU的充分利用变得更加容易.(2) 开源数据库:操作方便,使用成本较低,版本更新较快,提供的接口支持多种语言连接操作.MySQL有一个非常灵活而且安全的权限和口令系统.当客户操作客户端向服务器发出请求与MySQL服务器建立连接时,MySQL与客户之间所有口令信息的传送都会得到加密处理,这突出了MySQL的安全性.(3) 多样性:MySQL能够根据不同用户的需求差异,提供相应的用户界面供其选择,支持多种程序语言界

32、面还为这些编程语言提供了API.可以使用封装好的客户端也可以写一个合适的应用程序.MySQL可用于多种操作系统平台,如:Unix、Windows,也可以使用在PC机和服务器上.3 系统设计 3.1 需求模型的建立 3.1.1 用例分析用例是对参与者使用系统的一项功能时所进行的交互过程的描述,其中包含由双方交替执行的一系列动作.一个用例是通过使用系统功能的某些部分而使用的一种具体方式,每个用例包括一个由参与者发动的完整的事件过程14.发现用例的方法是:(1) 全面地了解和收集用户所要求的各项系统功能,确定系统边界,找出所有的参与者,向用户和领域专家了解与各项功能有关业务流程.(2) 把用户所提出

33、的功能组织成适当的单位,即:一项功能完成一项完整而独立的工作,并且是通过参与者与系统的一次交互能够完成的.(3) 以穷举得方式考虑每一类参与者与系统的交互情况,看看每个参与者要求系统提供什么功能,以及参与者的每一项输入信息将要求系统做出什么反应,进行什么处理,定义相应的用检查用户对系统的各项功能需求是否都通过相应的用例做了描述.用户用例图如图3.1所示: 图3.1 用户用例图 用户(患者)可以查询系统内已有的科室信息和医师信息,根据自己情况预约和取消预约.所以本模块中用例如下:登录系统、查询医院信息、查询科室、查询医生、预约挂号、查看挂号、取消挂号.用例分析:用户通过登录来进入系统,登录以后可

34、以查看医院信息,也可以根据自己的病情查询需要的科室以便进入科室选择医生挂号.用户也可以直接选择自己想要挂号的医生进行挂号,选择完医生后如果挂号人数没有满用户可以在该医生处进行挂号.用户还可以查看自己的挂号,如果因为一些情况不能就医,可以取消自己的挂号.管理员用例图如图3.2所示:图3.2 管理员用例图 管理员可以发布,删除,修改通知,管理用户信息,如删除账号,还可以对医生进行添加、删除的操作,审核挂号,删除过期挂号.所以本模块中用例如下:登录系统、发布通知、修改通知、删除通知、审核注册信息、审核挂号、删除过期挂号、添加医生、删除医生.用例分析:管理员通过登录来进入系统,登录后可以发布通知,也可

35、以对已经发布的通知进行修改,还可以删除已经发布的通知.管理员可以添加能够挂号的医生,还可以删除不能挂号的医生.管理员能够对用户的挂号进行审核,删除过期挂号. 3.2 基本模型的建立 3.2.1 系统中的类的设计 类图最集中、最完整地体现了面向对象的概念,同时也为面向对象的编程提供了最直接、最可靠的依据.构成类图中的主要成分是类、属性、操作、一般-特殊结构、整体-部分结构、关联和消息.系统中类图如图3.3所示.图3.3 类图3.2.2 类图分析(1) 用户类 在本系统中 最主要的类为管理员与病人,因为管理员、病人类都具有登录、修改密码功能,因此特意抽象出一个类用户,管理员、病人用户继承类用户,为

36、一般-特殊关系.(2) 管理员类 在管理员里,用户管理是修改密码和删除普通用户等操作;医生信息管理较为复杂,需要由管理员对医生及医生信息进行增、删、改、查等操作,医生这一类完全由管理员操作,它自己没有任何操作功能. (3) 病人类 属性:真实姓名(real name)、性别(sex)、年龄(age)、密码(password)、身份证号(identification card numbers)、病状(symptom) 操作:用户登录(login)、用户注册(users register)、修改密码(change password)、医生资料查询(check doctor information

37、)、个人信息查询 (check personal information). 这个类中,之所以要求病人用户填写真实姓名和身份证号,是为了让管理员能够审核挂号的人是否是真实存在的,可以提高系统性能和可靠性. (4) 类名:医生(doctors) 属性:姓名(doctor name)、年龄(age)、编号(id)、毕业学校(School of Graduation)、从医年龄(how long to be a doctor)、科室(Departments)、职称(job title)、专长(special skill). 此类与病人类和管理员类不同,因为它只是用来让管理员添加和让病人用户来预约而已

38、,他自己既不能查看自己的信息,也没有登录和注册功能,故它不是用户的子类. (5) 类名:预约信息(orders information) 属性:预约编号(order id)、预约时间(order times)、预约人(order people)、预约医生(ordered doctors)、科室(Departments)、专长(special skill). 此类可供病人查看自己的预约信息和管理员查看所用病人的预约信息和删除不合格的预约信息. (6) 类名:挂号(order) 属性:用户名(user name)、密码(password). 操作:登录(Login)、取消预约(cancel ord

39、er),处理预约(deal with orders).这里的挂号是用户的一个操作功能,之所以把它封装成一个类,是为了让此功类图分析更加清晰,方便系统的分析,方便今后的工作. 3.3 辅助模型 3.3.1活动图 对管理员和用户两个模块进行分析,判断各模块主要有哪些活动,然后对这些活动进行分析,判断出活动图中的各个元素和活动图的流程.在用户模块中可以看出主要是进行查找医生然后挂号的活动,所以用户模块中只需要用户挂号活动图;在管理员模块中除了发布通知活动复杂外,其他活动一目了然. (1) 用户挂号活动图如图3.4所示图3.4 用户活动图用户第一个动作为登录,登录在判断后分为登陆成功和登录失败.登录失

40、败可以选择继续登录还是活动结束.登陆成功后可以查询科室,查询科室以后可以查询该科室的医生,在查询医生以后可以进行预约挂号,如果挂号人数已满则该挂号取消,如果为等待验证则挂号通过,然后活动结束.(2) 管理员发布通知活动图如图3.5所示 图3.5 管理员活动图管理员第一个动作为登录,如果为登录失败则可以选择继续登录还是结束活动.登录成功后可以撰写通知,通知撰写后如果直接发布则后续可能有两种情况,一种是删除通知,另一种是结束活动.如果撰写后等待发布则后续可能有三种情况,一种是删除通知,另一种是发布通知,和上述直接发布一致.还有一种是修改通知,修改通知如果后续动作为等待发布,则和前面等待发布一致,如

41、果后续动作为发布,则和前面发布一致. 3.3.2顺序图 顺序图主要体现完成某一操作的顺序关系. 从用户登录到网站首页,和自己要选择的登录模块(患者,医生,管理员) 患者图: 患者登录、注册后进行预约挂号,查询修改信息.用户顺序图如图3.6所示. 管理员: 登录后对医生信息和医生的管理,管理员顺序图如图3.7所示.图3.6用户顺序图图3.7管理员顺序图 3.4 ER图 ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型.它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受15. E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实

42、世界的概念模型. 构成E-R图的基本要素是实体型、属性和联系,其表示方法为16: · 实体型:用矩形表示,矩形框内写明实体名; · 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来; · 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n).科室信息属性图如图3.8所示,在该图中实体为科室信息,科室信息有两个属性:科室名称和科室概况.科 室 信 息科 室 名 称科 室 概 况图3.8 科室信息属性图管理员信息属性图如图3.9所示,在该图中实体为管理员,管理员有两个属性:账户

43、名和密码.管 理 员账号名密 码图3.9管理员信息属性图患者信息属性图如图3.10所示,在该图中实体为患者,患者的属性分别为真实姓名、登录名、登录密码、性别等.患 者姓 名登 录 名登录密码类别性 别联系电话地 址身份证号编号图3.10患者信息属性图医生信息属性图如图3.11所示,在该图中实体为医生,医生的属性分别为医生名称、医生职称和医生简介.图3.11医生信息属性图医生信息医生职称医生名称医生简介本系统的E-R图如图3.6所示,图中显示了4个用矩形表示的实体类型:用户,科室信息,医师信息和时间表,各个实体类型又有其对应的类型,在上述图中可以找到,实体与实体间存在四个联系,根据不同的实际情况

44、给输了联系类型.从图中可以清晰的看出各个实体的特点以及它们之间的关联性. 图3.6 系统E-R图 图3.12系统图3.5数据库设计在完成系统的ER图之后,需要将ER模型转化为关系模型,也就是说,要设计出所需要的表格.在这里,选用的是关系数据库.因为关系数据库中的二维表格可以很清楚地描述数据之间的联系.管理员表如表3.1所示用来存储管理员的基本信息,包括管理员的登录名和密码,在管理员登录的时候使用.表3.1管理员表结构字段名称字段类型说明aid(k)int(4)ID序列号unameVarchar(20)登录账号UpwdVarchar(6)登录密码医生信息表如表3.2所示主要用来存储医生的个人信息

45、,包括医生姓名,性别,年龄,职称等,在用户查询医生时会显示查出的该表中医生个人信息. 表3.2医生信息表结构字段名称字段类型说明did(k)int(4)ID序列号 NameVarchar(30)医生名字 SexVarchar(2)性别 AgeInt(3)年龄 LevelVarchar(20)职称 SpecialVarchar(20)擅长 SectionVarchar(20)科室 imgVarchar(100)医生照片 患者信息表如表3.3所示用来存储患者的基本信息,包括患者的登录名,密码,真实姓名,身份证号等.其中登录名和密码是患者在登录系统是使用的.表3.3患者信息表结构字段名称字段类型说明

46、pid(k)int(4)ID序列号 NameVarchar(32)用户姓名 UnameVarchar(32)登录名称 UpwdVarchar(32)登录密码 SexVarchar(2)性别 AgeVarchar(3)年龄 Address Varchar(32)地址 Phone Varchar(32)联系电话 Id Varchar(18)医生预约时间信息表如表3.4所示用来存储医生的预约信息,包括预约日期,上午/下午,医生现在能够挂号的数量,医生id,其中医生编号是医生表中的主键作为医生预约时间信息表的外键,为了将预约时间表和医生联系在一起.表3.4医生预约时间信息表结构字段名称字段类型说明 c

47、id(k)int(12)ID序列号 dateVarchar(32)日期 apVarchar(32)上午/下午 numberint(12)挂号数量 didint(12)医生编号病人挂号表如表3.5所示用来表示病人在某个医生处挂号的基本信息,包括医生编号,病人编号,预约日期,上午/下午,医生姓名,其中病人编号是病人表中的主键作为病人挂号表的外键,医生编号是医生表中的主键作为挂号表的外键,为了将挂号表与医生表和病人表联系在一起.表3.5病人挂号表结构字段名称字段类型说明oidInt(12)ID序列号didInt(12)医生编号pidInt(12)病人编号date Verchar(12)日期ap Ve

48、rchar(12)上午/下午docName Verchar(32)医生姓名4 系统实现 4.1 系统首页的实现基于WEB服务的医院网上挂号系统首页如图4.1所示完成医院概述,新闻公告,科室导航等,如果用户已经登录可以查看自己的挂号信息,没有登录则不能查看.浏览者可以输入自己想要挂号的医生姓名或科室名称查找自己想要挂号的医生,查找后会显示该科室的医生姓名或该医生的姓名,支持模糊查询.浏览者点击医生姓名后会显示该医生的信息和挂号信息,如果已经登录点击确认预约后会判断是否已经在该医生处挂过号,如果没有则挂号成功,如果有则挂号失败,如果用户没有登录则点击预约挂号后会跳转到登录界面.查找自己系统主界面不

49、需要登录密码等信息,为浏览者任意开放,供浏览者了解医院情况和查找医生,浏览者不需要登录就可以使用这些功能.图4.1 首页 4.2 登录功能实现在登录窗口,用户可以选择管理员还是用户登录,选择完以后输入用户名和密码,用户名和密码输入完成后点击登录按钮提交到servlet.servlet取得用户输入的用户名和密码,然后判断用户选择的是管理员登陆还是用户登录,根据用户的选择调用相应的dao查询数据库中是否存在该用户或者管理员.servlet取得返回值后判断是否登陆成功,如果登录成功则跳转到管理员界面或用户界面,如果用户登录失败,会跳转回登陆界面并且提示“用户名或密码错误”,用户重新输入用户名和密码继

50、续上面的步骤.用户登录页面如图4.2所示.图4.2 用户登录页面 4.2 用户功能的实现4.2.1 用户注册功能的实现如果需要注册新用户,可以使用用户注册功能,添加的信息包括用户的真实姓名、性别、登陆名、登陆密码、地址等其他信息.当用户输入完一条信息后鼠标移开,会在javaScript进行验证,如果输入错误会提示输入错误信息,用户看到错误信息后应该根据提示的信息对输入的信息进行修改.只有当用户的所有需要填写的信息都正确时,用户才可以进行注册.用户点击注册按钮后会把所有信息传递到servlet,servlet调用该模块Dao里的方法,把所有信息插入数据库.Servlet根据返回的信息判断是否插入

51、(注册)成功,如果注册成功则跳转到登录页面,注册失败跳转回注册页面.在判断用户名和身份证的时候使用了ajax方法,用户输入完用户名后鼠标移开,进入判断用户名是否存在的ajax方法中.在ajax方法中写好需要跳转的servlet名和用户输入的值,跳转到servlet以后根据用户输入的值调用该模块dao里面的方法,通过查询数据库判断用户名是否已存在,servlet得到返回值后先转化成json格式的数据,然后传回ajax方法中.根据返回值判断用户名是否已经存在,如果存在提示用户“用户名已经存在”,如果不存在提示用户“用户名可以使用”.使用ajax的优点是不用刷新整个页面,使用一步的方式与服务器通信,

52、不需要打断用户的操作.所以在判断用户名的时候使用ajax进行判断,不会清除用户输入的其他信息.在使用ajax的时候刚开始得不到ajax方法得不到servlet返回的值,所以ajax方法不能使用.最后解决方法是通过“JSONArray json = JSONArray.fromObject(check);”把得到的数据转化成json格式,然后通过“out.write(json.toString();”返回到ajax中,通过这样的方式可以得到servlet的返回值.判断用户名ajax代码如下: $.getJSON( /url "http:/localhost:8080/Hos/Check

53、Uname", /data "name":$("#Loginname").val(), function(data) /判断,如果为true 提示成功,否则失败 if(data0.value=1)/清除表单 $("#login_msg") .empty() .html("用户名已存在"); else $("#login_msg") .empty() .html("用户名可以使用") 先定义ajax的跳转路径和传递参数,用户名是判断用户名是否存在的servlet名,参

54、数是用户输入的用户名.然后取得servlet返回的数据,判断用户名是否已存在,如果存在则提示用户“用户名已存在”,用户需要重新填写用户名,如果不存在则提示用户“用户名可以使用”,用户可以继续填写下面的信息. 4.2.2 用户查询医生功能的实现患者可以根据自己的病情查询自己想要挂号的医生,可以通过下拉框选择输入医生姓名或医生科室查找医生,本模块采用的是模糊搜索,也就是说用户不输入医生的完整姓名或者科室的完整名称也可以进行查询.用户输入完成后点击搜索按钮跳转到servlet,servlet取得用户输入的参数和用户选择的是按医生姓名查询还是按医生科室进行查询,判断患者的选择后调用本模块dao中相应的

55、方法,查询数据库中的医生姓名.查询完后servlet跳转到用户查找医生页面进行显示,显示的是查询出的医生姓名.用户选择自己想要挂号的医生姓名点击进入预约挂号模块.String select = request.getParameter("quicksearch1$select");String name = request.getParameter("txt");/医生姓名or科室名称List<Doctor> list = new ArrayList<Doctor>();if("1".equals(select)/按姓名查询医生信息PatientDao pdao = new PatientImpl();list = pdao.CheckDoctor1(name);else/按科室查询

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论