返回文章列表

计算机毕设必看!医疗管理系统全栈开发指南✨ 附源码

2026年1月14日129 阅读40 分钟阅读
计算机毕设必看!医疗管理系统全栈开发指南✨ 附源码

🏥 医疗挂号管理系统

基于 Spring Boot 开发的在线医院管理系统

📋 目录


🎯 系统简介

医疗挂号管理系统是一款面向医院管理的综合性信息化平台,旨在提高医院挂号、门诊、病历管理等业务流程的效率。系统采用前后端分离架构,提供了完善的用户权限管理和业务流程控制。

✨ 核心特点

  • 🔐 多角色权限管理:支持管理员、医生、挂号人员、划价人员等多种角色
  • 📊 完整业务流程:覆盖挂号→门诊→病历→划价→取药全流程
  • 💊 药品库管理:支持药品信息维护、分类管理
  • 📝 电子病历:医生可在线填写病历、开具处方
  • 🏥 门诊排班:医生门诊时间管理,支持按星期排班
  • 🩺 体检管理:患者体检记录电子化管理
  • 📤 文件上传:支持图片、文档等文件上传功能
  • 📑 数据导出:支持 Excel 数据导出功能

🛠️ 技术架构

后端技术栈

技术版本说明
Spring Boot2.2.2.RELEASE核心框架
MyBatis-Plus2.3ORM 框架,简化数据库操作
MyBatis Spring Boot Starter2.1.1MyBatis 集成
MySQL Connector8.0+MySQL 数据库驱动
Apache Shiro1.3.2安全框架(Token 认证)
Spring Boot Starter Web2.2.2Web 开发框架
Spring Boot Starter Thymeleaf2.2.2模板引擎
Hutool4.0.12Java 工具类库
FastJson1.2.8JSON 解析库
Apache POI3.9Excel 文件处理
Baidu AI SDK4.4.1百度人工智能 SDK
Apache Commons3.0通用工具库
Commons IO2.5IO 工具库
Validation API2.0.1数据校验

前端技术栈

技术版本说明
Vue.js2.6.10前端框架
Element UI2.13.0UI 组件库
Axios0.19.2HTTP 客户端
Vue Router3.1.5路由管理
ECharts4.6.0数据可视化图表
Vue Quill Editor3.0.6富文本编辑器
Vue QR3.2.2二维码生成
Vue JSON Excel0.3.0Excel 导出
Vue AMap0.5.10高德地图组件
Print.js1.5.0打印功能
JS-MD50.7.3MD5 加密

数据库

  • MySQL 5.7.32+
  • 数据库名称:xxx
  • 字符集:UTF-8

开发工具

  • 构建工具:Maven 3.x
  • JDK 版本:JDK 1.8
  • 推荐 IDE:IntelliJ IDEA / Eclipse
  • 推荐浏览器:Google Chrome

🎨 功能模块

1️⃣ 系统管理模块

  • 用户管理

    • 管理员账户管理
    • 用户角色分配
    • 权限控制
  • 字典管理

    • 性别类型字典
    • 科室类型字典
    • 职位类型字典
    • 药品类型字典
    • 病例状态字典
  • 配置管理

    • 系统参数配置
    • 文件上传配置

2️⃣ 患者管理模块

  • 患者档案

    • 患者基本信息录入
    • 患者姓名、手机号、身份证号管理
    • 患者头像上传
    • 性别信息维护
  • 患者查询

    • 按姓名、身份证号搜索
    • 患者信息查看

3️⃣ 医生管理模块

  • 医生信息管理

    • 医生账户管理
    • 医生基本信息(姓名、联系方式)
    • 医生头像上传
    • 科室分配(骨科、眼科、内科等)
    • 职位设置(普通医生、主治医师、主任)
    • 挂号费设置
  • 医生门诊管理

    • 门诊名称及位置设置
    • 星期几坐诊安排
    • 门诊详情说明

4️⃣ 挂号管理模块

  • 挂号业务

    • 患者挂号登记
    • 自动生成挂号编号
    • 选择就诊医生
    • 挂号人员信息记录
    • 挂号时间记录
  • 挂号人员管理

    • 挂号人员账户管理
    • 挂号人员基本信息维护
    • 权限分配

