基于SSH医院在线挂号系统毕业设计(源代码+论文)

需求分析

需求分析是指通过开发者和用户的沟通来成系统应该做什么,并且评估出软件的资金使用和可能存在的风险,是整个系统实现的关键一步。
就本系统而言,文献[3]医院挂号系统有很大的用户需求,由于目前来看有很大一部分医院任然使用的是人工挂号的方式来排队挂号,给医院的就诊以及病人就医带来很大的困扰,由于需要人工处理以及长时间的排队,人员流通性和不确定性从而引发了就医的高峰和低谷,在高峰期人多导致医生脾气暴躁,就医时间短,不仔细等问题,甚至存在一些医生走关系的不良现象;而低谷时期排队的人少,导致专家无所事事,医院资源浪费等;通过医院挂号系统,我们可以很快地解决这些问题,可以减轻医护人员对信息管理的负担,同时减少了患者不必要的等待,以及时间的浪费,同时有利于医院治安管理提高医院的管理,提高医院的效益。
医院挂号系统是指患者可以通过访问网站的方式来预约看病的系统。其意义在于方便患者就医,提高医院医生资源的利用率,提高医疗服务水平等;他的使用将会给医疗界带来新的革命。对所有医院施行预约挂号系统服务后不仅患者进行就医咨询变得很是方便,而且对意愿来讲,能够合理的分配医院的医生资源且不浪费,从侧面看,极大的提升了医院的管理水平,还可以很大程度的提高医生工作效率,解决看病问题,便利民生问题的同时还带来了经济上的发展。
在我们国家也有很多医院已使用了在线挂号系统;文献[4]中说明,从使用情况分析,我们对系统的管理方面还存在很大的弊端,比如有个人或者团体通过此种方式来谋取暴力;导致,医院预约挂号系统服务没有的到正真的合理使用,这样没有给病人就诊带来方便、没有给医院带来方便,还被很多病人和医院管理者,医护人员反感抵制。
所以,对每一次系统的实施,我们需要办法一些相关的规章制度,约束这些不合理的使用现象。不仅要正确的让医院开展预约挂号系统的实施,而且要文明绿色的实行这些工作的计划;全面提高人们对预约挂号服务工作的认识、全面加强对预约挂号服务工作的管理计划、认真搞好相关组织工作的内容;一切都要坚持本方便群众就医,搞好医疗事业建设,合理的运用前沿技术来服务农民,发展社会。

挂号用户

1、网上预约挂号
要实现较好的网站设计,首先这个网站必须具有良好的稳定性和较高的安全性,对开发的后期来说要易于维护;对网站首页的设计要有基本的菜单导航设计来引导新用户的正确操作,方便患者的使用。
对于医院的信息设计部分;经过对不同科室的信息进行细致的分类方便用户对照自己的症状合理,正确的来挂号;对不同医院的专家信息进行分类,专家情况信息介绍要详细全面,防止患者对信息理解错误挂号错误的现象发生,进而让用户能作出正确选择;用户通过查看专家信息,选择专家,选择挂号日期;实名填写个人信息、家庭住址、联系方式等信息成功的实现网上预约挂号。
(1)挂号示意图
在这里插入图片描述
(2)挂号方式
患者通过在浏览器端输入网址进入预约挂号系统的首页,查询医院医生信息,点击预约挂号,填写个人信息,实现网上成功预约之后,根据自己的预约信息去医院就诊。

2.2.3预约须知
对在线医院预约挂号系统的总体说明主要有一下几点:愉悦着要提前看网站对挂号者预约所注意事项、以及预约挂号人的权利和义务,权责声明、对于自己不清楚的地方要及时的查看系统使用帮助。
进入网上预约挂号的平台后,根据自己所在地区选择需要挂号的医院。进入医院网站首页,初次登陆系统预约的用户,需要先注册才能登陆系统进行操作挂号;如果是复诊输入用户名和密码,即可登陆系统。系统可以自动核对登陆者的信息,登陆成功后,可进入预约挂号程序。
需求分析种我们会发现,医院预约挂号系统中需要管理的信息主要有以下几种:
1.医生:姓名、性别、科别、擅长、年龄、就诊时间
2.挂号单:科别、挂号单号、编号、费用
3.病人:姓名、性别、年龄、联系方式、症状、挂号单号
对于单号的处理部分,一张挂号单只可以对应一个医生;一个医生可以有多张挂号单,但是日期时间不能冲突,一张单号也只能对应一个病人,一个病人在同一时间只可以预约一张单号、一个患者可以选择多个医生,一个医生可以看多个病人。

开发环境

