西安雁塔区中医医院挂号系统的设计与实现

时间:2023-01-25 06:33:02

大连东软信息学院

毕业设计(论文)

 

论文题目西安雁塔区中医医院挂号系统的设计与实现

 

 
 

 

 

 

 

 

 

 

 


系    所:

                                  

专    业:

                                  

学生姓名:

                               

学生学号:

                               

指导教师:

    导师1        导师2                      

导师职称:

  导师1职称   导师1职称                  

完成日期:

          年     月     日              

 

 

 

 

 

大连东软信息学院

Dalian Neusoft University ofInformation


西安雁塔区中医医院挂号系统的设计与实现

 

摘 要

针对传统手工预约挂号工作方式效率低下、病人挂号难的问题,决定开发医院网络预约挂号系统。该系统的设计实施将为医院预约挂号系统的运行做基础,为医院预约挂号管理工作提供良好的条件,使医院预约挂号管理更高效、更科学。

本系统的参与角色分为用户和管理员。前台用户主要进行注册、登录、科室及专家信息浏览、预约挂号、留言等操作。后台管理员主要进行科室管理、专家管理、用户管理、预约管理、留言管理、公告管理等操作。该系统的开发包括后台数据库的建立、维护和前台应用程序的开发两个方面。前者要求建立起数据一致性和完整性强、安全性好的数据库。而对于后者则要求开发的系统提供方便友好的人机对话界面,可以进行数据的录入、查询、修改、排序等功能。

本系统主要解决患者在需要就医时的挂号难的问题,以MyEclipse为开发工具,在设计方面采用B/S模式,采用当前最先进、最流行的WEB开发框架和技术之一的SSH框架(Struts + Spring +Hibernate)来完成整个系统的设计,在数据库的设计上利用了MySQL的便利性和实用性。

 

关键词:预约挂号,JSP,结构化分析,平台


Designand Implementation of Registration System of XiAnYanTaQu Traditional ChineseMedicine Hospital

 

Abstract

Aimingat the problem of low efficiency of traditional manual registration, patientregistration difficult work, decided to develop the hospital networkregistration system. The system design and implementation of the appointmentsystem for the operation of the hospital foundation, make an appointment forhospital management to provide good conditions, make the hospital appointmentregistration management more efficient, more scientific.

Thissystem is divided into user and administrator role. The user is registered,login, departments and expert information browsing, registration, message andother operations. The administrator of the department management, expertmanagement, user management, order management, message management, bulletinmanagement operation. The development of this system includes two aspects ofthe development of database creation and maintenance, and front-endapplication. The former requirement to establish data consistency andintegrity, security good database. For the latter requires the development of thesystem provides friendly man-machine interface, data can be input, query,modify, sorting and other functions.

Thissystem is mainly to solve the patients in need medical treatment of theregistration problem, using MyEclipse as a development tool, used in the designof B/S mode, using SSH framework of the WEB development framework and the mostadvanced technology, the most popular of the (Struts + Spring + Hibernate) tofinish the design of the whole system, using the MySQL convenience andpracticality in the database design.

 

Keywords: AppointmentRegistration,JSP,Structural Analysis,Platform


目  录

摘 要.......................................................................................................... I

Abstract............................................................................................... II

第1章 绪 论........................................................................................ 1

1.1 论文研究主要内容................................................................................. 1

1.2 国内外现状............................................................................................ 2

第2章 关键技术介绍............................................................................ 3

2.1 关键性开发技术的介绍......................................................................... 3

2.1.1 B/S............................................................................................................................. 3

2.1.2 JSP技术.................................................................................................................... 3

2.1.3 数据库简介.............................................................................................................. 4

第3章 系统分析.................................................................................... 5

3.1 构架概述................................................................................................ 5

3.1.1 功能构架.................................................................................................................. 5

3.1.2 模块需求描述.......................................................................................................... 5

3.2 系统开发环境......................................................................................... 6

3.3 系统任务的可行性分析......................................................................... 6

3.3.1 技术可行性.............................................................................................................. 6

3.3.2 经济可行性.............................................................................................................. 7

3.3.3 社会可行性.............................................................................................................. 7

第4章 系统设计.................................................................................... 8

4.1 概要设计................................................................................................ 8

4.2 详细设计................................................................................................ 9

4.2.1 后台管理员模块设计.............................................................................................. 9

4.2.2 前台用户模块设计................................................................................................ 10

4.3 系统数据库设计................................................................................... 11

4.3.1 概念结构设计........................................................................................................ 11

4.3.2 逻辑结构设计........................................................................................................ 14

4.3.3 数据库表设计........................................................................................................ 14

第5章 系统实现.................................................................................. 17

5.1 核心功能实现....................................................................................... 17

第6章 系统测试.................................................................................. 22

6.1 测试实例的研究与选择....................................................................... 22

6.2 测试环境与测试条件........................................................................... 23

6.4 实例测试.............................................................................................. 23

6.5 系统评价.............................................................................................. 24

6.5 测试结果.............................................................................................. 24

第7章 结 论...................................................................................... 25

参考文献................................................................................................... 26

致  谢....................................................................................................... 27

附  录....................................................................................................... 28


1章 绪  论

随着市场经济的发展,市场竞争压力加大,医院要生存发展,就必须在各个方面加强管理,并要求医院有更高的信息化集成,能够对医院的整体资源进行集成管理。现代医院已意识到,医院间的竞争不仅是医术方面的竞争,更是综合实力的竞争,要求医院有更强的资金实力,更快的市场响应速度。这就要求医院各个科室之间统一计划,协调步骤,汇总信息,调配医院内部资源,实现既要独立又要统一的资源共享管理。随着信息技术的发展,为提高预约挂号管理的管理效率,决定开发“医院预约挂号平台”。

