Registered-reservation-syst.../README.md

30 KiB
Raw Blame History

基于Springboot+Mybatis和Oracle实现的医院预约挂号系统

一、可行性分析

1.1 项目开发背景

在当今的医疗体系中,绝大部分农村地区中小型医疗机构内部没有实现任何信息化管理,医院临床 信息,业务流程的数据依然采取纸质记录,造成数据容易丢失,对医院造成重大损失。医院内部的挂号、收费、药房、药库、科室、病床的信息管理都存在缺漏,对患者的临床信息不能做到完整保存、高效查询,数据的容易出错、遗漏,造成换院治病难,医院不敢治,错过最佳治疗期等现状,对患者的治 疗造成严重的影响,这些问题与医院信息化管理系统的建立实施目标基本一致。

而本项目产品更是响应社会市场的需求诞生,作为一个集医学、信息、管理等多种学科的综合系统,实现更现代化、科学化、规范化的手段来加强医院的管理、提高医院的工作效率,改进医疗质量; 它通过将人力资源、业务流程与专业技术进行有效的整合,使医院管理更有效、更高效,使患者能够得到及时的治疗和服务。医院预约挂号系统有着很好的应用前景,用它来代替医院现场挂号,实现患者看 病挂号网络化是一个必然趋势。随着计算机技术和网络技术的发展,它的功能将会得到不断的发展和完 善。

本系统以医院为背景,在认真调研和分析了医院的现状之后,根据用户的需求和各个功能的关系,作出了积极的设计方案。在新的管理资源和管理模式上,一定能使工作质量、工作效率等得到提高,推 动医院发展的步伐。

1.2 项目开发意义

开发医院预约挂号系统,使患者就诊系统化,规范化,自动化,从而达到提高管理效率的目的。本系统开发设计思想是实现患者预约挂号的数字化。尽量采用现有软硬件环境,及先进的管理系统开发方 案,提高系统开发水平和应用效果的目的;系统应符合医院管理的规定,满足日常管理的需要,并达到 操作过程中的直观,方便,实用,安全等要求;系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便于未参与开发的技术维护人员补充,维护;系统应具备数据库维护功能,及时根据用户 需求进行数据的添加,删除,修改等操作。

网上预约挂号系统是一种基于互联网的新型挂号系统,利用该预约挂号系统,患者就可以在家里预 约医院的医生,而无需受排队之苦。它能更好的改善就医环境,简化就医环节,节约就医时间,真正体现了一切以病人为中心,一切从方便患者出发,符合当今医院人性化服务温馨服务的理念。目前,门诊一直是阻挠医院提高服务质量的一个复杂环节,特别是医疗水平高、门诊量大的医院。而造成门诊量难 以提高的因素主要有两个方面:一是集中式挂号,就诊人员流量不均,具有不确定性,有明显的就诊高 峰和低谷。高峰期患者挂号排队长,就诊时间长,医生熟人插号现象,环境拥挤混乱,医生就诊时间

短、不仔细、服务差。而低谷期,医生无患者可看,医院资源浪费。二是医生号难挂,特别是名医生,会出现倒号、炒号现象,严重损害患者利益,影响医院的声誉。而采用网上预约挂号,可有效解决这一现象,通过网上有效的身份验证,杜绝倒、炒医生号的现象,提高医院门诊服务质量,取得良好的社会 效益和经济效益。此外,患者到医院就诊前对医院的相关信息了解不多,对所要挂的专科医生的情况不太了解,只能凭经验和印象进行选择,具有较大的盲目性。而当医院开通网上预约挂号服务以后,求医 者只需坐在家中轻点下鼠标,就可以挂上医院医生门诊号,可以做到“足不出户选医生”。网上预约正悄 然改变着求医者的看病观念。所以,预约看病应用将越来越广泛。

1.3 项目可行性分析

1.3.1 技术可行性

对系统的简要描述

基于 Java+Eclipse 开发环境的常用框架 Springboot+Mybatis 和使用 Oracle 数据库开发的面向患者、医院管理员的网上信息管理系,系统在安装了 Windows10 操作系统的个人电脑上使用。

系统处理流程