医院挂号系统采用的是Myeclipse软件开发平台,mysql数据库以及SSH框架技术,开发环境为windows xp 系统用户无需安装任何软件,只需在浏览器端输入网址即可使用,使用非常方便,对开发人员的维护工作也很方便。

系统分析与设计

系统概述

系统设计是继需求分析之后的重要一步,目的是根据对用户的需求分析将其逻辑方案转换成物理方案。同时要注意系统设计的内外环境以及主观条件和客观条件,未来确保系统总体目标的实现,我们要考虑到经济,技术各方面的条件,来做出合理的技术方案,选择出合适的设计平台以及开发环境。系统设计要坚持阶段性开发原则对不同的阶段设计出不同的实现功能;其次要本着为客户服务的原则,尽可能的坚强客户使用的难度,同事要坚强管理人员的负担,尽量使用自动化的处理方式来处理数据,以及要具有良好的设计体验;对用户的需求变更要及时的处理,同时,最重要的是实现系统的可扩展性,减少各个模块的耦合性,使系统便于扩展与维护;系统设计中很多工作是有技术性的,再设计过程中要考虑到用户需求的变更,是系统设计完成的一个必要阶段。

系统功能

系统功能主要是实现患者在线预约挂号,对网站来讲,我们将其分为前台功能和后台功能两个模块。
系统前台功能图如下(图)3-1所示,我们又将前台功能细分为三大块功能,分别是:信息展示模块、系统应用模块、用户模块。
在这里插入图片描述
(1)信息展示:展示出专家的信息,医院信息等;
(2)系统使用:完成登录注册等功能;
(3)用户 :登录,查询、预约挂号等。
系统后台功能图如(图)3-2所示:
(图)3-2 系统后台功能图
我们对后台模块功能分析如下:
(1)修改密码:用户、管理员对自己的个人密码进行修改操作;
(2)系统公告的管理:管理员来实现医院公告的管理;
(3)专家信息管理:对专家信息进行添加和删除等操作;
(4)注册用户管理:对用户的个人信息进行管理;
(5)医院信息管理:对医院的信息进行添加和删除等操作。

用例图

会员用例图:

用户可以:在线注册会员,在线查询医生信息,在线预约挂号等。
在这里插入图片描述

管理员用例图:

管理员可以对医生信息的数据库信息进行合理的变更;对医院的信息进行添加或删除,对会员的信息进行和管理以及对医院公告的信息进行更改等。
3.4 流程图
(1)用户流程图如图所示:

用户可以在网站的主页看到信息查询的按钮并对想要查找的信息进行填写,然后根据查询结果进行预约挂号填写个人信息,同时如果不想预约,可以进行取消预约的操作。
(2)管理员流程图如下所示:
流程图
管理员在系统首页的“系统管理员登录”出输入自己的账号和密码进行登录,然后进入管理员界面,可以对医院的信息以及医生的信息进行添加和删除操作;同时也可以管理用户的信息。

数据库设计

数据库设计概述