用户来医院就诊,有可能排很长时间的队,都不能排上号。所以为了更好的适应信息时代的高效性,一个利用计算机来实现医院预约挂号平台管理工作的系统将必然诞生。基于这一点,设计了一个医院预约挂号平台,用来就预约的用户及医生进行管理,以便在最短的时间内,高效准确的完成整个预约过程。

计算机技术在现代管理中的应用,使计算机成为领导者和管理人员应用现代技术的重要工具。计算机辅助医院管理活动,可以极大地增强管理者采集、处理信息的能力,从而有利于管理者及时决策。计算机系统能根据管理过程的变化情况,将原始数据、资料等进行加工、保存,管理人员可以在解决具体问题需要信息资料时,随时进行检索查询,了解整个专家预约系统的动态情况,进行动态管理,从而有效的处理预约挂号的管理工作,实现医院预约管理的自动化,提高效率。

1.1 论文研究主要内容

通过使用本课题研究开发的系统,可以为用户到医院就诊提供高效、便捷的途径,解决传统医疗模式中人数过多所带来的诸多不便。使用户从传统的就医模式中解脱出来,特别是方便外地用户进行提前预约。解决传统医疗模式中的人工挂号对当前就诊情况反馈的不及时,导致对就诊人数控制不当的情况,使用户从漫长的挂号等待过程中解脱,从而提高医院整体的运作效率。

用户对就医的时间的选择更有自主权,从而使其在医院内的停留时间大大缩短,减少大量用户长时间停留在候诊大厅加大院内感染的可能性。通过实名制挂号,杜绝挂号的“倒号”行为。促进医院数字医疗系统的快速发展。预约挂号系统能够统计门诊用户的各种数据,为数字医疗各系统提供准确、及时的用户信息,同时也可为医院的科研、管理活动提供相应的依据。

1.2 国内外现状

随着互联网络的迅猛发展,Internet用户已呈几何级数增长,目前已经有很多医院投入使用网上挂号系统。据了解,预约挂号在国外颇为普及。在西方国家,病人看病都需要事先进行预约。随着预约挂号的深入推广,国内越来越多的医院也意识到预约服务在节约看病时间、分流患者、减轻医院压力上的作用。据了解,尽管存在很多困难,但全国各地的医院在尝试预约挂号的实践中还是提供了很多有益的做法。

在福建,全省范围内拨打12320海西健康热线电话,即可预约到福建省立医院等5家医院的专家号,只按市话费标准收费,不收取任何信息服务费。在北京,解放军总医院(三○一医院)于前不久专门开通了夜间门诊电话预约挂号66936619(不收预约费),可以毫不费力地约到各科室的专家,开通不久即见成效,目前已经成功分流了约1/3的患者。

此外医院还开通手机挂号功能,患者只需要发送短信就可以进行预约挂号。患者根据系统提示,输入姓名、性别、年龄、住址、付费方式、就诊卡号、预约时间、预约科室、预约项目、预约医师等内容,系统就会根据各门诊科室提供的具体情况,安排给患者合适的就诊排号位或挂号建议。在患者就诊前一天、就诊当天、就诊前一小时、就诊前5分钟,系统还会以短信的形式多次通知患者。患者如果有事无法就诊,通过发送短信,经过医师或护士同意,还可二次预约。

 

 


2章 关键技术介绍

2.1 关键性开发技术的介绍

2.1.1 B/S

JB/S结构,即Browser/Server(浏览器/服务器)结构,是WEB兴起后的一种网络结构模式,是对C/S结构的一种变化或者说是改进的结构。用户界面完全由WEB浏览器来实现,部分简单的事务逻辑在前端实现,但是主要事务逻辑都在服务器端实现,这是一种全新的软件系统构造技术。

B/S模式最大特点是:这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户端除了WEB浏览器,一般无须任何用户程序,用户可以通过WEB浏览器去访问存在于Internet上的各种数字资源信息,如文本、图像、视频等等,而这些信息都是由许多的Web服务器产生的,每个Web服务器通过各种方式与数据库服务器连接获取数据,大量的数据实际上存放在数据库服务器中。通过这种结构,许许多多的网连接到一起,从而形成了一个巨大的网,即全球网。

B/S模型结构图如图2.1所示:

图2.1 B/S模型结构图

从上图可见,这种结构的一个重要的特点是,除了基本的WEB浏览器,用户无需安装任何客户端软件,于是也不用担心任何软件升级和不兼容等任何客户端所遇到的问题。B/S模型的优点显而易见,它更适合这个网站的构建,有利于网站的维护和扩充。

2.1.2 JSP技术

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司一起参与建立的动态网页技术标准,其本质是一个简化的Servlet。它以 <%, %>形式实现HTML语法中的Java扩张,通过该技术可以实现网页的交互性、自动更新、因时因人而变的动态网页特性。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器收到客户端发出的请求页面后会对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

JSP具有以下特点:

作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。一次写入之后,可以在任何具有符合Java TM语法结构的环境中运行,取代过去单一平台开发。

具有强大的可伸缩性。处理消息的服务器从一台到多台:起初是小jar文件运行Servlet/JSP,再是多台服务器集群和负载均衡,再是多台Application进行事务处理。

JSP标签可扩充性。JSP技术能够使用扩展的JSP标签,JSP开发者能定制标签库,减少对脚本语言的依赖。

支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计功能复杂的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JavaBeans 组件来实现复杂的商务功能。

易于维护性。 JSP突出的组件技术使修改内容而不影响逻辑或者修改逻辑而不影响内容变得很容易实现,因此基于JSP技术的应用程序易于维护和管理。

