基于springboot2+vue2的医院资源管理系统

1. Base64 编码

解锁技能,猴子打野出装需 5 大米 ,才能真正驾驭"猴三棒"的暴力美学

鞋子/小野刀/贪婪之噬/暗影战斧/泣血之刃/名刀·司命

铭文组合为8夺萃、1狩猎、1兽痕、5祸源、5无双、10鹰眼

必备技能:Base64 编码解码

2. 项目简介

医院资源管理系统 ,旨在帮助医院实现信息化管理,涵盖用户管理、医生管理、药品管理、病史记录、住院管理、医生预约、公告信息等核心功能。系统面向三种角色:管理员医生普通用户,不同角色拥有不同的操作权限。

  • 管理员:可进行管理员账户管理、病史管理、基础数据管理(公告类型、药品类型、科室)、公告信息管理、药品管理、医生管理、用户管理、住院管理、轮播图管理等。
  • 医生:可查看和管理病史、查看公告、查看药品、处理医生预约、管理住院信息等。
  • 用户:可查看病史、公告、药品、医生信息,进行医生预约,查看住院情况等。

项目采用前后端分离架构,后端基于 Spring Boot 构建,前端包含管理端(Vue + Element UI)和用户端(Layui + HTML)两套界面。

3. 技术栈

层次 技术/框架 说明
后端框架 Spring Boot 2.2.2.RELEASE 提供容器、自动配置等
ORM 框架 MyBatis-Plus 2.3 简化数据库操作,分页支持
权限控制 Apache Shiro 1.3.2 身份认证与授权
数据库 MySQL 5.7 关系型数据库
前端管理端 Vue 2.x + Element UI 后台管理界面
前端用户端 Layui + HTML + Vue.js 前台用户端
工具库 Hutool 4.0.12, Fastjson 1.2.8 通用工具、JSON 处理
文件上传 自定义 FileController 支持图片、文件上传
其他 POI 3.9(Excel 导入导出) 办公文档处理

4. 详细介绍

4.1 功能模块

4.1.1 管理员模块
  • 管理员管理:维护系统管理员账号(users 表),支持增删改查。
  • 病史管理:管理用户病史记录(bingshi 表),包含病名、病因、现状、药单、禁忌等。
  • 基础数据管理
    • 公告信息类型(news_types)
    • 药品类型(yaopin_types)
    • 科室(yisheng_types)
  • 公告信息管理:发布、修改、删除公告(news 表)。
  • 药品管理:对药品(yaopin)进行增删改查、库存管理。
  • 医生管理:维护医生信息(yisheng 表),包括工号、姓名、科室、职称、挂号价格等。
  • 用户管理:管理注册用户(yonghu 表)。
  • 医生预约管理:查看所有预约,审核预约结果(同意/拒绝)。
  • 住院管理:分配住院病房、房间号、床号。
  • 轮播图管理:配置前台首页轮播图片(config 表)。
4.1.2 医生模块
  • 查看/管理病史(可新增)。
  • 查看公告
  • 查看药品
  • 处理医生预约(查看预约列表,审核)。
  • 管理住院信息。
4.1.3 用户模块
  • 注册/登录。
  • 查看病史公告药品医生
  • 预约医生(提交预约,等待审核)。
  • 查看个人住院信息。
  • 个人资料管理(修改头像、手机号等)。

4.2 数据库设计

主要数据表如下:

表名 说明
users 系统管理员表
yonghu 用户表
yisheng 医生表
yaopin 药品表
news 公告信息表
bingshi 病史表
yishengyuyue 医生预约表
zhuyuan 住院表
dictionary 字典表(类型数据)
config 轮播图配置表
token 用户 token 表

