# clinic-integrated-management-system-backend **Repository Path**: devopsit-regen/clinic-integrated-management-system-backend ## Basic Information - **Project Name**: clinic-integrated-management-system-backend - **Description**: 基于SpringBoot的诊所管理系统后端。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-01 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 诊所综合管理系统 - 后端服务 [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.5+-green.svg)](https://spring.io/projects/spring-boot) [![Java](https://img.shields.io/badge/Java-17+-orange.svg)](https://openjdk.java.net/) [![MyBatis-Plus](https://img.shields.io/badge/MyBatis--Plus-3.5+-blue.svg)](https://baomidou.com/) [![MySQL](https://img.shields.io/badge/MySQL-8.0+-lightgrey.svg)](https://www.mysql.com/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 📖 项目简介 本系统是**诊所综合管理系统**的后端服务部分,采用前后端分离架构,专为社区小型诊所及私人门诊打造。系统覆盖诊所日常运营全流程,实现了患者、医生、药品、诊疗、收费、库存等核心业务的一体化管理。 后端基于 **Spring Boot 3.5+** 构建,提供标准化的 RESTful API 接口,集成 **MyBatis-Plus** 简化数据库操作,采用 **JWT** 实现无状态认证与细粒度权限控制(RBAC模型),确保数据可追溯、流程可闭环、运营更高效。 --- ## 🚀 核心功能模块 系统后端划分为六大核心逻辑模块,支撑前端业务流程: ### 1. 系统基础与权限管理模块 - **用户与角色管理**:支持管理员、医生、收费员、护士/挂号员四类角色的增删改查。 - **RBAC 权限控制**:基于菜单权限(可见性)和按钮权限(操作权)的细粒度控制。 - **日志与配置**:记录登录日志与关键操作日志,支持诊所基本信息及系统参数配置。 - **核心表**:`sys_user`, `sys_role`, `sys_menu`, `sys_log`, `sys_config` ### 2. 患者与医生资源模块 - **患者全生命周期档案**:建档查重、编辑、历史就诊记录联动,记录过敏史与既往病史。 - **医生信息与智能排班**:维护医生信息,支持周/日排班算法,生成号源池并实时扣减。 - **核心表**:`patient_info`, `doctor_info`, `doctor_schedule`, `schedule_source` ### 3. 药品供应链与库存模块 - **药品字典与分类**:多级分类管理,维护规格、厂家、进售价、有效期等。 - **出入库管理**:支持 Excel 批量导入入库,自动出库(处方联动)与手动出库(报损/退货)。 - **智能预警**:库存下限预警、药品效期预警(禁止过期开方)。 - **核心表**:`drug_category`, `drug_info`, `drug_stock`, `stock_in_record`, `stock_out_record` ### 4. 门诊诊疗全流程模块 - **挂号与排队叫号**:生成排队队列,支持叫号/过号操作,状态实时同步。 - **电子病历 (EMR)**:接诊自动加载过敏史,支持模板引擎一键调用常用病历。 - **处方开具**:关联病历开方,自动校验库存与过敏史冲突,状态流转(待收费 -> 已收费)。 - **核心表**:`registration_record`, `medical_record`, `prescription`, `prescription_item`, `queue_call` ### 5. 财务结算与发药模块 - **收银台**:聚合待收费项目,支持多支付方式标记。 - **退费管理**:仅限“已收费未发药”状态可申请退费,需审核。 - **发药核对**:确认后触发库存扣减,流程结束。 - **核心表**:`payment_record`, `refund_record`, `invoice_info`, `dispense_record` ### 6. 数据可视化与统计模块 - **首页驾驶舱**:提供今日挂号数、就诊人数、营收总额、库存预警等聚合数据。 - **报表统计**:医生工作量、药品销售排行、库存周转分析、就诊趋势图。 - **数据导出**:支持患者档案、收费记录、库存明细导出 Excel。 --- ## 🛠 技术栈 | 类别 | 技术选型 | 说明 | | :--- | :--- | :--- | | **核心框架** | Spring Boot 3.5+ | 快速开发、自动配置、内嵌容器 | | **持久层** | MyBatis-Plus | 简化 CRUD,支持动态查询与分页 | | **数据库** | MySQL 8.0+ | 存储业务数据,遵循第三范式 | | **安全认证** | Spring Security + JWT | 无状态认证,前后端分离权限控制 | | **工具库** | Lombok, Hutool, EasyExcel | 简化代码、工具处理、Excel 导入导出 | | **接口文档** | Swagger / Knife4j | 在线 API 调试与文档展示 | --- ## 🏗 系统架构设计 ### 数据库设计思路 - **用户体系**:`User` - `Role` - `Menu` 多对多关联,实现灵活权限。 - **诊疗主线**:`Registration` (挂号) -> `MedicalRecord` (病历) -> `Prescription` (处方) -> `PrescriptionItem` (明细)。 - 状态机设计:`0:待接诊` -> `1:接诊中` -> `2:待收费` -> `3:已收费` -> `4:已发药` -> `5:已完成`。 - **库存主线**:`Drug` (基础信息) <-> `Stock` (当前库存,含批号/有效期)。 - 任何变动必写流水表 (`StockIn`/`StockOut`),保证账实相符、可追溯。 ### 关键技术难点解决方案 | 难点 | 解决方案 | | :--- | :--- | | **权限控制** | Spring Security + JWT,前端根据后端返回的权限码动态渲染按钮。 | | **并发挂号/库存** | 数据库乐观锁 (`version` 字段) 或 SQL 原子更新 (`update ... where num >= 1`) 防止超卖。 | | **排队叫号** | 采用轮询机制(每 5 秒请求),避免引入复杂 WebSocket,满足小型诊所需求。 | | **过敏史校验** | 保存处方时遍历药品,与患者档案过敏史字符串匹配,冲突则抛出业务异常。 | | **报表统计** | MyBatis-Plus Wrapper 动态查询或 SQL `GROUP BY` 聚合,返回数据供前端 ECharts 渲染。 | --- ## ⚙️ 快速开始 ### 环境要求 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ ### 安装步骤 1. **配置数据库** 创建数据库 `clinic_db`,字符集设为 `utf8mb4`。 修改 `src/main/resources/application.yml` 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/clinic_db?useSSL=false&serverTimezone=Asia/Shanghai username: root password: your_password ``` 2. **初始化数据库** 执行 `sql/schema.sql` 和 `sql/data.sql` 脚本,创建表结构并插入初始数据(如管理员账号)。 3. **启动项目** ```bash mvn clean install mvn spring-boot:run ``` --- ## 📄 接口规范 - **通信协议**:HTTP - **数据格式**:JSON - **响应结构**: ```json { "code": 200, "message": "success", "data": { ... } } ``` - **认证方式**:Header 中携带 `Authorization: Bearer ` --- ## 📦 部署说明 本项目支持 Jar 包直接运行或 Docker 容器化部署。 ### Jar 包部署 ```bash java -jar target/clinic-backend.jar --spring.profiles.active=prod ``` ### Docker 部署 (可选) ```bash docker build -t clinic-backend . docker run -d -p 8080:8080 --name clinic-server clinic-backend ``` --- ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request 来改进本项目。请遵循以下流程: 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request --- ## 📝 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。 --- ## 📞 联系方式 如有问题或合作意向,请联系项目负责人或通过 Issue 留言。