如上的比较不难看出,JSP技术编写的程序运用要更加灵活,可扩展性更强。

2.1.3 数据库简介

由于本系统采用的数据库为MySQL数据库,所以这里对MySQL数据库的相关知识进行简单介绍。

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,于2008年1月16号被Sun公司收购,目前属于Oracle公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。[6]

MySQL虽然比像Oracle、DB2、SQL Server那样的大型数据库规模小、功能相对较弱,但是对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且MySQL开放源码,可以大大降低成本。所以,MySQL非常受欢迎,它已经成为世界上装机量最多的数据库产品。

 


3章 系统分析

3.1 构架概述

3.1.1 业务模型描述

西安雁塔区中医医院挂号系统的总体业务流程如图3.1所示。

图3.1 总体业务流程图

管理员在登录状态下添加医师以及科室信息,普通用户在登录状态下可以查看管理员添加的科室以及医师信息。普通用户可以在系统进行医师预约,如果预约成功。管理员界面显示预约信息,系统提示预约用户,预约成功。如果没有预约成功,系统提示用户预约失败。

3.1.2 对象用例模块概述

在图3.1高层用例图中提取了满足西安雁塔区中医医院挂号系统用户业务需求的基本用例。可以从普通用户和管理员用户这两个方面完成整个西安雁塔区中医医院挂号系统的正常运作。

图3.1 高层用例图

用例摘要描述如表3.1所示。

表3.1 用例摘要描述

用例标识(UC)

用例名称

摘要描述

0

普通用户登录               

普通用户在使用订票功能时需要进行身份验证。

1.1

普通用户注册

普通用户在首次使用西安雁塔区中医医院挂号系统的时候,需要注册获得系统使用权限。

1.2

查看公告

普通用户在登录或者未登录的状态下可以在进入系统后,在首页看到系统公告

1.3

查看科室

普通用户在登录或者未登录的状态下,可以看到管理员发布的科室信息。

1.4

修改个人信息

普通用户在登录状态下可以在个人信息页面,修改本人注册时填写的信息。

1.5

查看个人信息

普通用户在登录状态下,可以进入个人信息页面查看个人信息。

1.6

查看医师信息

普通用户在登录状态下,可以在医师页面查看所有医师的基本信息

1.7

预约医师

普通用户在登录的情况下可以查看医师的信息,并进行预约。


1.8

删除科室

管理员用户在登录状态下,可以将已经添加的科室进行删除操作。

1.9

添加科室

管理员在登录状态下,进入科室添加界面填写正确的科室信息。

2.0

修改科室

管理员在登录状态下,可以对已经添加的科室进行信息修改。

2.1

查看所有预约信息

管理员用户在登录状态下,可以查看所有用户的预约信息。

2.2

删除医师

管理员在登录状态下,可以在医师管理页面。删除已经添加的医师。

2.3

添加医师

管理员在登录状态下,可以在添加医师界面,填写医师信息,添加医师信息。

2.4

用户管理

管理员在登录状态下,可以查看所有注册的普通用户。包括对用户的删除和修改。

2.5

公告管理

管理员在登录状态下,可以在公告管理页面,对公告信息增加、修改和删除操作

2.6

修改医师

管理员在登录状态下,可以在医师管理页面,对已经添加的医师信息进行修改。

2.7

留言管理

管理员在登录状态下,可以在留言管理页面,对留言信息进行删除操作。

.1.3 对象用例模块描述

(1) 修改个人信息用例

普通用户在登录状态下,可以查看个人信息,并在个人信息页面修改该用户在注册时填写的用户信息。

修改个人信息用例描述如表3.2所示。

表3.2 修改个人信息用例

用例标识

1.4

用例名称

修改个人信息

参与者

普通用户

前置条件

普通用户已经注册该系统并且登录。

后置条件

普通用户在个人信息页面看到修改的个人信息。

用例概述

普通用户在登录状态下可以在个人信息页面,修改本人注册时填写的信息。

基本事件流

1. 普通用户进入系统,在个人信息页面可以查看用户的注册信息

2. 填写正确的修改信息

3. 点击提交

4. 提示用户信息修改成功

备选事件流

2a. 修改信息填写错误,系统提示信息修改失败。

备注

(2) 预约医师用例

普通用户在登录状态下,用户在医师的详细信息页面可以预约医师,如果用户预约医师成功,提示用户预约成功。

预约医师用例描述如表3.3所示。

表3.3预约医师用例

用例标识

1.7

用例名称

预约医师

参与者

普通用户

前置条件

普通用户在登录状态下

后置条件

该条预订信息,在个人预订界面和管理员的预订管理界面都可以看到该条预订信息。

用例概述

普通用户在登录的情况下可以查看医师的信息,并进行预约。

基本事件流

1. 普通用户登录系统后,在我的订单页面查看已经完成的机票订单

2. 点击需要改签的机票后边的改签按钮

3. 进入改签界面,选择要改签的机票,系统提示改签成功

4. 返回订单界面,该条订单后显示已改签,并且无法再次进入改签页面

备选事件流

3a.未选择改签机票,返回订单界面。该条订单显示改签,并且可以再次进入改签界面

备注

(3) 添加科室用例

管理员在登录状态下,进入科室添加界面填写正确的科室信息。

添加科室用例描述如表3.4所示

表2.4 添加科室用例

用例标识

1.9

用例名称

添加科室

参与者

管理员用户

前置条件

管理员已经登录

后置条件

普通用户在科室页面可以看到添加的科室信息

用例概述

管理员在登录状态下,进入科室添加界面填写正确的科室信息。

基本事件流