5️⃣ 门诊管理模块

  • 门诊信息

    • 门诊名称管理
    • 门诊位置信息
    • 医生排班管理
    • 星期几坐诊时间
    • 门诊详情介绍
  • 门诊查询

    • 按医生查询门诊
    • 按星期查询排班

6️⃣ 病例管理模块

  • 病例记录

    • 病例编号自动生成
    • 关联挂号信息
    • 关联医生信息
    • 患者主诉记录
    • 诊断结果填写
    • 开药详情记录
  • 病例状态管理

    • 已出单状态
    • 已划价状态
    • 已取药状态
  • 病例查询

    • 按病例编号查询
    • 按患者查询
    • 按医生查询

7️⃣ 体检管理模块

  • 体检项目

    • 体检编号自动生成
    • 基本体征(体重、身高)
    • 视力检查(左眼度数、右眼度数)
    • 心血管检查(心率、心音)
    • 器官检查(肺部听诊、肝脏听诊)
    • 血常规检查详情
    • 尿常规检查详情
    • 其他检查详情
  • 体检报告

    • 体检结果查看
    • 体检报告打印

8️⃣ 药品管理模块

  • 药品信息管理

    • 药品编号管理
    • 药品名称维护
    • 药品图片上传
    • 药品分类(药品类型1-5)
    • 药品介绍说明
  • 药品查询

    • 按药品名称搜索
    • 按药品类型筛选
    • 按药品编号查询

9️⃣ 划价管理模块

  • 划价业务

    • 病例划价处理
    • 费用计算
    • 划价状态更新
  • 划价人员管理

    • 划价人员账户管理
    • 划价人员基本信息
    • 权限分配

🔟 文件管理模块

  • 文件上传

    • 图片上传(支持头像、药品图片等)
    • 文件大小限制(最大 1000MB)
    • 文件格式验证
  • 文件访问

    • 静态资源访问
    • 文件下载功能

👥 系统角色

🔑 角色权限说明

角色登录账户密码权限说明
管理员adminadmin系统最高权限,可管理所有模块
医生a1 / a2 / a3123456查看挂号、填写病历、查看门诊、管理体检
挂号人员a1 / a2 / a3123456患者挂号、挂号信息查询
划价人员a1 / a2 / a3123456病例划价、费用结算

👨‍⚕️ 医生角色详情

  • 科室分类:

    • 骨科
    • 眼科
    • 内科
  • 职位等级:

    • 普通医生
    • 主治医师
    • 主任

💻 环境要求

必需环境

  • ✅ JDK 1.8 或更高版本
  • ✅ MySQL 5.7.32 或更高版本
  • ✅ Maven 3.x
  • ✅ Node.js 10.x 或更高版本(前端开发)

推荐配置

  • 操作系统:Windows 10/11、macOS、Linux
  • 内存:4GB 及以上
  • 硬盘:1GB 可用空间

🚀 快速开始

1. 项目获取

2. 导入数据库

-- 1. 创建数据库
CREATE DATABASE yiliaoguahao DEFAULT CHARACTER SET utf8;

-- 2. 导入数据库脚本
-- 执行项目根目录下的 db.sql 文件
source db.sql;

3. 配置数据库连接

编辑 src/main/resources/application.yml 文件:

spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/yiliaoguahao?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: root        # 修改为你的数据库用户名
    password: 123456      # 修改为你的数据库密码

4. 启动后端服务

方式一:使用 IDE

  1. 使用 IntelliJ IDEA 或 Eclipse 打开项目
  2. 等待 Maven 依赖下载完成
  3. 运行 OnlineHospitalApplication.java 主类

方式二:使用 Maven 命令

cd onlineHospitalSystem
mvn clean install
mvn spring-boot:run

后端服务启动成功后,访问地址:http://localhost:8080/onlineHospitalSystem

5. 启动前端服务

cd onlineHospitalSystem/src/main/resources/admin/admin

# 安装依赖(首次运行)
npm install
# 或使用 yarn
yarn install

# 启动开发服务器
npm run serve
# 或使用 yarn
yarn serve

前端服务启动后,浏览器自动打开:http://localhost:8081

6. 访问系统

后台管理系统访问地址:

http://localhost:8080/onlineHospitalSystem/admin/dist/index.html

