版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论
1.1.医院挂号系统介绍
在这个信息化爆炸的时代,我们的生活越来越便捷,人们的生活水平越来越高,
因此人们对生活的质量要求越来越高,人们不再把时间浪费在影响工作效率的事情上,
互联网使我们的生活更加科技化,再加上我们的学习能力,这使得我们的生活更加幸
福和高效。互联网技术在中国迅速传播蔓延,给我们每个人带来了不可言说的益处,
处于浪潮的时代中,我们是无比的幸运。中国是一个人口大国,那么我们会花费大量
的人力物力去管理者部分内容,正因为互联网的存在我们可以做出一款系统让每个需
要治疗的人可以通过上网,通过注册个人信息得到一个个人账户,有了这个账户患者
可以在你想挂号的医院挂号,这大大减少了我们的资源开销,也为我们的生活带来极
大的方便。这样一来医院的工作人员会有精力处理自己该做的工作,提高了工作人员
的工作效率,为我们每个人带来便捷。医院也不会担心人力不够的问题,同样提高了
医院管理人员的T作效率.患者从此在家里通过网络就可以实现即时持号,所以挂号
系统的实施是每一个人所期待的。医院门诊挂号系统会像我们的手机一样,成为每个
人都需要的网上在线看病通道,它改变了我们的生活方式,使我们从长长的队伍中解
放出来,以便我们有时间做其他更重要的事情,这不仅仅是方便了我们的生活,更通
透的改变了我们的生活状态,这是一个跨越性的进步。
1.2.开发背景
在国内位于昆山地区就有先例,专家周琳等人进行了对预约挂号系统的研究,该
医院制定出了实名制挂号,用户必须进行网上填写实名信息.,再进行信息审核,审核
通过之后,患者才可以凭着唯一识别账号密码信息登陆自己的账号通过在线挂号进行
网上挂号操作。看病和挂号一直困扰着像我们一样的人口大国,特别是一些医疗资源
极不平均的地区,没有一个良好的系统规范导致我们的医疗问题逐渐露尖,人们看病
开始不仅限于在自己的城市,人口因看病开始流动与各个城市,这样导致了人口管理
较难,可以说牵一发而动全身。经过不断的努力,专家对医院挂号系统进行不断的测
试和改善,医院挂号系统逐渐趋于人性化,因为该系统的用户目标是大众,所以它的
广泛性的必须经得起推敲的。这一点,江阴市的医院做的就比较好,他们的宗旨是以
患者为中心,用最简洁的服务和最人性化的设置帮助大众在线挂号,这大大缩减了大
众对时间的消耗,也提高了医院工作者的工作效率。但张雪梅等人认为现在的医院挂
号系统存在一些问题,内容过于复杂,不能让患者非常轻捷明了的挂号,因为商业关
系,有些系统内容主题不鲜明,重点操作不突出。总而言之,医院挂号系统还需不断
改进,无论是从技术上还是人性化开发上,必须有一个新的突破。
1.3.开发意义
中国经济迅猛发展,与之鹏飞的有实体经济与网络经济,人们越来越关注计算机
软件的应用是否适用于大众的生活。人们总是希望信息技术可以更好地服务于大众,
影响我们的日常生活,带来更多的便捷。就医疗领域来说,如今看病难已成为我们生
活中的一大难题,传统的医院挂号中,我们需要用手动方式来处理信息,这种方式需
要我们的医护工作人员和管理人员花费大量的时间来处理事务性信息,不仅劳动强度
大,而日浪费时间C现在普遍的现象是无论什么病,我们花费在卜面的时间远超干它
所能给我们带来的服务,可能一个小感冒,我们还需要早早地走到医院,甚至拿着一
天的干粮站在医院门口,排着长长的队伍仅仅为了拿到一张属于自己的挂号单。所以
该医院门诊挂号系统就是为了解决排队时间长的问题,通过此网站患者在线上就可以
快速方便的找到自己所需挂号科室信息医生,并进行在线预约挂号。
1.4.开发环境
操作系统:Windows10;
开发工具:jdkl.8u7432;
开发平台:Eclipsemars;
数据库:MySQL;
可视化数据库:Navicat
发布程序:apache-tomcat-7.0.47;
画图工具:RationalRose、Visio
1.5.技术介绍
医院网上挂号系统以Java为开发语言,框架部分主要使用了Spring,
hibernate,Struts框架开发,简称SSH框架。开发环境选择的是Eclipse-Mars软件。
数据库采用MySQL,进行数据库连接。相较于传统数据库来说网上数据库拥有更智
能化,更加便捷化的品质。可视化数据库是Navical,它操纵起来更加方便简洁,也
可以将建成的表格转化为数据库语言,改善表格的实施过程中超级方便。UML计划
实施选用的是RationalRose软件,实体属性图采取Visi。软件,方便快捷。
2
第2章系统需求分析与概要设计
2.1.系统目标
系统功能主要如下:
前台用户操作界面功能:
前台是用户进入系统的接口和通道,主要可以提供的选择功能模块包括:浏览系
统首页功能块、查看医生信息、查看公告信息、用户注册、查看医院信息、用户取号
等。
系统实现的首页:通过位于页面上部的导航,用户可以根据自己的需要极快的回
到系统首页操作其他的信息。
查看医生信息:用户点击进入这个页面可以选择符合实际情况的科室以及需要挂
号的类型,这里的专家类型分为专家号和普通号,然后输入医生的姓名,点击查询就
可以杳到该医牛的个人信息,包括医牛的姓名、性别、年龄、擅长、类型、仟职医院、
科室以及专家的照片等信息。当患者查询到想要挂号的医生信息的情况时,患者可以
选择挂号操作,即点击挂号触发器,随即便可进入到可以挂号的界面,该界面有挂号
日期、所患疾病、患者姓名以及联系方式,当用户填写好这些信息之后,点击确认即
可挂号成功。成功获得挂号信息的患者可以进入到位于页面右侧的个人管理中心,查
看自己刚才的挂号信息,也可以取消本人以前的挂号信息,也可以根据需要进行修改
自己的个人信息。
查看公告信息:用户若想要查看医院的公告信息便可以通过页面首页的导航栏点
击进入公告信息,随即用户便可以浏览该医院的公告信息了,里面会显示得非常详细,
包括每条公告的内容和时间。可供用户浏览查看。
用户注册端口:用户点击进入用户注册的页面。进入到用户注册界面,这里包含
账号、密码、姓名、住址、电话和邮箱,待用户填写好个人基本信息后即可完成用户
注册。
用户取号信息:用户进入此页面可查看自己的挂号信息以便取票。
用户登录端口;用户通过输入个人账户密码以及注册时用的手机号,正确填写验
证码就可以登陆该系统,
后台管理员操作界面:
登录管理员账号密码即可进入管理员界面,在这个界面,管理员可以看到位于界
面上方的导航栏分别为修改登录密码、医院信息管理、科室信息管理、医生信息管理、
会员信息管理、系统公告管理以及注销系统(退川系统)。
修改登录密码页面:管理员可以在这个页面中进行密码修改,这便要求填入用户
从经济上考虑,网络商业平台更喜欢跨平台的网络商品从而减少不必要资金的消
耗,截止到现在,很多的电商平台都使用Java开发平台。Java自开发以来不断加强
和完善,现在已成为主流趋势并占有市场很大一部分使用率。这样的成果无不依赖它
本身的良好的特性,即它的可移植性和可拓展性。
从操纵实施上阐明,Java放弃了C++难以明白的部份,囊括了指针、运算符重载
等,作为一种纯面向对象的语法体系,Java的语法比较简单,比较快速被公众快速把
握和明白,而日它法则用对比严谨,如许便严厉限定了编程开发者的编程随意性,代
码的规范性增强了编码的可读性。
综上,无论从技术上、经济上还是操作上进行分析,Java语言本身优良的特性,
作为一种纯面向对象的语言,它都是比较好的程序开发语言。
2.2.2.需求分析
需求分析是指通过开发者和用户的沟通来成系统应该做什么,并且评估HI软件的
资金使用和可能存在的风险,是整个系统实现的关键一步。
就本系统而言,医院挂号系统有很大的用户需求,由于目前来看有很大一部分医
院仍然使用的是人工挂号的方式来排队挂号,给医院的就诊以及病人就医带来很大的
困扰,由于需要人工处理以及长时间的排队,人员流通性和不确定性从而引发了就医
的高峰和低谷,在高峰期人多导致医生脾气暴躁,就医时间短,不仔细等问题,甚至
存在一些医生走关系的不良现象;而低谷期间队列的人少,致使专家无所事事,病院
资本虚耗等;通过医院挂号系统,我们可以很快地解决这些问题,可以减轻医护人员
对信息管理的负担,同时减少了患者不必要的等待,以及时间的浪费,同时有利于医
院治安管理提高医院的管理,提高医院的效益。
医院门诊挂号系统指的是患者用户通过即使在线的便捷通过一个注册的账号进
行自助挂号,它的优点就在于医院挂号系统不仅便捷了用户,还均衡了医院对人员的
资源配置问题从而提高了医院工作者的工作效率。对所有医院施行预约挂号系统服务
后不仅患者进行就医咨询变得很是方便,而且对意愿来讲,能够合理的分配医院的医
生资源且不浪费,从侧面看,极大的提升了医院的管理水平,还可以很大程度的提高
医生工作效率,解决看病问题,便利民生问题的同时还带来了经济上的发展,
我国有相当多的医院已经开始使用自助挂号系统,从使用情况分析,我们时系统
的管理方面还存在很大的弊端,比如有个人或者团体通过此种方式来谋取暴力;导致,
医院预约挂号系统服务没有的到正真的合理使用,这样没有给病人就诊带来方便、没
有给医院带来方便,还被很多病人和医院管理者,医护人员反感抵制。除此之外,网
3
络有时存在恶意的刷单挂号等行为,这些行为会给我们的系统以及患者和院方带来不
必要的损失,为此,实名认证是很有必要的。
所以,对每一次系统的实施,我们需要办法一些相关的规章制度,约束这些不合
理的使用现象。不仅要正确的让医院开展预约挂号系统的实施,而且要文明绿色的实
行这些工作的计划;除此之外,我们还应该加强宣传力度,传播线上挂号的优点与好
处,正面的响应群众,一切都要坚持本方便群众就医,搞好医疗事业建设,合理的运
用前沿技术来服务农民,发展社会C
223.总体设计原则
通过对系统的全部构思,作为一名编程人员,应该使该程序达到服务于大众的目
的,可以服务于大众的日常生活,更加人性化、合理化。
(1)首要条件是系统的可操作性,符合大众的操作思维,便于大家理解且应用。
(2)从经济成本上考虑要便于维护和完善,不要增加一些过多的额外支出。不管对
人力或是物力来说都是无益于可持续性发展的。
(3)在设计数据库分析时要考虑完全,达到既可以满足用户的需求,又可以做到数
据的精准不繁杂,利于节约空间。
(4)从用户角度来说,页面的设计相当于一个项目好坏的重要准则,不需要多么豪
华的界面装饰,只需做到简便大方美观就达到目标了。
2.3.用例分析
2.3.1.患者用例分析
联系到生活实际应用,考虑到患者作为该系统的维护者,特为其赋予了几项工作
职责,分别为在线注册会员、查看医生信息、登陆系统、退出系统、更改个人信息、
查看医院信息、查看医院公告、查看个人挂号信息、在线预约挂号、取消挂号、用户
取号等操作。
4
取消挂号
图0-1患者用例图
表0-1患者在线预约珪号描述
用例名称在线预约挂号
参与者Patient(患者)
描述患者进行网上在线预约挂号
前置条件患者已注册该系统的会员信息
后置条件已成为会员的用户可以在相应的操作导航中使用该系统
主要过程1.患者用户登录该系统。
1.1.未登录。
1.1.1.输入账号和密码登陆系统。
1.2.未注册会员信息。
1.2.1.填写提示信息先进行注册会员信息。
2.选择本系统医院,点击。
3.选择想要挂号的专家,点击。
4.确定医生信息之后,符合需求便点击挂号。
5.挂号成功。
6.操作成功,退出该页面。
5
表0-2患者更改个人信息描述
用例名称更改个人信息
参与者Patient(患者)
描述患者在系统网页上更改个人信息
前置条件患者已注册该系统的会员信息
后置条件已成为会员的用户可以在相应的操作导航中使用该系统
主要过程1.患者用户登录该系统。
1.1未登录。
1.1.1输入账号和密码登陆系统。
1.2未注册会员信息。
1.2.1填写提示信息先进行注册会员信息。
2.进入己登录状态的页面。
3.根据导航栏右面的提示信息,点击进入管理中心。
4.依据导航栏提示信息进入“修改我的信息”页面。
5.修改我的账户信息。
6.修改完成。
2.3.2.管理员用例分析
图0・2管理员用例图
6
表0-3管理会员信息描述
用例名称会员信息管理
参与者管理员
描述管理员在线上管理会员信息
前置条件管理员可成功登陆该系统
后置条件管理员通过导航提示信息进行对会员的管理
主要过程1.管理员通过页面下方管理员登录入口进入管理员管理页
面。
1.1.未填写正确的用户名密码。
1.1.1.登录失败。
1.2.填写用户名密码并通过验证成功登录。
2.依据导航栏的提示进入会员管理。
3.进入到会员信息管理页面。
3.1.可查看到全部的会员信息。
3.2.删除会员信息。
3.2.1.点击会员信息右侧按键,成功删除。
3.2.2.该条会员信息在会员信息列表中消失。
4.完成操作,退出该页面。
表0~4医生信息管理描述
用例名称管理员线上管理
参与者管理员
描述管理员线上管理医生信息
前置条件管理员可成功登陆该系统
后置条件管理员通过导航提示信息进行对医生的管理
主要过程1.管理员通过页面卜方管理员登录入口进入管理员管理页面。
1.1.未填写正确的用户名密码。
U.L登录失败。
1.2.填写用户名密码并通过验证成功登录。
2.依据导航栏的提示进入医生信息管理。
3.进入到医生信息管理页面。
3.1.可查看到全部医生信息列表。
3.2.删除医生信息。
7
321.点击某医生信息条的右侧按键进行删除操作。
3.2.2.删除成功。
3.2.3.查看医生信息列表,该医生信息已消失。
3.3添加医生信息。
3.3.1.填写新的医生信息,点击提交。
未完全补充医生信息,显示请选择科室信息。
332重新而填写医生信息,点击重置.转到3.3c
332.1.填写补充医生信息。
3.4.成功填写医生信息。
4.完成操作,退出界面。
8
第3章系统分析与详细设计
3.1.系统概述
系统设计是系统开发中的一个不可或缺的一环,它的意义在于系统开发者在了解
用户的需求之后对其功能的实现过程。同时要注意系统设计的内外环境以及主观条件
和客观条件,未来确保系统总体目标的实现,我们要考虑到经济,技术各方面的条件,
来做出合理的技术方案,选择出合适的设计平台以及开发环境。系统开发者应遵从阶
段性开发,养成阶段性开发的开发习惯,这样实现功能的过程才有系统科学性;其次
要本着为客户服务的原则,尽可能的坚强客户使用的难度,同事要坚强管理人员的负
担,尽量使用自动化的处理方式来处理数据,以及要具有良好的设计体验;对用户的
需求变更要及时的处理,同时,最重要的是实现系统的可扩展性,减少各个模块的耦
合性,使系统便于扩展与维护;系统设计中很多工作是有技术性的,再设计过程中要
考虑到用户需求的变更,是系统设计完成的一个必要阶段。
3.2.系统功能设计
根据前面的需求分析和实际操作的人性化来考虑,接下来会将医院门诊挂号系统
将会分为两个大的模块:前台用户操作模块和后台管理操作模块。为了防止用户患者
和管理员的入口有争议,我将入口分别放在两个不同的地方,以示区分。
那么,前台用户操作模块是用户患者进入系统的接口和途径,用户进入之后可以
实现一系列的操作,如:返回系统首页、医生信息查看、公告信息查看、用户注册、
预约挂号、用户登录、用户取号。后台管理员在成功登陆系统之后可以实现的操作有
医生信息管理、会员信息管理、医院信息管理、科室信息管理、修改登陆密码、注销
系统。
9
前台用户操作模块
图0-1系统前台功能模块图
后台管理员操作模块
图0-2后台管理员操年模块图
10
3.3.系统数据库设计
3.3.1.概念设计
通过对用例的分析,下面对每个实体和属性做出总结,具体如下:
患者用户(用户编号用户账号密码真实姓名地址用户电话用户邮
箱)
管理员(管理员编号管理员账号管理员密码)
挂号信息(挂号编号专家编号日期疾病姓名联系方式)
医院(医院编号医院名称医院地址医院电话)
科室(科室编号科室名称)
公告信息(公告编号标题内容时间)
专家(专家编号医院编号科室编号姓名性别年龄擅长类型附
件)
(1)用户实体属性如图所示:
图0-3用户实体属性图
(2)管理员实体属性图如下所示:
图0-4管理员实体属性图
11
(3)挂号信息实体属性如下图所示:
图0-5挂号信息实体属性图
(4)医院信息实体属性如下图所示:
医院
图0-6医院实体属性图
(5)科室实体属性如下图所示,
科室
图0-7科室实体属性图
12
(6)专家实体属性:
图0-8方•家实体属性图
(7)公告实体属性如下图所示:
图0-8公告实体属性图
13
(9)实体联系信息如下所示:
①
一个医院可以拥有有多个科室。
②
一个科室可以拥有多个专家。
③
一个患者可以挂多个专家的号。
④
⑤一个管理员可以管理一个医院。
⑥一个管理员可以管理多个科室。
⑦一个管理员可以管理多个用户。
⑧一个管理员可以管理多个专家。
一个管理员可以管理多个公告。
科室
公告
专家
图9实体联系图
3.3.2.数据库逻辑结构设计
需要描述的实体和从体系中抽象出来的实体信息如下:
(1)管理员信息表(l_admin):用来描述管理员的基本信息,包含管理员的私人
id(useid)、私人的账户名(username)和私人的密码(userpw)。id号(useid)设计为int类型,
长度为11,id号为管理员信息表的主键,作用是惟一识别管理员基础信息。username
是用户管理员的账号名称,数据类型为varchar,长度为50,非主键。usepw是用户
管理员的密码,数据类型为varchar,长度为50,非主键。具体实现如下描述:
表3.3.2-1管理员信息表(tadmin)
字段名数据类型长度主键(是/否)注释
useidint11是自动编号
usernamevarchar5()否管理员账号
userpwvarchar50否管理员密码
(2)公告信息表(t_gonggao):用来描述门诊的公告信息,包含公告的id、公告的标
题、公告的内容、公告的时间。id号设计为血类型,长度为11,id号不为空,并且
是公告信息表的主键。标题设计为varchar类型,长度为255,可以为空,非公告信息
表的主键。内容设计为varchar类型,长度为255,可以为空,非主键。时间设计为
time类型,长度为50,可以为空,非主键。
表3.3.2-2公告信息表(t_gonggao)
字段名数据类型长度主键(是/否)注释
idini11是自动编号
biaotivarchar255否公告信息的标题
neirongvarchar255否公告信息的内容
shijianvarchar50否公告信息的时间
(3)挂号信息表(t_guahao):挂号信息表用来详尽描述用户患者挂号的基础信息。
包含挂号信息的id号,数据类型为int型,id作为惟一主键标识挂号信息表(t/uahao),
该表的其他字段为挂号日期(riqi),数据类型为varchar型;挂号患者所属疾病[jibing),
数据类型为varchar;挂号患者的姓名(xingming),数据类型为varchar型;挂号患
者的联系方式(lianxi),数据类型为varchar。另外,挂号信息表以zhuanjiaid作为外
键连接专家信息表(Jhuanjia)和userid为外键连接用户患者信息表(t.user)o
如下表详情所见:
表3.3.3-3挂号信息表(t_guahao)
字段名数据类型K度主键(是/注释
否)
idint11是自动编号
zhuanjiaidint11否专家id
useridint11否用户患者id
riqivarchar255否挂号日期
jibingvarchar255否挂号患者所属疾病
15
xingmingvarchar255否挂号患者的姓名
lianxivarchar255否挂号患者的联系方式
(4)科室信息表(i_keshi):该表描述的是科室的基础信息,包含科室id(keshijd),
数据类型为int,长度为19,是科室信息表(t_keshi)的主键,是惟一的标识符。科
室名称(kcshijame),数据类型为varchar,长度为50:删除操作(del),数据类
型为varchar,长度为50,非主键。具体表述详见下表:
表334-4科室信息表:t_keshi)
字段名数据类型长度主键(是/否)注释
keshi_idint19是自动编号
keshi_namevarchar50否科室名称
delvarchar50否删除操作
(5)用户患者信息表(l_user):该表描述的是用户患者的基础信息,包含用户患者
id(user_id),数据类型为int型,长度为11,是用户患者信息表(t_user)的主键,
是惟一的标识符。用户患者账号(user_name),数据类型为varchar型;用户患者密
码(user_pw),数据类型为varchar型;用户患者真实名字(user_realname),数据
类型为varchar型;用户患者地址(usejaddress),数据类型为varchar型;用户患者
联系电话(user_tel),数据类型为varchar型;用户患者邮箱(user_email),数据类
型为varchar型;用户患者删除操作(user_del),数据类型为varchar型。具体表述
详见下表:
表335・5用户患者信息表(t_user)
字段名数据类型长度主键(是/注释
否)
user_idint11是用户患者id
user_namevarchar50否用户患者账号
user_pwvarchar5()否用户患者密码
user_realnamevarchar50否用户患者真实名字
user_addressvarchar50否用户患者地址
user_telvarchar50否用户患者联系电话
user_emailvarchar50否用户患者邮箱
user_delvarchar5()否删除用户患者操作
16
(6)医院信息表(t_yiyuan):该表描述的是医院的基础信息,包含医院id(id),
数据类型为int型,是医院信息表(t_yiyuan)的主键,是惟一的标识符;医院名称
(mingcheng)数据类型为varchar型;医院地址(dizhi)数据类型为varcha「型;医
院联系电话(dianhua)数据类型为varchar型;删除医院信息操作(del)数据类型为
varchar型0具体表述详见下表:
表3.3.5・6医院信息表(t_yiyuan)
字段名数据类型长度主键(是/否)注释
idint11是医院id
mingchengvarchar50否医院名称
dizhivarchar500否医院地址
dianhuavarchar500否医院联系电话
delvaichai255否删除医院信息操作
(7)专家信息表(t_zhuanjia):该表描述的是专家的基础信息,包含专家(id),数
据类型为血型,是专家信息表(t_zhuanjia)的主键,是惟一的标识符;专家的姓名
(xingming)数据类型为varchar型;专家的性别(xingbic)数据类型为varchar型;
专家的年龄(nianling)数据类型为int型;专家擅长领域(shanchang)数据类型为
varchar型;专家的类型(leixing)数据类型为varchar型;专家的附件(照片)(fujian)
数据类型为varchar型;对专家信息的删除操作(del)数据类型为varchar型。专家信
息表(t_zhuanjia)通过医院id(yiyuanid)和科室id(keshiid)作为外键连接医院信
息表(t_yiyuan)和科室信息表(l_keshi)。具体表述详见下表:
表3.3.7・7专家信息表(t_zhuanjia)
字段名数据类型氏度主键(是/注释
否)
idint11是专家id
yiyuanidint11否医院id
keshiidint11否科室id
xingmingvarchar255否专家的姓名
xingbievarchar11否专家的性别
nianlingint11否专家的年龄
shanchangvarchar255否专家擅长领域
17
ieixingvarchar255否专家的类型
fujianvarchar255否专家的附件(照片)
delvarchar255否对专家信息的删除操作
3.4.系统活动图
挂号活动图,如图所示:
图0-10挂号活动图
说明:由于用户在实际操作过程中会出现很多不确定因素,所以在操作中可能会
出现终止操作的情况,这些也会在活动图中展现出来。另外,由于用户登陆时的账号
密码有可能出现错误这会导致登陆失败,故也不能成功进入系统。
3.5.系统状态图
看医生信
息
选择医生
信息
确认挂号
填写挂号
基地信息
图0-11挂号状态图
说明:用户凭借着账号密码等信息进入系统之后,首要选择的是医院信息,然后
是选择医生信息,再填写挂号信息,确定挂号。操作十分简便快捷,但在此期间所有
的动作均存在可能,所以随时会出现终止操作的现象,在图中均有展示。
19
3.6.系统时序图
1.登录时序图如图所示:
系统富送员下台界3E系统
图0-12登录时序图
说明:管理员打开系统首页,输入系统内部设置的账号密码信息,提交之后,系
统内部后台进入数据库对管理员所提交的信息进行验证,控制器查询表t_admin进行
验证,若验证失败则登陆失败,若验证成功则成功进入系统。
20
2.挂号时序图如图所示:
21
进入医院信息,在医院中选择要挂号的医生,点击挂号便可以挂号。由于导航并未强
制要求用户需要先注册再登录,所以挂号的实际操作过程中可能会出现某些用户先进
行对医院和专家的选择之后才意识到要登录。用户会先进行登陆再进行挂号操作。当
用户输入账号密码时系统会使控制器去数据库查询用户的账号信息是否正确填入,若
账号密码错误,便会像屏幕提示用户名密码错误的提示框。这时用户便需要重新输入
账号密码信息。在用户选择医生之后,要填写挂号的基础信息:挂号时间、姓名、所
患疾病、联系方式。在填写挂号时间一栏时,若用户填写的时间在挂号当日之前则错
误,只能挂当日以后的票。若挂号日期超过未来一周则显示只能挂一周之内的号。
22
第4章系统的实现
1.1.SSH环境的搭建及框架基本配置:
1.1.1.创建Web项目,引入相应的jar包:
(1)Stmtes2框架开发的相应的jai•包
了解的jar包:Struts2-spring-plugin-.jar—struts2用于整合spring的jar包
Struts-core-.jar-Struts?的核心包
ognl-2.6.1l.jar—支持ognl表达式
commons-io-i.3.2.jar
commons-logging-1.0.4.jar
commons-fileupload-1.2.1.jar
xwork-2.0.5.jar
(2)Hibernate框架开发的相应的Jar包
T解的jar包:Hibernate3.jar—核心包
antk2.7.6.ja—・语言转换工具
Hibernate日志记录:Slt'4j整合log4j的jar包、数据库驱动包
(3)Spring框架开发的相应的jar包
Spring日志记录:mons』ogging.(不进行具体的日志记
录,只用于整合其他日志系统的包)
T解的jar包:spring.jar
commons-logging-1.0.4.jar
(4)引入dwr的jar包:dwr.jar
1.1.2,配置文档:
(1)Struts配置文档:Struts.xml和Sperties
Struts.xml:是Struts的核心配置文件,主要负责管理应用中的action映射,以及该action
包含的result定义等。Struts.xml放在根目录下,Jsp页面放在WEB-INFO下面的时
候,外部是无法访问的,所以要通过action跳转,做到权限控制。
Sperties:定义全局属性。
23
1)设置字符编码:
struts.i18n.encoding=UTF-8
2)指定struts!的工厂类:
struts.objectFactory=spring
3)该属性指定处理MIME类型multipart/form-data,文件上传:
#struts.multipart.parser=cos
#struts.multipart.parser=pell
struts.multipart.parser=jakarta
4)指定上传文件时的临时目录:
struts.multipart.saveDir=/tmp
struts.multipart.maxSize=202000000000000000
5)设置是否每次请求都重新加载资源文件为true:
struts.i18n.rcload=tiuc
6)设置Stmts是否为开发模式,阶段模式设为true:
struts.devMode=true;
7)设置当stmts.xml文件改动时,是否重新加载:
struts.configuration.xml.reload=true
(2)配置web.xml
Struts2的框架的核心过滤器的配置:
<filter>
<fi1ter-name>struts</filter-name>
<fiItcr-class>
org.apache.struts2.dispalcher.FilterDispatcher
</filter-class>
〈/filter〉
Struts过滤所有访问:
<filtcr-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
24
Struts清除缓存:
<filter>
<filter-namc>struts-cleanup</filter-narne>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filtcr-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Spring的框架的核心监听器:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listcncr-class>
</listener>
监听器参数ContextLoaderListener:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
(3)Hibernate配置文档:
注入连接池:
<propcrtyname="dataSource">
<refbean="dataSource"/>
</property>
配置Hibernate的方言:
<propkey=uhibernate.dialect">
org.hibemate.dialect.MySQLDialect
</prop>
25
加载Hibernate映射标签:
<propcrtyname=,,mappingRcsources',>
<list>〃因为mappingresources是一个数组所以需要用到lisl标签
<value>com/model/TAdmin.hbm.xml</value>〃管理员的映射配置
<value>com/model/TUser.hbm.xml</value>〃用户user的映射配置
<value>coiT)/model/TKeshi.hbm.xml</value>〃科空的映射酉已置
<value>com/model/TZhuanjia.hbm.xml</value>〃专家的映射配置
<value>com/model/TGuahao.hbm.xml</value>〃持号的映射配置
<value>com/model/TGonggao.hbin.xnil</value>〃公告的映射配置
<value>com/model/TYiyuan.hbm.xml</value>〃医院的映射配置
</list>
</property>
输出SQL语句到控制台:
<propkey=,'hibernate.show_sqr'>true</prop>
1.1.3.三大框架的整合:编写和配置Action>Service和DAO类
配置action的类:
<beanid="indexAction"class="com.action.indexAction"scope="prototype">
</bean>
配置DAO的类(以公告DAO为例):
<beanid="TGonggaoDAO"class="com.dao.TGonggaoDAO">
<propertyname="sessionFactory">
<refbcan="sessionFactory"/>
</property>
</bean>
编写登录service的类(省略get。和set。方法):
publicclassloginService
{〃在service业务层注入DAO
privateTAdminDAOadminDAO;〃注入adminDAO
privateTUserDAOuserDAO;//注入userDAO
)
Struts2和Spring整合方式:Action的类通过Struts自身去创建
26
Service和DAO配置:直接在application.xml中进行配置
<beanid=,,loginService"class="com.service.loginService">
<propcrtynamc="adminDAO"><!—业务层需要注入DAO—>
<refbean=MTAdminDAO"/>//以adminDAO为例
</property>
</bean>
1.1.4.编写持久化类:与表格字段一一对应。
(1)挂号实现类具体方法(此处省略set()和get()方法):
publicclassTGuahaoimplementsjava.io.Serializable
{〃一个类实现了Serializable接口,这个类可以被序列化
privateIntegerid;〃定义私有int型挂号id属性
privateIntegerzhuanjiald;〃定义私有int型zhuanjiaid属性
privateIntegeruserid;〃定义私有userid属性
privateStringriqi;〃定义私有riqi属性
privateStringjibing;〃定义私有jibing属性
privateStringxingming;〃私有定义xingming属性
privateStringlianxi;〃定义私有lianxi属性
privateTZhuanjiazhuanjia;〃定义私有zhuanjia属性
)
与guahao对应的映射文件如下:
<hibernate-mapping>
<classname=Hcom.model.TGuahao"table=,,t_guahaon>
<idname="id"type="java.lang.Intcger">
<columnname="id"/>〃将挂号的id设置为主键惟一识别挂号表
<generatorclass=nincrement"/>//主键按数值顺序递增,取最大值加一
</id>
<propertyname=,'zhuanjiald"type="java.lang.Integer',>
〈columnname=nzhuanjiald"/><!--专家id属性
</property>
<propertyname="userld"type="java.lang.Integer">
<columnname="userid"/><!--用户id属性
27
</property>
<propertyname="riqi"type="java.lang.String"><!—riqi属性
<columnnamc="riqi"/>
</property>
<propertyname="jibing"type=,,java.lang.String',><!—jibing属性〉
<columnname="jibing”/>
</property>
<propertyname="xingming"type=,,java.lang.String,'><!—xingmign属性〉
<columnname=nxingming"/>
</property>
<propertyname="lianxi"type=,,java.lang.String,,><!—lianxi属性,
<columnname="lianxi"/>
</property>
</class>
</hibernate-mapping>
(2)公告实现类具体方法(此处省略set。和get()方法):
publicclassTGonggaoimplementsjava.io.Serializable
(
privateIntegerid;〃私有ini型公告id属性
privateStringbiaoti;〃私有string型biaoti属性
privateStringncirong;〃私行string型ncirong属11生
privateSiringshijian;//私有*string型shijian属性
}
与gonggao对应的映射文件如下:
<hibernate-mapping>
<classname="com.modeLTGonggao"table=',t_gonggao,'>
v!・・name是实体类的全路径,他的目的就是让我们的类和表创建映射关系一,
<idname="id"type="java.lang.Integer">
<columnname=nid"/>〃这里设置id为主键取最大值加一
<generatorclass=,'increment"/>//主键按数值顺序递增,取最大值加一
</id>
<propertyname="biaotiMtype=njava.lang.String"><!—标题属性->
<columnname="biaoti"length="50"/>
</propcrty>
28
〈propertynarne="neirong”type="java』ang.String"><!--内容属性一〉
<columnname="neirong"length="5000"/>
</propcrty>
〈propertyname="shijian"lype="java.lang.Slring"><!--时间属性一>
<columnname="shijian"length="50"/>
</property>
</class>
</hibernate-mapping>
1.1.5.编写DAO层接口:
DAO层用于操作持久化实体,包括保存、增加、删除、查询等基本方法。
(1)增加挂号信息方法:添加用户的挂号信息
publicStringguahaoAdd()〃创建一个共有guahaoAdd()方法
{
HttpServletRequestrequest=ServletActionContext.getRequest();
〃获取request对象
HttpSessionsession=request.getSession。;〃获取session对象
TUscruser=(TUscr)session.gctAttributc("user");〃在session中获取user
TGuahaoguahao=newTGuahao();
〃创建一个新的挂号对象,给这个对象每个属性赋值
guahao.setZhuanjiald(zhuanjiald);〃获得zhuanjiaid
guahao.setUserld(user.getUserldO);〃获得userid
guahao.sctRiqi(riqi);//获得挂号的riqi
guahao.setJibing(jibing);//获得jibing
guahao.setXingming(xingming);〃获得xingming
guahao.setLianxi(lianxi);〃获得lianxi
guahaoDAO.save(guahao);〃在挂号DAO里保存挂号信息日志
this.setMessage("成功挂号//返回信息操作成功
this.setPath("index.actionu);〃设置路径
return"succeed";
)
(2)取消挂号guahaoDel。方法:
publicStringguahaoDel()//实例化删除类
29
HttpServletRequestrequest=ServletActionContext.getRequest();
〃获取request对象
TGuahaoguahao=guahaoDAO.findById(id);//lUid号查找挂号的对象
guahaoDAO.delete(guahao);〃删除此条挂号信息
request.setAttribute("msg","成功取消挂号)〃获取成功取消挂号信息
return"msg";〃返回msg
)
(3)挂号管理用户方法:
publicStringguahaoMana_user()
{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓库修缮招标方案范本
- 本科三年级高等教育学专业:课堂教学管理效能评估体系构建教案
- 2026年公务员考试《常识》考试题库附参考答案详解【完整版】
- 制造流水线工艺优化方案
- 广告设计制作外包协议
- 城镇燃气施工质量验收标准
- 培训机构工作感悟心得
- 门头施工方案
- 工厂道路硬化施工合同范本
- 装修工程施工安全协议书
- 神木能源局从业人员培训考试证及答案解析
- 2025年北京海淀社区工作者招聘考试试题(附含答案)
- IPC7711C7721C-2017(CN)电子组件的返工修改和维修(完整版)
- DB23∕T 3824-2024 挡土墙技术状况评定规范
- DGTJ08-2001-2016 基坑工程施工监测规程
- 江苏常州联盟学校2024~2025学年高一下册期末调研数学试题学生卷
- 数码喷印技术课件
- T/CAPE 11005-2023光伏电站光伏组件清洗技术规范
- 2025年入团面试技巧试题及答案
- 《结直肠癌化疗方案》课件
- 地理会考试卷及答案贵阳
评论
0/150
提交评论