基于SSH和MySql的医院在线挂号系统设计与实现
摘 要
互联网技术迅速的发展给我们的生活带来很大的方便,同时也让许多行业迅速的发展起来。互联网技术已走向科技发展的巅峰期,我们要做的就是合理的使用互联网技术让我们的各个行业得到更快速的发展。
就医疗领域来说,如今看病难已成为我们生活中的一大难题,传统的医院挂号中,我们需要用手动方式来处理信息,这种方式需要我们的医护工作人员和管理人员花费大量的时间来处理事务性信息,不仅劳动强度大,而且浪费时间。患者长时间的排队等候不仅延误了患者病情,而且不利于医院秩序的维护。所以在这里我的论文对医院挂号系统的设计和实现进行了详细的描述与设计,专为解决挂号难,排队时间长的问题,通过此网站患者可以快速方便的找到自己所需挂号的科室信息,并进行在线预约挂号。对于此网站,采用的是较为成熟的SSH框架,主要包括了业务逻辑层、数据持久层,表示层,模块层四个层次,这些层次可以帮助开发人员对搭建结构,维护系统,框架重用等,也可以给开发人员提供一个清晰、易懂,简洁明了的设计思路,SSH框架可复用性好、维护方便,使系统更加好用,同时让系统的实施和维护更加方便。对于数据库设计我们采用了MySql数据库,由MySQL的发展已经很健壮、成熟,而且具有很好的安全性,操作简单,成为了开发数据库设计的首选。
医院挂号系统主要角色有:患者和系统管理员;患者可以对医院信息的查询、对医生信息查询、登录注册、预约挂号、取消挂号、更改个人信息等;管理员可以登录系统,更新数据库内医院信息、医生信息、医院公告,也可对个人信息进行修改。网页设计了相关的导航,对新用户进行全面的引导,使得用户使用更加方便,对用户注册登录和管理员登录进行了分离,防止用户和管理员登录冲突,总体测试结果显示,网站设计基本符合用户需求,能够达到用户满意度。
关键字 : SSH ;JSP ;MYSQL ;MyEclipse ;预约挂号
Abstract
The Internet technology development rapidly, make our life more and more conveniently, simultaneously also lets many profession development rapidly. The Internet technology becomes the social development front technology already, we had to do something to make it reasonable to use the Internet technology let our each profession obtain a faster development.
On the field of medic, it is very difficult to go to see a doctor, this is a social problem, In the traditional hospital ,we need to use the manual way to deal with a large of information, we have to make a appointment by line up , This way need our medical staff and managers spend a lot of time to deal with transactional information, not only the intensity of labor is big, but also a waste of time. Long queues of patients not only delay the patient's illness but also harm the maintenance of hospital order. So here my thesis on the hospital registration system design and implementation of the detailed description and design, designed to solve the registered, queuing time, patients through this website can be quickly and easily find their registration department of the information needed, and to make an appointment online. For this site, the more mature SSH framework is adopted, which makes it easier to implement and maintain the system.
The main role of hospital registration system is: Patient and system administrator. The patient may inquire about the information of the hospital, inquire into the doctor's information, sign up for registration, make an appointment, cancel the registration number, change the personal information, etc. The administrator can log in to the system, update the information about the hospital in the database, the doctor's information, the hospital announcement, or modify the personal information. Web design related navigation, a comprehensive guide to new users, allows users to use more convenient, to the user registration, registration, the administrator login and separation, prevent users and administrators login conflict, the overall test results show that the website design basic meet user requirements, to achieve customer satisfaction.
Key words : SSH; JSP; MYSQL; MyEclipse; appointment register
绪 论
在信息化的时代,我们生活的节奏变得非常快,做每一件事几乎都是匆忙的完成。因此人们对生活节奏要求越来越高,人们不再允许自己的时间大量的浪费在无用的事情上;计算机在我们生活中几乎已经普及,优惠的价格但是功能却很强大,我们的生活越来越离不开互联网,同时互联网技术也在不断地渗入到各个邻域,如医疗,教育,管理等方面,它的广泛使用给我们的生活带来了极大的方便。但是,就医疗界来讲,在目前调查看来,我们很多医院都采用的是人工挂号的方式,导致我们需要花费很长的时间排队等候去挂号,医院的医生、护士等工作人员也需要很多时间去人工处理患者的信息,这样下去,不仅会耽误患者的病情,而且造成医院拥挤秩序混乱,人力物力成本高等一系列的问题;所以我们需要合理的将互联网技术引用到医院,让它来方便我们的生活,方便患者挂号的同时,可以解决医院资源分配的问题,不仅可以便民而且让医院有了一个更好的效益,人们不用在担心自己的时间浪费,医院不用担心人力资源不够等一系列问题。患者只需在家轻轻动动手指访问网站即可实现在线挂号,这样双赢的结果是我们每个人所期待的,所以挂号系统的实施,对人类来说是一个很大的进步。
挂号是我们看病就医的第一步,通过收集病人信息,协调专家管理,控制病人和医师人员的流量。通过网站的方式来挂号是很新型的一种挂号方式。在这种网站上,病人可以不出门直接在家对自己的病情初步判断,查询医院医生的信息来进行预约,进行注册登录挂号,减去了人们排队等候时间的同时也提高了医院的管理效率从而提高了医院的经济效益。是建设卫生信息化的必由之路。
目前看来,医院门诊质量和效率不高的原因主要有一下几个:集中式挂号,来医院排队挂号的人数很明显地由不确定的特点,从而出现了明显的看病高峰和低谷。高峰期病人挂号要排很长的队伍,甚至有一些专家,帮助自己的熟人插队,造成医院现场混乱患者情绪不稳定,专家问诊不仔细、没有耐心,不想长时间和病人交流等现象。在低谷期,专家没有事情做、溜号等,造成医院资浪费。这些现象严重的损害到患者的权益,也影响到了医院的声誉。文献[9]介绍了这种问题需要一个很好的挂号平台来解决,它可以减少病人浪费的时间,同时,也可以帮助病人全面的了解医生信息,选择自己期望的医生来为自己看病。不但解决了病人对医生相关信息了解不多盲目性问题。同时医院采用网上挂号的方式,患者可以在家就可以问诊挂号,方便了患者的同时也方便了医院的管理。本论文就如何实现在线医院挂号系统的设计细节以及实现方式技术和系统的测试结果进行了全面详细的论述。
针对国内外文献的研究发现,在网上实现预约挂号系统已经不再是一个梦想,我们运用所学的语言,便可以完成挂号网站的实现,大部分文献中指出:医院网上挂号系统以Java为开发语言,框架部分主要使用了Spring,hibernate,Struts2框架开发。Spring通过使用IOC容器的方式,来对整个项目的复杂依赖进行管理,Hibernate是一种应用很广泛的ORM框架,使得开发人员可以将数据库中的数据映射到一个具体的Java对象中,简化数据库相关的开发工作。Struts属于实现MVC开发模式的一个框架,要让Model层,View层,Controller层三个层次分别列出来使用的是Structs,分层的代码更易维护和迭代。MySQL是对数据进行存储的数据库。在接下来的论文中我们会具体介绍医院挂号系统中所使用到的一些关键技术,以及实现方法和设计思路。
1 系统描述与技术介绍
1.1 MyEclipse介绍
构建网上预约挂号系统使用的是MyEclipse编辑器,MyEclipse 是开发人员特别偏爱的一种开发工具, Eclipse 中的J2EE是一种插件集合;MyEclips开发工具有很强大的力量,它对JavaServlet,AJAX,JSP,Struts,JSF,Spring、Hibernate等的支持使得开发变得非常容易,同时还具备了EJB3的功能,JDBC数据库连接的功能。所以说MyEclipse是所有开源工具开发的好帮手,更重要的是Myeclipse还具备了完整的编码、测试、发布功能,那够很全面去支持html Javascript,JSP,CSS, MySQL, Hibernate等语言的开发,所以发展成为了最受欢迎的开发工具。
1.2 MySql数据库介绍
MySQL数据库作为一种开源的关系型数据库,在目前是使用最广泛,最受欢迎的一种数据库,MySQL是由MySQL AB公司进行开发的但是后来最后被Sun公司收购了,目前已经成为了IBM的一个项目。
MySQL的发展已经很健壮、成熟,SQL数据库。通过维护一个线程池,MySQL可以提供高并发、稳定可靠的数据存储和查询服务。在世界范围内,各大互联网公司有着非常广泛的使用。
MySQL在开发人员眼中就像是一种数据库管理系统的角色。MySQL数据库可以对所有的东西结构化,我们可以认为它是一种数据的结构化的集合。可以访问,也可以更新数据到数据库,或对访问,对于已经修改过的数据还可以再次修改保存等,MySQL服务器可以用来对即将要使用的数据进行全面的处理。计算机对于我们来说本来就是用来处理数据的对象,所以数据库管理系统MySQL数据库的实现是计算机不可或缺的组成部分。
我们也可以把MySQL数据库看成一种很方便的服务器。对MySQL数据库的设计需要开发人员和客户进行沟通确认才能进行合理的设计;通过MySQL数据库与其他数据库的对比就会发现。MySQL服务器的开发背景比较强大,具有更快的解决方案速度,使用更加方便高效,以及他的广泛使用得到了人们的一致好评。MySQL数据库也在很快的照着人们使用更简洁的方向去发展,这使得MySQL具有了更好的的安全性,不断地完善是其受欢迎的根本原因,这样,人们可以更加方便,快速,安全的对Internet上的数据进行访问,处理等。MySQL是开源的,意味着所有人都可以使用和修改该软件。针对自己的应用场景,可以在其基础上进行修改,提升服务的稳定性和可扩展性。
1.3 JavaScript介绍
JavaScript也是开发人员很喜欢的脚本语言,它是通过解释执行的动态的语言是面向对象的语言。被Chrome浏览器、IE、FireFox等很多浏览器支持。JavaScript使用的是面向对象的编程方式,也基于原型,还可以用命令式编程的方式,特点之一就是可以使用函数的方来编程。函数功能很强大,为文本的控制提供了约束,正则表达式等,但是JavaScript有一个缺点是不支持I/O,但是我们可以通过宿主环境的方式来解决这一问题。
很多人会觉得Java语言和JavaScript语言有很多共同之处,其实从本质上来看这两个语言是有很大的区别的,首先JavaScript的语言设计主要受Self(基于原型的编程语言)和Scheme(函数式编程语言)两种语言的影响。在语法结构上其实是受C语言的影响较多,所以在语法上跟C语言很像,这些都是由于历史发展因素而产生的,所以相似的语言其实也存在很多本质上的差异。JavaScript语言常用来编写脚本,而且JavaScript语言在现在很瘦大家的喜爱,比如:游戏开发,桌面APP的设计等,总之,JavaScript的使用使得整个开发过程变得更加方便快捷。
既然JavaScript可以认为是一种解释性语言所以我们必须考虑它的放置地方,通常来说JavaScript可以放在网页的任何地方,如果将其放在body的代码中会在网页加载的时候就开始执行,如果你不需要在加载的时候就运行他,可以将其放置在head中,这时就会在函数调用时才执行。总之,javaScript语言使用很简便,而且很安全,主要它还是一种动态执行的代码块,只是用来显示网页的效果,进行实时交互的语言,是开发者很好的选择。
1.4 JSP技术介绍
JSP也是一种Java语言,它是java语言中的一种的特殊语言,Jsp是通过加入引擎的方式来实现页面的动态交互,这样,可以让客户不用去接触复杂的Servlet,还没有开始执行就需要加入代码的难题。JSP的使用让基于Web的服务客户端更加灵活,如引入文件,网页跳转,这些工作都是由引入的java Servlet 自动生成的,而且这些应用程序能和Web服务器、应用服务器、浏览器和开发工具共同工作。 从而使我们第一次运行JSP时cpu运行可以达到很高的状态。
Jsp时一种跨平台的语言,可以在不同的系统环境下运行,Windows、linux、Mac下都可以。同时这种跨平台的特性使得他实现了一次编写多次使用的特点;通过向传统网页HTML文件中加入Scriptlet和tag标记,就建成了JSP网页文件。一般情况下使用Html来设计网页的静态部分,而使用Jsp来实现网页的动态部分,从而就实现了业务代码的分离,我们可以通过Servlet,来处理业务代码,或者可以交给JavaBean来处理业务代码,这样,Jsp就用来实现显示数据部分就可以了,这样的化如果我们需要修改业务层的代码就不会对Jsp显示层的代码有影响了。每次服务器只要接受到JSP网页发送的请求消息时,它会去执行一些代码块,用可视化的方式在传给用户,通常是Html的形式。javaBean时Jsp常用的组件,用来分装业务代码,或者作为存储模型。
JSP的使用为动态Web页面的开发带来了很大的方便,主要有一下几点的总结:
-
将业务代码和数据显示层分离
-
强调可重用的组件
-
采用标识简化页面开发
-
技术分析:常见的动态网页开发技术还有ASP。形式上和Jsp及其相似,但是ASP仅仅用于NT、IIS;而且ASP功能是由限制的;需要用COM来扩展,所以实现很难,所以经过分析会发现,二者在根本上有很大的差异,包括安全性,组件的使用等
- JSP的安全性更高,速度更快
- JSP的组件方式更方便
- JSP的跨平台特性使得平台更广
通过向Jsp中插入的Java程序可以插入,删除,更新数据库的内容、URL新定向等,从而让网页变得动态灵活。JSP在服务器端运行,客户端只需要有浏览器就可以访问。JSP也具备Servlet的一些功能,通常要开发比较大型的Web应用程序,就需要两者相互配才能成功的完成。
Jsp的特点主要总结为一下几点:
-
一次编写,到处运行。使用了JavaBean组件,使得开发代码与试图显示代码分离开来,所以使得开发代码修改更加方便
-
系统的多平台支持。Jsp可以不用修改便运行在各种平台中,可以随意的扩展,同时不同的操作系统的数据库也可以对JSP有所帮助。通过JDBC数据库连接来操作数据库,所以就提高了代码的可移植性
-
强大的可伸缩性。Java具有很强的生命力,Jar文件存在就可以执行JSP代码块,多台服务器的继承来进行事务处理、消息处理
-
多样化
-
支持JavaBean等组件复用性。Web应用程序要成功的执行,就需要功能很强的服务器端组件,web 页面需要程序开发者用其他的工具来设计实现一些很繁琐的功能的组件来使用,目的是为了加强system性能。而JSP正好可以使用这些组件
JSP内部对象主要有以下九个:request 客户端发出请求消息,请求主要是用GET/POST方法来传递的; response,主要是指服务器端对客户端的响应以及处理结果;session 用户的会话; pageContext 网页属性的管理;application servlet正在运行的内容都存储在这里;out 输出流; config 是为代码的配置对象;page JSP; exception 对网页的异常进行捕获。
1.5 MVC模式介绍
MVC是一种设计模式。它使得application program的输出,处理和输入强制分开。使用MVC application program 被划分成三个核心部分:控制器和视图还有模型。它们各自都有处理自己的任务。
为了应对system对安全性、先进性。可扩展性、跨平台型、分布式、可以执性等方面等方面的需求,system的总体构架设计采用了比较先进的B/S的三层体系结构。
三层体系结构由浏览器、web服务器和数据库组成,并结合HTML语言、jsp、JavaScript脚本语言、Ajax、ODBC等技术,后台的数据库采用微软的MySQL 2005,MVC的特点主要有:
1、低耦合性
业务层和低视图层相分离,这样就可以允许修改视图层code,而不用再一次变异控制器和模型code。所以,MVC层模型变化了,就可以实现应用的业务规则和业务流程的变化。由于视图,控制器,模型三者是分离的状态,所以application program得date层和业务规则很容易被更改。
2、重用性高
随着技术一直以来的进步和发展,application program需要用更加多样的方式来访问。MVC模式下不同的界面可以使用同一个构件,由于MVC模式下对同一个构件的访问往往使用的是多种多样的界面来实现的,多样的视图可以共享一个模型,这些构件涵盖所有的web浏览器和远程浏览器无线端。例如,顾客可以使用手机或者个人PC来选购某些产品,即便是他们使用的不同的浏览器不同的平台,但本质上他们购买的方式是一样的;因为MVC模型对用户所返回的代码没有改变所以本质上是一样的。
3、部署块
mvc模式之所以会使得开发的时间得到降低,是因为它将程序员的精力转移到视图层,开发人员无需花费很大的时间去研究组件功能等。
4、增强维护性
不同的层次有不同的功能但是也会有些功能具有相似之处,很有利于更具化管理模式。我们可以用控制器连接不一样的视图和模型等,在完成用户的需求,application program提供的一些手段就此就可以得到很好的使用。同时,控制器为我们提供了一些可以重复使用的模型等并对其进行不同的处理,最后展示给客户。
缺点
-
要完全的理解MVC需要有名明确的定义要想真正的理解MVC模式就要投入很长的时间去细心研究它复杂的内部结构。调试程序相对较为困难,由于控制层和试图层时分离的,所以阅读较为困难。进而对控件的修改就变得不时很简单
-
对于小、中规模的application program 并不合适使用。因为将会浪费过多的时间将MVC应用到小、中规模的情况,效果不好
-
增添System结构与实现的复杂度,设计较为简单的用户界面,如果也是严格遵循MVC模式,让其视图、模型和控制器分开三个层次,无形中加大了简单程序设计的复杂度,甚至会使得用户操作困难和运行困难等问题
-
控制器与视图之间太过紧密;对于一些要求视图和控制器联系不要过于紧密的程序设计我们会发现,视图要是和控制器分开单独存在,会变得很局限。反过来也是这样,所以遇到需求不同的时候就会影响程序开发
-
视图不能高效的访问数据,由于模型操作接口之间会存在一些差异;视图要想显示用户所需的数据可能需要多次调用接口。如果在没有更新的情况下;用户会做很多次的无用访问,从而使得用户体验下降
-
通常常用的UI工具,或者构造器不能够支持模式的改造此类工具,用来适应MVC所需求和构筑离散的部件的成本是非常不低的,以至于影响MVC在应用上的难易度
1.6 SSH框架介绍
SSH框架是一种被大众所喜爱的开源性框架。主要包括了业务逻辑层、数据持久层,表示层,模块层四个层次,这些层次可以帮助开发人员对搭建结构,维护系统,框架重用等,也可以给开发人员提供一个清晰、易懂,简洁明了的设计思路。价值SSH框架可复用性好、维护方便使之更加好用。
SSH框架中Struts作为整体框架的基础实现MVC分离的任务,在它对应的部分,常常用来实现业务跳转功能;Hibernate框架负责数据持久化;管理数据Spring,同时也对struts和hibernate管理,使得系统变得有条不紊,文献[1]了具体的实现过程是:Spring根据需求提出一些模型,然后实现Java对象,再去编写Data Access Objects接口最后给DAO实现在作出请求;最后把这些都统一交给Spring管理。
我们对各个框架做一个详细的解释:
Spring框架
Spring Framework 是用Apache许可的形式来发布的,是一个开源的Java/Java EE应用程序框架,同时是一种全功能的栈;也有一切其他平台的移植版本;Spring Framework使开发变得简单容易了很多,这种简单的开发方式就会让那些产生可能使底层代码复杂混乱的代码不会出现。避免了大量的复杂类和文件的产生。本系统主要使用了Spring的IOC容器进行对象依赖的管理,同时使用了Spring提供的AOP功能来进行登陆权限判断、异常处理等。
Hibernate框架
Hibernate的设计是数据持久化的保证,着一层为我们提供了基于Java语言的对象关系,和一些映射解决的方案;万望要实现面向对象领域的模型到传统关系型数据库映射模型的手就需要用到这个层次,开发人员可以通过使用Hibernate,对我们来说设计草案,遗留数据库构建都变得非常简单快捷。
Hibernate让开发人员从手动处理数据映射的方式种解放了出来;文献[2]介绍了它可以将数据Java类映射到到数据库表;可以实现从Java数据类型到SQL数据类型的映射,最重要的是它具有面向对象的数据查询检索机制,开发人员不需要手动的去连接数据库,这样就缩短了开发的周期。
Struts框架
同时MVC设计模式产生的一种成果性项目;Struts框架通过Jsp和Java Servlet 技术实现了MVC模式设计,是一种开源项目。并且在2004年成为ASF的顶级项目;同时还实现了基于Java EE Web应用的应用框架。MVC模式的具体实现,离不开Struts的使用;MVC主要有Model层(模型)、View(视图)、Controller(控制管理)三个层次结构,这样业务代码,三视图代码,控制代码分开来实现,变得简介明了,给开发人员和用户都带来了好的体验。
2 需求分析与设计
2.1 可行性分析
在技术上医院挂号系统使用的java语言,java语言简单易学。开发平台用的是myeclipse和mysql数据库。数据库作为系统设计的核心技术也是很容易学习操作,在大学期间主修的是软件工程专业所以本系统开发实现在技术上是可行的。
经济上本系统无需安装任何软件,只要在可以访问Internet的环境下,在客户浏览器端输入网址即可访问,所以经济上是可行的。
法律上本系统使用的都是开源的代码,且不存在侵权等问题所以法律上是可行的。
2.2 需求分析
2.2.1 概述
需求分析是指通过开发者和用户的沟通来成系统应该做什么,并且评估出软件的资金使用和可能存在的风险,是整个系统实现的关键一步。
就本系统而言,文献[3]医院挂号系统有很大的用户需求,由于目前来看有很大一部分医院任然使用的是人工挂号的方式来排队挂号,给医院的就诊以及病人就医带来很大的困扰,由于需要人工处理以及长时间的排队,人员流通性和不确定性从而引发了就医的高峰和低谷,在高峰期人多导致医生脾气暴躁,就医时间短,不仔细等问题,甚至存在一些医生走关系的不良现象;而低谷时期排队的人少,导致专家无所事事,医院资源浪费等;通过医院挂号系统,我们可以很快地解决这些问题,可以减轻医护人员对信息管理的负担,同时减少了患者不必要的等待,以及时间的浪费,同时有利于医院治安管理提高医院的管理,提高医院的效益。
医院挂号系统是指患者可以通过访问网站的方式来预约看病的系统。其意义在于方便患者就医,提高医院医生资源的利用率,提高医疗服务水平等;他的使用将会给医疗界带来新的革命。对所有医院施行预约挂号系统服务后不仅患者进行就医咨询变得很是方便,而且对意愿来讲,能够合理的分配医院的医生资源且不浪费,从侧面看,极大的提升了医院的管理水平,还可以很大程度的提高医生工作效率,解决看病问题,便利民生问题的同时还带来了经济上的发展。
在我们国家也有很多医院已使用了在线挂号系统;文献[4]中说明,从使用情况分析,我们对系统的管理方面还存在很大的弊端,比如有个人或者团体通过此种方式来谋取暴力;导致,医院预约挂号系统服务没有的到正真的合理使用,这样没有给病人就诊带来方便、没有给医院带来方便,还被很多病人和医院管理者,医护人员反感抵制。
所以,对每一次系统的实施,我们需要办法一些相关的规章制度,约束这些不合理的使用现象。不仅要正确的让医院开展预约挂号系统的实施,而且要文明绿色的实行这些工作的计划;全面提高人们对预约挂号服务工作的认识、全面加强对预约挂号服务工作的管理计划、认真搞好相关组织工作的内容;一切都要坚持本方便群众就医,搞好医疗事业建设,合理的运用前沿技术来服务农民,发展社会。
2.2.2 挂号用户
网上预约挂号
要实现较好的网站设计,首先这个网站必须具有良好的稳定性和较高的安全性,对开发的后期来说要易于维护;对网站首页的设计要有基本的菜单导航设计来引导新用户的正确操作,方便患者的使用。
对于医院的信息设计部分;经过对不同科室的信息进行细致的分类方便用户对照自己的症状合理,正确的来挂号;对不同医院的专家信息进行分类,专家情况信息介绍要详细全面,防止患者对信息理解错误挂号错误的现象发生,进而让用户能作出正确选择;用户通过查看专家信息,选择专家,选择挂号日期;实名填写个人信息、家庭住址、联系方式等信息成功的实现网上预约挂号。
挂号方式
患者通过在浏览器端输入网址进入预约挂号系统的首页,查询医院医生信息,点击预约挂号,填写个人信息,实现网上成功预约之后,根据自己的预约信息去医院就诊。
2.2.3预约须知
对在线医院预约挂号系统的总体说明主要有一下几点:愉悦着要提前看网站对挂号者预约所注意事项、以及预约挂号人的权利和义务,权责声明、对于自己不清楚的地方要及时的查看系统使用帮助。
进入网上预约挂号的平台后,根据自己所在地区选择需要挂号的医院。进入医院网站首页,初次登陆系统预约的用户,需要先注册才能登陆系统进行操作挂号;如果是复诊输入用户名和密码,即可登陆系统。系统可以自动核对登陆者的信息,登陆成功后,可进入预约挂号程序。
需求分析种我们会发现,医院预约挂号系统中需要管理的信息主要有以下几种:
-
医生 :姓名、性别、科别、擅长、年龄、就诊时间
-
挂号单 :科别、挂号单号、编号、费用
-
病人 :姓名、性别、年龄、联系方式、症状、挂号单号
对于单号的处理部分,一张挂号单只可以对应一个医生;一个医生可以有多张挂号单,但是日期时间不能冲突,一张单号也只能对应一个病人,一个病人在同一时间只可以预约一张单号、一个患者可以选择多个医生,一个医生可以看多个病人。
2.3 开发环境
医院挂号系统采用的是Myeclipse软件开发平台,mysql数据库以及SSH框架技术,开发环境为windows xp 系统用户无需安装任何软件,只需在浏览器端输入网址即可使用,使用非常方便,对开发人员的维护工作也很方便。
3 系统分析与设计
3.1 系统概述
系统设计是继需求分析之后的重要一步,目的是根据对用户的需求分析将其逻辑方案转换成物理方案。同时要注意系统设计的内外环境以及主观条件和客观条件,未来确保系统总体目标的实现,我们要考虑到经济,技术各方面的条件,来做出合理的技术方案,选择出合适的设计平台以及开发环境。系统设计要坚持阶段性开发原则对不同的阶段设计出不同的实现功能;其次要本着为客户服务的原则,尽可能的坚强客户使用的难度,同事要坚强管理人员的负担,尽量使用自动化的处理方式来处理数据,以及要具有良好的设计体验;对用户的需求变更要及时的处理,同时,最重要的是实现系统的可扩展性,减少各个模块的耦合性,使系统便于扩展与维护;系统设计中很多工作是有技术性的,再设计过程中要考虑到用户需求的变更,是系统设计完成的一个必要阶段。
3.2 系统功能
系统功能主要是实现患者在线预约挂号,对网站来讲,我们将其分为前台功能和后台功能两个模块。
系统前台功能图如下图所示,我们又将前台功能细分为三大块功能,分别是:信息展示模块、系统应用模块、用户模块。
-
信息展示 :展示出专家的信息,医院信息等
-
系统使用 :完成登录注册等功能
-
用户 :登录,查询、预约挂号等
我们对后台模块功能分析如下:
-
修改密码 :用户、管理员对自己的个人密码进行修改操作
-
系统公告的管理 :管理员来实现医院公告的管理
-
专家信息管理 :对专家信息进行添加和删除等操作
-
注册用户管理 :对用户的个人信息进行管理
-
医院信息管理 :对医院的信息进行添加和删除等操作
3.3 用例图
3.3.1 会员用例图
用户可以:在线注册会员,在线查询医生信息,在线预约挂号等。
3.3.2 管理员用例图
管理员可以对医生信息的数据库信息进行合理的变更;对医院的信息进行添加或删除,对会员的信息进行和管理以及对医院公告的信息进行更改等。
3.4 流程图
用户可以在网站的主页看到信息查询的按钮并对想要查找的信息进行填写,然后根据查询结果进行预约挂号填写个人信息,同时如果不想预约,可以进行取消预约的操作。
管理员在系统首页的“系统管理员登录”出输入自己的账号和密码进行登录,然后进入管理员界面,可以对医院的信息以及医生的信息进行添加和删除操作;同时也可以管理用户的信息。
4 数据库设计
4.1 数据库设计概述
MySQL是一种SQL数据库的管理系统,受到很多人都欢迎因为其具有开源性的特点。它是由一家商业公司MySQL AB进行了设计开发和发布的,这家公司主要是对MySQL数据库开发,这家公司的注册商标就是Mysql;它拥有成功的商业模式,巧妙地使用了其开源性,方法论的第二代开源公司对于MySQL AB公司的发展历史我们在这里就不做过多的赘述了。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。文献[8]中介绍MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL网站( http://www.mysql.com )提供了关于MySQL和MySQL AB的最新的消息。
数据库在动态网页设计中发挥了重要的作用,文献[6]中介绍到它好比一个大仓库,对网站的重要信息进行存储,由于网站的网页不是一成不变的,他需要及时的变更,所以要使用到数据库,有了数据库开发人员对网站内容的管理更加方便,维护也更加方便,所以数据库的设计是系统成功实现的关键之处。该系统的设计主要是用了mysql 数据库来设计数据库,简单方便,下面我们主要说明下数据表和数据表结构。
4.1.1 表说明
主要的数据表有db_guahao表,此表又包含t_gonggao系统公告,t_zhuanjia 专家信息,t_guahao医院信息;,t_yiyuan医院信息管理系统,t_use注册用户的信息;r,t_admin管理员信息;t_keshi科室信息表等。
4.1.2 表结构说明
5 系统的实现
5.1 网站首页设计
网站设计的首页设计是至关重要。因为第一个映入用户眼睑的就是网站的首页,它的好坏直接影响了用户对网站的喜爱程度;在对首页设计上我们要内容丰富的同时又要有一定的色彩搭配以及上下呼应等特色,以下是本网站的首页:
5.2 网站引导设计
网站的导航视为了使用户使用更加方便灵活,能使网站有一个较好的用户体验,提高用户的满意度,他是网站的路标,可以提示用户如何操作,就像字典查询需要目录一样,网站设计也需要这样的“目录”,从而让用户更加明确的知道下一步该如何操作,以及自己所处的位置;网站导航主要可以通过文字导航、按钮导航、Flash导航等,本网站的导航设置如下图所示:
5.3医生信息模块
本网站的主要功能是患者挂号功能,刚进入网站用户需要对自己的病情进行分析以及查询相关的医生才能更准确的完成预约挂号,所以医生信息也是网站设计的一个重要元素,专家展示模块主要包括显示医生列表、显示医生详细信息两个部分。
患者点击相关的医院便会出现该医院的相应专家信息如图所示:
该页面的设计代码如下:
zhuanjiaAllByYiyuan:主要是通过数据库查询获取相关信息然后通过JSP页面传递给用户:
```java public String zhuanjiaAllByYiyuan() { String sql="from TZhuanjia where del='no' and yiyuanId="+yiyuanId; List zhuanjiaList =zhuanjiaDAO.getHibernateTemplate().find(sql); for(int i=0;i<zhuanjiaList.size();i++) { TZhuanjia zhuanjia=(TZhuanjia)zhuanjiaList.get(i); zhuanjia.setKeshi(keshiDAO.findById(zhuanjia.getKeshiId())); zhuanjia.setYiyuan(yiyuanDAO.findById(zhuanjia.getYiyuanId())); } Map request=(Map)ServletActionContext.getContext().get("request"); request.put("zhuanjiaList", zhuanjiaList); return ActionSupport.SUCCESS; }
public String zhuanjiaDetailQian() { TZhuanjia zhuanjia=zhuanjiaDAO.findById(id); zhuanjia.setKeshi(keshiDAO.findById(zhuanjia.getKeshiId())); zhuanjia.setYiyuan(yiyuanDAO.findById(zhuanjia.getYiyuanId()));
Map request=(Map)ServletActionContext.getContext().get("request");
request.put("zhuanjia", zhuanjia);
return ActionSupport.SUCCESS;
} ```
5.4 用户注册挂号模块
用户查看相应的医生信息后可以对自己喜欢的医生进行预约,点击预约挂号按钮后会出现挂号注册页面,如下图所示:
用户可以在相应的位置填写所患疾病,姓名,联系方式,和选择挂号日期来完成挂号。
5.5 管理员登录页面
管理员在网站里的主要作用是对患者挂号信息,医生信息,医院信息等进行管理,所以需要单独的来设计一个界面与用户区分开来,用户的登录界面在网站首页右侧,而管理员可以在网站首页下方找到管理员登录的图标,点击即可进入管理员登录的界面,登录界面中登录进入后才可以对网站信息进行修改管理等。管理员在网站的下方点击管理员登录按钮,输入自己的账号,密码进行校验后即可进入管理员登录界面,如下图所示:
对管理员进行校验的代码:
java
public String login(String userName,String userPw,int userType)
{
try
{
Thread.sleep(700);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
String result="no";
if(userType==0)//系统管理员登陆
{
String sql="from TAdmin where userName=? and userPw=?";
Object[] con={userName,userPw};
List adminList=adminDAO.getHibernateTemplate().find(sql,con);
if(adminList.size()==0)
{
result="no";
}
else
{
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
TAdmin admin=(TAdmin)adminList.get(0);
session.setAttribute("userType", 0);
session.setAttribute("admin", admin);
result="yes";
}
}
return result;
}
校验成功后可进入管理员主页面如图所示:
管理员在这个页面能对自己密码修改,可以对医院的信息,医生信息,会员信息进行增加删除等,完成相应的操作后即可点击注销退出系统来退出管理员页面。
5.6 医生信息管理模块
医生信息管理是需要系统管理员来完成的,主要是让系统管理员对医生信息及时的更新,在上一步的页面中点击医生信息管理,即可实现对医生信息的添加,修改,删除等操作,界面如下图所示:
医生信息处理模块的代码主要有:
```java zhuanjiaAction: public String zhuanjiaAdd() { TZhuanjia zhuanjia=new TZhuanjia(); //zhuanjia.setId(0);] zhuanjia.setYiyuanId(yiyuanId); zhuanjia.setKeshiId(keshiId); zhuanjia.setXingming(xingming); zhuanjia.setXingbie(xingbie); zhuanjia.setNianling(nianling); zhuanjia.setShanchang(shanchang); zhuanjia.setLeixing(leixing); zhuanjia.setFujian(fujian); zhuanjia.setDel("no"); zhuanjiaDAO.save(zhuanjia); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息添加完毕"); return "msg"; }
public String zhuanjiaMana() { String sql="from TZhuanjia where del='no' order by yiyuanId,keshiId"; List zhuanjiaList =zhuanjiaDAO.getHibernateTemplate().find(sql); for(int i=0;i<zhuanjiaList.size();i++) { TZhuanjia zhuanjia=(TZhuanjia)zhuanjiaList.get(i); zhuanjia.setKeshi(keshiDAO.findById(zhuanjia.getKeshiId())); zhuanjia.setYiyuan(yiyuanDAO.findById(zhuanjia.getYiyuanId())); } Map request=(Map)ServletActionContext.getContext().get("request"); request.put("zhuanjiaList", zhuanjiaList); return ActionSupport.SUCCESS; }
public String zhuanjiaDel()
{
String sql="update TZhuanjia set del='yes' where id="+id;
zhuanjiaDAO.getHibernateTemplate().bulkUpdate(sql);
Map request=(Map)ServletActionContext.getContext().get("request");
request.put("msg", "信息删除完毕");
return "msg";
}
```
5.7综合查询平台
5.7.1 医院信息,科室信息,医生信息查询
对不同的医院进行查询,对不同科室信息查询、对所有专家信息的查询,可以按照网站的导航进行大概的查询,每次查询不用特别精确的填写所有信息,但是如果患者希望可以精准的查询就必须填写完整的信息来查询。
5.7.2 预约状态查询和取消预约
对于患者查看自己的预约信息以及是否预约成功,时间是否过期,事件是否正确,以及预约的具体信息等。对于用户临时会发生的冲突事件如在预约后,又有了新的事情冲突不能去就诊,患者可以登录系统点击信息管理,查看自己的网上预约挂号信息,修改自己的信息或者取消预约。对于取消预约的操作只能在预约日期之前进行过期后就不可以取消了,取消时需要患者填写姓名、取消原因等信息,信息填写完毕后就完成了取消预约的操作。
5.7.3 停诊信息查询
查询医院最近的就诊情况、自己所在区域的医院公告,包括停诊信息,方便患者能及时的正确的作出选择。
5.7.4 注册信息查询
用户注册后有自己的主页,可以点击个人信息管理来实现注册信息的查询更改等。
5.8 退出管理登录页面
退出后台管理模块是管理员用于退出后台管理系统的。管理员退出后台管理系统之后,需要单击【退出】按钮,此时虽然还在后台中但已不能对数据库进行操作;这时候单击其他功能模块时,将弹出后台登录窗口要求用户输入正确的用户名、密码以及验证码。
总结
经过自己不断的努力以及老师同学的细心帮助我完成此次毕业设计,同时也学会了很多只是,通过对各种文献资料的查阅,使我增长了不少的知识;医院挂号系统的成功完成过程是艰苦的,但是结果是令人欣慰的,在此过程中我学习了很多新的知识,比如数据库设计方面,jsp 、javascripts编程等。让我成长了很多。虽然此次完成毕业设计老师没有给我吗分组,但是这实际上并不是我一个人努力的结果,有老师同学的帮助让我能真正的完成毕业设计,真心的感谢他们,同时让我总结出至关重要的一点就是要及时的与老师同学进行沟通交流,要互相团结,我意识到团队意识的重要性,这次毕设让我有了一定的实践基础,很有利与我动手能力的提高。同学老师的各种意见使我完成医院挂号系统的设计,他们的想法设计思路也对我有很大的帮助。
写毕业论文期间,我深刻的认识到实践到理论的重要性!在实践到理论的转化中,我将自己的工作过程清晰的展现在面前,对资料的查询,如何很好的笔记等有了很大的收获,获得了一些必要的知识的同时,也掌握了很多获取知识的重要途径。在繁杂的设计中,我能够清晰的找准自己的目标,各种系统的设计计划,以及选用标准,各种语言的用途等等,这些内容都是我在不断深化论文的过程中不断的熟悉和应用的,有了老师们的指导以及同学之间的思想交流,让我对论文设计有了更加丰富的理解和掌握。同时,在自我总结中更加全面的改正自己存在的缺陷和风险,让自己在大学四年里所学的理论知识得到很好的发挥;更重要的是,我意识到在信息化的时代,我们需要正确的使用我们的高科技,争取在今后的工作中不断的学习不断的进步,为社会的发展作出自己的一点点贡献,面对压力挑战能像这次毕业设计完成一样去解决所有的问题、困难;面对问题不胆怯不懦弱。对自己的工作一定要一丝不苟,脚踏实地的去做每一次任务,在软件领域发出自己的光芒。
参考文献
- 基于SSH的医疗单位事务管理系统的设计与实现(江西农业大学·邱石)
- 医疗电子商务平台的设计与实现(电子科技大学·唐章琨)
- 医疗电子商务平台的设计与实现(电子科技大学·唐章琨)
- 基于B/S架构的预约挂号系统的设计与实现(天津工业大学·魏星)
- 基于J2EE架构的医疗信息服务平台的设计与实现(北京交通大学·张颖彬)
- 基于J2EE架构的医疗信息服务平台的设计与实现(北京交通大学·张颖彬)
- 网上预约挂号系统的设计与实现(华中科技大学·游国强)
- 基于STRUTS和HIBERNATE的医院门诊信息管理系统(北京邮电大学·赵东)
- 医疗挂号系统运营支撑平台的设计与实现(北京邮电大学·孟祥建)
- 医疗挂号系统运营支撑平台的设计与实现(北京邮电大学·孟祥建)
- 医院信息综合管理系统设计与实现(山东大学·王旸)
- 网上预约挂号系统的设计与实现(华中科技大学·游国强)
- 基于SSH框架的电子病历存储与交换的实现(安徽理工大学·施俊华)
- 网上预约挂号系统的设计与实现(华中科技大学·游国强)
- 基于STRUTS和HIBERNATE的医院门诊信息管理系统(北京邮电大学·赵东)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码客栈 ,原文地址:https://bishedaima.com/yuanma/35203.html