1. 管理员用户在登录状态下进入系统

2. 进入科室管理页面,

3. 填写科室信息

4. 提交信息,系统提示信息添加成功

备选事件流

3a. 如果科室信息填写错误,系统提示信息填写错误

备注

3.2 系统开发环境

本软件系统运行所需的软件环境如下:

(1)操作系统

应用服务器:Window7及以上版本

(2)数据库管理系统

MySQLVer 14.12 Distrib 5.0.27

本软件运行所需硬件环境如下:

(1)主机类型

应用服务器:i5-6300HQ,4核CPU,8G RAM

数据库服务器:i5-6300HQ,4核CPU,8G RAM

(2)网络类型

以太网

(3)存贮器容量

应用服务器:500G以上

数据库服务器:500G以上

3.3 系统任务的可行性分析

3.3.1 技术可行性

根据网络预约挂号系统在功能、性能上的要求和实现系统的各种约束条件,可以将本系统定位为一个数据库管理和查询的系统。现在数据存取技术先进,网页开发技术已较为成熟,软硬件性能要求、环境要求等各项条件均达到,相信利用现有技术条件应完全可以达到该系统的功能目标。

由以上分析可知,医院预约挂号平台的开发在技术上是完全可行的。

3.3.2 经济可行性

医院具有信息化的处理设施,并且拥有支持本系统的应用平台。因此无需再投入资金购买其他设施。

系统的开发基于本人对程序开发的实践学习而来,学校无需资金投入,并且软件开发过程投入的成本不高,因此开发经费完全可以接受。

由以上分析可知,医院预约挂号平台在经济上是可行的。

3.3.3 社会可行性

本系统的社会可行性主要从法律因素、用户使用可行性两方面进行研究。

(1)法律因素

本系统是根据医院预约管理的实际工作情况开发研制的,是通过大量的调研得出的,系统的软件设计是在独立的环境下完成的,无可供抄袭的软件产品。

(2)用户使用可行性

本系统对用户的要求,除了需要具备在Microsoft Windows平台上使用个人电脑的知识外,并不需要特别的技术能力。使用系统的管理员,需要具备对Tomcat服务器的使用能力,在投入使用前,无需对操作系统的人员进行培训。这样既减少投入成本又简化了操作环节。

由以上分析可知,医院预约挂号平台具有社会可行性。

 

 

 

 

 

 


4章 系统设计

系统设计是一个把软件需求转换成用软件系统表示的过程。通过对目标系统的分析和研究,做出了对医院预约挂号平台的总体规划,这是全面开发系统的重要基础。在对医院预约挂号平台全面分析调查的基础上,制定出医院系统的总体规划。系统设计包括系统总体设计、系统详细设计、系统数据库设计、系统开发工具、开发技术和开发模式等。

4.1 概要设计

概要设计的主要任务是把需求分析得到的DFD转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。

系统的概要设计中最重要的就是系统的模块化。为了降低软件系统的复杂性,使系统容易修改,提高可读性、可维护性可将系统划分为多个小的子模块。但模块的划分应尽量保持其独立性,而不能是任意的。每个模块只完成系统要求的独立的子功能,并且要求与其他模块关联最小而且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计出优质高效的软件结构打下基础。

下面采用结构化设计(Structure Design,简称SD),以需求分析阶段产生的数据流图DFD为基础,按一定的步骤映射成软件结构。

系统的结构图,如图3.1所示:

图4.1 系统结构图

普通用户在首次使用该系统的时候,需要进行用户注册。普通用户在登录状态下,可以查看个人信息,并且修改个人信息。用户在登录状态下可以在留言界面进行留言。还可以对科室进行查询,预约专家等。后台管理员在登录状态下,可以进行普通用户管理,科室管理、公告管理、医师管理等操作。

4.2 详细设计

4.2.1 后台管理员模块设计

管理员可以管理用户信息,如删除账号,可以对医院科室进行添加、修改、删除等操作、也可以对科室下属医师进行添加、删除和修改等操作,另外还可以进行留言管理和公告管理,其功能结构图如图3.2所示,其操作流程图如图3.3所示:

图4.2 管理员模块结构图

图4.3 管理员操作流程图

4.2.2 前台用户模块设计

用户可以进行注册并登录,自主修改个人基本信息,浏览科室信息和科室下医师信息并进行预约挂号,另外用户还可以在留言板上留言互动,该模块的结构图如图4.4所示,其操作流程图如图4.5所示:

图4.4 用户模块结构图

图4.5 用户模块流程图

4.3 系统数据库设计

数据库是本系统的核心和基础。它设计的好坏直接影响着整个系统的质量。数据是一切系统设计的基础,数据库就好比房屋的根基,如果设计的不合理、不完善,将在之后的系统开发过程中,甚至到后期的系统维护、功能变更或者功能扩充时,引起诸多问题,严重的甚至导致重新设计,重复大量已做过的工作。

4.3.1 概念结构设计

从数据需求分析中得出系统的实体属性图。

医生实体属性图如图4.6所示:

图4.6医生实体属性图

管理员实体属性图如图4.7所示:

图4.7管理员实体属性图

科室实体属性图如图4.8所示:

 

图4.8科室实体属性图

用户实体属性图如图4.9所示:

图4.9用户实体属性图

预约实体属性图如图4.10所示:

图4.10预约实体属性图

E-R模型的组成元素有:实体、属性、联系。E-R模型用E-R图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述。

从数据需求分析中得出系统的实体属性图,依照三范式原则,对实体之间的依赖关系进行了整合,得出系统E-R图,如图4.11所示:

图4.11系统E-R图

