铁律15: 模块设计必须分析业务逻辑,不能只做CRUD - 必须查阅标准规范、梳理业务流程、设计状态流转、定义业务规则 - 附设计文档模板和医疗HIS参考标准清单 铁律16: 模块优化必须分析现有业务流并说明促进作用 - 必须回答5个问题:位置/关联/促进/兼容/冲突 - 附业务逻辑分析文档模板 业务逻辑设计文档: - MD/specs/SURGERY_MANAGEMENT_DESIGN.md (139行) - 状态机: 待申请→待审批→已审批→待手术→手术中→已完成 - 7条业务规则: 分级权限/术前讨论/术前评估/手术室冲突/禁食/随访/安全核查 - MD/specs/ORDER_MANAGEMENT_DESIGN.md - 状态机: 新开→签发→执行中→已完成/已停止/已签退 - 6条业务规则: 停止时限/用药审核/查对/紧急标识/修改限制/皮试联动 - MD/specs/BED_MANAGEMENT_DESIGN.md - 状态机: 空闲↔占用↔清洁中↔维修中 - 5条业务规则: 分配校验/科室匹配/自动清洁/使用率统计/预约 后端业务逻辑增强: - SurgeryAppService: +手术室冲突校验 +手术统计 - BedController: +床位使用率统计 +分配校验 +出院自动清洁 - EsbMessageController: +消息路由校验 +消息轨迹 +死信队列处理
5.5 KiB
5.5 KiB
手术管理模块设计文档
文档类型: 业务设计 版本: v1.0 编制日期: 2026-06-06 依据标准: 《三级医院评审标准(2022版)》手术质量安全核心制度
一、业务背景
手术管理是三甲医院评审的核心检查项。依据《医疗质量安全核心制度》中的"手术分级管理制度"和"术前讨论制度",手术必须经过完整的术前评估→审批→执行→术后跟踪流程。
参考标准
- 三级医院评审标准(2022版) — 手术质量安全核心指标
- 电子病历应用水平分级评价 — 4级要求手术信息全院共享
- 《手术分级管理办法》— 手术分级授权管理
- 《病案管理与质量控制标准》— 手术记录规范
二、状态流转
2.1 手术状态机
待申请(0) → 待审批(1) → 已审批(2) → 待手术(3) → 手术中(4) → 已完成(5)
↓ ↓
已驳回(6) 已取消(7)
| 状态 | 值 | 触发条件 | 允许操作 |
|---|---|---|---|
| 待申请 | 0 | 医生提交手术申请 | 编辑/删除/提交审批 |
| 待审批 | 1 | 提交审批 | 审批/驳回 |
| 已审批 | 2 | 科主任审批通过 | 安排手术室/取消 |
| 待手术 | 3 | 安排手术室和时间 | 开始手术/取消 |
| 手术中 | 4 | 主刀医生确认开始 | 记录术中事件/完成 |
| 已完成 | 5 | 主刀医生确认完成 | 查看/打印记录 |
| 已驳回 | 6 | 科主任驳回 | 编辑后重新提交 |
| 已取消 | 7 | 任意阶段取消 | 查看 |
2.2 手术分级
| 级别 | 名称 | 审批权限 | 示例 |
|---|---|---|---|
| 一级 | 一级手术 | 住院医师可独立完成 | 阑尾切除术 |
| 二级 | 二级手术 | 主治医师以上 | 胃大部切除术 |
| 三级 | 三级手术 | 副主任医师以上 | 心脏搭桥术 |
| 四级 | 四级手术 | 科主任审批+医务部备案 | 器官移植术 |
三、业务规则
| 规则编号 | 规则名称 | 规则描述 | 触发时机 |
|---|---|---|---|
| SR-001 | 手术分级权限校验 | 医生只能申请其权限范围内的手术级别 | 提交申请时 |
| SR-002 | 术前讨论记录 | 三级/四级手术必须有术前讨论记录 | 提交审批时 |
| SR-003 | 术前评估 | 必须完成麻醉评估和手术风险评估 | 安排手术时 |
| SR-004 | 手术室冲突检查 | 同一手术室同一时间不能安排两台手术 | 安排手术室时 |
| SR-005 | 术前禁食提醒 | 手术前8小时禁止进食,4小时禁止饮水 | 手术前1天 |
| SR-006 | 术后随访 | 手术后24h/48h/72h必须有随访记录 | 完成手术后 |
| SR-007 | 手术安全核查 | 术前/术中/术后三次安全核查(WS/T 313) | 手术各阶段 |
四、前后端交互时序
4.1 提交手术申请
用户操作: 医生点击"提交手术申请"
→ 前端: 校验表单(必填项+业务规则前端预检)
→ API: POST /clinical-manage/surgery/surgery
→ 后端: SurgeryController.addSurgery()
→ SurgeryAppService.addSurgery()
→ 校验手术分级权限(SR-001)
→ 校验三级/四级手术术前讨论(SR-002)
→ 设置状态=待申请(0)
→ 保存到数据库
→ 返回: {code:200, msg:"申请已提交"}
→ 前端: ElMessage.success → 刷新列表
4.2 安排手术室
用户操作: 护士长点击"安排手术"
→ 前端: 弹出安排弹窗(选择手术室/时间/麻醉医生)
→ API: PUT /clinical-manage/surgery/surgery (携带手术室+时间信息)
→ 后端: 校验手术室冲突(SR-004)
→ 校验术前评估完成(SR-003)
→ 更新状态=待手术(3)
→ 返回: {code:200, msg:"安排成功"}
4.3 开始/完成手术
用户操作: 主刀医生点击"开始手术"
→ API: PUT /clinical-manage/surgery/surgery-status?id=&statusEnum=4
→ 后端: 更新状态=手术中(4), 记录开始时间
用户操作: 主刀医生点击"完成手术"
→ API: PUT /clinical-manage/surgery/surgery-status?id=&statusEnum=5
→ 后端: 更新状态=已完成(5), 记录结束时间
→ 触发术后随访提醒(SR-006)
五、数据模型扩展
现有 SurgeryDto 需增加以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| surgeryLevel | String | 手术级别(1/2/3/4) |
| surgeryRoom | String | 手术室 |
| anesthesiaType | String | 麻醉方式(全麻/局麻/脊麻/硬膜外) |
| preopDiagnosis | String | 术前诊断 |
| postopDiagnosis | String | 术后诊断 |
| startTime | DateTime | 实际开始时间 |
| endTime | DateTime | 实际结束时间 |
| complications | String | 并发症记录 |
| bloodLoss | Integer | 术中出血量(ml) |
| specimenSent | Boolean | 是否送检标本 |
六、测试用例
| 用例编号 | 场景 | 操作步骤 | 预期结果 |
|---|---|---|---|
| TC-S001 | 正常申请流程 | 医生提交→科主任审批→护士安排→手术完成 | 状态正确流转 |
| TC-S002 | 越级申请拒绝 | 住院医师申请四级手术 | 返回权限不足错误 |
| TC-S003 | 手术室冲突 | 同一时间安排两台手术到同一手术室 | 返回冲突提示 |
| TC-S004 | 驳回后重新提交 | 科主任驳回→医生修改→重新提交 | 状态从驳回回到待审批 |
| TC-S005 | 取消手术 | 已审批的手术点击取消 | 状态变为已取消 |
| TC-S006 | 缺少术前讨论 | 三级手术无术前讨论记录直接提交 | 拦截并提示 |