MySQL是一种SQL数据库的管理系统,受到很多人都欢迎因为其具有开源性的特点。它是由一家商业公司MySQL AB进行了设计开发和发布的,这家公司主要是对MySQL数据库开发,这家公司的注册商标就是Mysql;它拥有成功的商业模式,巧妙地使用了其开源性,方法论的第二代开源公司对于MySQL AB公司的发展历史我们在这里就不做过多的赘述了。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。文献[8]中介绍MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL网站(http://www.mysql.com)提供了关于MySQL和MySQL AB的最新的消息。 
数据库在动态网页设计中发挥了重要的作用,文献[6]中介绍到它好比一个大仓库,对网站的重要信息进行存储,由于网站的网页不是一成不变的,他需要及时的变更,所以要使用到数据库,有了数据库开发人员对网站内容的管理更加方便,维护也更加方便,所以数据库的设计是系统成功实现的关键之处。该系统的设计主要是用了mysql 数据库来设计数据库,简单方便,下面我们主要说明下数据表和数据表结构。

表说明

主要的数据表有db_guahao表,此表又包含t_gonggao系统公告,t_zhuanjia 专家信息,t_guahao医院信息;,t_yiyuan医院信息管理系统,t_use注册用户的信息;r,t_admin管理员信息;t_keshi科室信息表等。
(图)4-1 数据库所有表格

表结构说明

(1)系统公告表:对医院公告的存储。
表4-1 系统公告表
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
biaoti varchar 50 否 公告标题
neirong shijian 50 否 公告内容
shijian shijian 50 否 发布时间
(2)医生信息表:对医生信息进行存储。有姓名,年龄,类型,擅长等字段。
表4-2 医生信息表
字段名 数据类型 长度 主键否 描述
id int 4 自动编号
xingming varchar 4 是 姓名
xingbie varchar 50 否 性别
nianling int 4 否 年龄
Leixing varchar 50 否 类型
shanchang varchar 50 否 擅长
fujian varchar 50 否 照片
(3)挂号信息表:主要存储挂号人信息,挂号医院的信息,挂号时间等。

表4-3挂号信息表
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
userId int 50 否 会员ID
zhuanjiaId int 50 否 专家ID
riqi varchar 50 否 挂号日期
jibing varchar 50 否 所患疾病
xingming varchar 50 真实姓名
lianxi varchar 50 联系方式

(4)医院信息表:对医院的信息进行存储,主要有医院的名称,医院地址,医
院联系电话等。

表4-4 医院信息表

字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
mingcheng varchar 50 否 医院名称
dizhi varchar 50 否 地址
dianhua varchar 50 否 联系方式

(5)用户信息表:主要存储用户的登录账户,账户密码,姓名,年龄等。
表4-5用户信息表
字段名 数据类型 长度 主键否 描述
user_id int 4 是 自动编号
user_name int 50 否 登录账号
user_pw varchar 50 否 登录密码
user_realname varchar 50 否 姓名
user_sex varchar 50 否 性别
user_address varchar 50 否 地址
user_tel varchar 50 否 联系电话
(6)管理员信息表:对管理员的个人信息进行存储,主要包括管理员账户,账户密码等。
表4-6 管理员信息表
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
userName varchar 50 否 登录账号
userPw varchar 50 否 登录密码

系统的实现

网站首页设计

网站设计的首页设计是至关重要。因为第一个映入用户眼睑的就是网站的首页,它的好坏直接影响了用户对网站的喜爱程度;在对首页设计上我们要内容丰富的同时又要有一定的色彩搭配以及上下呼应等特色,以下是本网站的首页: (图)5-1医院挂号系统首页设计

网站引导设计

网站的导航视为了使用户使用更加方便灵活,能使网站有一个较好的用户体验,提高用户的满意度,他是网站的路标,可以提示用户如何操作,就像字典查询需要目录一样,网站设计也需要这样的“目录”,从而让用户更加明确的知道下一步该如何操作,以及自己所处的位置;网站导航主要可以通过文字导航、按钮导航、Flash导航等,本网站的导航设置如下图所示:
(图)5-2 网站导航设计

医生信息模块

本网站的主要功能是患者挂号功能,刚进入网站用户需要对自己的病情进行分析以及查询相关的医生才能更准确的完成预约挂号,所以医生信息也是网站设计的一个重要元素,专家展示模块主要包括显示医生列表、显示医生详细信息两个部分。
患者点击相关的医院便会出现该医院的相应专家信息如图所示:
(图)5-3医生信息展示
该页面的设计代码如下:
zhuanjiaAllByYiyuan:主要是通过数据库查询获取相关信息然后通过JSP页面传递给用户:

	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 管理员登录页面
管理员在网站里的主要作用是对患者挂号信息,医生信息,医院信息等进行管理,所以需要单独的来设计一个界面与用户区分开来,用户的登录界面在网站首页右侧,而管理员可以在网站首页下方找到管理员登录的图标,点击即可进入管理员登录的界面,登录界面中登录进入后才可以对网站信息进行修改管理等。管理员在网站的下方点击管理员登录按钮,输入自己的账号,密码进行校验后即可进入管理员登录界面,如下图所示:
(图)5-5 管理员登录界面设计
对管理员进行校验的代码:

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 管理员首页
管理员在这个页面能对自己密码修改,可以对医院的信息,医生信息,会员信息进行增加删除等,完成相应的操作后即可点击注销退出系统来退出管理员页面。

5.6 医生信息管理模块
医生信息管理是需要系统管理员来完成的,主要是让系统管理员对医生信息及时的更新,在上一步的页面中点击医生信息管理,即可实现对医生信息的添加,修改,删除等操作,界面如下图所示:
(图)5-7 医生信息界面
当点击左下方“添加医院按钮”时会出现如下界面:
(图)5-8 医生信息管理界面
医生信息处理模块的代码主要有:
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";
	}

综合查询平台

