随着计算机科学的迅猛发展和互联网技术的不断推进,人们的生活方式发生了巨大的变化,同时也推动了整个软件产业的发展。在传统的医院看病,病人需要办理繁杂的手续和填写众多资料,这种操作极其不友好。在一些情况下,医生需要手写病历,不清楚病人的病史,治疗效果可能不佳。

为了解决这些问题,本毕业设计基于JavaEE技术体系,采用了前后端分离的思想,并结合了Spring Boot、Vue.js、MySQL、Redis、Docker等技术或框架,开发了一个医院管理系统。该系统旨在提供一个便捷、高效、安全的医疗服务平台,改善传统医院看病流程的不便和低效。

首先,该系统为患者提供了在线预约挂号和自助缴费的功能。患者可以通过系统选择合适的时间和医生进行预约,避免了排队等候的繁琐过程。同时,患者还可以通过系统进行自助缴费,无需再去窗口排队缴费,节省了大量时间和精力。

其次,医生可以通过系统进行病情诊断和处方开具。传统的手写病历容易出现信息不清晰的问题,而该系统可以提供一个结构化的病历记录和管理平台,医生可以更清楚地了解患者的病史和诊断结果,从而提供更准确的治疗方案。此外,医生还可以通过系统开具电子处方,方便患者在药房取药,减少了纸质处方的使用,降低了医疗错误的风险。

另外,医院管理员可以通过系统对各种信息数据进行管理和查看数据分析。管理员可以实时监控医院的运营情况,包括预约挂号情况、医生工作量、药品库存等,从而做出相应的调整和决策。

关键字 医院管理、Vue.js、Java、互联网技术

Abstract

With the rapid development of computer science and the continuous advancement of internet technology, people's lifestyles have undergone tremendous changes, which have also promoted the development of the entire software industry. In traditional hospitals, patients need to go through complicated procedures and fill out numerous forms, which is extremely unfriendly. In some cases, doctors need to handwrite medical records, resulting in unclear patient medical history and potentially ineffective treatment.

To address these issues, this graduation project is based on the JavaEE technology system and adopts the concept of front-end and back-end separation. It incorporates technologies or frameworks such as Spring Boot, Vue.js, MySQL, Redis, and Docker to develop a hospital management system. The system aims to provide a convenient, efficient, and secure healthcare service platform, improving the inconvenience and inefficiency of the traditional hospital visit process.

Firstly, the system provides patients with online appointment scheduling and self-service payment functions. Patients can use the system to choose suitable time slots and doctors for appointments, avoiding the tedious process of waiting in queues. Additionally, patients can make self-service payments through the system, eliminating the need to queue at the payment counter, saving a significant amount of time and effort.

Secondly, doctors can use the system for diagnosing medical conditions and prescribing medications. Traditional handwritten medical records often suffer from unclear information, while this system provides a structured medical record recording and management platform. Doctors can have a clearer understanding of patients' medical history and diagnosis results, enabling them to provide more accurate treatment plans. Furthermore, doctors can issue electronic prescriptions through the system, facilitating patients to collect medications from the pharmacy, reducing the use of paper prescriptions, and lowering the risk of medical errors.

In addition, hospital administrators can manage and analyze various information data through the system. Administrators can monitor the hospital's operational status in real-time, including appointment scheduling, doctor workload, and medication inventory, making necessary adjustments and decisions accordingly.

Keywords  Vue, Hospital, Java,SpringBoot, Internet

    

1章 绪论

1.1 项目背景

1.2 课题的主要任务

1.3 论文的章节安排

第2章 相关技术和开发环境

2.1 相关技术

2.1.1 Java语言

2.1.2 HTML、CSS、JavaScript

2.1.3 Redis

2.1.4 MySQL

2.1.5 SpringBoot框架

2.1.6 Vue.js

2.2 开发环境

3章 系统分析

3.1 可行性分析

3.1.1 经济可行性

3.1.2 技术可行性

3.1.3 运行可行性

3.2 业务流程分析

3.2.1 业务流程分析

3.2.2 数据流程图和逻辑流程图

3.3 用例图分析

3.4 数据需求分析

3.4.1 实体集分析

3.4.2 实体集数据项分析

3.4.3 数据操作分析

4章 概要设计