默认登录账户:

  • 管理员:账户 admin,密码 admin
  • 医生:账户 a1,密码 123456
  • 挂号人员:账户 a1,密码 123456
  • 划价人员:账户 a1,密码 123456

📸 系统截图

待添加系统实际运行截图


📁 项目结构

springboot203医疗挂号管理系统/
├── onlineHospitalSystem/                 # 主项目目录
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/com/
│   │   │   │   ├── ServletContextListener/    # 监听器
│   │   │   │   │   └── DictionaryServletContextListener.java
│   │   │   │   ├── annotation/                # 注解
│   │   │   │   │   ├── APPLoginUser.java
│   │   │   │   │   ├── IgnoreAuth.java
│   │   │   │   │   └── LoginUser.java
│   │   │   │   ├── config/                    # 配置类
│   │   │   │   │   ├── InterceptorConfig.java      # 拦截器配置
│   │   │   │   │   ├── MyMetaObjectHandler.java   # 字段填充处理器
│   │   │   │   │   └── MybatisPlusConfig.java     # MyBatis-Plus配置
│   │   │   │   ├── controller/                # 控制器层
│   │   │   │   │   ├── BingliController.java        # 病例管理
│   │   │   │   │   ├── CommonController.java        # 通用接口
│   │   │   │   │   ├── ConfigController.java        # 配置管理
│   │   │   │   │   ├── DictionaryController.java    # 字典管理
│   │   │   │   │   ├── FileController.java          # 文件上传
│   │   │   │   │   ├── GuahaoController.java        # 挂号管理
│   │   │   │   │   ├── GuahaorenyuanController.java # 挂号人员管理
│   │   │   │   │   ├── HuajiarenyuanController.java # 划价人员管理
│   │   │   │   │   ├── HuanzheController.java       # 患者管理
│   │   │   │   │   ├── MenzhenController.java       # 门诊管理
│   │   │   │   │   ├── TijianController.java        # 体检管理
│   │   │   │   │   ├── UsersController.java         # 用户管理
│   │   │   │   │   ├── YaopinController.java        # 药品管理
│   │   │   │   │   └── YishengController.java       # 医生管理
│   │   │   │   ├── dao/                       # 数据访问层
│   │   │   │   │   ├── BingliDao.java
│   │   │   │   │   ├── CommonDao.java
│   │   │   │   │   ├── ConfigDao.java
│   │   │   │   │   ├── DictionaryDao.java
│   │   │   │   │   ├── GuahaoDao.java
│   │   │   │   │   ├── GuahaorenyuanDao.java
│   │   │   │   │   ├── HuajiarenyuanDao.java
│   │   │   │   │   ├── HuanzheDao.java
│   │   │   │   │   ├── MenzhenDao.java
│   │   │   │   │   ├── TijianDao.java
│   │   │   │   │   ├── TokenDao.java
│   │   │   │   │   ├── UsersDao.java
│   │   │   │   │   ├── YaopinDao.java
│   │   │   │   │   └── YishengDao.java
│   │   │   │   ├── entity/                    # 实体类
│   │   │   │   │   ├── model/                       # 模型类
│   │   │   │   │   ├── view/                        # 视图类
│   │   │   │   │   ├── vo/                          # VO 类
│   │   │   │   │   ├── BingliEntity.java
│   │   │   │   │   ├── ConfigEntity.java
│   │   │   │   │   ├── DictionaryEntity.java
│   │   │   │   │   ├── EIException.java
│   │   │   │   │   ├── GuahaoEntity.java
│   │   │   │   │   ├── GuahaorenyuanEntity.java
│   │   │   │   │   ├── HuajiarenyuanEntity.java
│   │   │   │   │   ├── HuanzheEntity.java
│   │   │   │   │   ├── MenzhenEntity.java
│   │   │   │   │   ├── TijianEntity.java
│   │   │   │   │   ├── TokenEntity.java
│   │   │   │   │   ├── UsersEntity.java
│   │   │   │   │   ├── YaopinEntity.java
│   │   │   │   │   └── YishengEntity.java
│   │   │   │   ├── interceptor/               # 拦截器
│   │   │   │   │   └── AuthorizationInterceptor.java
│   │   │   │   ├── model/enums/               # 枚举类
│   │   │   │   │   └── TypeEnum.java
│   │   │   │   ├── service/                   # 服务层
│   │   │   │   │   ├── impl/                        # 服务实现类
│   │   │   │   │   ├── BingliService.java
│   │   │   │   │   ├── CommonService.java
│   │   │   │   │   ├── ConfigService.java
│   │   │   │   │   ├── DictionaryService.java
│   │   │   │   │   ├── GuahaoService.java
│   │   │   │   │   ├── GuahaorenyuanService.java
│   │   │   │   │   ├── HuajiarenyuanService.java
│   │   │   │   │   ├── HuanzheService.java
│   │   │   │   │   ├── MenzhenService.java
│   │   │   │   │   ├── TijianService.java
│   │   │   │   │   ├── TokenService.java
│   │   │   │   │   ├── UsersService.java
│   │   │   │   │   ├── YaopinService.java
│   │   │   │   │   └── YishengService.java
│   │   │   │   ├── thread/                    # 线程工具
│   │   │   │   │   └── MyThreadMethod.java
│   │   │   │   ├── utils/                     # 工具类
│   │   │   │   │   ├── BaiduUtil.java             # 百度 AI 工具
│   │   │   │   │   ├── CommonUtil.java            # 通用工具
│   │   │   │   │   ├── FileUtil.java              # 文件工具
│   │   │   │   │   ├── HttpClientUtils.java       # HTTP 客户端
│   │   │   │   │   ├── JQPageInfo.java            # 分页信息
│   │   │   │   │   ├── MPUtil.java                # MyBatis-Plus 工具
│   │   │   │   │   ├── PageUtils.java             # 分页工具
│   │   │   │   │   ├── PoiUtil.java               # Excel 工具
│   │   │   │   │   ├── Query.java                 # 查询工具
│   │   │   │   │   ├── R.java                     # 响应结果封装
│   │   │   │   │   ├── SQLFilter.java             # SQL 过滤
│   │   │   │   │   ├── SpringContextUtils.java    # Spring 上下文
│   │   │   │   │   ├── StringUtil.java            # 字符串工具
│   │   │   │   │   └── ValidatorUtils.java        # 校验工具
│   │   │   │   └── OnlineHospitalApplication.java # 启动类
│   │   │   └── resources/
│   │   │       ├── admin/admin/              # 前端项目
│   │   │       │   ├── public/
│   │   │       │   ├── src/
│   │   │       │   ├── 1-install.bat           # 安装依赖脚本
│   │   │       │   ├── 2-run.bat               # 运行脚本
│   │   │       │   ├── 3-build.bat             # 构建脚本
│   │   │       │   ├── babel.config.js
│   │   │       │   ├── package.json
│   │   │       │   └── vue.config.js
│   │   │       ├── mapper/                   # MyBatis 映射文件
│   │   │       │   ├── BingliDao.xml
│   │   │       │   ├── CommonDao.xml
│   │   │       │   ├── ConfigDao.xml
│   │   │       │   ├── DictionaryDao.xml
│   │   │       │   ├── GuahaoDao.xml
│   │   │       │   ├── GuahaorenyuanDao.xml
│   │   │       │   ├── HuajiarenyuanDao.xml
│   │   │       │   ├── HuanzheDao.xml
│   │   │       │   ├── MenzhenDao.xml
│   │   │       │   ├── TijianDao.xml
│   │   │       │   ├── TokenDao.xml
│   │   │       │   ├── UsersDao.xml
│   │   │       │   ├── YaopinDao.xml
│   │   │       │   └── YishengDao.xml
│   │   │       └── application.yml           # 应用配置文件
│   │   └── target/                          # 编译输出目录
│   └── pom.xml                             # Maven 配置文件
├── db.sql                                  # 数据库脚本
├── 说明文档.txt                            # 说明文档
└── readme.md                               # 项目说明(本文件)