(1)医院信息,科室信息,医生信息查询
对不同的医院进行查询,对不同科室信息查询、对所有专家信息的查询,可以按照网站的导航进行大概的查询,每次查询不用特别精确的填写所有信息,但是如果患者希望可以精准的查询就必须填写完整的信息来查询。
(图)5-10 个人信息查询
(2)预约状态查询和取消预约
对于患者查看自己的预约信息以及是否预约成功,时间是否过期,事件是否正确,以及预约的具体信息等。对于用户临时会发生的冲突事件如在预约后,又有了新的事情冲突不能去就诊,患者可以登录系统点击信息管理,查看自己的网上预约挂号信息,修改自己的信息或者取消预约。对于取消预约的操作只能在预约日期之前进行过期后就不可以取消了,取消时需要患者填写姓名、取消原因等信息,信息填写完毕后就完成了取消预约的操作。
(3)停诊信息查询
查询医院最近的就诊情况、自己所在区域的医院公告,包括停诊信息,方便患者能及时的正确的作出选择。
(4)注册信息查询
用户注册后有自己的主页,可以点击个人信息管理来实现注册信息的查询更改等。
在这里插入图片描述

退出管理登录页面

退出后台管理模块是管理员用于退出后台管理系统的。管理员退出后台管理系统之后,需要单击【退出】按钮,此时虽然还在后台中但已不能对数据库进行操作;这时候单击其他功能模块时,将弹出后台登录窗口要求用户输入正确的用户名、密码以及验证码。

(图)5-10 退出系统界面

系统运行测试

测试的方法

系统测试的主要目的是为了在系统正式使用之前尽可能的发现及救助存在的问题,为羡慕开发人员以及测试人员明确思路,明确的之处测试工作的内容及方法。在需求方,开发费,测试服三方协议的基础上尽早的解决问题,减少项目风险,减少工程损耗,降低开发成本。
测试的主要手段有:手工测试、自动测试、模拟实际用户进行相关测试。
测试的内容有:功能测试 、性能测试、用户界面测试、兼容性测试、安全测试、接口测试、表单测试、数据库测试等。
本系统的测试环境为:win7 (64位) Borwser:IE7.0—IE9.0
功能测试:
测试项: 用户模块,管理员模块,连接测试,数据库测试
1.用户模块主要包括:用户的注册信息填写、用户登录、查询预约信息,在线预约,科室查询,医生信息查询,医院信息查询。

测试步骤及结果图:
(1)用户查询医院概况图:测试人员访问网站首页,点击医院信息菜单,浏览结果;
(图)6-2 用户查询医院信息管理系统测试结果
(2)用户注册测试:打开用户注册界面,观察运行结果是否正确;
(图)6-3 用户注册测试结果
(3)挂号测试:点击预约挂号菜单,观察是否可以成功挂号;
(图)6-4 用户挂号测试图
(4)科室查询图测试
(图)6-5 科室查询测试结果图
2.管理员模块有:登录验证,修改密码,找回密码,修改医院、科室、医生信息等。
(图)6-6 管理员模块
(1)管理员登录界面测试:
(图)6-7 管理员登录界面测试
(2)管理员密码修改测试:
(图)6-8 管理员密码修改测试
(3)会员信息管理测试:
(图) 6-9 会员信息添加测试
手工测试主要是简单单元测试;开发人员通过了解系统的内部知识来设计测试用例,手工测试主要适用于小型的简单的模块测试;适合代码组件极少和其他代码交互的情况下来使用。
测试过程同时也包括对功能的验证;对功能验证的过程中需要测试人员对系统的源代码进行简单的分析阅读;然后进行有限次数的测试;对产品核心功能进行测试,看能否实现一年过户要求。比如,登录时输入的邮箱错误时是不是有提示,如果没有相应的测试提示,说名我们发现了系统的缺陷。
经过核心功能的测试后要进入系统测试;文献[9]中提到测试是指通过了解Web服务运作的形式以及状态,最重要的是了解Web服务之间是怎么实现交互的。完成系统测试并不需要多长时间,有的项目甚至可以不用系统测试。

性能测试

性能测试是指系统对用户的请求所需要的响应时间是否在客户的忍受范围之内,是对事务处理速度,效率等和时间有关系的性能需的评测和评估,用来核实性能是否满足用户需求,经过测试显示本系统可以正常的如预期运行以满足用户需求。
总体概括各功能模块都可以正常进行,基本实现了系统设计时的各项功能要求;界面简洁,操作简单,系统使用方便;
在系统开发完成后,对系统进行了测试,情况如下:
(1) 各功能模块都可以正常进行,基本实现了系统设计时的各项功能要求;
(2) 界面简洁,操作简单,系统使用方便;
本系统的下一步开发方向如下:
(1) 加强网站个性化设计;
(2) 加强网站人性化服务功能;
总之,本此系统开发圆满成功,各模块运行正常。本次的设计开发为下一步的完善提供了重要的帮助和支持,将会更加提高我们的系统的功能。

猜你喜欢

转载自blog.csdn.net/liaoweilin0529/article/details/129489663