4.1 系统设计

4.1.1 系统架构设计

4.1.2 系统功能板块

4.2 ER图-数据库概要设计

4.3 系统后端接口设计

5章 详细设计

5.1 详细功能模块

5.1.1 用户登录模块

5.1.2 预约挂号模块

5.1.3 接诊模块

5.2 数据库详细设计

5.2.1 关系模型设计

5.2.2 逻辑结构设计

6章 系统实现

6.1 登录注册模块

6.2 管理员模块

6.3 医生模块

6.4 患者模块

7章 系统测试

7.1 软硬件环境

7.2 测试方法

7.3 测试用例

7.4 结果及分析

8章 总结与展望

8.1 总结

8.2 展望

参考文献

致谢

1章 绪论

1.1 项目背景

随着计算机科学的迅猛发展和互联网技术的不断推进,人们的生活方式发生了巨大的变化,同时也推动了整个软件产业的发展。把传统产业服务和计算机科学结合起来,已成为一种大趋势。在传统的医院看病,病人需要办理繁杂的手续和填写众多资料,这种操作极其不友好。在一些情况下,医生需要手写病历,不清楚病人的病史,治疗效果可能不佳。随着医院改革的不断深入,一套可以提升医院工作效率、减少医疗差错、给患者提供便捷服务的软件急需出现。我国医院信息管理系统的发展形式十分令人鼓舞,无论是国家、医院还是软件公司,都投入了大量的人力、物力、财力。大中型医院都有自己的医院管理系统,这说明医院本身在对HIS建设的认识都有了很大的提高。因此,开发一套管理医院信息,方便患者看病,方便医生诊断的系统是非常有必要的。

1.2 课题主要任务

本课题根据前期的问卷调查以及实地考察,作出了适合实际的需求分析,采用了前后端分离的思想,后端使用了SpringBoot和SpringMVC框架,前端使用了Vue.js和ElementUI进行页面的搭建,并且使用了MySQL数据库进行数据交互。整个系统的使用者有三种角色,分别是医院管理员、患者以及医生。

以下是三种不同的角色所分别拥有的功能:

  1. 管理员:可对医生信息,患者信息,挂号信息,药物信息,检查项目信息进行增删改查操作,可根据日期对医生进行排班操作,同时还可以查看数据的统计信息。
  2. 患者:可以预约当天以及往后七天的挂号,可以自助缴费,完成治疗后可浏览并打印病情报告单,同时也可对就诊医生进行评分。
  3. 医生:根据患者的挂号,可以诊断病因并开处方药以及检查项目,同时还有追加诊断功能,可以根据病人的病情需要申请当天入院。

1.3 论文的章节安排

本文主要设计和实现一个基于JavaEE的医院管理系统。

以下罗列出了本论文的章节安排:

第1章 绪论:简明扼要地介绍了本课题的研究背景和意义,阐明了课题的主要任务,最后陈列出了本论文的章节安排。

第2章 相关技术和开发环境:本章介绍了系统用到的相关技术和开发环境。

第3章 系统分析:从经济、技术、运行三个方面介绍了系统可行性,从业务、功能、数据以及数据操作四个方面介绍了系统需求分析。

第4章 概要设计:介绍了本系统的设计,包括架构、功能、数据库以及接口的设计。

第5章 详细设计:对系统的主要功能以及数据库的设计进行了详细介绍。

第6章 系统实现:展示了系统的主要功能界面,并对其操作进行说明。

第7章 系统测试:简要介绍了系统的测试方法和测试环境,编写了主要测试用例,并分析记录了测试结果。

第8章 总结与展望:对本次的课题设计进行了总结,展望该系统仍需完善的功能。

2章 相关技术和开发环境

2.1 相关技术

本课题在Windows系统下使用了JavaEE开发技术、Spring Boot技术、Vue.js技术、Tomcat服务器、Redis无关系型数据库、MySQL关系型数据库以及ElementUI前端框架技术进行开发。以下是关键技术及开发工具介绍。

2.1.1 Java语言

Java是一种面向对象的编程语言,由Sun Microsystems(现在是Oracle公司)于1995年首次发布。它具有可移植性、安全性和跨平台等特性,因此被广泛应用于各个领域的软件开发中。