4.3 核心业务逻辑

  • 登录与鉴权:使用 Shiro + Token 机制,登录成功后生成 token 并存储在 localStorage,后续请求通过 header 携带 Token 进行身份验证。
  • 字典转换 :所有涉及字典类型(如性别、科室、预约状态)的字段,在后端通过 DictionaryService.dictionaryConvert() 方法自动将编码转换为对应的中文名称返回给前端。
  • 预约流程:用户选择医生并预约 -> 生成预约记录(状态为"未处理")-> 医生登录后审核 -> 用户可查看结果。
  • 住院管理:医生为用户分配病房、房间号、床号,用户端可查看自己的住院信息。
  • 文件上传 :支持图片上传至 /upload/ 目录,返回文件名用于前端展示。

5. 部分代码

5.1 后端 Controller 示例(医生预约)

java 复制代码
@RestController
@RequestMapping("/yishengyuyue")
public class YishengyuyueController {
    @Autowired
    private YishengyuyueService yishengyuyueService;

    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if("用户".equals(role))
            params.put("yonghuId", request.getSession().getAttribute("userId"));
        else if("医生".equals(role))
            params.put("yishengId", request.getSession().getAttribute("userId"));
        PageUtils page = yishengyuyueService.queryPage(params);
        return R.ok().put("data", page);
    }
}

5.2 MyBatis-Plus 分页查询 Mapper XML

xml 复制代码
<select id="selectListView" resultType="com.entity.view.YishengyuyueView">
    SELECT a.*, yisheng.yisheng_name, yonghu.yonghu_name
    FROM yishengyuyue a
    LEFT JOIN yisheng ON a.yisheng_id = yisheng.id
    LEFT JOIN yonghu ON a.yonghu_id = yonghu.id
    <where>
        <if test="params.yishengId != null">and a.yisheng_id = #{params.yishengId}</if>
        <if test="params.yonghuId != null">and a.yonghu_id = #{params.yonghuId}</if>
    </where>
    order by a.${params.orderBy} desc
</select>

5.3 前端管理端路由配置(Vue)

javascript 复制代码
// router-static.js 部分路由
{
    path: '/yaopin',
    name: '药品',
    component: () => import('@/views/modules/yaopin/list')
},
{
    path: '/yisheng',
    name: '医生',
    component: () => import('@/views/modules/yisheng/list')
},
{
    path: '/yishengyuyue',
    name: '医生预约',
    component: () => import('@/views/modules/yishengyuyue/list')
}

5.4 前端用户端药品列表页面(Layui + Vue)

html 复制代码
<div v-for="(item,index) in dataList" class="view view-seventh">
    <a @click="jumpCheck('../yaopin/detail.html?id='+item.id)">
        <img :src="item.yaopinPhoto.split(',')[0]" />
        <div class="mask">
            <h4><b>{{item.yaopinName}}</b><br><b>{{item.yaopinJiangshi}} RMB</b></h4>
        </div>
    </a>
</div>

6. 部分截图

Copy the following content and use base64 decoding to obtain the source code and files.

5aSN5Yi25omT5byA6I635Y+W5rqQ5Luj56CB77yaaHR0cHM6Ly9maWZ0ZWVuLnhpYW9iaWFzLmNvbS9zb3VyY2UvMTkw

7. 项目总结

本项目实现了一个完整的医院资源管理信息化平台,覆盖了医院日常管理中的主要业务流程,包括用户管理、医生排班、药品库存、病史记录、预约挂号、住院管理等。系统采用 Spring Boot + MyBatis-Plus 作为后端核心,配合 Shiro 实现权限控制,前端提供管理端(Vue + Element UI)和用户端(Layui)两套界面,满足不同角色的使用需求。

主要特点

  • 角色权限清晰,操作流程符合医院管理实际。
  • 字典表设计灵活,便于扩展和维护。
  • 使用 Token 实现无状态登录,支持跨域。
  • 集成了百度 AI 人脸比对(配置后可用)和 Excel 导入导出功能。

整体而言,系统功能完备,代码结构清晰,可作为中小型医院信息化管理的参考实现。