基于springboot+vue的医院排队叫号管理系统
·
技术栈设计
后端技术栈
- Spring Boot 2.7.x:提供核心框架支持,简化配置和依赖管理。
- Spring Security:实现用户认证和权限控制。
- MyBatis-Plus:增强数据库操作能力,支持快速CRUD开发。
- Redis:缓存高频访问数据(如排队状态),减少数据库压力。
- RabbitMQ:处理异步消息(如叫号通知、短信提醒)。
前端技术栈
- Vue 3:基于Composition API构建响应式界面。
- Element Plus:提供UI组件(表格、表单、通知等)。
- WebSocket:实时推送叫号信息至前端。
- Axios:封装HTTP请求,与后端交互。
数据库设计
- MySQL 8.0:主数据库,存储患者信息、科室、排队记录等。
- 关键表结构:
patient(患者信息):id,name,phone,create_time。department(科室):id,name,current_queue_num。queue(排队记录):id,patient_id,department_id,status(0待诊/1已叫号)。
核心功能模块
患者端功能
- 在线挂号:选择科室并生成排队号,支持分时段预约。
- 实时排队查询:通过WebSocket获取当前叫号进度。
- 电子病历:查看历史就诊记录(需医生权限解锁)。
医生端功能
- 叫号管理:手动或自动触发叫号,更新排队状态。
- 就诊记录录入:填写诊断结果并同步至患者档案。
- 紧急插队权限:针对特殊病例调整队列顺序。
管理端功能
- 科室管理:增删改查科室信息及关联医生。
- 数据统计:生成日/月排队量报表(集成ECharts可视化)。
- 系统日志:记录用户操作和异常事件。
系统测试设计
单元测试(JUnit 5)
- 测试Service层逻辑,如排队号生成规则:
@Test void testGenerateQueueNumber() { Department department = new Department(); department.setCurrentQueueNum(5); int newNum = queueService.generateQueueNum(department); assertEquals(6, newNum); }
集成测试(TestContainers)
- 验证数据库与Redis的协同操作,如叫号后状态同步:
@SpringBootTest class QueueIntegrationTest { @Autowired private QueueService queueService; @Test void callPatientShouldUpdateRedisAndDB() { // 模拟叫号并断言Redis缓存与数据库状态一致 } }
前端测试(Cypress)
- 模拟用户挂号流程:
describe('Patient Registration', () => { it('Submits form and displays queue number', () => { cy.visit('/register'); cy.get('#department-select').select('Cardiology'); cy.get('#submit-btn').click(); cy.contains('Your queue number:').should('be.visible'); }); });
源码与部署说明
源码结构
- 后端:
src/main/java/com/hospital/queueconfig/:安全配置、WebSocket配置。controller/:暴露RESTful API。service/impl/:核心业务逻辑(挂号、叫号)。
- 前端:
src/views/patient/:患者相关页面。doctor/:医生工作台。
部署流程
- 启动MySQL和Redis服务,导入
schema.sql初始化数据库。 - 后端打包:
mvn clean package,生成hospital-queue.jar。 - 前端构建:
npm run build,部署静态文件至Nginx。 - 使用Docker Compose编排容器(可选):
services: backend: image: openjdk:17 command: java -jar /app/hospital-queue.jar ports: ["8080:8080"]
注意事项
- 短信提醒需配置第三方服务(如阿里云短信API)。
- 高并发场景建议使用Nginx负载均衡和Redis集群。
















更多推荐



所有评论(0)