Java的平台无关性是其最重要的特性之一。通过Java虚拟机(JVM),Java程序可以在不同的操作系统和硬件上运行,而不需要针对特定平台进行修改。这意味着一次编写的Java代码可以在Windows、Linux、Mac等多个平台上运行。

Java是一种面向对象的语言,它支持封装、继承和多态等面向对象的编程概念。这使得Java程序更易于理解、扩展和维护。它还提供了强大的异常处理机制,使开发者能够更好地应对错误和异常情况。

Java还具有丰富的标准库和第三方库,以及一个庞大的开发者社区。这些库提供了许多常用的功能和工具,使得Java的开发变得更加高效和便捷。

总之,Java是一种功能强大、可靠性高、安全性好的编程语言,非常适合开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序等。它的广泛应用和稳定性使得Java成为了当今世界上最流行的编程语言之一。 

2.1.2 HTML、CSS、JavaScript

HTML(超文本标记语言)是一种用于创建和组织网页内容的标记语言。它由一系列标签组成,标签用于标记和描述文档中的不同部分,如标题、段落、链接和图像等。HTML提供了结构化的标记方式,使得浏览器能够正确地解析并显示网页内容。

CSS(层叠样式表)是一种用于描述网页外观和布局的样式语言。通过CSS,可以对HTML文档中的元素进行样式设置,包括字体、颜色、大小、间距、边框和背景等。CSS的设计目标是将样式与内容分离,使得网页的样式可以独立于内容进行修改和调整,从而提高网页的可维护性和灵活性。

JavaScript是一种动态的、基于对象和事件驱动的脚本语言。它广泛用于前端开发,用于为网页增加交互性和动态性。通过JavaScript,可以操作网页的元素、处理用户的输入、响应事件、进行表单验证和数据处理等。它还可以通过AJAX技术与服务器进行数据交互,实现动态加载内容和实时更新。

HTML、CSS和JavaScript三者通常一起使用,被称为前端开发技术。HTML负责网页的内容和结构,CSS负责网页的样式和布局,JavaScript负责网页的交互和动态效果。它们共同作用于网页的不同方面,使网页成为一个功能丰富、外观吸引人且易于使用的用户界面。

总结起来,HTML提供了网页内容的结构和标记,CSS负责网页的样式和布局,JavaScript为网页增加了交互性和动态功能。三者的协同工作使得构建现代化、交互式的网页成为可能。

2.1.3 Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API[1]。Redis的主要优点如下:

  1. 支持多种数据类型,包括Set,Zset,List,Hash,String五种数据类型,操作方便,适用于众多业务场景。
  2. 持久化存储,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  3. 性能好,Redis是基于内存操作的,所以读写性能很好。Redis读的速度是110000次/s,写的速度是81000次/s。
  4. 丰富的特性,Redis支持Publish/Subscribe,通知,Key过期策略等特性。

2.1.4 MySQL 

    MySQL是一种关系型数据库管理系统,是一个多用户,多线程的SQL数据库。MySQL的优点是体积小、速度快、总体拥有成本低,开放源代码等,使得它成为了目前中小企业的最爱[2]。

2.1.5 SpringBoot框架

SpringBoot 框架是一种基于 Spring4.0 设计的开源框架。 此框架保留了Spring 框架的优点,从框架中删除 XML 配置文件,并简化了配置中的项目构和开发。使得系统开发者更加关注业务逻辑实现的实现,而不是系统的配置。

Spring Boot 是一种基于 Spring 模式下的微服务产品, 微服务是一种全新的软 件开发框架,使得可以很好的让较为庞大的软件产品,分为诸多较为零散的小型应用,这样就可以让软件在得到开发的过程中,降低其高耦合的问题[1]。开发人员不再处理 XML 和依赖,而更多地关注业务逻辑。在配置上采用约定减少了开发人员必须做出的决定的数量和许多 XML 配置,使代码自动化,但增加了 BUG 复杂性。

Spring 开发框架是一个基于 JEE 形式的产品,它已经成为主流的开发框架类型,可以全面降低其更新效率。因此,Spring 框架解决了许多配置问题,是对传统软件开发的创新开发。Spring 的自动化配置过程是基于 Java 注释方式的,这非常符合正在进行的自动化配置需要进一步增强的配置处理方式。在生产过程中,需要对指标、健康检查、外部配置等进行分析和处理。其次是去 XML化的开发,这样整个配置文件就可以被完全断开。在使用的过程中,可以独立设计框架,在不同的 App 中使用不同的应用程序,也可以使用 Jar 文件类型。