患者登录该系统后,根据自己病情,查询医院内自己所需的医生信息及医生简历,选中医生后,登记患者的姓名及电话号码以及简要病历,并填写预约时间。患者预约信息反馈到医院系统管理员后,管理员对预约信息进行整理,产生挂号单。挂号单开放给医院预约挂号号码发放处和医院内各医生,医院预约挂号号码发放处根据预约清单打印并在预约当日按照预约清单发放挂号号码,医院内各医生可以进入系统根据预约清单查询预约自己的患者的数量及患者的简要病历。

1.3.2 操作可行性

操作可行性主要研究系统的操作方式在该用户组织内是否可行。在当前的社会条件下,互联网已 经在中国全面覆盖,在中国各地,均可以通过硬件设备联网。而且各商业组织也拥有属于自己的内部局 域网,所以该系统可以实现联网。该系统在联网情况下,可以通过 PC 机访问系统的数据,所以该系统的 操作方式符合该用户组织。而且本系统操作方法简单,只需掌握基本上网知识,用户即可以轻易学会使 用方法及操作流程。系统管理员需要进行简单培训。

1.3.3 经济可行性

经济可行性主要研究该系统的经济效益能否超过它的开发成本。目前在中国,到医院就医的人流 量是非常庞大的,所以人们对医院的依赖性非常强。在这样的背景下,为医院设计这样的一个系统,其 经济效益是十分可观的而且取消了人们就医挂号的烦恼。又由于通过网络传递信息可以不受距离的限 制,因此可以节省大量的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高医 院的执行效率,即提高了医院的经济效益,所以从经济上完全是可行的。

二、项目开发计划

2.1 编写目的

此系统在可行性分析的基础上,进一步的说明对医院预约挂号系统的要求,准确的定义出医院预约 挂号系统要完成的任务,确定该系统要完成哪些工作,使系统尽可能的满足用户的要求,尽可能的简单 方便的运行。

2.2 项目概述

医院挂号系统后台管理主要包括:用户管理、预约信息管理、医生信息管理、相关业务的查询和系统维护等

  • 用户管理:在数据库中存储有各角色用户的信息信息,当某个角色的信息需要变化是时,可以随时进行信息的变更包括增加、删除、修改等功能,同时数据库中信息相应变化,并保持数据的时效性和完整性

  • 预约信息管理主要包括:随时查询患者的预约信息,如患者姓名、病例、所属科室等,而且可及时更新数据库数据

  • 医生信息管理主要包括:医生信息的增、删、改、查等

2.3 功能描述

  • 预约挂号:实现患者从网上直接预约挂号。预约的时候需要填写患者的姓名、预约日期、电话以及简单的病情症状

  • 预约查询:预约完成后患者可以查询自己的预约信息,当患者想改变医生则可取消本次预约

  • 取消预约:患者查询到自己的预约信息后,可以从次功能对先前的预约进行取消操作

  • 登录:管理员以及医生用户可以从登录功能模块进行登录而患者通过注册可以获得登录权限进而进行一系列操作

  • 整理医生信息:管理员登录以后可以对用户进行添加、删除和修改,实现对用户的管理

  • 调配医生:管理员登录后通过次模块可以查看患者预约信息,并对患者预约的医生进行调配

  • 医生查询:医生用户登录可以查询预约自己的患者信息。通过查询患者信息,可以对工作有一个合理的安排与准备(未实现)

三、需求分析

3.1 系统需求分析

目前,门诊一直是困扰医院提高服务质量的一个复杂环节,特别是医疗水平高、门诊量大的医院,而造 成门诊质量难以提高的因素主要有两方面:

  • 一方面集中式挂号(现在流行的分层挂号只是相对而言一个范围较小的集中式挂号),就诊人员流量不均、具有不确定性,有明显的就诊高峰和低谷(表现在整个医院不同门诊时间段及同科室的不同时间段)。 高峰期病人挂号排队长,就诊时间长,医生熟人插号现象,环境拥挤混乱,医生问诊时间短、不仔细、态度差。而低谷期,医生无病人看、溜号,医院资源浪费

  • 另一方面医生号(特别是名医生号)难挂,出现倒号、炒号现象,严重损害病人利益,影响到医院的声誉。而采用网上预约挂号,可有效的解决这一现象,还通过有效的身份验证,杜绝倒、炒医生号的现象,提高医院 门诊服务质量,取得良好的社会效益和经济效益

