原创

基于springboot2+vue3的医院后台管理系统

温馨提示:
本文最后更新于 2026年05月28日,已超过 12 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

1. 项目简介

医院后台管理系统,旨在提供一个信息化平台,用以管理医院日常运营中的核心业务数据。系统主要面向三类角色:管理员医生患者,并为不同角色提供差异化的功能视图与操作权限。

通过该系统,医院可以实现对病房资源、药品信息、患者档案、医生信息、预约挂号、病历处方以及住院流程的集中化、数字化管理,从而提高医疗服务效率与质量。

2. 技术栈

该项目采用主流的 前后端分离 架构,具体技术选型如下:

  • 后端:

    • 核心框架: Spring Boot 2.2.2.RELEASE
    • 持久层框架: MyBatis-Plus 2.3 (简化数据库操作)
    • 数据库: MySQL 5.7.32
    • 权限控制: Apache Shiro 1.3.2 (用于身份认证与授权)
    • 接口文档: 未发现独立文档框架,通过Controller代码定义接口
    • 工具库: Apache Commons Lang3, Fastjson, Hutool等
  • 前端:

    • 核心框架: Vue.js (通过构建工具vue-cli搭建)
    • UI库: Element UI (提供界面组件)
    • HTTP客户端: Axios (与后端API交互)
    • 图表库: ECharts (用于数据可视化报表)
    • 其他: Vue Router (路由), Vuex (状态管理, 未在提供代码中体现但其依赖通常存在), vue-json-excel (导出Excel)

3. 详细介绍

系统功能围绕医院的三大核心角色和业务环节构建,具体模块划分如下:

  1. 基础数据管理 (管理员)

    • 管理系统中使用的各类字典数据,如公告类型、科室、药品类型、职位、性别、入院途径、时间段、住院途径、床位等。这些数据通常用于表单下拉选择,保证了数据的规范性和可维护性。
  2. 用户角色管理 (管理员)

    • 患者管理:维护患者的基本档案,包括姓名、手机号、身份证号、电子邮箱等信息。
    • 医生管理:维护医生的基本信息,并关联其所属科室和职位。
    • 管理员管理:管理系统后台的登录账户。
  3. 医疗资源管理 (管理员)

    • 病房管理:维护医院病房的名称、位置、床位数量及介绍信息。
    • 药品管理:维护药品目录,包括名称、类型、照片和详细介绍。
  4. 核心业务流程管理 (多角色协同)

    • 预约医生管理 (患者):患者可以预约医生,填写主诉并选择预约日期与时间段,以形成预约记录。医生可以查看自己被预约的记录。
    • 公告信息管理 (管理员):发布医院相关的公告信息,支持公告类型分类。
    • 病例管理 (医生):医生可以为患者建立病例,记录其入院途径、主诉、诊断等关键医疗信息。
    • 处方管理 (医生):医生可以为患者开具处方,记录处方内容及开方时间。
    • 住院管理 (医生/患者):管理患者的住院过程,包括记录住院途径、关联病房、填写住院详情等。
  5. 系统功能

    • 登录与认证:不同角色(管理员、医生、患者)通过各自独立的登录入口进行身份验证。
    • Token机制:后端使用Token进行用户会话管理,确保接口访问的安全性。
    • 权限控制:不同角色的用户在登录后,其前端菜单栏和后端数据接口访问权限均有所不同。例如,患者无法访问医生管理模块。

4. 部分代码

1. 数据库表结构示例 (bingli 病例表)

该表记录了患者的病例信息,通过外键关联患者和医生,并使用字典表管理入院途径。

CREATE TABLE `bingli` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `huanzhe_id` int(11) DEFAULT NULL COMMENT '患者',
  `yisheng_id` int(11) DEFAULT NULL COMMENT '医生',
  `ruyuantujing_types` int(11) DEFAULT NULL COMMENT '入院途径',
  `zhusu_content` text COMMENT '主诉',
  `zhenduan_content` text COMMENT '诊断',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='病例';

2. 后端控制器示例 (ZhuyuanguanliController.java 住院管理)

此Java类负责处理与“住院管理”相关的Web请求。它演示了如何分页查询、处理角色权限(为医生或患者自动添加过滤条件)以及处理级联数据的转换。

@RestController
@RequestMapping("/zhuyuanguanli")
public class ZhuyuanguanliController {

    @Autowired
    private ZhuyuanguanliService zhuyuanguanliService;

    /**
    * 后端列表
    * 根据当前登录用户的角色,自动添加查询条件,例如医生只能看自己的住院记录。
    */
    @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("yishengId",request.getSession().getAttribute("userId"));
        else if("患者".equals(role))
            params.put("huanzheId",request.getSession().getAttribute("userId"));
        // 执行分页查询并返回结果
        PageUtils page = zhuyuanguanliService.queryPage(params);
        return R.ok().put("data", page);
    }
}

3. 前端菜单权限配置 (menu.js)

此JavaScript文件定义了不同角色(管理员、医生、患者)的菜单结构及其按钮级别的操作权限。例如,管理员拥有对“基础数据管理”的完全控制权,而医生和患者则只有查看某些模块的权限。

{
    roleName: "管理员",
    backMenu: [{
        menu: "基础数据管理",
        child: [{
            menu: "科室管理",
            tableName: "dictionaryKeshi",
            buttons: ["查看", "新增", "删除", "修改"] // 拥有完整权限
        }]
    }]
},
{
    roleName: "医生",
    backMenu: [{
        menu: "公告信息管理",
        child: [{
            menu: "公告信息管理",
            tableName: "gonggao",
            buttons: ["查看"] // 仅有查看权限
        }]
    }]
}

4. 前端API与请求配置 (http.js)

此文件配置了Axios实例,统一设置了后端API的基础URL、请求超时时间,并在每个请求的请求头中自动添加用户的Token,用于身份验证。

const http = axios.create({
    timeout: 1000 * 86400,
    withCredentials: true,
    baseURL: '/yiyuanhoutaiguanli', // 基础URL
    headers: {
        'Content-Type': 'application/json; charset=utf-8'
    }
})

// 请求拦截器,自动添加Token
http.interceptors.request.use(config => {
    config.headers['Token'] = storage.get('Token')
    return config
})

5. 部分截图

img1
img2
img3
img4
img5
img6
img7
img8
img9
img10
img11
img12
img13
img14
img15
img16
img17
img18
img19
img20
img21
img22
img23
img24
img25

6. 项目总结

本项目是一个功能较为全面的医院后台管理系统,具有以下特点:

  1. 角色权限分明:系统清晰地定义了管理员、医生和患者三种角色,并通过前端菜单和后端接口两层权限控制,确保了数据操作的安全性与职责分离。
  2. 业务覆盖全面:涵盖了医院日常管理中患者档案、医生排班、预约挂号、病历处方、病房住院等核心业务环节,形成了一个相对完整的业务闭环。
  3. 技术架构清晰:采用主流的Spring Boot + MyBatis-Plus + Vue技术栈,代码结构清晰,层次分明(Controller, Service, Dao),便于后续的维护和功能扩展。
  4. 数据驱动开发:大量使用字典表来管理业务状态和分类,提高了数据的可维护性和系统的灵活性。
  5. 易于部署使用:作为一个完整的“脚手架”项目,具备登录认证、分页查询、文件上传、数据导出等基础功能,经过简单配置(如数据库连接)即可快速部署运行。

总而言之,该项目为医疗机构提供了一个可靠、高效的信息化管理工具,有助于提升内部管理效率和医疗服务水平。

7. 资源

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

正文到此结束