【计算机毕设/任务书-免费领取源码】基于SpringBoot的医捷排智能化医院医护人员排班与人力调度系统的设计与实现

1. 研究目的
在医院日常运营中,科学、公平、高效的医护人员排班是保障医疗服务质量、维护医护人员权益、优化人力资源配置的核心环节。传统手工或基于Excel的排班方式存在排班规则复杂多变、人员需求与供给难以平衡、排班过程耗时耗力、突发情况应对迟缓、医护人员满意度低、人力成本控制粗放等突出痛点。本课题旨在设计并实现一个基于SpringBoot的“医捷排”智能化医护人员排班与人力调度系统,力求达成以下核心目标:
-
构建基于规则引擎的智能化自动排班核心:深度抽象医院各科室(如急诊、ICU、门诊、病房)的排班业务规则,包括法律法规(如劳动法关于工时与休息的规定)、医院制度(如不同职称人员搭配要求)、科室个性化需求(如夜班频次、专科护士配置)以及医护人员个人偏好(如进修、休假申请)。通过构建可视化、可配置的规则引擎,将复杂规则转化为系统可执行的逻辑,实现一键或自动生成初步排班方案,将排班管理者从繁重的重复劳动中解放出来,提升排班效率与科学性。
-
实现多维度、可视化的人力资源分析与优化调度:系统需集成医院HIS(医院信息系统)中的实时床位占用率、门诊预约量、手术安排等业务数据,为排班提供需求侧的数据驱动。通过可视化的科室人力视图、排班日历、工时统计图表,管理者可清晰掌握全院人力分布与饱和度。当发生突发公共卫生事件、大规模抢救或人员临时缺勤时,系统能快速进行人力缺口分析,并基于技能、位置、可用状态智能推荐可调动人员,实现人力资源的弹性调度与快速响应。
-
打造以医护人员为中心的柔性排班与协同平台:为医护人员提供移动端(如企业微信/小程序集成)自助服务平台,支持在线查看个人排班、提交调班/换班申请、申报加班与补休、提出个性化排班偏好(如希望固定日班)。通过同事间公开透明的换班市场与流程化审批,促进班组内部协同。系统综合考量员工满意度、工作负荷均衡、技能成长等因素,在自动排班中引入优化算法,力求在满足运营需求的同时,提升员工幸福感与团队稳定性。
-
建立数据驱动的排班质量评估与持续改进机制:全面记录排班过程数据、实际出勤数据、调班记录、员工反馈。通过建立排班质量评估模型(如各班次人员配备合理度、工时合规率、临时调班率、员工满意度评分),定期生成排班分析报告。为医院管理层提供科室人力成本分析、排班模式效益对比等决策支持,推动排班工作从“经验管理”向“数据驱动、持续优化”的精细化管理模式转变。
本研究不仅是一个排班工具,更是对运筹优化算法、规则引擎、实时数据集成、移动协同在医院人力资源这一关键领域的深度融合与创新应用。它对于提升医院运营效率、保障医疗安全、改善员工体验、控制人力成本具有重大的现实意义与管理价值。
2. 研究要求
a. 需求分析
-
用户角色与核心用例分析:
-
人力资源部/院级管理员:
规则与模板管理:统一管理全院排班规则、班次定义、排班周期模板。
-
全院人力视图:跨科室查看全院人力分布与忙闲状态,协调跨科室人力支援。
-
合规性审计:抽查各科室排班是否符合劳动法规与医院制度。
-
统计报表:生成全院人力成本、出勤率、加班时长等汇总报表。
-
科室排班员/护士长:
自动/手动排班:配置排班规则,一键生成科室周期排班草案,手动微调与优化。
-
申请审批:批量或单条审批下属的各类申请,处理调班匹配。
-
人力监控:实时查看科室在岗人员状态、未来人力缺口预警。
-
排班发布:确认排班后发布,通知全科室人员。
-
医护人员(护士/医生):
排班查看:移动端/PC端查看个人/科室排班表,了解班次(白班、小夜、大夜、休息)。
-
自助申请:在线提交休假申请、调班/换班申请、加班申报,查看申请审批进度。
-
换班协同:在内部换班市场发布换班需求或应答他人需求,达成意向后发起流程。
-
我的数据:查看个人月度工时统计、积存假期、考勤异常记录。
-
系统管理员:负责组织架构、用户权限、系统集成、数据维护。
-
功能性需求:
-
智能排班引擎:支持基于规则的可配置自动排班,支持手动调整。
-
规则管理:可视化、模块化的排班规则配置与管理。
-
排班流程协同:完整的请假、调班、换班、加班在线申请与审批流程。
-
人力监控与调度:实时人力视图、需求预测、智能人力推荐。
-
移动自助服务:为医护人员提供便捷的移动端服务入口。
-
数据统计与分析:多维度的排班质量、工时、人力成本分析报告。
-
非功能性需求:
-
高可靠性与稳定性:排班数据是医院运转的基础,系统必须7×24小时稳定可用,数据不能出错。
-
灵活的规则可配置性:系统必须能适应不同医院、不同科室复杂多变的排班规则,而非硬编码。
-
良好的性能与用户体验:自动排班算法需在可接受时间内完成计算;移动端操作需流畅。
-
系统的安全性与隐私性:排班及考勤数据涉及员工隐私,需严格权限控制与数据加密。
b. 系统功能设计(10个模块,每个模块5-7个功能点)
-
系统管理模块(后台)
-
组织架构管理:维护医院-院区-科室-护理单元/医疗组的树形结构,关联科室负责人与排班员。
-
人员主数据管理:对接HR系统或手动维护医护人员基础信息、所属科室、岗位、职称、执业资质、技能标签。
-
角色与权限管理:定义医护人员、排班员、科室主任、HR管理员、系统管理员等角色,实现数据隔离与操作权限控制。
-
系统参数配置:配置排班周期(如四周制)、自然日与工作日的映射规则、系统开关等。
-
操作日志审计:记录所有关键数据修改与审批操作。
-
基础数据与规则库模块
-
法规规则:配置最大连续工作天数、最小休息时间、月/年最长工时上限。
-
科室规则:配置各班次所需人数、职称搭配(如1医1护)、必需技能(如ICU认证)。
-
个人规则:配置个人不可值班日期、偏好班次、培训计划。
-
班次定义管理:创建与管理班次(如A班:08-16, P班:16-24, N班:00-08),设置班次颜色、工时、是否计为夜班。
-
排班规则库:
-
休假类型管理:定义年假、病假、事假、产假等假期类型及其扣除规则。
-
规则冲突检测:在配置规则时,自动检测规则间是否存在逻辑矛盾并提示。
-
规则版本管理:规则修改后保存历史版本,支持查询与回滚。
-
智能排班引擎模块(核心)
-
排班任务创建:排班员选择科室、排班周期、参考规则集,创建排班任务。
可视化排班板:提供矩阵式(人员×日期)和日历式两种视图,拖拽即可手动调整班次。
-
排班冲突检查:手动调整时,实时检查并高亮显示违反规则(如连续夜班超限)的排班。
-
排班发布与历史:调整完成后,发布排班。可查看与复用历史排班方案。
自动排班算法:
需求计算:根据科室历史数据或预测模型,计算每日各班次的基础人力需求。
-
人员过滤:根据规则(资质、技能、休假)过滤可用人员池。
-
优化分配:使用启发式算法(如贪心、禁忌搜索)或约束求解器,在满足硬性约束的前提下,优化目标(如工作量均衡、满足个人偏好),生成排班草案。
-
排班自助服务模块(移动端/H5)
-
休假申请:选择假期类型、起止时间,上传证明材料(可选)。
-
调/换班申请:发起与指定同事的调班申请,或发布公开的换班需求。
-
加班申报:提交实际加班记录,关联可补休时长。
-
我的排班表:以日历形式清晰展示个人班次,支持周/月视图切换,区分颜色显示不同班次。
-
在线申请中心:
-
换班市场:浏览科室内部的公开换班需求,可一键应征,双方同意后自动生成调班申请待审批。
-
消息中心:接收排班发布提醒、申请审批结果、换班匹配成功等通知。
-
我的统计:查看个人当月工时、累计加班、剩余年假等信息。
-
申请审批与流程管理模块
-
申请待办列表:审批人(排班员/上级)可集中查看所有待处理的申请,按类型、紧急度筛选。
-
批量审批:支持对相同类型的申请(如休假)进行批量通过或驳回。
-
流程可视化:可查看申请的当前审批节点与历史记录。
-
审批规则:可配置不同时长、类型的申请,自动路由给不同审批人(如护士长批3天内,科主任批3天以上)。
-
冲突预检:审批时,自动检测该申请若通过,是否会导致未来排班违反规则,并提示预警。
-
实时人力监控与调度模块
-
科室人力看板:以饼图/柱状图展示科室当前在岗、休假、外出、空闲人数及占比。
-
全院人力地图:以热力图形式展示各科室/病区当前人力饱和度(在岗/标配),一目了然。
-
智能人力推荐:当某科室出现突发性人力短缺时,输入需求(人数、技能、时段),系统可自动从全院筛选符合条件且当前空闲的医护人员,推荐给调度员。
-
跨科调度流程:调度员可发起跨科室人力调度指令,相关方在线确认,更新双方排班。
-
大屏监控模式:为医院指挥中心提供全屏监控视图,突出显示告警信息。
-
考勤与工时统计模块
-
排班同步考勤:将发布后的排班作为计划考勤基准。
-
异常考勤处理:对接门禁/打卡系统或手动登记,标记迟到、早退、旷工,关联请假、加班记录自动核销。
-
月度工时报表:自动计算每位员工的总工时、各类班次时长、加班时长、应补休时长。
-
合规性报告:自动检测并报告违反工时法规(如月超36小时加班)的异常情况。
-
数据导出:工时、考勤数据可导出为Excel,用于薪资核算。
-
排班质量与数据分析模块
-
排班质量评分:建立评估模型,对已发布的排班从“规则符合度”、“人力均衡度”、“偏好满足度”等维度打分。
-
人力效能分析:分析各科室人力成本、人均工时产出、排班饱和度趋势。
-
员工满意度分析:收集员工对排班的匿名反馈或评分,统计满意度趋势。
-
历史数据对比:对比不同周期、不同排班方案的各项指标,辅助管理决策。
-
自定义报表:提供灵活的可视化报表设计器,允许管理员自定义分析图表。
-
消息与通知模块
-
排班发布通知:新排班发布后,自动推送消息给相关科室所有人员。
-
申请审批提醒:提醒审批人有新的待办申请,通知申请人审批结果。
-
调班成功通知:换班双方匹配成功且审批通过后,同步通知双方。
-
系统公告:管理员可发布全院或科室级别的通知公告。
-
微信集成:关键通知可对接企业微信或公众号模板消息,确保触达。
-
系统集成接口模块
-
HR系统接口:定时同步医护人员主数据(入职、离职、调岗)。
-
HIS系统接口:获取实时床位占用率、手术安排等数据,作为排班需求预测的输入。
-
考勤系统接口:双向同步排班与实际打卡数据。
-
统一认证接口:对接医院AD/LDAP或OA系统,实现单点登录。
-
移动门户集成:提供H5页面或API,方便集成至医院企业微信/钉钉等工作台。
c. 系统实现
-
技术选型与架构:
-
后端:
核心框架:
Spring Boot 2.7.x。Spring MVC,Spring Security+JWT,MyBatis-Plus。 -
数据库:
MySQL 8.0。核心表设计: -
缓存:
Redis。用于:缓存科室排班表、人力看板数据、热点规则、分布式锁(防止并发排班)。 -
规则引擎:集成轻量级规则引擎
Drools,或将规则配置存储在数据库,通过自定义的规则解释器执行。用于校验排班冲突和进行部分自动排班逻辑判断。 -
消息队列:
RabbitMQ。用于异步处理:发送各类通知、记录操作日志、触发数据统计任务。 -
任务调度:
XXL-JOB。用于调度定时任务,如每天自动生成次日人力预警、每月初生成工时报表。 -
staff(医护人员表) -
scheduling_rule(排班规则表) -
scheduling_task(排班任务表) -
schedule_detail(排班明细表,staff_id+date唯一索引,记录班次) -
leave_application(请假/调班申请表) -
前端:
后台管理系统:
Vue 3+Element Plus+Vite。集成ECharts、Vue Grid Layout(用于可拖拽排班板)。 -
移动端/H5:使用
Uni-app(Vue语法)开发,一套代码可发布到H5及未来小程序,方便医护人员通过企业微信等访问。 -
算法:自动排班核心算法可单独封装为服务。对于中小规模科室,可使用基于启发式规则的算法快速生成可行解。对于大规模复杂排班,可研究集成
OptaPlanner等开源约束求解器,寻找更优解。
-
核心业务实现方案:
-
-
数据一致性保障:排班发布、调班审批等操作需在事务内完成,确保
schedule_detail表与相关申请状态的一致性。高并发场景下使用分布式锁。
-
-
排班冲突实时校验:
在排班板拖拽调整时,前端向后端发送校验请求。
-
后端加载该员工相关的所有规则,模拟应用此次调整,快速校验是否违反任何硬性约束(如连续上班>7天),并将结果(通过/冲突详情)返回前端高亮提示。
-
-
自动排班算法(启发式示例):
需求展开:将周期内每日每班次的需求转化为具体数量的“班次槽位”。
-
人员排序:根据规则(如已连续夜班数、近期工作量)对可用人员排序,确定分配优先级。
-
槽位填充:遍历每个班次槽位,从可用人员列表中按优先级选择第一个能满足所有约束(资质、技能、当天无其他班、不违反连续工作等)的人员填入。
-
局部优化:完成初步填充后,可进行局部搜索优化,如交换两个员工的班次以更好地满足个人偏好或平衡工作量。
-
-
部署:采用
Docker容器化部署,Nginx做反向代理。核心服务可多实例部署保证高可用。MySQL做主从。
d. 系统测试
-
功能测试:
-
全流程测试:模拟一个完整排班周期:规则配置->自动排班->手动调整->发布->员工查看申请调班->审批->考勤核对->报表生成。
-
规则引擎测试:构造复杂、冲突的规则场景,验证系统能否正确识别、执行与报警。
-
自动排班算法测试:使用不同科室、不同人力状况的测试数据,验证算法生成的排班是否满足所有硬约束,并评估其优化效果(均衡性、偏好满足度)。
-
移动端全功能测试:测试医护人员在移动端的所有自助服务功能。
-
性能测试:
-
自动排班性能:测试为大规模科室(如上百人)生成一个月排班的耗时,要求一般在分钟级完成。
-
高并发申请提交:模拟月底集中提交休假申请,测试系统处理能力。
-
实时人力看板数据刷新:测试多用户同时刷新人力看板时,接口响应速度。
-
安全测试:
-
权限越权测试:普通员工能否访问/修改他人排班或申请;A科室排班员能否操作B科室数据。
-
数据篡改测试:尝试绕过前端直接调用接口进行非法排班操作。
-
隐私数据保护:确保员工敏感信息(如联系方式、详细住址)不会通过接口泄露。
-
兼容性测试:后台管理系统在主流浏览器上的兼容性;移动端H5在iOS/Android不同机型微信/浏览器内的兼容性。
3. 总体进度和安排
|
阶段 |
时间 |
主要任务 |
交付物 |
|---|---|---|---|
|
第一阶段 |
第1-4周 |
1. 深入医院科室调研排班流程与痛点,完成详尽的需求规格说明书。 |
1. 《需求规格说明书》 |
|
第二阶段 |
第5-9周 |
1. 搭建SpringBoot多模块项目,整合MyBatis-Plus, Redis, RabbitMQ, XXL-JOB。 |
1. 可运行的后端SpringBoot服务 |
|
第三阶段 |
第10-13周 |
1. 使用Vue3+Element Plus开发后台管理系统,重点实现可视化排班板、规则配置、数据大屏。 |
1. 后台管理系统前端源码 |
|
第四阶段 |
第14周 |
1. 执行全面的功能、性能、安全测试,修复所有BUG。 |
1. 《系统综合测试与优化报告》 |
|
第五阶段 |
第15-16周 |
1. 撰写毕业论文,重点论述医院人力资源管理信息化、SpringBoot框架实践、规则引擎与智能排班算法、实时协同与调度技术、数据驱动决策在排班中的应用。 |
1. 《毕业设计论文》 |
4. 推荐参考文献
[1] 杨开振. Spring Boot 2 实战之旅[M]. 北京: 电子工业出版社, 2021.
[2] 方志朋. Spring Cloud Alibaba微服务架构实战[M]. 北京: 电子工业出版社, 2021. (微服务治理参考)
[3] 高洪岩. Redis深度历险:核心原理与应用实践[M]. 北京: 机械工业出版社, 2019.
[4] 王珊, 萨师煊. 数据库系统概论(第5版)[M]. 北京: 高等教育出版社, 2014.
[5] 李乐山, 赵庆华. 基于约束规划的护士排班系统研究[J]. 计算机工程与应用, 2019, 55(4): 244-249.
[6] 刘增辉. MyBatis-Plus从入门到精通[M]. 北京: 电子工业出版社, 2021.
[7] 陈敏亚, 周典, 吴丹. 大型公立医院人力资源柔性调度模式构建研究[J]. 中国医院管理, 2020, 40(8): 48-51.
[8] 中华人民共和国人力资源和社会保障部. 关于职工全年月平均工作时间和工资折算问题的通知[Z]. 2008.
夜雨聆风
