当前位置: 首页 > news >正文

基于springboot2+vue3的医院挂号就诊系统

1. 获取地址

https://fifteen.xiaobias.com/source/210

2. 项目简介

本项目为一款医院挂号就诊系统,旨在为患者提供便捷的在线挂号服务,并为医院管理人员、医生提供后台管理功能。系统支持用户注册登录、浏览医生信息、在线挂号、支付挂号费用、查询挂号记录,以及查看健康教育和公告信息。后台管理端支持对用户、医生、挂号订单、健康教育内容、公告等进行管理和审核,并通过字典表实现数据动态配置。

项目名称(数据库):yiyuanguanhaojiuzhen
中文名称:医院挂号就诊系统

3. 技术栈

层次技术选型
后端框架Spring Boot 2.2.2.RELEASE + MyBatis-Plus + Apache Shiro
数据库MySQL 5.7.32-log
前端(后台)Vue.js + Element UI + ECharts + Axios
前端(前台)Layui + jQuery + Vue.js + Element UI(部分)
其他Fastjson、Hutool、Apache Commons Lang3

4. 详细介绍

4.1 系统角色

系统包含三种角色:

  • 管理员(users表)
  • 医生(yisheng表)
  • 用户(患者,yonghu表)

4.2 功能模块

4.2.1 前台(面向普通用户)
  • 医生浏览与预约:用户可查看医生列表(按科室、职位筛选),查看医生详情(履历、价格、挂号须知),点击“预约挂号”填写挂号日期、时间段(上午/下午)并提交。
  • 在线支付:挂号时自动从用户余额中扣除挂号费用,余额不足时可充值(模拟充值页面)。
  • 挂号记录:用户可在个人中心查看自己的挂号记录及审核状态(审核中/通过/拒绝)。
  • 健康教育:浏览医院发布的健康科普文章(支持富文本)。
  • 公告信息:查看医院公告。
  • 在线咨询:用户可以向管理员发送问题,管理员后台回复,支持实时刷新显示。
  • 个人中心:修改个人信息(姓名、手机号、身份证、邮箱、头像、性别)、充值余额、修改密码。
4.2.2 后台(管理员端 - Vue + Element UI)
  • 管理员管理:对系统管理员账号进行增删改查。
  • 用户管理:查看、修改、删除用户信息(软删除)。
  • 医生管理:增删改查医生信息(工号、账户、科室、职位、职称、头像、联系方式、挂号须知、邮箱、挂号价格、履历介绍)。
  • 挂号管理:查看所有用户的挂号订单,审核(通过/拒绝)并填写审核结果。
  • 健康教育管理:发布/编辑/删除健康教育文章(支持富文本)。
  • 公告信息管理:发布/编辑/删除公告。
  • 在线咨询管理:查看用户提问并回复,状态标记(未回复/已回复)。
  • 基础数据管理(字典表):动态配置科室、职位、健康教育类型、公告类型、挂号状态、时间类型(上午/下午)、审核状态等。
  • 轮播图管理:配置前台页面轮播图片。
4.2.3 医生端
  • 查看自己的挂号记录(待审核、已就诊等)。
  • 查看健康教育和公告信息。

4.3 数据库表结构(核心表)

表名说明主要字段
yonghu用户表账户、密码、姓名、手机号、身份证、邮箱、性别、余额、逻辑删除
yisheng医生表工号、账户、密码、姓名、科室、职位、职称、头像、电话、邮箱、挂号价格、履历
guahao挂号记录表医生ID、用户ID、就诊识别码、挂号日期、时间类型、挂号状态、审核状态、审核结果
jiankangjiaoyu健康教育表标题、类型、图片、发布时间、内容、逻辑删除
news公告表名称、图片、类型、发布时间、内容
chat在线咨询表用户ID、问题、问题时间、回复、回复时间、状态、数据类型
dictionary字典表字段编码、字段名、编码索引、编码名称、父级ID
config配置表(轮播图等)配置参数名、值
users管理员表用户名、密码、角色
tokenToken表(登录认证)用户ID、用户名、表名、角色、token、过期时间

5. 部分代码

5.1 后端 - 挂号订单保存(含余额扣减)

// 文件:GuahaoController.java@RequestMapping("/add")publicRadd(@RequestBodyGuahaoEntityguahao,HttpServletRequestrequest){// ... 查重、校验 ...YonghuEntityuserId=yonghuService.selectById((Integer)request.getSession().getAttribute("userId"));YishengEntityyishengEntity=yishengService.selectById(guahao.getYishengId());if(userId.getNewMoney()<yishengEntity.getYishengNewMoney()){returnR.error("余额不足请充值");}userId.setNewMoney(userId.getNewMoney()-yishengEntity.getYishengNewMoney());yonghuService.updateById(userId);guahaoService.insert(guahao);returnR.ok();}

5.2 前端 - 医生列表展示(Vue)