说明:在图中,矩形代表实体,菱形表示实体之间的关系。用无向边把菱形与有关实体连接,在菱形内标出联系的类型。实体的属性用椭圆表示,属性通过无向边与实体联系起来。

4.3.2 逻辑结构设计

对数据库中实现具体表的详细设计。即各数据库表的字段名、类型、长度等信息进行了详细的描述

根据系统E-R图,系统数据逻辑结构设计如下:

1)医生(医生编号,姓名,学历,职称,可预约人数,时间,所属科室编号,已预约人数)

2)科室(科室编号,科室名称)

3)用户(用户编号,姓名,用户名,密码,年龄,电话,性别,病情描述)

4)预约(预约编号,预约时间,病情描述,科室编号,医生编号,预约状态,备注)

5)管理员(管理员编号,用户名,密码)

4.3.3 数据库表设计

管理员信息表

表4.12

字段名

类型

长度

说明

id

Int

4

管理员编号(主键)

name

varchar

30

用户名

pwd

varchar

20

用户密码

说明:用户表用于存放管理员的信息。

医生信息表

表4.13

字段名

类型

长度

说明

id

Int

4

医生编号(主键)

name

varchar

30

医生姓名

time

datetime

8

时间

grxl

varchar

50

医生学历

zhic

varchar

50

职称

renshu

Int

4

可预约人数

renshu1

Int

4

已预约人数

hosDepartId

Int

4

科室编号(外键)

说明:用于存放医生的基本信息。

科室信息表

表4.14

字段名

类型

长度

说明

id

Int

4

科室编号(主键)

name

varchar

20

科室名称

说明:用来存放科室的基本信息。

 

用户信息表

表4.15

字段名

数据类型

长度

功能描述

id

Int

4

用户编号(主键)

name

varchar

20

用户名

pwd

varchar

20

密码

truename

varchar

20

姓名

age

Int

4

年龄

telephone

varchar

30

电话

sex

varchar

10

性别

describe

varchar

100

病情描述

说明:用来存放用户的基本信息。

预约信息表

表4.16

字段名

数据类型

长度

功能描述

id

Int

4

预约编号(主键)

time

datetime

8

时间

describe

varchar

100

病情描述

UserID

Int

4

用户编号

DocID

Int

4

医生编号

state

varchar

10

状态

beizhu

varchar

100

备注

         说明:用来存放预约的基本信息的。

4.4.1 登录用例对象设计

(1)登录用例实现

登录用例实现顺序如图4.5所示。

图4.5登录用例实现顺序图

普通用户进入登录界面后填写用户名和密码,点击登录按钮。界面将信息传给UserAction,UserAction将用户名和密码作为参数传给login(),login()方法将得到的用户名和密码,封装到User对象中。通过调用CommentDao中的findUser(User user)方法在数据库中查找该用户,如果成功找到该用户findUser()方法将该用户的所有信息返回给UserAction的login()方法,login()方法,将该用户的信息以对象方式存入Session,将地址转发到登录成功界面。如果没有在数据库中找到该用户,findUser(User user)方法返回null,UserAction的login()方法判断返回为空,在前台界面提示界面实现提示“对不起!用户名或密码错误,请重新输入!”

(2)设计类图

根据顺序图的分析得到登录用例的设计类图,如图4.6所示。

图4.6 登录用例设计类图

类图中action包中类的描述如表4.6所示。

表4.6 类图中action包中类的描述

类名

属性/方法

描述

SysuserAction

-userDao

Spirng自动注入UserDao实例

+login(String name,String password)

检查用户登录,返回json数据:{“userLogin”,”noRank”},表示用户没有登录权限;{“userLogin”,”success”},表示用户登录成功;{“userLogin”,”fail”},表示用户登录失败

类图中dao包中类的描述如表4.7所示。

表4.7 类图中dao包中类的描述

类名

属性/方法

描述


续表4.7 类图中dao包中类的描述

CommentDao

+findUser(User user)

通过用户对象中的条件,在数据库中查询结果并返回。

类图中model包中类的描述如表4.8所示。

表4.8 类图中model包中类的描述

类名

属性/方法

描述

SysuserAction

-Integer id;

- String uname;

- String upass;

- String realname;

- String sex;

- String age;

- String tel;

- String addr;

- String delstatus;

- String type;

- String email;

javaBean属性

+setter()

+getter()

所有属性的setter和geeter方法

4.4.2 预约医师用例对象设计

       (1)用例实现

预约医师用例实现如图4.7所示。

图4.7 医师预约用例实现顺序图

普通用户在登录状态下,进入医师详细页面。点击预约链接,进入预约界面。在预约界面填写预约信息,预约界面会将数据提交给YuyueAction,YuyueAction调用yuyueAdd()方法。yuyueAdd()方法会调用YuyueDao的yuyueAdd()方法,该方法会将传过来的用户数据插入到数据库中,如果插入成功逐层返回给页面,提示用户预约成功。如果插入数据库中失败,提示用户预约失败。

       (2)设计类图

根据顺序图的分析得到医师预约用例的设计类图,如图4.8所示。

图4.8医师预约用例设计类图

类图中action包中类的描述如表4.9所示。

表4.9 类图中action包中类的描述

类名

属性/方法

描述

ArticleAction

-yuyueDao

Spirng自动注入YuyueDao实例

+yuyueAdd()

该方法会调用YuyueDao中的yuyueAdd()方法,将这个方法返回的数据,返回给页面进行数据显示。

类图中dao包中类的描述如表3.17所示。

表4.10 类图中dao包中类的描述

类名

属性/方法

描述

YuyueDao

+ yuyueAdd()

通过用户对象中的条件,在数据库中查询结果并返回。