在生产过程中,首先要对指标进行有针对性的分析和处理、健康检查、外部配置等。其次,您还需要实现去 XML 化的开发,以便完全消除配置文件的影响。

2.1.6 Vue.js

    Vue.js是一套用于构建用户界面的渐进式框架[4]。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。

2.2 开发环境

表2-1展示了系统所需的开发环境。

表2-1系统所需开发环境表

操作系统

Windows 10

开发工具

IntelliJ IDEA 2021.03

Java环境

JDK1.8,Maven 3.8.1

数据库

MySQL 8.0.19、Redis 3.0.10

服务器

Tomcat 9.0.30

3章 系统分析

3.1 可行性分析

3.1.1 经济可行性

    本系统为本科毕业设计,未真正投入到实际生活中,所需要的硬件设备目前只需用到一部电脑,软件方面大部分为官方提高免费使用的,所需资料也可在网上或者查询相关书籍即可找到。因此,本系统开发在经济方面是可行的。

3.1.2 技术可行性

    本系统的主要开发语言为Java,基于目前较为流行的SpringBoot以及Vue.js框架进行编写。本系统采用了MySQL数据库作为数据存储基础阵地,保证了一个安全、稳定的数据使用环境。本系统使用的技术,基本上都是目前较为流行的并且是开源的技术,文档和资料在互联网上都非常健全,且有许多开发成功的项目。因此,本系统开发在技术方面是可行的。

3.1.3 运行可行性

    本系统基于SpringBoot框架,需要搭建Java,Maven,Redis,MySQL等软件环境。在搭建的过程中,有遇到过种种的问题,但通过查询资料和请教导师,都能一一解决,并能熟练掌握。因此,本系统开发在运行方面是可行的。

3.2 业务流程分析

3.2.1 业务流程分析

本系统的使用者一共有管理员、医生和患者这三种角色:

  1. 管理员:首页展示当天的预约挂号人数和住院人数,可对医生信息进行查增、批量导入和批量导出,可对患者、挂号信息进行查删,可对药物、检查项目和病床信息进行增删改查,可对医生进行排班操作,可查看数据统计页面。
  2. 医生:首页展示当天本人的预约挂号人数,可对患者进行诊断、开处方药、开检查项目以及追诊操作,可帮患者申请入院,可查看本人诊断的挂号信息。
  3. 患者:可预约挂号,可查看本人挂号信息,可查看本人住院信息,可对医生进行评价。

本系统的业务需求主要是对信息的基本管理、预约挂号和处理挂号等。

主要业务需求表3-1:

表3-1 业务需求表

编号

业务名称

操作者

1

医生信息管理

管理员

2

患者信息管理

管理员

3

挂号信息管理

管理员

4

药物信息管理

管理员

5

检查项目信息管理

管理员

6

病床信息管理

管理员

7

值班安排功能

管理员

8

数据分析功能

管理员

9

预约挂号功能

患者

10

查看报告单功能

患者

11

查看住院信息功能

患者

12

诊断功能

医生

13

申请住院功能

医生

3.2.2 数据流程图和逻辑流程图

总体业务流程图如下:

图3-1 管理员查询数据通用流程图

图3-2 医生查询和操作数据通用流程图

图3-3 患者查询和操作数据通用流程图

  1. 预约挂号功能:先选择科室,会显示出该科室的所有医生信息,选择挂号日期,会显示出该天值班的医生。患者可以选择医生进行挂号,点击挂号操作后,会要求你选择时间段,同时会显示出该时间段所剩的号源,若无剩余号源,挂号失败,否则成功。

图3-4 患者预约挂号流程图

  1. 医生处理挂号功能:医生按照顺序处理挂号信息,根据患者描述的症状填写相关信息,并且可以开处方药和开检查项目。患者检查完相应项目,可拿着报告单再次向医生寻求诊断,医生可以根据报告单填写病因和开处方药。

图3-5 医生处理挂号流程图