<!-- 文件:src/main/resources/admin/admin/src/views/modules/yisheng/list.vue 风格示例 --> <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" ...> <el-form-item label="医生名称"> <el-input v-model="queryParams.yishengName" placeholder="请输入医生名称" /> </el-form-item> <el-form-item label="科室"> <el-select v-model="queryParams.yishengTypes" placeholder="请选择科室"> <el-option label="全部" value="" /> <el-option v-for="item in yishengTypesList" :key="item.codeIndex" :label="item.indexName" :value="item.codeIndex" /> </el-select> </el-form-item> <el-button type="primary" @click="handleQuery">搜索</el-button> </el-form> <el-table :data="yishengList" ...> <el-table-column prop="yishengName" label="医生名称" /> <el-table-column prop="yishengNewMoney" label="挂号价格" /> <!-- ... 其他列 ... --> </el-table> </div> </template>

5.3 字典表初始化监听器(项目启动时加载字典到ServletContext)

// 文件:DictionaryServletContextListener.java@WebListenerpublicclassDictionaryServletContextListenerimplementsServletContextListener{@OverridepublicvoidcontextInitialized(ServletContextEventsce){ApplicationContextappContext=WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());DictionaryServicedictionaryService=appContext.getBean(DictionaryService.class);List<DictionaryEntity>dictionaryEntities=dictionaryService.selectList(newEntityWrapper<DictionaryEntity>());Map<String,Map<Integer,String>>map=newHashMap<>();for(DictionaryEntityd:dictionaryEntities){Map<Integer,String>m=map.getOrDefault(d.getDicCode(),newHashMap<>());m.put(d.getCodeIndex(),d.getIndexName());map.put(d.getDicCode(),m);}sce.getServletContext().setAttribute("dictionaryMap",map);}}

6. 部分截图




























7. 项目总结

本系统基于Spring Boot + MyBatis-Plus构建后端,采用Shiro进行权限控制和Token认证,前后端分离架构。后台管理界面使用Vue + Element UI实现现代化管理体验,前台面向患者使用Layui + jQuery保证轻量级和兼容性。

系统实现了医院挂号就诊的核心业务流程:用户注册登录 → 浏览医生 → 选择时间段挂号 → 扣费 → 管理员审核 → 用户查看挂号结果。同时拓展了健康教育、公告、在线咨询等功能,丰富了医患互动场景。

字典表动态管理机制使得科室、职位、类型等基础数据无需硬编码,具备良好的可维护性。项目结构清晰,分层合理,适合作为中小型医院信息化管理的参考实现。

http://www.cnnetsun.cn/news/2531687.html

相关文章:

  • Cadence 16.6用户必看:巧用Tcl/Tk工具导出带位号书签的智能PDF原理图(附环境变量配置)
  • Geist字体实战手册:现代数字产品的瑞士设计解决方案
  • 新手友好!CobaltStrike 4.8汉化版从安装到上线的保姆级图文教程
  • RK3568 Buildroot编译一次,磁盘空间翻倍?聊聊SDK里那些能删的‘大家伙’(附.repo清理指南)
  • C# WebAssembly构建高性能Web3D引擎实战
  • 在 Taotoken 模型广场中对比选择适合代码生成任务的大模型
  • 阿里云Linux服务器被蠕虫攻陷的应急响应实战
  • 如何3分钟搞定Burp Suite汉化?完整中文安全测试指南
  • OpCore-Simplify:从8小时到30分钟,OpenCore配置的终极简化方案
  • 3m还是10m?GB4824、FCC、CE辐射测试距离怎么选,看完这篇就懂了
  • 智能电表数据采集实战:基于Node-RED和698协议快速搭建能耗监控看板
  • Unity资源提取实战:AssetStudioMod破解新版序列化与Addressables
  • 博德之门3 2026最新免费下载 一键转存 永久更新 (看到速转存 资源随时走丢)
  • 从PPT到可推理知识体:中小学教师零代码构建AI增强型校本知识库(附教育部推荐语义标注标准V2.3)
  • 别再让串口中断拖慢你的STM32F407了!手把手教你配置UART4的DMA收发(附完整代码)
  • AI Agent招聘系统上线倒计时72小时:某独角兽HRD亲授的3步灰度发布法+应急预案包
  • 不止于同步:在麒麟OS V10上用Chrony构建高可用内网时间服务器
  • 上海交通大学LaTeX幻灯片模板深度解析:从学术需求到专业演示的完整解决方案
  • 如何利用Easy Voice Toolkit打造个性化语音助手:完整指南
  • 保姆级教程:从零搞定华为eNSP模拟器安装,附WinPcap/Wireshark/VirtualBox全套依赖包
  • Web入侵应急响应:从黑页到内存马的数字现场勘查
  • 在ubuntu上对接claude code避免封号与token不足的实践
  • 使用 OpenClaw 时如何一键配置 Taotoken 作为模型供应商
  • 5分钟终极指南:用obs-multi-rtmp插件实现OBS多平台同步直播
  • 在多Agent工作流中集成Taotoken作为统一模型调度中心
  • 告别电压不稳!用MCP4728的EEPROM功能实现断电记忆,附STM32 I2C驱动代码
  • 如何5分钟打造Zotero中文文献管理终极方案:茉莉花插件完整指南
  • 国内紧缺四大热门专业,月薪普遍破万,毕业就业不用愁
  • 实战指南:利用AI视觉技术打造专业级足球比赛分析系统
  • Outline知识库系统:企业级自托管部署的架构解析与实战指南