毕业论文-基于bs结构的医院预约挂号系统的设计与实现_第1页
毕业论文-基于bs结构的医院预约挂号系统的设计与实现_第2页
毕业论文-基于bs结构的医院预约挂号系统的设计与实现_第3页
毕业论文-基于bs结构的医院预约挂号系统的设计与实现_第4页
毕业论文-基于bs结构的医院预约挂号系统的设计与实现_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(2015届)题目基于B/S结构的医院预约挂号系统的设计与实现学院数学计算机学院专业计算机科学与技术年级2011级学生学号学生姓名指导教师2015年5月8日基于B/S结构的医院预约挂号系统的设计与实现摘要在传统的医院挂号过程中,信息处理停留在手工方式,劳动强度大且工作效率低,有的病人排很长时间的队也不一定能挂上自己满意的号,而用网上预约的方式,使病人不用出门就可以挂到自己想要的号本系统采用的是基于广域网的B/S结构平台,网页采用的是JSP技术,它拥有卓越的系统可移植性,加上MYSQL数据库强大的后台数据支持,可以很好的实现系统的功能本文主要介绍了医院网上挂号系统的设计与实现,对所用到的技术也做了一定的介绍关键字医院;网上挂号;JSP;MYSQL中图分类号TP3111THEDESIGNANDTHEIMPLEMENTATIONOFTHEBOOKINGSYSTEMOFTHEONLINEHOSPITALREGISTRATIONBASEDONTHEB/SSTRUCTUREABSTRACTINTHETRADITIONALHOSPITALPROCESS,THEMANUALINFORMATIONPROCESSINGREMAINLABORINTERSIVEANDLOWEFFICIENCY,SOMEPATIENTSSTOODINLINEFORALONGTIMEALSOTOCANNOTHANGTHEMSELVESBYUSINGTHEMETHODOFONLINEBOOKING,THEPATIENTNEEDNOTTOGOOUTWHILEUSETHESYSTEMISDESIGNEDASB/SSTRUCTUREBASEDONTHEWIDEAREANETWORK,JSPTECHNICSFORITHASEXCELLENTPORTABILITY,COUPLEDWITHASTRONGBACKGROUNDMYSQLDATABASEDATASUPPORT,ITCANREALIZETHEFUNCTIONOFTHESYSTEMVERYWELLTHISARTICLEMAINLYINTRODUCESTHEDESIGNANDIMPLEMENTATIONOFHOSPITALONLINEREGISTRATIONSYSTEM,ANDONTHEUSEOFTECHNOLOGYASWELLKEYWORDSHOSPITALONLINEREGISTRATIONJSP;MYSQL目录1绪论111课题背景及研究意义112国内外研究现状213系统简介2131系统解决的主要问题2132系统的特点32开发环境及开发技术521B/S架构522MVC设计模式5221MVC设计模式简介5222MVC设计模式的优缺点623JAVAEE架构7231JAVAEE简介7232JAVAEE的优势724AJAX技术8241AJAX的优点825数据库MYSQL93系统设计1131需求模型的建立11311用例分析1132基本模型的建立13321系统中的类的设计13322类图分析1333辅助模型15331活动图15332顺序图1634ER图1735数据库设计194系统实现2241系统首页的实现2242登录功能实现2242用户功能的实现23421用户注册功能的实现23422用户查询医生功能的实现25423预约模块的实现2543管理员模块的实现26431医生管理分页的实现26432增加医生模块的实现28433挂号信息管理模块的实现295总结30参考文献32致谢33基于B/S结构的医院预约挂号系统的设计与实现1绪论11课题背景及研究意义随着经济与科学技术的高速发展,信息化的进程不断加快随着计算机性能不断提高,价格不断下降,计算机已在医院医疗,教学,科研,管理的各个方面得到越来越广泛的应用1然而,我国还有部分医院的信息处理停留在手工方式,劳动强度大且工作效率低,医师护士和管理人员的大量时间都消耗在事务性工作上,病人排队等候时间长,辗转过程多,影响了医疗的秩序计算机化的医院信息系统已成为现代化医院运营必不可少的基础设施与技术支撑环境门诊挂号系统是整个医院管理信息系统的第一个窗口,是病人到医院就诊要做的第一项工作它用于收集病人的信息,协调科室医生管理,控制各科室的流量等等医院网上预约挂号系统是一种基于互联网的新型挂号系统,是卫生信息化建设的基础的项目之一2利用该预约挂号系统,用户就可以在网上预约医院的专家、专科号,而无须再受排队之苦它能更好的改善就医环境,简化就医环节,节约就医时间,真正体现了以病人为中心,一切从方便患者出发,符合当今医院人性化温馨服务的理念目前,门诊一直是困扰医院提高服务质量的一个复杂环节,特别是医疗水平高、门诊量大的医院,而造成门诊质量难以提高的因素主要有两方面一方面集中式挂号现在流行的分层挂号只是相对而言一个范围较小的集中式挂号,就诊人员流量不均、具有不确定性,有明显的就诊高峰和低谷表现在整个医院不同门诊时间段及同科室的不同时间段高峰期病人挂号排队长,就诊时间长,医生熟人插号现象,环境拥挤混乱,医生问诊时间短、不仔细、态度差而低谷期,医生无病人看、溜号,医院资源浪费另一方面专家号特别是名专家号难挂,出现倒号、炒号现象,严重损害病人利益,影响到医院的声誉而采用网上预约挂号,可有效的解决这一现象,还通过有效的身份验证,杜绝倒、炒专家号的现象,提高医院门诊服务质量,取得良好的社会效益和经济效益此外,病人到医院就诊前对医院的相关信息了解不多,对所要挂的专科医生的情况又不太了解,只能凭经验和印象进行选择,具有较大的盲目性而当医院开通网上挂号预约服务以后,求医者只需坐在家中,轻点儿下鼠标,就可以挂上医院专家门诊号,可以做到“足不出户选医生”网上预约正悄然改变着都市求医者的看病观念拥有相对固定的个人医生和习惯,预约看病,将不再遥远,所以应用必将越来越广泛312国内外研究现状随着互联网络的迅猛发展,INTERNET用户已呈几何级数增长,目前已经有很多医院投入使用网上挂号系统据了解,预约挂号在国外颇为普及在西方国家,病人看病都需要事先进行预约随着预约挂号的深入推广,国内越来越多的医院也意识到预约服务在节约看病时间、分流患者、减轻医院压力上的作用4据了解,尽管存在很多困难,但全国各地的医院在尝试预约挂号的实践中还是提供了很多有益的做法在中国传统的医院门诊挂号是即时挂号、即时就诊门诊模式的但是这种就诊的模式给患者带来许多不便1挂号时间长、候诊时间长、交费时间长、看病时问短据统计,患者在门诊有60以上的时间都是用来等候的,真正就诊的时间却很短这样就给病人及家属带来了众多的不便而在欧美国家,患者看病一般都需要预约挂号除非急诊,很少有人直接到医院找医生的没有提前24小时的电话预约,医院一般也不会接诊一些医院设立的预约挂号部门,一般都由经验丰富的医生、护士担任接线员,以便根据患者自诉症状建议应挂科室,推荐专家也有部分的医院可以同时通过网站预约的5随着网络功能及宣传手段不断优化和人民群众观念的不断更新,网上预约挂号前景无疑是可观的按现在的中国门诊预约就诊患者的年龄及受教育程度和使用网络资源程度的情况分析来看,各种预约方式和谐并存着才能满足不用类型的患者的需求网上预约挂号的实施刚起步不久,预约挂号系统的不断改善优化还是一个循序渐进的过程,要先向更好地为习惯使用这一资源的患者服务的目标进发13系统简介131系统解决的主要问题病人去医院就医首先要到挂号窗口进行挂号,病人获得有效医疗服务最重要的保证就是能够挂到一个满意的号目前病人挂号难已成为全国各个医院的首要问题,但是一直没有能够彻底解决医院门诊挂号一直是大中型医院提高服务质量的关键环节,特别是门诊量较大、人口密度高、医疗设备先进、技术先进的综合型大医院,门诊挂号秩序混乱一直是普遍存在的现象就上述问题着重分析了已下三个方面的问题61针对病人挂号集中的问题针对病人挂号集中、就诊人员流量变化大、不确定性明显等问题进行分析很多医院高峰期病人必须排长队挂号,就诊需要等待的时间较长,更是有个别医生熟人肆意插号的现象,使得挂号秩序更加混乱;还有挂号医生多的时候,医生由于时间有限,导致医生询问病情不仔细,病人就诊时间短,有时发生接待病人态度差等现象采用网上挂号能很好的解决这些问题,病人在网上预约好时间,到时间过去就行,不用等待很长时间排队;每个病人就诊时间经过合理分配,使医生可以详细了解病人病情并进行诊断2针对专家号一号难求的问题一般专家一天最多能看2030个患者,而一些患者为了获得宝贵的就诊号需要排上几个小时的队,也导致了“炒号”、“倒号”等不良现象的产生,损害了患者的经济利益,耽误了患者的就诊时间,甚至影响了医院的就诊质量和声誉网上挂号因为采用的是实名认证的方式进行的注册,每个身份证号只能注册一次,而且本人挂号只能本人就诊,杜绝了“炒号”、“倒号”等现象的发生,做到了相对的公平3医院网上预约挂号的设计本文研究的基于WEB服务的预约挂号系统可以有效的解决挂号难的问题患者不必去医院,只需坐在电脑前,通过浏览挂号系统网页,就能选择适合自己病情的医生进行挂号不仅能大大减少患者的排队时间,还能缓解医院就诊挂号高峰期的拥挤,利用网络巨大的资源和空间,尽量为病人提供更优质的服务132系统的特点1系统功能的方便性使用医院网上挂号系统可以在任意地方登录网站进行挂号,也可以根据自己的状况选择合适自己病情的科室、专家及合适的就诊时间等,最后医院完成确认,以完成患者的预约挂号该系统操作十分方便、省事2系统功能的实效性病人患病后都希望早日到医院就诊治疗,以解除病痛的困扰正常情况去门诊挂号是带医院完成的第一件事,挂上号之后再去门诊进行就医对于医疗技术较高的大中型医院来说,患者挂号总是需要排长队,有时排长时间的对也不一定能挂上号网上预约挂号系统为用户提供了省时省力且实效的服务,为患者解决了挂号难的问题3系统资源信息的共享性计算机网络的应用及信息共享之后,医院相关负责人员就可以把计划好的医生出诊信息及时发布到相关网站,患者及家属只需在家里的电脑上网就可以了解医院的挂号信息,因此,可以说计算机系统资源的共享性为医院挂号工作奠定了基础,为医院信息管理系统提供了方便使用的技术通过计算机网络可以再最短的时间内把医生出诊信息及临时变化情况公布出来,在网上供患者和社会用户参考,避免了他们到医院就诊的盲目性4系统功能的适用性大医院的门诊大厅一般都是拥挤这等候挂号的人们,有的排队一夜甚至几天这是真实的挂号情况,也是我国众多患病人群与现今有限的卫生医疗服务机构之间的矛盾的具体体现医疗卫生部门管理者必须首要考虑这些问题网络预约挂号不仅减轻了患者和家人的麻烦,也在一定程度上缓解并改善了挂号窗口的紧张局面2开发环境及开发技术医院网上挂号系统是以SERVLET框架为主要的技术框架,以JSP技术为客户端的主要显示技术,以MYSQL数据库作为系统的数据存储单元下面我们来介绍下本系统的开发环境以及开发中所用到的相关技术21B/S架构本系统采用的是B/S架构,及浏览器和服务器结构,示意图如图21所示浏览器显示出用户操作界面,接收用户在页面上输入的各种操作信息,在接到提交命令后向服务器发出请求,并接收由服务器返回的数据结果,然后向用户展示相应的信息服务器端在这里的角色就如同桥梁,用来连接用户浏览器与数据库,将所需要的数据信息进行分析传输7对于医院网上挂号系统来说,采用B/S架构的系统所有的客户端都是浏览器,不需要对它做任何维护绝大部分事务逻辑都是由服务器端来进行处理,然后在通过用户的浏览器实现,在客户端也就是前端界面只是有少量的逻辑需要处理系统管理人员只需要做硬件维护,降低了系统管理人员工作量,提高了其工作效率系统架构如图21所示图21系统架构22MVC设计模式221MVC设计模式简介MVC由TRYGVEREENSKAUG提出,首先被应用在SMALLTALK80环境中,使许多交互和界面系统的构成基础,MICROSOFT的MFC基础类也遵循了MVC的思想8对于界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制三种部件模型部件是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,数据库JDBC返回结果集TOMCAT发出操作请求返回查询结果浏览器封装了问题的核心数据、逻辑和功能的计算关系,他独立于具体的界面表达和I/O操作视图部件把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图控制部件是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件通常一个视图具有一个控制器模型、视图与控制器的分离,使得一个模型可以具有多个显示视图如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新这实际上是一种模型的变化传播机制222MVC设计模式的优缺点MVC的优点表现在以下几个方面91可以为一个模型在运行时同时建立和使用多个视图变化传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步2视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换3模型的可移植性因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作需要做的只是在新平台上对视图和控制器进行新的修改4潜在的框架结构可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中MVC的缺点表现在以下几个方面1增加了系统结构和实现的复杂性对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率2视图与控制器间的过于紧密的连接视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用3视图对模型数据的低效率访问依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据对未变化数据的不必要的频繁访问,也将损害操作性能4目前,一般高级的界面工具或构造器不支持MVC模式改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难23JAVAEE架构231JAVAEE简介J2EE的基础部分是由JSPJAVASERVERPAGE和JAVASERVLET这两种技术共同构成其定义了一套有用的API、一个运行时平台、应用程序接口和一个内置模型,并能够将其所有功能组合成一个可扩展的、可移植的和设计得更好的应用程序10J2EE平台支持简化的、基于组件开发模型我们将组件技术加以利用,就可以把程序分割成许多小模块以适应不同程序员擅长的技术,使开发进行分工操作,并行开发让开发人员的技能得到最大限度的应用,最大限度的提高开发的效率由于EJB模型遵循了高内聚低耦合的编程理念,使其代码的可移植性与重用性增强基于组件的设计简化了应用程序的维护由于组件耦合度低,所以能被独立地更新和替代,通过应用程序中特定的组件被更新,使其很容易将新的功能增加进来,更易于维护以下是J2EE典型的四层结构如图2211所示图22J2EE的四层结构图232JAVAEE的优势JAVAEE平台平台对分步式企业应用开发而言,在保存企业现有IT资产减少重复性投入的同时也满足了未来商业应用的需要,具有以下优点1JAVAEE建立了企业应用开发所需要的一些技术标准,如企业业务组件EJB等;2JAVAEE自身具备完善的目录服务支持、高度的安全机制、高效的性能展现等众多技术优势,并且基于开放的标准,可以促进技术的更好发展;3JAVAEE为企业系统提供了完美的机制和统一的平台,不仅简化开发过程,也使得WEB应用程序资源利用率更高让系统具有高可用性、高可扩展性、易维护性;4JAVAEE缩短了产品研发时间,绝大多数的供应商的产品是根据JAVAEE标准而开发的,因此开发者可以摆脱中间件的困扰而专注于各自业务逻辑的应用开发;5JAVAEE使用负载平衡策略,使系统软硬件资源利用率及性能表现最大化,能够消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统24AJAX技术AJAX的工作原理相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化在目前的WEB20热潮中,AJAX正吸引着全世界的眼球,成为人们谈论最多的技术术语组成AJAX的各种技术使WEB应用的交互如FLICKR,BACKPACK和GOOGLE在这方面已经有质的飞跃这个术语源自描述从基于网页的WEB应用到基于数据的应用的转换它使浏览器可以为用户提供更为自然的浏览体验每当需要更新时,客户端WEB页面的修改是异步的和逐步增加的12这样,匆AJAX在提交WEB页面内容时大大提高了用户界面的速度在使用AJAX的应用程序中没必要长时间等待整个页面的刷新页面中需要更新的那部分才进行修改,如果可能的话,更新是在本地完成的,并且是异步的241AJAX的优点相对于传统的WEB应用程序来说,采用AJAX技术的WEB应用程序具有如下的三个优点1浏览器分担一部分的业务逻辑,而不再是仅仅显示内容在传统的WEB应用程序中,浏览器只显示内容它的作用仅仅是显示服务器传送回来的页面,无法做出自己的判断,即不参与到整个业务逻辑的处理中,也不了解用户在整个业务流程中的状态所有的信息和逻辑都是在服务器进行处理,服务器决定了一切而使用AJAX,一部分的业务逻辑就可以在客户端实现通过JAVASCRIPT代码,客户端可以一直跟踪用户在整个业务流程中的状态当用户进行操作时它可以相应的改变页面显示在处理用户的输入时可以由它来决定是提交给服务器处理还是在本地单独进行处理,或者两种兼而有之这样AJAX分担了一部分的业务逻辑,与传统的WEB应用程序的瘦客户端相比,它实现了一种胖客户端M,缓解了服务器端所承担的压力,有效的利用了客户端的资源2服务器仅仅传送数据,而不是内容在传统的WEB应用程序中,服务器向客户端传送的东西混合了数据、内容和模板文件有时用户仅仅是进行了很少一部分的改动,只需要引起页面的部分改动,但是如果想和服务器交互的话,服务器仍然会将改动的数据连同整个页面全部传回客户端而使用AJAX,客户端只需要向服务器发送一个异步请求,服务器经过处理后仅将改变的数据返回给客户端,而并不是将页面混合数据传回来然后客户端再根据传回的数据对页面实行部分更新或者部分加载它消除了整个页面的加载,有利于增量修改,而不是完全的更新YS由于服务器仅仅传送数据,这样使用AJAX可以有效的实现内容与数据的分离同时服务器与客户端之间的通信量大大降低,减少了网络流量,有效的利用了网络带宽,缓解了网络压力3与用户的交互更具有流畅性和连贯性传统的WEB应用程序提供了两种方式来实现客户端与服务器的交互超级链接和FORM表单无论使用哪种方式,与服务器的交互都需要重新刷新整个页面,用户在服务器的返回结果之前只能等待,整个操作失去了流畅性和连贯性而使用AJAX,由于AJAX与服务器的交互是异步的,浏览器使用不同的线程来侦听服务器的响应和用户的其他操作这样,用户在向服务器提交完数据后,可以继续进行其他的操作,完全没有停顿的感觉,使整个WEB程序就像使用桌面应用程序一样流畅自如25数据库MYSQLMYSQL是一个关系型数据库管理系统,由瑞典MYSQLAB公司开发,目前属于ORACLE公司13MYSQL是最流行的关系型数据库管理系统,在WEB应用方面MYSQL是最好的RDBMSRELATIONALDATABASEMANAGEMENTSYSTEM关系数据库管理系统应用软件之一,MYSQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性,MYSQL所使用的SQL语言是用于访问数据库的最常用标准化语言,MYSQL由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MYSQL作为网站数据库MYSQL数据库的主要特点包括以下几点1性能出色MYSQL的核心程序采用完全的多线程编程,并且支持多处理器,极大地提高了程序的运行效率因在开发MYSQL这款数据库的时候运用了C语言作为编程语言,并且运用了多线程,所以它对CPU的充分利用变得更加容易2开源数据库操作方便,使用成本较低,版本更新较快,提供的接口支持多种语言连接操作MYSQL有一个非常灵活而且安全的权限和口令系统当客户操作客户端向服务器发出请求与MYSQL服务器建立连接时,MYSQL与客户之间所有口令信息的传送都会得到加密处理,这突出了MYSQL的安全性3多样性MYSQL能够根据不同用户的需求差异,提供相应的用户界面供其选择,支持多种程序语言界面还为这些编程语言提供了API可以使用封装好的客户端也可以写一个合适的应用程序MYSQL可用于多种操作系统平台,如UNIX、WINDOWS,也可以使用在PC机和服务器上3系统设计31需求模型的建立311用例分析用例是对参与者使用系统的一项功能时所进行的交互过程的描述,其中包含由双方交替执行的一系列动作一个用例是通过使用系统功能的某些部分而使用的一种具体方式,每个用例包括一个由参与者发动的完整的事件过程14发现用例的方法是1全面地了解和收集用户所要求的各项系统功能,确定系统边界,找出所有的参与者,向用户和领域专家了解与各项功能有关业务流程2把用户所提出的功能组织成适当的单位,即一项功能完成一项完整而独立的工作,并且是通过参与者与系统的一次交互能够完成的3以穷举得方式考虑每一类参与者与系统的交互情况,看看每个参与者要求系统提供什么功能,以及参与者的每一项输入信息将要求系统做出什么反应,进行什么处理,定义相应的用检查用户对系统的各项功能需求是否都通过相应的用例做了描述用户用例图如图31所示人人人人人人人人人人人人人人人图31用户用例图用户(患者)可以查询系统内已有的科室信息和医师信息,根据自己情况预约和取消预约所以本模块中用例如下登录系统、查询医院信息、查询科室、查询医生、预约挂号、查看挂号、取消挂号用例分析用户通过登录来进入系统,登录以后可以查看医院信息,也可以根据自己的病情查询需要的科室以便进入科室选择医生挂号用户也可以直接选择自己想要挂号的医生进行挂号,选择完医生后如果挂号人数没有满用户可以在该医生处进行挂号用户还可以查看自己的挂号,如果因为一些情况不能就医,可以取消自己的挂号管理员用例图如图32所示图32管理员用例图管理员可以发布,删除,修改通知,管理用户信息,如删除账号,还可以对医生进行添加、删除的操作,审核挂号,删除过期挂号所以本模块中用例如下登录系统、发布通知、修改通知、删除通知、审核注册信息、审核挂号、删除过期挂号、添加医生、删除医生用例分析管理员通过登录来进入系统,登录后可以发布通知,也可以对已经发布的通知进行修改,还可以删除已经发布的通知管理员可以添加能够挂号的医生,还可以删除不能挂号的医生管理员能够对用户的挂号进行审核,删除过期挂号32基本模型的建立321系统中的类的设计类图最集中、最完整地体现了面向对象的概念,同时也为面向对象的编程提供了最直接、最可靠的依据构成类图中的主要成分是类、属性、操作、一般特殊结构、整体部分结构、关联和消息系统中类图如图33所示图33类图322类图分析1用户类在本系统中最主要的类为管理员与病人,因为管理员、病人类都具有登录、修改密码功能,因此特意抽象出一个类用户,管理员、病人用户继承类用户,为一般特殊关系2管理员类在管理员里,用户管理是修改密码和删除普通用户等操作;医生信息管理较为复杂,需要由管理员对医生及医生信息进行增、删、改、查等操作,医生这一类完全由管理员操作,它自己没有任何操作功能3病人类属性真实姓名(REALNAME)、性别SEX、年龄AGE、密码PASSWORD、身份证号(IDENTIFICATIONCARDNUMBERS)、病状SYMPTOM操作用户登录LOGIN、用户注册USERSREGISTER、修改密码CHANGEPASSWORD、医生资料查询CHECKDOCTORINFORMATION、个人信息查询CHECKPERSONALINFORMATION这个类中,之所以要求病人用户填写真实姓名和身份证号,是为了让管理员能够审核挂号的人是否是真实存在的,可以提高系统性能和可靠性4类名医生DOCTORS属性姓名DOCTORNAME、年龄AGE、编号ID、毕业学校SCHOOLOFGRADUATION、从医年龄HOWLONGTOBEADOCTOR、科室DEPARTMENTS、职称JOBTITLE、专长SPECIALSKILL此类与病人类和管理员类不同,因为它只是用来让管理员添加和让病人用户来预约而已,他自己既不能查看自己的信息,也没有登录和注册功能,故它不是用户的子类5类名预约信息ORDERSINFORMATION属性预约编号ORDERID、预约时间ORDERTIMES、预约人ORDERPEOPLE、预约医生ORDEREDDOCTORS、科室DEPARTMENTS、专长SPECIALSKILL此类可供病人查看自己的预约信息和管理员查看所用病人的预约信息和删除不合格的预约信息6类名挂号ORDER属性用户名USERNAME、密码PASSWORD操作登录LOGIN、取消预约CANCELORDER,处理预约DEALWITHORDERS这里的挂号是用户的一个操作功能,之所以把它封装成一个类,是为了让此功类图分析更加清晰,方便系统的分析,方便今后的工作33辅助模型331活动图对管理员和用户两个模块进行分析,判断各模块主要有哪些活动,然后对这些活动进行分析,判断出活动图中的各个元素和活动图的流程在用户模块中可以看出主要是进行查找医生然后挂号的活动,所以用户模块中只需要用户挂号活动图;在管理员模块中除了发布通知活动复杂外,其他活动一目了然1用户挂号活动图如图34所示人人人人人人人人人人人人人人人人人图34用户活动图用户第一个动作为登录,登录在判断后分为登陆成功和登录失败登录失败可以选择继续登录还是活动结束登陆成功后可以查询科室,查询科室以后可以查询该科室的医生,在查询医生以后可以进行预约挂号,如果挂号人数已满则该挂号取消,如果为等待验证则挂号通过,然后活动结束2管理员发布通知活动图如图35所示人人人人人人人人人人人图35管理员活动图管理员第一个动作为登录,如果为登录失败则可以选择继续登录还是结束活动登录成功后可以撰写通知,通知撰写后如果直接发布则后续可能有两种情况,一种是删除通知,另一种是结束活动如果撰写后等待发布则后续可能有三种情况,一种是删除通知,另一种是发布通知,和上述直接发布一致还有一种是修改通知,修改通知如果后续动作为等待发布,则和前面等待发布一致,如果后续动作为发布,则和前面发布一致332顺序图顺序图主要体现完成某一操作的顺序关系从用户登录到网站首页,和自己要选择的登录模块(患者,医生,管理员)患者图患者登录、注册后进行预约挂号,查询修改信息用户顺序图如图36所示管理员登录后对医生信息和医生的管理,管理员顺序图如图37所示图36用户顺序图图37管理员顺序图34ER图ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型它有两个明显的优点接近于人的思维,容易理解;与计算机无关,用户容易接受15ER图为实体联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型构成ER图的基本要素是实体型、属性和联系,其表示方法为16实体型用矩形表示,矩形框内写明实体名;属性用椭圆形表示,并用无向边将其与相应的实体连接起来;联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(11,1N或MN)科室信息属性图如图38所示,在该图中实体为科室信息,科室信息有两个属性科室名称和科室概况管理员信息属性图如图39所示,在该图中实体为管理员,管理员有两个属性账户名和密码患者信息属性图如图310所示,在该图中实体为患者,患者的属性分别为真实姓名、登录名、登录密码、性别等医生信息属性图如图311所示,在该图中实体为医生,医生的属性分别为医生名称、医生职称和医生简介管理员账号名密码图39管理员信息属性图科室信息科室名称科室概况图38科室信息属性图患者姓名登录名登录密码类别更新时间性别联系电话地址身份证号编号更新时间图310患者信息属性图本系统的ER图如图36所示,图中显示了4个用矩形表示的实体类型用户,科室信息,医师信息和时间表,各个实体类型又有其对应的类型,在上述图中可以找到,实体与实体间存在四个联系,根据不同的实际情况给输了联系类型从图中可以清晰的看出各个实体的特点以及它们之间的关联性图36系统ER图图312系统图35数据库设计在完成系统的ER图之后,需要将ER模型转化为关系模型,也就是说,要设计出所需要的表格在这里,选用的是关系数据库因为关系数据库中的二维表格可以很清楚地描述数据之间的联系管理员表如表31所示用来存储管理员的基本信息,包括管理员的登录名和密码,在管理员登录的时候使用图311医生信息属性图医生信息医生职称医生名称医生简介表31管理员表结构字段名称字段类型说明AIDKINT4ID序列号UNAMEVARCHAR20登录账号UPWDVARCHAR6登录密码医生信息表如表32所示主要用来存储医生的个人信息,包括医生姓名,性别,年龄,职称等,在用户查询医生时会显示查出的该表中医生个人信息表32医生信息表结构字段名称字段类型说明DIDKINT4ID序列号NAMEVARCHAR30医生名字SEXVARCHAR2性别AGEINT(3)年龄LEVELVARCHAR(20)职称SPECIALVARCHAR(20)擅长SECTIONVARCHAR(20)科室IMGVARCHAR(100)医生照片患者信息表如表33所示用来存储患者的基本信息,包括患者的登录名,密码,真实姓名,身份证号等其中登录名和密码是患者在登录系统是使用的表33患者信息表结构字段名称字段类型说明PIDKINT4ID序列号NAMEVARCHAR32用户姓名UNAMEVARCHAR32登录名称UPWDVARCHAR32登录密码SEXVARCHAR(2)性别AGEVARCHAR(3)年龄ADDRESSVARCHAR(32)地址PHONEVARCHAR(32)联系电话IDVARCHAR(18)医生预约时间信息表如表34所示用来存储医生的预约信息,包括预约日期,上午/下午,医生现在能够挂号的数量,医生ID,其中医生编号是医生表中的主键作为医生预约时间信息表的外键,为了将预约时间表和医生联系在一起表34医生预约时间信息表结构字段名称字段类型说明CIDKINT12ID序列号DATEVARCHAR(32)日期APVARCHAR(32)上午/下午NUMBERINT12挂号数量DIDINT12医生编号病人挂号表如表35所示用来表示病人在某个医生处挂号的基本信息,包括医生编号,病人编号,预约日期,上午/下午,医生姓名,其中病人编号是病人表中的主键作为病人挂号表的外键,医生编号是医生表中的主键作为挂号表的外键,为了将挂号表与医生表和病人表联系在一起表35病人挂号表结构字段名称字段类型说明OIDINT(12)ID序列号DIDINT(12)医生编号PIDINT(12)病人编号DATEVERCHAR(12)日期APVERCHAR(12)上午/下午DOCNAMEVERCHAR(32)医生姓名4系统实现41系统首页的实现基于WEB服务的医院网上挂号系统首页如图41所示完成医院概述,新闻公告,科室导航等,如果用户已经登录可以查看自己的挂号信息,没有登录则不能查看浏览者可以输入自己想要挂号的医生姓名或科室名称查找自己想要挂号的医生,查找后会显示该科室的医生姓名或该医生的姓名,支持模糊查询浏览者点击医生姓名后会显示该医生的信息和挂号信息,如果已经登录点击确认预约后会判断是否已经在该医生处挂过号,如果没有则挂号成功,如果有则挂号失败,如果用户没有登录则点击预约挂号后会跳转到登录界面查找自己系统主界面不需要登录密码等信息,为浏览者任意开放,供浏览者了解医院情况和查找医生,浏览者不需要登录就可以使用这些功能图41首页42登录功能实现在登录窗口,用户可以选择管理员还是用户登录,选择完以后输入用户名和密码,用户名和密码输入完成后点击登录按钮提交到SERVLETSERVLET取得用户输入的用户名和密码,然后判断用户选择的是管理员登陆还是用户登录,根据用户的选择调用相应的DAO查询数据库中是否存在该用户或者管理员SERVLET取得返回值后判断是否登陆成功,如果登录成功则跳转到管理员界面或用户界面,如果用户登录失败,会跳转回登陆界面并且提示“用户名或密码错误”,用户重新输入用户名和密码继续上面的步骤用户登录页面如图42所示图42用户登录页面42用户功能的实现421用户注册功能的实现如果需要注册新用户,可以使用用户注册功能,添加的信息包括用户的真实姓名、性别、登陆名、登陆密码、地址等其他信息当用户输入完一条信息后鼠标移开,会在JAVASCRIPT进行验证,如果输入错误会提示输入错误信息,用户看到错误信息后应该根据提示的信息对输入的信息进行修改只有当用户的所有需要填写的信息都正确时,用户才可以进行注册用户点击注册按钮后会把所有信息传递到SERVLET,SERVLET调用该模块DAO里的方法,把所有信息插入数据库SERVLET根据返回的信息判断是否插入注册成功,如果注册成功则跳转到登录页面,注册失败跳转回注册页面在判断用户名和身份证的时候使用了AJAX方法,用户输入完用户名后鼠标移开,进入判断用户名是否存在的AJAX方法中在AJAX方法中写好需要跳转的SERVLET名和用户输入的值,跳转到SERVLET以后根据用户输入的值调用该模块DAO里面的方法,通过查询数据库判断用户名是否已存在,SERVLET得到返回值后先转化成JSON格式的数据,然后传回AJAX方法中根据返回值判断用户名是否已经存在,如果存在提示用户“用户名已经存在”,如果不存在提示用户“用户名可以使用”使用AJAX的优点是不用刷新整个页面,使用一步的方式与服务器通信,不需要打断用户的操作所以在判断用户名的时候使用AJAX进行判断,不会清除用户输入的其他信息在使用AJAX的时候刚开始得不到AJAX方法得不到SERVLET返回的值,所以AJAX方法不能使用最后解决方法是通过“JSONARRAYJSONJSONARRAYFROMOBJECTCHECK”把得到的数据转化成JSON格式,然后通过“OUTWRITEJSONTOSTRING”返回到AJAX中,通过这样的方式可以得到SERVLET的返回值判断用户名AJAX代码如下GETJSON/URL“HTTP/LOCALHOST8080/HOS/CHECKUNAME“,/DATA“NAME“LOGINNAME“VAL,FUNCTIONDATA/判断,如果为TRUE提示成功,否则失败IFDATA0VALUE1/清除表单“LOGIN_MSG“EMPTYHTML“用户名已存在“ELSE“LOGIN_MSG“EMPTYHTML“用户名可以使用“先定义AJAX的跳转路径和传递参数,用户名是判断用户名是否存在的SERVLET名,参数是用户输入的用户名然后取得SERVLET返回的数据,判断用户名是否已存在,如果存在则提示用户“用户名已存在”,用户需要重新填写用户名,如果不存在则提示用户“用户名可以使用”,用户可以继续填写下面的信息422用户查询医生功能的实现患者可以根据自己的病情查询自己想要挂号的医生,可以通过下拉框选择输入医生姓名或医生科室查找医生,本模块采用的是模糊搜索,也就是说用户不输入医生的完整姓名或者科室的完整名称也可以进行查询用户输入完成后点击搜索按钮跳转到SERVLET,SERVLET取得用户输入的参数和用户选择的是按医生姓名查询还是按医生科室进行查询,判断患者的选择后调用本模块DAO中相应的方法,查询数据库中的医生姓名查询完后SERVLET跳转到用户查找医生页面进行显示,显示的是查询出的医生姓名用户选择自己想要挂号的医生姓名点击进入预约挂号模块STRINGSELECTREQUESTGETPARAMETER“QUICKSEARCH1SELECT“STRINGNAMEREQUESTGETPARAMETER“TXT“/医生姓名OR科室名称LISTLISTNEWARRAYLISTIF“1“EQUALSSELECT/按姓名查询医生信息PATIENTDAOPDAONEWPATIENTIMPLLISTPDAOCHECKDOCTOR1NAMEELSE/按科室查询医生信息PATIENTDAOPDAONEWPATIENTIMPLLISTPDAOCHECKDEPTNAMEREQUESTSETATTRIBUTE“LIST“,LISTREQUESTGETREQUESTDISPATCHER“PATIENT/PATIENTCHECKDOCTORJSP“FORWARDREQUEST,RESPONSE通过IFELSE判断用户选择的是按医生姓名查询还是按医生科室查询,然后调用DAO中对应的方法,返回值保存到LIST中,然后通过REQUESTSETATTRIBUTE“LIST”,LIST设置值使JSP页面中可以取到423预约模块的实现用户查询到自己想要预约的医生后会显示医生的基本信息和挂号信息,包括挂号日期和人数等,用户在确定自己要在该医生处挂号时点击确认预约按钮,点击以后会弹出提示框“确定要挂号该医生吗”点击确定后传送数据到SERVLET,SERVLET会进行判断用户是否已经登录,如果没有登录则会跳转到登录页面,如果已经登录SERVLET得到页面传递的数据首先进行用户是否已经在该医生处挂号判断,从数据库查找数据,如果已经挂过号,则系统提示“您已经挂过号”,跳转到我的挂号页面,如果没有挂号,则在数据库中挂号表插入挂号信息,并且在挂号信息表中将挂号数量减一然后跳转到我的挂号页面在我的挂号页面中会显示出用户的挂号信息在预约模块中先对病人是否在该医生处进行判断,很好的防止了病人乱挂号的发生病人也可以点击我的挂号查看自己的挂号信息,如果想要取消挂号的话可以点击取消预约取消自己的挂号用户点击取消挂号后,跳转到SERVLET后调DAO删除该挂号,然后修改预约表里的挂号人数,人数加一IFSESSIONGETATTRIBUTE“PATIENT“NULLRESPONSESENDREDIRECT“PATIENT/PATIENTLOGINJSP“ELSEPATIENTDAOPDNEWPATIENTIMPLBOOLEANRESPDCHECKTHEDOCFORORDDID,PID,DATESTRINGYES“NO“APPOINTMENTDAOADAONEWAPPOINTMENTIMPLIFRESYES“YES“REQUESTSETATTRIBUTE“YES“,YESREQUESTGETREQUESTDISPATCHER“CHECKAPPOINTMENTINFO“FORWARDREQUEST,RESPONSEELSEIFADAOINSERTORDERDID,PID,DATE,AP,NAME1IFADAOUPDATEAPPOINTMENTDID,DATE,NUMBER1REQUESTSETATTRIBUTE“YES“,YESSYSTEMOUTPRINTLN“SUCCESS“REQUESTGETREQUESTDISPATCHER“INDEXJSP“FORWARDREQUEST,RESPONSE先通过IF判断用户是否登录,因为如果用户已经登录过会在SESSION存储“PATIENT”,所以如果IF判断为空则用户没有登录,跳转到用户登录页面如果不为空则调用DAO中的方法查询用户是否在该医生处有没有就诊的过号如果有则跳转到我的挂号页面如果没有则在数据库中插入该用户的挂号,并且医生能挂号的人数减一43管理员模块的实现431医生管理分页的实现由于数据库采用的是MYSQL数据库,所以分页的实现是根据MYSQL数据库的LIMIT关键字实现的以“SELECTFROMDOCTORLIMIT0,4”为例,0代表从第几条数据开始显示,4代表一共显示多少条数据根据这种方法,把0的位置的数据设置成变量P,根据用户点击第几页后传递到SERVLET取得的数据进行处理,如果所得到的数据PP为1或NULL则SERVLET取得的数据赋值为0,也就是第一页显示数据从第一条数据开始,如果不为0则PPPP14,也就是第一页显示的最后一条数据是第PP1条数据然后传到模块对应的DAO里面的方法查询出这几条数据而且在DAO中还要查询出总的数据量COUNT,然后根据PAGECOUNTCOUNT41/4计算出一共可以分出多少页SERVLET得到返回的写好的分页类类型的数据,然后传回JSP页面中进行显示使用LIMIT进行分页的好处之一是代码简单,易于理解,不用写很复杂的程序就可以做到分页在进系统后点击医生管理连接的时候会报数据转换异常的错误,经过调试发现是刚开始PP1变量从JSP得到的是NULL值,而NULL转换成INT类型PP时会抛出异常最后解决的方法是先把PP赋初值,然后进行IF判断如果为NULL则PP0,如果不为NULL则进行数据类型转换医生管理页面如图43所示SERVLET中的代码INTPP0RESPONSESETCONTENTTYPE“TEXT/HTML“STRINGPP1REQUESTGETPARAMETER“PP“IFPP1NULL|PP1“1“PP0ELSEPPINTEGERPARSEINTPP1PPPP14图43医生管理页面432增加医生模块的实现管理员需要增加可以预约挂号的医生是,先在主页输入管理员用户名和密码,然后点击登录按钮,登陆成功后跳转到管理员界面管理员点击增加医生跳转到增加医生界面,管理员根据提示输入该医生对应的信息,医生图片是点击浏览后用户在电脑上选择医生的图片其他信息提携真实信息就可以了管理员点击提交后跳转到SERVLET,SERVLET先进行图片的保存,图片的保存是用SMARTUPLOAD组件保存的,在保存图片名称时为防止图片重复而使用时间从年到毫秒的当前时间作为图片名进行保存的在SMARTUPLOAD中通过传统的“REQUESTGETPARAMTER”是取不到该属性值得,要想取值只能通过“SMARTUPLOADSUNEWSMARTUPLOAD”,“SUGETREQUESTGETPARAMETER“DATE“”这种方式进行取值取值以后调用该模块DAO里对应的方法把该医生信息插入数据库,而医生图片插入的是该医生的图片名称插入(增加)以后会跳转到增加医生页面,管理员可以继续插入其他医生在做图片上传是遇到的问题是图片传不到该项目里指定的文件夹,最后的解决方法是传到电脑的D盘里的一个文件夹里,运行以后可以在该文件夹里找到上传的图片如果想要显示上传图片和项目里其他图片的显示路径一致,可以在TOMCAT的SERVERXML配置文件中添加“”虚拟路径,这样在D盘JPG文件夹中的图片可以按照HOS项目中IMAGES文件夹的路径来显示增加医生页面如图44所示图44增加医生页面433挂

温馨提示

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

评论

0/150

提交评论