🗄️ 数据库设计

数据表列表

表名说明主要字段
users管理员表id, username, password, role
yisheng医生表id, username, password, yisheng_name, yisheng_phone, sex_types, keshi_types, zhiwei_types, guahaofei
guahaorenyuan挂号人员表id, username, password, guahaorenyuan_name, guahaorenyuan_phone, sex_types
huajiarenyuan划价人员表id, username, password, huajiarenyuan_name, huajiarenyuan_phone, sex_types
huanzhe患者表id, huanzhe_name, huanzhe_phone, huanzhe_id_number, sex_types
guahao挂号表id, huanzhe_id, guahaorenyuan_id, yisheng_id, guahao_uuid_number, insert_time
menzhen门诊表id, yisheng_id, menzhen_name, menzhen_address, xingqiji, qita_content
bingli病例表id, guahao_id, yisheng_id, bingli_uuid_number, zhusu_content, zhenduan_content, kaiyao_content, bingli_types
tijian体检表id, yisheng_id, huanzhe_id, tijian_uuid_number, tizhong, shengao, xinlv, xinyin 等
yaopin药品表id, yaopin_uuid_number, yaopin_name, yaopin_photo, yaopin_types, yaopin_content
dictionary字典表id, dic_code, dic_name, code_index, index_name
config配置表id, name, value
tokenToken 表id, userid, username, tablename, role, token, expiratedtime