为了解决这一问题,我们需要一种能够方便快捷的挂号方式来满足各方面的需求,减少排队挂号的 痛苦和时间的浪费,而本课题所研究的基于 Springboot+boostrap 框架的医院网上挂号预约系统正好是为了解决这一问题而设计的方案,因此,本系统拥有很大的用户需求。

3.2 系统流程图

患者用户流程图

管理员用户流图

3.3 系统数据流图

数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数 据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。

数据流图有四种基本符号:

  • 正方形表示数据的源点或终点

  • 圆角矩形代表变换数据的处理

  • 开口矩形代表数据存储

  • 箭头表示数据流

医院网络预约挂号系统中需要处理的信息有登录信息,医生信息以及患者预约信息,根据数据信 息的流向画出本系统的数据流图。医院预约挂号系统顶层数据流图如下图所示。

3.4 数据库 ER 图

用户 ER 图

患者 ER 图

医生 ER 图

挂号表 ER 图

科室 ER 图

管理员 ER 图

系统ER图

3.5 功能需求

医院预约挂号系统主要实现一下几部分功能:内部人员权限管理,预约挂号,门诊流量统计,公告 栏管理,医生信息管理。

  • 内部人员权限管理模块:管理员以及医生的登录以及修改密码。管理员可以从登录模块进入系统对预约信息以及医生基本信息进行整理。医生可以从登录模块进入系统查询患者预约情况

  • 预约挂号模块:全国各地患者可以通过此模块进行预约挂号,并填写自己的挂号信息。可以查询自己先前的预约信息,也可以通过此系统取消先前的预约

  • 医生信息管理:管理员可以对医院医生的信息进行增加、修改和删除

3.6 性能需求

系统应具有配置灵活、易于维护、便于扩展、性能可靠等突出优点,支持面向对象的大型数据库系 统。如MySQL、Oracle 等,可处理大容量数据,并具有高安全性和可靠性。

  • 时间特性:操作响应时间一般在 1~3 秒之内,随之数据量的增大,操作的响应时间就要延长

  • 数据精度:各种数据的输入,输出要满足各种对数据精度的要求,严格按照系统要求的格式

  • 适应性:适应现有 Windows 系统的需求,并有可能适应更高级别的系统

3.7 运行需求

  • 用户界面:用户界面简单直观,一目了然,给用户带来极大的便利,让用户能够简单直接的运用本系统

  • 硬件接口:不需要特定的硬件或硬件接口进行支撑,一般微机均可运行

  • 软件接口:运行于 Windows XP 或者更高版本的操作系统上

3.8 其他需求

保密需求:必须输入相关的正确的用户名和密码才能进入系统,并且不同的用户选择相应的权限才 能登录成功。

  • 数据要求:对于患者和医生的联系电话,必须有严格的位数限制,经过分析研究,联系电话位数必须限制 11 位

  • 身份证要求:为杜绝无关人员对系统进行恶意的破坏,在患者预约挂号时,必须填写自己真实的 18 位身份证号,输入的位数不对以及输入的身份证格式不对,系统则会提示身份证输入有误,不予存 到系统数据库里,预约失败

  • 可维护性:平时由管理人员可以维护,遇到大问题或难解决的问题由开发人员进行维护

  • 可扩展性:在系统使用过程中,如果有医院在预约挂号方面有新的要求,则应能在本系统中进行扩展,增加新的功能

四、系统设计

4.1 数据库设计

用户信息表tuser

字段名 字段类型 允许为空 主键 备注
uid int(10) N Y 用户名
uname varchar(50) 姓名
upwd int(10) 密码
uphoto varchar(250) 头像
role int(10) 判定用户权限

患者表patients

字段名 字段类型 允许为空 主键 备注
pid int(10) N Y 患者 Id
pname varchar(50) 患者名字
psex int(10) 性别01
address varchar(50) 地址
ptel varchar(50) 电话号码
cardID varchar(50) 身份证号码
birthday datetime 出生日期

医生表doctors

字段名 字段类型 允许为空 主键 备注
did int(10) N Y 医生 Id
dname varchar(50) 医生名字
dsex int(10) 性别01
dpmtid int(10) 科室 id
dtel varchar(50) 电话号码
level int(10) 岗位级别
personalinfo text 个人介绍

