用 CodeBuddy + 混元(Hy3),开发护士排班从“半天工时“变成“AI 秒算“,带公平性评分
痛点:排班是护士长的"周常噩梦"
在三甲医院急诊科,排班不是填格子那么简单。抢救室、留观室、监护室(EICU)三班倒(A 白班 08–16 / P 小夜 16–24 / N 大夜 00–08),还要兼顾:ICU 资质必须有人、高年资(N3/N4)要到位、夜班不能连太多天、大夜后必须休息、请假的人绝不能排重。
以前护士长靠 Excel + 手调,排一周要几小时。这种规则明确、约束清晰的事,不该让 AI 来干吗?于是用 CodeBuddy(腾讯混元大模型 hy3 驱动),从一句需求出发,做出了整套**护士排班系统**。
系统主界面:周视图拖拽网格 + 一键排班 + 公平性评分
添加图片注释,不超过 140 字(可选)
二、技术栈:一句话生成"前后端 + 数据库"三层 CodeBuddy 帮我把需求拆成三层直接落地:
- 前端:Vue 3 + Vite 5 + Vue Router 4 + Axios(SPA,端口 5173),6 个页面覆盖排班总览、护士管理、班次/规则配置、统计报表。
- 后端:Free Pascal+ mORMot1(THttpApiServer,端口 6789),所有排班/校验/审核逻辑都在这里。
- 数据库:MSSQL 2014,9 张业务表(科室/班次/护士/排班/规则/请假/调班/用户/日志)。 护士档案页,资质(层级、ICU、护士长)直接驱动排班。
添加图片注释,不超过 140 字(可选)
三、核心亮点:排班引擎"三件套" 这是整个系统最值得说的地方——排班引擎不是"填坑",而是**规则 + 智能求解 + 可解释**: 1. 智能排班(最优):后端调 Python + OR-Tools 的 CP-SAT 求解器(Engine/solver/solve_engine.py)。硬约束零违反、全局最公平,还能输出**公平性评分(/100)**和**中文可解释说明**;
添加图片注释,不超过 140 字(可选)
2. 普通自动排班: **贪心兜底**(DoGreedySchedule),秒出、同样守住全部硬约束,适合日常快速出草稿。
添加图片注释,不超过 140 字(可选)
3. 手动拖拽:护士长微调,前端 + 服务端**双重实时校验(7 项检查)**,任何违规(夜班到顶、当天重复、资质不符、行政班非护士长…)立刻拦住并说明原因。
添加图片注释,不超过 140 字(可选)
四、护士长自己就能改规则,不用找程序员
规则全在数据库里,网页上点几下即可改,立即生效:
- 排班规则页:每科室每班次设"最少/最多人数、要不要高年资、要不要 ICU 资质"。
- 约束配置页:周上班 ≤ 6 天、周夜班 ≤ 3 天、大夜后休息 ≥ 1 天、周工时上限……流感季想让夜班更宽松?把"周夜班上限 3 改 2"就行。
添加图片注释,不超过 140 字(可选)
五、锁定与可追溯
排班完成点"审核"即锁定(状态 APPROVED),谁都改不了;要改先"撤销审核"并输密码。每一次变更都进**操作日志**(操作人/时间/IP/新旧值),合规可追溯。
添加图片注释,不超过 140 字(可选)
六、踩坑与升级(最容易被精选的一段)
初版自动排班算法非常朴素——按护士 ID 取模固定绑定班次,结果**每天上同一个班、不考虑规则和请假、夜班可能连排**。用 CodeBuddy 把引擎升级成了现在的样子:
- 引入 CP-SAT 最优求解 + 贪心兜底 + 手动双校验,公平且合规;
添加图片注释,不超过 140 字(可选)
七、成果
- 排班从**人工数小时 → 秒级出稿**,护士长只做"把关和微调";
- 公平性**可量化**(评分 /100),夜班、辛苦班尽量匀着分;
- 已覆盖 3 科室、35 名护士的一周排班.
八、我是怎么用 CodeBuddy + 混元(hy3)做出来的
流程是:① 把"急诊科护士排班"需求讲清楚 → ② CodeBuddy 生成 Vue3 页面骨架和 中间件接口 → ③ 让它写排班引擎(CP-SAT 建模 + 贪心兜底)→ ④ 联调时把报错贴回去,它帮我修 SQL 注入、对齐路由 → ⑤ 用 nginx 部署到内网。 备注:员工人名是 ai随机生成,不是真实人名 #护士排班 #AI提效