表关系说明

用户关系:
users (管理员)
yisheng (医生)
guahaorenyuan (挂号人员)
huajiarenyuan (划价人员)
huanzhe (患者)

业务流程:
guahao (挂号) → bingli (病例) → 划价 → 取药
    ↓              ↓
huanzhe         yisheng
    ↓              ↓
menzhen         tijian

核心字段说明

字典类型(dictionary 表)

  • 性别类型 (sex_types):1-男,2-女
  • 科室 (keshi_types):1-骨科,2-眼科,3-内科
  • 职位 (zhiwei_types):1-普通医生,2-主治医师,3-主任
  • 病例状态 (bingli_types):1-已出单,2-已划价,3-已取药
  • 药品类型 (yaopin_types):1-5 对应不同药品分类

🔧 配置说明

服务器配置

server:
  port: 8080                                    # 服务端口
  servlet:
    context-path: /onlineHospitalSystem        # 应用上下文路径
  tomcat:
    uri-encoding: UTF-8                         # URI 编码

文件上传配置

spring:
  servlet:
    multipart:
      max-file-size: 1000MB                     # 单个文件最大大小
      max-request-size: 1000MB                  # 请求最大大小

MyBatis-Plus 配置

mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml    # Mapper XML 位置
  typeAliasesPackage: com.entity               # 实体类包路径
  global-config:
    id-type: 1                                  # 主键类型:用户输入ID
    field-strategy: 2                           # 字段策略:非空判断
    db-column-underline: true                   # 驼峰下划线转换
    logic-delete-value: -1                      # 逻辑删除值
    logic-not-delete-value: 0                   # 逻辑未删除值

📝 注意事项

  1. 图片文件命名:上传的图片文件名不能包含中文字符
  2. 图片存放路径src/main/webapp/upload
  3. 数据库字符集:必须使用 UTF-8
  4. 浏览器兼容性:推荐使用 Google Chrome 浏览器
  5. 端口占用:确保 8080 端口未被占用
  6. JDK 版本:必须使用 JDK 1.8,不支持更高版本
  7. 时区设置:数据库连接使用 GMT+8 时区

🐛 常见问题

1. 数据库连接失败

问题:启动时报错 Could not create connection to database server

解决方案

  • 检查 MySQL 服务是否启动
  • 确认数据库用户名和密码正确
  • 确认数据库 yiliaoguahao 已创建
  • 检查数据库端口(默认 3306)是否正确

2. 文件上传失败

问题:上传文件时报错或文件无法访问

解决方案

  • 确保 src/main/webapp/upload 目录存在
  • 检查目录写权限
  • 确认文件名不含中文
  • 检查文件大小是否超过限制(1000MB)

3. 前端页面无法访问

问题:访问前端页面显示 404

解决方案

  • 确认后端服务已启动
  • 检查访问路径是否正确
  • 清除浏览器缓存
  • 确认前端资源已正确构建

4. Token 过期

问题:操作时提示 Token 过期

解决方案

  • 重新登录系统
  • 检查系统时间是否正确
  • 确认 Token 配置是否正确

📮 联系方式

如有问题或建议,欢迎联系:

  • 📧 公众号: [程序员阿金]

📄 许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

最后更新于 2026/2/22

评论 (0)