科室表departments

字段名 字段类型 允许为空 主键 备注
dpmtid int(10) N Y 科室 Id
dpmtname varchar(50) 科室名
dpmtinfo text 科室介绍

级别表tlevel

字段名 字段类型 允许为空 主键 备注
lid int(10) N Y 级别 Id
level int(10) 医生级别(0:普通医生1医生)

挂号表registerTable

字段名 字段类型 允许为空 主键 备注
rid int(10) N Y 门诊号
pid int(10) 患者 id
rtypeid int(10) 挂号类型 id
dpmtid int(10) 科室 id
did int(10) 医生 id
registdate datetime 预约挂号时间
expenses int(10) 挂号费用
ispay int(10) 是否支付0已支付1未支付

挂号类型表registerType

字段名 字段类型 允许为空 主键 备注
rtypeid int(10) N Y 挂号类型 id
rtypename varchar(50) 挂号类型
price int(10) 挂号单价

公告表board

字段名 字段类型 允许为空 主键 备注
bid int(10) N Y 公告 id
btitle varchar(250) 公告标题
btext text 公告内容

4.2 系统功能模块设计

在需求分析的时候已经对系统的的功能进行了初步分析,在这里对系统功能进行详细的设计。

由于系统中面向的是医院的系统管理员,医院的坐诊医生,以及广大患者,所以对系统分为两大主 功能模块,即管理、患者两大主功能模块。

管理模块是针对管理员对系统的管理进行设计的功能模块,管理员需要进行登录系统后方可进行系 统信息管理,所以首先要有登录模块。管理员登录系统后需要对医生的信息进行增加、删除和修改,所 以在此主功能模块下设计了一个整理医生信息模块,管理员可以通过此模块对医生信息进行管理。管理 员还需要对每天患者预约的信息进行查看整理,所以设计了一个调配医生,调配医生模块用于当患者预 约的医生在预约当日临时有事不能按时坐诊的话,管理员可以通过此模块给相关患者进行医生调配,就 是给相 关预约患者调配一个与患者预约的医生同科室的医生,然后保存到数据库里,以便患者查询预约信息。在主页面有一个公告栏,来公示医院的通知以及医院的新闻动态,公告栏由管理员管理,所以在 管理主功能模块下设计了一个公告栏模块。

患者主功能模块下设计了三个分模块:预约、查询信息和取消预约。患者从网上进行预约挂号时, 需要填写预约的各种信息,患者可以进入预约模块填写自己的预约信息,并保存,预约成功。当患者预 约成功后,患者想查询先前的预约信息,则需要一个查询模块,所以在患者主功能模块下设计了一个查 询信息模块。当患者在预约当日有事不能按时就诊,患者需要取消先前的预约,所以在患者主功能模块 下设计了一个取消预约的模块。医院预约挂号系统的功能模块如下图所示。

4.3 功能分析

  • 登录:当管理员及患者用户需要进入系统时,可以从登录模块输入用户名和密码,并选择自己权限 进行登录。当输入错误的信息时系统拒绝访问

  • 调配医生:当患者预约的专家在预约的时间临时有事情不能给患者看病的情况下,管理员可以对此患者进行专家调配,调配为同一科室的医生

  • 管理医生信息:管理员通过此功能添加、修改和删除医生信息,及时更细医院里医生的信息,以方 便患者进行预约

  • 预约:患者进入系统后,可以查看各个科室的各个医生信息,根据自己的病情预约适合的医生

  • 查询信息:当患者预约完毕后,可以通过查询功能,对自己先前的预约信息进行查询、核对

  • 取消预约:当患者临时有事不能到医院看病时,可以通过查询信息查询到自己的预约信息,然后取消自己先前的预约

4.4 系统后端实体层、持久层实现

管理员类

科室类

医生类

患者类

挂号类

患者控制层

挂号控制层

前端页面渲染(结合 Thymeleaf 模板引擎)

遍历患者信息

抽取公共页面

患者登陆页面编写

页面定制

4.5 程序流程设计

管理员使用流程图

患者查询个人预约流程图

五、项目展示

5.1 患者用户