3.3 用例图分析

    根据本系统的使用者将用户划分为三种角色,分别是医院管理员,医生和患者。进入系统前需要通过账号以及密码进行登录,患者若无账号可先注册,医生的账号由管理员统一注册,登录成功后则根据他们的各自的角色进入相应的页面。

图3-6 用户关系用例图

医院管理员进入网站的页面后,可以进行的功能用例如图3-7所示:

图3-7 管理员用例图

  1. 医生管理:可以通过关键字搜索,分页展示医生信息,同时可以增加、删除、修改医生信息,支持批量导入、批量导出医生信息。
  2. 患者管理:可以通过关键字搜索,分页展示患者信息,同时也可以删除患者信息。
  3. 挂号管理:可以通过关键字搜索,分页展示挂号信息,也可以删除挂号信息。
  4. 药物管理:可以通过关键字搜索,分页展示药物信息,同时可以增加、删除、修改药物信息。
  5. 检查项目管理:可以通过关键字搜索,分页展示检查项目信息,同时可以增加、删除、修改项目信息。
  6. 病床管理:可以通过关键字搜索,分页展示病床信息,同时可以增加、修改、清空病床信息。
  7. 找回密码:支持管理员通过邮件修改密码。
  8. 值班安排:可选择从今往后一个月的任一天时间,对医生进行排班。
  9. 数据统计:管理员可查看挂号、患者等的数据统计信息。

医生进入网站的页面后,可以进行的功能用例如图3-8所示:

图3-8 医生用例图

  1. 处理挂号:医生可根据病人的描述,填写症状,还可开处方药和开检查项目。
  2. 追加诊断:该功能针对完成检查项目的患者,医生可根据检查报告单填写病因及建议,也可开处方药。
  3. 申请住院:医生可根据患者的病情申请住院。
  4. 查看挂号:医生可查看所处理患者的挂号信息,包括缴费信息等。

患者进入网站的页面后,可以进行的功能用例如图3-9所示:

图3-9 患者用例图

  1. 用户注册:支持新用户注册功能。
  2. 预约挂号:患者可以选择科室,选择时间段,选择医生进行预约挂号。
  3. 导出报告单:患者可以查看病情报告,并可自助打印病情报告单。
  4. 查看住院:患者可通过此功能查看本人的住院信息。

3.4 数据需求分析

3.4.1 实体集分析

    实体集是具有相同类型及相同属性的实体的集合[5]。本系统主要的实体集主要有:管理员信息,医生信息,患者信息,值班信息,药物信息,病床信息,检查项目信息,挂号信息等。

3.4.2 实体集数据项分析

    管理员信息:管理员ID,密码,姓名,性别,身份证号码,手机号,邮箱。

医生信息:医生ID,密码,姓名,性别,身份证号码,手机号,邮箱,职位,个人简介,所处科室,在职状态,挂号费用,评分人数,总分,平均分。

患者信息:患者ID,密码,姓名,性别,年龄,身份证号码,手机号,邮箱,患者状态,出生日期。

值班信息:值班ID,值班时间,值班医生ID。

药物信息:药物ID,名称,单价,单位,剩余数量,提供商。

病床信息:病床ID,患者ID,医生ID,住院时间,住院原因,病床状态,乐观锁版本号。

检查项目信息:项目ID,名称,价格。

挂号信息:挂号ID,患者ID,医生ID,症状,预约时间,结束时间,所开药物,所做检查,病因,所需缴费费用,缴费状态,挂号状态。

3.4.3 数据操作分析

管理员:增加医生,编辑医生信息,增加药物,编辑药物信息,增加检查项目,编辑检查项目,增加病床,编辑病床信息,增加值班

医生:编辑挂号信息,编辑病床信息。

患者:增加挂号,增加评分。

4章 概要设计

4.1 系统设计

4.1.1 系统架构设计

    本系统使用SpringBoot、Vue.js等主流开发框架进行开发,遵守MVC模式,同时使用到了Element-UI进行页面的设计。为方便前后端进行整合和日后系统的维护,本系统分为视图层、控制层、业务层和持久层。各层之间相互独立,通过之间的接口进行通信,高内聚,低耦合[6]。

图4-1 系统架构图

4.1.2 系统功能板块

图4-2 系统功能模块图

4.2 ER图-数据库概要设计

更多推荐