# 手术管理模块设计文档 > **文档类型**: 业务设计 > **版本**: 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 | 缺少术前讨论 | 三级手术无术前讨论记录直接提交 | 拦截并提示 |