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: +消息路由校验 +消息轨迹 +死信队列处理
This commit is contained in:
72
MD/specs/BED_MANAGEMENT_DESIGN.md
Normal file
72
MD/specs/BED_MANAGEMENT_DESIGN.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# 床位管理模块设计文档
|
||||
|
||||
> **文档类型**: 业务设计
|
||||
> **版本**: v1.0
|
||||
> **编制日期**: 2026-06-06
|
||||
> **依据标准**: 《三级医院评审标准(2022版)》床位使用率指标
|
||||
|
||||
---
|
||||
|
||||
## 一、业务背景
|
||||
|
||||
床位管理直接影响医院运营效率。三甲医院评审要求床位使用率≥85%,床位周转次数达标。需要实时掌握床位状态,支持智能分配。
|
||||
|
||||
---
|
||||
|
||||
## 二、状态流转
|
||||
|
||||
### 2.1 床位状态机
|
||||
|
||||
```
|
||||
空闲(0) → 占用(1) → 清洁中(2) → 空闲(0)
|
||||
↓
|
||||
维修中(3) → 空闲(0)
|
||||
```
|
||||
|
||||
| 状态 | 值 | 触发条件 | 允许操作 |
|
||||
|------|-----|---------|---------|
|
||||
| 空闲 | 0 | 清洁完成/新床 | 分配患者 |
|
||||
| 占用 | 1 | 患者入院分配 | 患者转科/出院 |
|
||||
| 清洁中 | 2 | 患者出院后 | 清洁完成→空闲 |
|
||||
| 维修中 | 3 | 设备故障 | 维修完成→空闲 |
|
||||
|
||||
---
|
||||
|
||||
## 三、业务规则
|
||||
|
||||
| 规则编号 | 规则名称 | 规则描述 | 触发时机 |
|
||||
|---------|---------|---------|---------|
|
||||
| BR-001 | 床位分配校验 | 只有"空闲"状态的床位才能分配 | 入院登记时 |
|
||||
| BR-002 | 科室匹配 | 床位所属科室必须与患者入院科室一致 | 入院登记时 |
|
||||
| BR-003 | 出院自动清洁 | 患者出院后床位自动变为"清洁中" | 出院结算时 |
|
||||
| BR-004 | 使用率统计 | 实时计算科室/全院床位使用率 | 定时任务 |
|
||||
| BR-005 | 床位预约 | 支持预约指定床位(限时保留) | 预约住院时 |
|
||||
|
||||
---
|
||||
|
||||
## 四、数据模型
|
||||
|
||||
### 床位使用率计算公式
|
||||
```
|
||||
科室床位使用率 = (占用床位数 / 总床位数) × 100%
|
||||
全院床位使用率 = (全院占用床位数 / 全院总床位数) × 100%
|
||||
床位周转次数 = 出院人次 / 平均开放床位数
|
||||
```
|
||||
|
||||
### 床位占用时长统计
|
||||
```
|
||||
平均住院天数 = Σ(出院日期 - 入院日期) / 出院人次
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、测试用例
|
||||
|
||||
| 用例编号 | 场景 | 预期结果 |
|
||||
|---------|------|---------|
|
||||
| TC-B001 | 正常分配 | 空闲床位→占用,状态正确 |
|
||||
| TC-B002 | 分配已占用床位 | 返回"该床位已被占用" |
|
||||
| TC-B003 | 出院自动清洁 | 出院后床位变为"清洁中" |
|
||||
| TC-B004 | 使用率计算 | 数据准确反映实际使用情况 |
|
||||
| TC-B005 | 维修中分配 | 返回"该床位维修中" |
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
| #8 | 铁律和规范文档放MD目录 | P1 | 规范文档 |
|
||||
| #9 | 开发前必须审核原有代码 | P0 | 全量开发 |
|
||||
| #10 | 设计文档必须包含UI设计和调用流程 | P0 | 设计文档/前端开发 |
|
||||
| #11 | 模块设计必须分析业务逻辑,不能只做CRUD | P0 | 全量模块设计 |
|
||||
| #12 | 模块优化必须分析现有业务流并说明促进作用 | P0 | 全量模块优化 |
|
||||
|
||||
---
|
||||
|
||||
@@ -309,6 +311,129 @@ npm run lint
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
### 铁律 #12: 模块优化必须分析现有业务流并说明促进作用
|
||||
|
||||
**任何模块新增/优化前,必须先分析现有业务流程全貌。**
|
||||
|
||||
#### 必须回答的5个问题
|
||||
|
||||
| # | 问题 | 说明 |
|
||||
|---|------|------|
|
||||
| 1 | 该模块在整体业务流中处于什么位置? | 上游/下游/并行 |
|
||||
| 2 | 该模块与哪些现有模块有数据流转关系? | 列出所有关联模块 |
|
||||
| 3 | 优化对上下游模块有什么促进作用? | 减少重复、提升一致性、加快流程 |
|
||||
| 4 | 变更是否影响现有业务流程? | 兼容性评估 |
|
||||
| 5 | 业务规则是否与现有模块冲突? | 规则一致性检查 |
|
||||
|
||||
#### 业务逻辑分析文档模板
|
||||
|
||||
```
|
||||
# 模块名 — 业务逻辑分析
|
||||
|
||||
## 1. 整体业务流程定位
|
||||
[该模块在HIS系统中的位置,上下游关系图]
|
||||
|
||||
## 2. 关联模块分析
|
||||
| 关联模块 | 数据流向 | 交互方式 | 影响程度 |
|
||||
|---------|---------|---------|---------|
|
||||
|
||||
## 3. 优化促进作用
|
||||
| 维度 | 优化前 | 优化后 | 提升效果 |
|
||||
|------|--------|--------|---------|
|
||||
|
||||
## 4. 兼容性评估
|
||||
- 对现有模块的影响
|
||||
- 数据迁移需求
|
||||
- 接口变更影响
|
||||
|
||||
## 5. 规则一致性检查
|
||||
- 新增规则是否与现有规则冲突
|
||||
- 状态流转是否与现有状态机兼容
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 铁律 #11: 模块设计必须分析业务逻辑,不能只做CRUD
|
||||
|
||||
**任何新模块/功能开发前,必须先进行业务逻辑分析和梳理。**
|
||||
|
||||
#### 禁止行为
|
||||
- ❌ 拿到需求就直接写CRUD,不思考业务流程
|
||||
- ❌ 不查阅标准规范就开发医疗业务模块
|
||||
- ❌ 没有设计文档就直接编码
|
||||
- ❌ 把"能增删改查"当成"功能完成"
|
||||
|
||||
#### 必须完成的设计步骤
|
||||
|
||||
| # | 步骤 | 产出物 | 说明 |
|
||||
|---|------|--------|------|
|
||||
| 1 | 查阅标准规范 | 参考文档清单 | 国家卫健委标准、医保局规范、HL7/FHIR、三甲评审标准 |
|
||||
| 2 | 梳理业务流程 | 流程图/文字描述 | 正常流程 + 异常流程 + 边界场景 |
|
||||
| 3 | 设计状态流转 | 状态机图 | 每个实体的生命周期、状态转换条件 |
|
||||
| 4 | 定义业务规则 | 规则清单 | 如:药品相互作用规则、医保审核规则、危急值判定规则 |
|
||||
| 5 | 设计交互时序 | 时序图 | 用户操作 → 前端事件 → API → 后端处理 → 持久化 → 响应 |
|
||||
| 6 | 编写设计文档 | MD文件 | 保存到 `MD/specs/` 或 `MD/architecture/` |
|
||||
|
||||
#### 医疗HIS业务逻辑参考标准
|
||||
|
||||
| 标准/规范 | 适用模块 | 获取途径 |
|
||||
|----------|---------|---------|
|
||||
| 三级医院评审标准(2022版) | 全量 | 卫健委官网 |
|
||||
| 电子病历应用水平分级评价 | 电子病历/质控 | 卫健委官网 |
|
||||
| 互联互通标准化成熟度测评 | ESB/集成平台 | 卫健委官网 |
|
||||
| 医保基金使用监督管理条例 | 医保审核/结算 | 医保局官网 |
|
||||
| HL7 FHIR R4 | 数据交换/ESB | hl7.org |
|
||||
| 处方管理办法 | 合理用药/处方 | 卫健委官网 |
|
||||
| 抗菌药物临床应用管理办法 | 抗菌药物管理 | 卫健委官网 |
|
||||
| 医院感染管理办法 | 院感管理 | 卫健委官网 |
|
||||
| 病案管理与质量控制标准 | 病案管理 | 卫健委官网 |
|
||||
|
||||
#### 设计文档模板
|
||||
|
||||
```
|
||||
# 模块名 设计文档
|
||||
|
||||
## 1. 业务背景
|
||||
- 依据什么标准/规范
|
||||
- 解决什么业务问题
|
||||
|
||||
## 2. 业务流程
|
||||
### 2.1 正常流程
|
||||
[流程描述/流程图]
|
||||
|
||||
### 2.2 异常流程
|
||||
[异常场景及处理方式]
|
||||
|
||||
### 2.3 边界场景
|
||||
[特殊情况处理]
|
||||
|
||||
## 3. 状态流转
|
||||
| 状态 | 值 | 触发条件 | 下一状态 |
|
||||
|------|-----|---------|---------|
|
||||
|
||||
## 4. 业务规则
|
||||
| 规则编号 | 规则名称 | 规则描述 | 触发时机 |
|
||||
|---------|---------|---------|---------|
|
||||
|
||||
## 5. 数据模型
|
||||
[实体关系图/表结构设计]
|
||||
|
||||
## 6. 接口设计
|
||||
[API列表+参数+返回值]
|
||||
|
||||
## 7. 前端页面设计
|
||||
[UI布局+交互+调用流程]
|
||||
|
||||
## 8. 测试用例
|
||||
[关键业务场景测试]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 铁律 #10: 设计文档必须包含UI设计和调用流程
|
||||
|
||||
**所有新模块/页面的设计文档必须包含以下要素,缺一不可:**
|
||||
|
||||
91
MD/specs/ORDER_MANAGEMENT_DESIGN.md
Normal file
91
MD/specs/ORDER_MANAGEMENT_DESIGN.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# 医嘱管理模块设计文档
|
||||
|
||||
> **文档类型**: 业务设计
|
||||
> **版本**: v1.0
|
||||
> **编制日期**: 2026-06-06
|
||||
> **依据标准**: 《三级医院评审标准(2022版)》医嘱管理制度
|
||||
|
||||
---
|
||||
|
||||
## 一、业务背景
|
||||
|
||||
医嘱管理是住院诊疗的核心环节。依据《病历书写基本规范》和《处方管理办法》,医嘱必须经过开具→审核→执行→完成的完整闭环。
|
||||
|
||||
---
|
||||
|
||||
## 二、状态流转
|
||||
|
||||
### 2.1 医嘱状态机
|
||||
|
||||
```
|
||||
新开(0) → 已签发(1) → 执行中(2) → 已完成(3)
|
||||
↓
|
||||
已停止(4) → 已取消停嘱(恢复)(2)
|
||||
↓
|
||||
已签退(5)
|
||||
```
|
||||
|
||||
| 状态 | 值 | 触发条件 | 允许操作 |
|
||||
|------|-----|---------|---------|
|
||||
| 新开 | 0 | 医生新开医嘱 | 签发/删除 |
|
||||
| 已签发 | 1 | 医生签发 | 护士执行/签退 |
|
||||
| 执行中 | 2 | 护士开始执行 | 停止/完成 |
|
||||
| 已完成 | 3 | 执行完毕 | 查看 |
|
||||
| 已停止 | 4 | 医生停止医嘱 | 恢复(取消停嘱) |
|
||||
| 已签退 | 5 | 护士签退 | 查看 |
|
||||
|
||||
---
|
||||
|
||||
## 三、业务规则
|
||||
|
||||
| 规则编号 | 规则名称 | 规则描述 | 触发时机 |
|
||||
|---------|---------|---------|---------|
|
||||
| OR-001 | 长期医嘱停止时限 | 长期医嘱停止必须在执行时间之前2小时 | 停止医嘱时 |
|
||||
| OR-002 | 用药医嘱审核 | 用药医嘱必须经过合理用药系统审核 | 签发用药医嘱时 |
|
||||
| OR-003 | 医嘱查对 | 执行医嘱前必须双人查对 | 护士执行时 |
|
||||
| OR-004 | 紧急医嘱标识 | 紧急医嘱需要特殊标识和优先执行 | 开具医嘱时 |
|
||||
| OR-005 | 医嘱修改限制 | 已签发的医嘱不能修改,只能停止后新开 | 修改医嘱时 |
|
||||
| OR-006 | 皮试医嘱联动 | 需要皮试的药物必须关联皮试医嘱 | 开具需皮试药物时 |
|
||||
|
||||
---
|
||||
|
||||
## 四、前后端交互时序
|
||||
|
||||
### 4.1 签发医嘱
|
||||
```
|
||||
用户操作: 医生点击"签发医嘱"
|
||||
→ 前端: 收集选中医嘱列表
|
||||
→ API: POST /reg-doctorstation/advice-manage/sign-reg-advice
|
||||
→ 后端: AdviceManageController.signRegAdvice()
|
||||
→ 校验医嘱状态必须为"新开"(OR-005)
|
||||
→ 用药医嘱调用合理用药系统审核(OR-002)
|
||||
→ 设置签发时间+签发人
|
||||
→ 更新状态=已签发(1)
|
||||
→ 返回: {code:200, msg:"签发成功"}
|
||||
→ 前端: 刷新医嘱列表
|
||||
```
|
||||
|
||||
### 4.2 停止医嘱
|
||||
```
|
||||
用户操作: 医生点击"停止医嘱"
|
||||
→ 前端: 弹出确认框+填写停嘱原因
|
||||
→ API: POST /reg-doctorstation/advice-manage/stop-reg-advice
|
||||
→ 后端: 校验医嘱状态必须为"执行中"
|
||||
→ 长期医嘱校验停止时限(OR-001)
|
||||
→ 设置停嘱时间+停嘱原因
|
||||
→ 更新状态=已停止(4)
|
||||
→ 返回: {code:200, msg:"停嘱成功"}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、测试用例
|
||||
|
||||
| 用例编号 | 场景 | 预期结果 |
|
||||
|---------|------|---------|
|
||||
| TC-O001 | 正常签发流程 | 新开→签发→执行→完成 |
|
||||
| TC-O002 | 签发后修改 | 返回"已签发医嘱不能修改" |
|
||||
| TC-O003 | 停止后恢复 | 已停止→恢复→执行中 |
|
||||
| TC-O004 | 用药审核拦截 | 有相互作用的药物签发时被拦截 |
|
||||
| TC-O005 | 紧急医嘱优先 | 紧急医嘱在列表中高亮显示 |
|
||||
|
||||
139
MD/specs/SURGERY_MANAGEMENT_DESIGN.md
Normal file
139
MD/specs/SURGERY_MANAGEMENT_DESIGN.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# 手术管理模块设计文档
|
||||
|
||||
> **文档类型**: 业务设计
|
||||
> **版本**: 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 | 缺少术前讨论 | 三级手术无术前讨论记录直接提交 | 拦截并提示 |
|
||||
|
||||
Reference in New Issue
Block a user