类图中model包中类的描述如表4.11所示。

 

表4.11 类图中model包中类的描述

类名

属性/方法

描述

Yuyue

- Integer id;

- int userId;

- int yishengId;

- String shijian;

- String beizhu;

javaBean属性

+setter()

+getter()

所有属性的setter和geeter方法

4.4.3 添加科室用例对象设计

(1)添加科室用例实现

添加科室用例实现顺序图如图4.9所示。

图4.9 添加科室用例实现顺序图

管理员用户在登录状态下,进入添加科室页面。页面会将用户填写的科室信息提交到keshiAction,keshiAction调用keshiAdd()方法。keshiAdd()方法会调用keshiDao的keshiAdd()方法,keshiAdd()方法会将用户提交的信息保存到数据库中。如果信息保存成功,提示用户预约成功。如果保存数据库中失败,提示用户预约失败。

(2)设计类图

图4.10添加科室用例实现类图

类图中action包中类的描述如表4.12所示。

表4.12 类图中action包中类的描述

类名

属性/方法

描述

keshiAction

- keshiDao

Spirng自动注入KeshiDao实例

+keshiAdd()

该方法会调用KeshiDao中的keshiAdd()方法,将这个方法返回的数据,返回给页面进行数据显示。

类图中dao包中类的描述如表4.13所示。

表4.13 类图中dao包中类的描述

类名

属性/方法

描述

KeshiDao

+ keshiAdd()

通过用户对象中的条件,在数据库中查询结果并返回。

类图中model包中类的描述如表4.14所示。

表4.14 类图中dao包中类的描述

类名

属性/方法

描述

Keshi

- Integer id;

- String keshiNamer;

- String keshiJianjie;

- String del;

javaBean属性

+setter()

+getter()

所有属性的setter和geeter方法


 

5章 系统实现

5.1 核心功能实现

西安雁塔区中医医院挂号系统主要功能包括:用户登录、注册、预约挂号、挂号管理、科室管理、医师管理等功能。一下是主要功能的实现方案:

(1)    首页功能实现

西安雁塔区中医医院挂号系统的首页用于普通用户登录,主页的功能主要是:用户登录和用户注册,查看公告等。实现效果如图5.1所示。

图5.1首页功能实现效果图

关键代码:

public String login(String userName,String userPw,int userType)

      {

             System.out.println("userType"+userType);

             try

             {

                    Thread.sleep(700);

             } catch(InterruptedException e)

             {

                    e.printStackTrace();

             }

             Stringresult="no";

             if(userType==0)

             {

                    Stringsql="from TAdmin where userName=? and userPw=?";

                    Object[]con={userName,userPw};

                    ListadminList=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";

                    }

             }

             if(userType==1)

             {

             }

             if(userType==2)

             {

             }

             return result;

      }

(2)    管理员界面功能

管理员界面的主要功能有:科室管理、专家管理、预约信息、用户管理、留言管理、公告管理等功能。实现效果如图5.2所示。

图5.2 管理员界面实现效果图

关键代码:

public String yishengMana(){

             String sql="fromTYisheng where del='no'";

             ListyishengList=yishengDAO.getHibernateTemplate().find(sql);

             for(inti=0;i<yishengList.size();i++)

             {

                    TYishengyisheng=(TYisheng)yishengList.get(i);

                    yisheng.setKeshiName(keshiDAO.findById(yisheng.getKeshiId()).getKeshiAnme());

             }

             Maprequest=(Map)ServletActionContext.getContext().get("request");

             request.put("yishengList",yishengList);

             returnActionSupport.SUCCESS;

      }

public String yishengDel(){

             TYishengyisheng=yishengDAO.findById(yishengId);

             yisheng.setDel("yes");

             yishengDAO.attachDirty(yisheng);

             this.setMessage("操作成功");

             this.setPath("yishengMana.action");

             return"succeed";

      }

      public StringyishengEditPre(){

             TYishengyisheng=yishengDAO.findById(yishengId);

             Maprequest=(Map)ServletActionContext.getContext().get("request");

             request.put("yisheng",yisheng);

             return ActionSupport.SUCCESS;

      }

      public String yishengEdit(){

             TYishengyisheng=yishengDAO.findById(yishengId);

             yisheng.setYishengName(yishengName);

             yisheng.setYishengSex(yishengSex);

             yisheng.setYishengAge(yishengAge);

             yisheng.setDel("no");

             yishengDAO.attachDirty(yisheng);

             this.setMessage("操作成功");

             this.setPath("yishengMana.action");

             return"succeed";

      }

(3)    我的预约信息

无得预约信息页面主要用于普通用在登录状态下,查看我的预约信息,可以看到本用户的预约信息。实现效果如图5.3所示。

图5.5 我的预约信息功能实现效果图

关键代码:                                                   

      public String yuyueManaMy(){

             Mapsession=ActionContext.getContext().getSession();

             TUseruser=(TUser)session.get("user");

            

             String sql="fromTYuyue where userId="+user.getUserId();

             ListyuyueList=yuyueDAO.getHibernateTemplate().find(sql);

             for(inti=0;i<yuyueList.size();i++)

             {

                    TYuyueyuyue=(TYuyue)yuyueList.get(i);

                    yuyue.setYishengName(yishengDAO.findById(yuyue.getYishengId()).getYishengName());

                   

             }

             Maprequest=(Map)ServletActionContext.getContext().get("request");

             request.put("yuyueList",yuyueList);

             returnActionSupport.SUCCESS;

      }

      public String yuyueMana(){

             Mapsession=ActionContext.getContext().getSession();

             TUseruser=(TUser)session.get("user");

             String sql="fromTYuyue";

             ListyuyueList=yuyueDAO.getHibernateTemplate().find(sql);

             for(inti=0;i<yuyueList.size();i++)

             {

                    TYuyue yuyue=(TYuyue)yuyueList.get(i);

                    yuyue.setYishengName(yishengDAO.findById(yuyue.getYishengId()).getYishengName());

                    yuyue.setUserName(userDAO.findById(yuyue.getUserId()).getUserName());

             }

             Maprequest=(Map)ServletActionContext.getContext().get("request");

             request.put("yuyueList",yuyueList);

             returnActionSupport.SUCCESS;

      }


