Files
his/MD/specs/SURGERY_MANAGEMENT_DESIGN.md
华佗 76f090d2af docs(iron-rules): 新增铁律15+16 + 业务逻辑设计文档 + 后端增强
铁律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: +消息路由校验 +消息轨迹 +死信队列处理
2026-06-06 14:11:50 +08:00

140 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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