1. 项目概述
医院后台管理系统是现代医疗信息化建设的重要组成部分。作为一名长期从事医疗信息化开发的工程师,我经常遇到医院管理者抱怨传统手工操作效率低下、数据易丢失的问题。这套基于SpringBoot+Vue的医院后台管理系统,正是为了解决这些痛点而设计的。
系统采用前后端分离架构,后端使用SpringBoot框架提供RESTful API,前端采用Vue.js构建用户界面,数据库选用MySQL存储业务数据。这种技术组合在当前企业级应用开发中非常流行,具有开发效率高、性能稳定、易于维护等优势。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 技术选型分析
后端技术栈:
- Spring Boot 2.7.x:简化了Spring应用的初始搭建和开发过程
- MyBatis-Plus:强大的ORM框架,提供丰富的CRUD接口
- Spring Security:处理认证和授权
- Redis:缓存高频访问数据,如用户会话信息
选择SpringBoot是因为它:
- 内置Tomcat服务器,简化部署
- 自动配置机制减少XML配置
- 丰富的Starter依赖,快速集成常用组件
- 完善的监控端点(Actuator),便于运维
前端技术栈:
- Vue 3.x:响应式前端框架
- Element Plus:UI组件库
- Axios:HTTP客户端
- Vue Router:前端路由管理
- Pinia:状态管理库
Vue.js的优势在于:
- 渐进式框架,学习曲线平缓
- 组件化开发,代码复用率高
- 虚拟DOM技术,性能优异
- 丰富的生态系统和工具链
2.2 数据库设计
系统核心表结构设计遵循第三范式,同时考虑了查询性能:
用户表(users)
sql复制CREATE TABLE `users` (
`user_id` bigint NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '登录账号',
`password_hash` varchar(100) NOT NULL COMMENT '加密密码',
`real_name` varchar(50) DEFAULT NULL COMMENT '真实姓名',
`role_type` enum('ADMIN','DOCTOR','NURSE') NOT NULL COMMENT '角色类型',
`department_id` int DEFAULT NULL COMMENT '所属科室',
`is_active` tinyint(1) DEFAULT '1' COMMENT '是否激活',
`last_login` datetime DEFAULT NULL COMMENT '最后登录时间',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`),
UNIQUE KEY `idx_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
患者表(patients)
sql复制CREATE TABLE `patients` (
`patient_id` bigint NOT NULL AUTO_INCREMENT,
`patient_name` varchar(50) NOT NULL,
`gender` char(1) NOT NULL COMMENT 'M/F',
`birth_date` date DEFAULT NULL,
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`contact_phone` varchar(20) NOT NULL,
`emergency_contact` varchar(20) DEFAULT NULL,
`blood_type` varchar(10) DEFAULT NULL,
`allergy_history` text COMMENT '过敏史',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`patient_id`),
KEY `idx_id_card` (`id_card`),
KEY `idx_phone` (`contact_p