6章 系统测试

在软件生命周期中,性能测试占据着重要的地位。在传统的瀑布模型中,软件测试仅在系统实现完成后、运行维护阶段之前进行,是在软件产品交付使用之前保证软件质量的重要手段。如今,软件工程界有了一种新的观点,即认为软件测试应该存在于软件生命周期每一阶段。在软件工程的每个阶段都进行软件测试可以检验本阶段的成果是否与预期的目标相符合,尽早发现中间的问题并加以改正,以免问题积累、扩散到最终测试无法解决。

对于软件来说,无论采用什么样的技术,采用什么样的方法,软件中总会存在错误。新的编程语言、先进的开发模式、严谨科学的开发过程只能减少软件中错误的产生,但绝不可能完全消除软件中错误的出现。这些错误需要通过测试来找出来,软件中的错误密度和频率也需要通过测试来进行评估。测试是所有工程学科的基本组成单元,是也软件开发过程的重要组成。测试伴随程序设计的诞生而诞生。据统计,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上,花费软件测试上的费用占到了软件开发的总成本的30%到50%。如果考虑包括维护阶段在内的整个软件生存期,软件测试的成本比例也许会有所下降,但维护工作实际上相当于二次开发,乃至多次开发,其中必定也包含着许多的软件测试工作。

6.1 测试实例的研究与选择

程序测试的主要方法分为两大类,白盒测试和黑盒测试。

白盒测试:一种是以程序的内部逻辑结构为依据而设计测试用例的方法,因而又称结构测试或玻璃盒测试,将软件看成一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查它与设计是否相符。白盒测试就是要选取足够的测试用例,对源代码实行比较充分的覆盖,以便尽可能多地发现程序中的错误。主要有两种方法:一种称为逻辑覆盖法,另一种称为路径覆盖法。

黑盒测试:也称功能测试,数据驱动测试等,它将待测对象堪称是一个黑盒子,在完全不考虑程序的内部结构和特性的情况下,只依据规格说明书检查程序的功能是否能正常使用。

黑盒测试主要是根据输入条件和输出条件的确定测试数据,来检查程序是否能产生正确的输出。进行黑盒测试主要有下面几种方法:等价分类法、边界值分析法、猜错法、因果图法。

本系统的测试综合了白盒测试、黑盒测试两种方法,但主要使用的是黑盒测试方法。在测试当中遵循了“尽早地和不断进行测试”,“保证测试用例的完整性和有效性”原则。通过测试达到以下测试目的:

(1)功能检查。

检查功能是否争取,是否遗漏或实现不了应该实现的功能等。

(2)接口检查。

检查能否正确地接受信息或输出信息。

(3)数据检查。

检查数据结构或外部信息是否有(如数据文件)访问错误。

(4)性能检查。

检查性能需求能否得到满足。

(5)初始化、终止检查。

检查是否能进行正确地初始化或终止。

6.2 测试环境与测试条件

处理器:Inter Pentium 166 MX或更高

内存:2G

硬盘:160G

操作系统:Windows 7

数据库:MySQL 5.0

Web服务器:Tomcat 6.0

6.4 实例测试

软件实例测试过程如表6.1所示:

测试目的:测试本系统用户能否成功的完成预约

预置条件:使用有效的用户身份登陆医院预约挂号平台;

测试过程:

预期结果:

用户登陆系统。

登陆成功

点击预约

预约成功。

注销登录,返回前台。输入刚才创建的用户登录名密码

登陆成功。进入系统前台界面。

医生登陆本系统后将会出现刚才预约的信息。

预约信息。

完成测试。

上述操作均达到“测试”要求。

表6.1 软件实例测试过程

6.5 系统评价

系统评价是指系统在正式运行了一段时间之后,对它在功能上、技术上和经济上所进行的审核评价。针对本系统的评价如下:

(1)系统功能评价

根据本系统开发前所订的目标,在系统完成后经过测试运行,该系统达到了预定的开发目标,在实际使用中的功能可以满足用户需求。

(2)系统技术评价

本系统设计合理,功能达到了预期目标,且系统运行后稳定可靠,安全性高,具有实用性,大大提高了信访办公效率。

(3)系统经济评价

在规定时间内,该系统完成了系统分析时所确定的系统开发目标,达到了设计要求,投入使用后为用户节省了大量人力物力财力,提高了科学管理水平。

6.5 测试结果

通过对系统的全面测试,所有测试条目都已经通过,实现了基本要求,系统可以正常运行,该网络预约挂号系统设计完成。

 

 

 


7章 结 论

计算机技术的飞速发展带动了很多行业的发展,计算机带给我们最直观的价值就是减少了人力物力的投资,提高了工作质量和效率,从而提高了整个社会的生产力。目前各大医院充分利用计算机资源和网络资源来提高自身的管理水平,而有关医院管理中的医院预约挂号管理工作是否要实现信息化、自动化也成为医院预约管理工作中争论的热点问题。