采用了 js 特效,登陆页面实现动态,给予用户良好的体验感

登陆后显示当前用户名字,并且首页实现日历功能

若用户未注册需先注册再使用该系统

页面实现侧面菜单栏

选择挂号医生、挂号时间

查看个人预约页面,实现取消预约功能和二次预约功能

5.2 管理员用户

登陆页面

首页,管理患者信息

修改患者用户信息

新增患者用户信息

管理医生信息

管理科室信息

六、项目测试

6.1 测试目的

测试为了发现程序中的错误而执行程序的过程通过分析错误产生的原因和错误的发生趋势可以帮助 项目管理者发现当前软件开发过程中的缺陷以便及时改进。

测试是为了证明程序有错误,而不是证明程序没有错误。一个成功的测试是发现了至今为发现的错误的测试

6.2 测试方案

该系统主要运用的是黑盒测试,黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常 使用。在测试中,把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。只在程序借口进行 测试,检查程序功能是否能按照正常的规定使用,程序是否能适当的接受输入数据并产生正确的输出信 息,程序运行过程中是否保持外部信息的完整性。

6.3 项目测试

登陆用例测试

输入数据 预期输出 测试结果
错误的用户名和密码 登陆失败,且前端有提示 与预期输出一致
正确的用户名和密码 登陆成功,跳转到首页 与预期输出一致

预约挂号测试

输入数据 预期输出 测试结果
录入信息不填姓名或身份证号码 预约失败 与预期输出一致
输入的身份证号码位数不对 预约失败 与预期输出一致
输入正确的身份信息 预约成功 与预期输出一致

管理员管理用户信息

操作 预期输出 测试结果
添加用户信息 添加成功 与预期输出一致
修改用户信息 修改成功 与预期输出一致
删除用户信息 删除成功 与预期输出一致

管理员管理用户信息

操作 预期输出 测试结果
添加用户信息 添加成功 与预期输出一致
修改用户信息 修改成功 与预期输出一致
删除用户信息 删除成功 与预期输出一致

6.4 综合测试

在以上测试的基础主,对系统功能进行了整体测试,依次检验系统功能是否符合系统开发的目标。 经过使用大量的数据多次进行系统测试,发现了系统存在的问题并及时改进,最终实现了网站的开发目 标。

6.5 网站维护

软件维护就是在软件已经交付使用之后,为了纠正错误或满足新的需要修改软件的过程。 软件维护可以分为四类:

  • 改正性维护:在程序使用期间,用户必然会发现程序错误,把遇到的错误问题报告给维护人员然后由系统维护人员进行改正错误

  • 适应性维护:为了和变化的环境适当的配合而进行软件修改

  • 完善性维护:为了满足用户使用过程中提出的新功能或着修改系统中已有功能的需求,而对软件进行的完善性维护

  • 预防性维护:为了改进软件未来的可维护性和可靠性,或者给软件未来的改进奠定更好的基础而对软件进行维护

六、项目总结

大学生涯转眼已到尾声,当初迈进大学校门的情景还历历在目,转而大学即将结束,我也要步入社 会实习了。在经过一个月的探索与实践中,我终于如愿以偿的完成了最后一门课程设计。

在课程设计中,我采用了 Springboot+Mybatis+Oracle 数据库技术。由于在以前的课堂学习中,大 部分在与学习理论知识初先把课堂理论知识运用干这个完整的课程设计的实践中感觉有点吃力,但是在 通过查询网上资料和自己的努力下,终于圆满的完成了课程设计。

在这段时间里,我学到了很多知识也有很多感受。从当初对 Java 不太了解的状态,在老师的教授下,我开始学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐洁晰,让自己非常稚嫩的设计 一步步完善起来每一次改进都是我学习的收获,每一次试验成功都会让我兴奋好一段时间。

自己所做的这个挂号系统采用的技术也比较新颖和流行,是现在实习工作的基本要求之一,同时让 我也充分认识到医院网络预约挂号系统给患者和医院带来的极大的方便,在认真调研和分析了医院的现 状之后,根据用户的需求和各个功能的关系,作出了积极的设计方案。在新的管理资源和管理模式上, 一定能使工作质量、工作效率等得到提高,推动医院发展的步伐。