本文在分析医院网络预约挂号管理流程的基础上,设计并完成了该网络预约挂号系统。该系统是一个面向广大患者,具有一定实用性的医院预约管理系统。它主要解决患者在需要就医时的挂号难的问题。本系统采用当前最先进,最流行的WEB开发框架和技术之一的SSH框架(Struts + Spring + Hibernate)来完成整个系统的设计,在数据库的设计上利用了MySQL的便利性和实用性。

本文研究了基于B/S架构的医院预约挂号系统的设计与开发,系统可实现如下功能:

(1) 通过导航菜单可直接应浏览医院的基本信息,包括医院总体简介、各个科室的基本简介、以及科室所属医师的基本信息。

(2) 管理员可以通过相应的操作来添加、修改和删除系统中的科室信息及科室下医师信息。

(3) 管理员可以通过相应的操作来即时发布、修改和删除公告信息。

(4) 用户可以在浏览了所需要的医师信息以后,可以根据自己的实际情况,灵活的选择就医时间,减少了等待时间。

本系统不但能方便地查找医师信息进行预约服务,而且系统占用空间小,运行条件简单,界面友好,能在很大程度上缓解患者挂号难的问题。

但是在系统的设计时因为考虑完成时间的原因,系统对其中的一些功能进行了简化,但是不影响系统的整体功能的实现。系统的设计上可能存在不是很合理的地方,在后期可以进一步改变方案是系统更为合理。

 


参考文献

[1]张继东. MySQL数据库基于JSP的访问技术[J],电子技术与软件工程, 2017,15,169

[2]吕科. 基于B/S架构的医院门诊管理信息系统的设计与实现[D],西安电子科技大学, 2015

[3]刘华明,童彤. 基于JSP技术的作业管理系统的设计与实现[J],电脑知识与技术,2016,12,25,66-69

[4]孙鹏. 医院门诊信息管理系统的设计与实现[D],燕山大学,2016

[5]吴闻. 基于Java的Web开发技术浅析[J],科技广场,2013,05,44-48

[6]钟丽华. 自助挂号收费系统的设计与实现[D],山东大学,2016

[7]Ru Dan Lin,Lan Zhen Chen,Zhi Qiu Lin. The DemandAnalysis and Overall Design of Outpatient Registration Platform Based onInformation Processing Technology[J]. Applied Mechanics and Materials,2015,3744,713

[8]范文超. 基于PHP的医院挂号系统的设计与实现[D],北京林业大学,2016

[9]贾娜. 基于Java的医院挂号系统的设计[J],福建电脑,2016,32,11,132-133

[10]张岩,孙莉,王慧玲等. 基于Java Web的医院网上预约挂号系统[J],淮南师范学院学报,2016,18,03,112-114

 

 

 

 

 

 


  谢

大学生活在这个时候即将划上一个句号。但是对于我的人生道路来说,这仅仅是一个逗号,我将面对的是又一次征程的开始。

回忆过去,许许多多的事情浮现在脑海:刚上大学时欢乐心情和兴奋的场景还历历在目。一切都是那么新鲜,那么富有吸引力。有快乐也有艰辛,有收获也有失落。衷心感谢计算机学院所有支持帮助过我的老师,谢谢你们多年来的关心和爱护。同窗的友情同样难忘,谢谢你们与我共同走过了人生中不平凡的道路,给我留下了值得珍藏的美好记忆。   

最后,我要特别感谢我的指导教师XXX。本论文是在她的悉心指导和热情帮助下完成的,老师认真负责的工作态度,严谨的治学精神和精深的理论水平都使我受益匪浅。她无论在理论上还是在实践中,都给予我很大的帮助,使我专业技能的应用水平得到很大提高,这对于我以后的工作和学习都有益处。值此论文完成之际,特别向叶莲老师表示衷心的感谢和崇高的敬意。

由于本人水平有限,加上时间紧促,本文一定有不少缺点和不足,恳请各位老师给予帮助和指正。

 

 

 

 

 


  录

附录中的内容要与正文内容分开,用阿拉伯数字编号,须在数码前加上附录序码。如:图A.1,式(B.2),表C.3等。


大连东软信息学院

毕业设计(论文)原创承诺书

1、本人承诺:所提交的毕业设计(论文)是认真学习理解学校的《毕业设计(论文)工作规范》后,在教师的指导下,独立地完成了任务书中规定的内容,不弄虚作假,不抄袭别人的工作内容。

2、本人在毕业设计(论文)中引用他人的观点和研究成果,均在文中加以注释或以参考文献形式列出,对本文的研究工作做出重要贡献的个人和集体均已在文中注明。

3、在毕业设计(论文)中对侵犯任何方面知识产权的行为,由本人承担相应的法律责任。

4、本人完全了解学校关于保存、使用毕业设计(论文)的规定,即:按照学校要求提交论文和相关材料的印刷本和电子版本;同意学校保留毕业设计(论文)的复印件和电子版本,允许被查阅和借阅;学校可以采用影印、缩印或其他复制手段保存毕业设计(论文),可以公布其中的全部或部分内容。

5、本人完全了解《毕业(设计)论文工作规范》关于“学生毕业设计(论文)出现购买、他人代写、或者抄袭、剽窃等作假情形的,取消其学位申请资格;已经获得学位的,依法撤销其学位。取消学位申请资格或者撤销学位者,从处理决定之日起3年内,学校不再接受学生学位申请”的规定内容。

6、本人完全了解《学生手册》中关于在“毕业设计(论文)等环节中被认定抄袭他人成果者”不授予学士学位,并且“毕业学年因违纪受处分影响学位的学生不授予学士学位,并且无学士学位申请资格”的规定内容。

以上承诺的法律结果、不能正常毕业及其他不可预见的后果由学生本人承担!

 

学生本人签字:               

 

    年    月    日