docs(specs): 三甲核心缺失模块深度设计 — 术前讨论/知情同意/病程记录

铁律17: 禁止浅层糊弄,必须深度分析+深度设计

1. MD/specs/PREOP_DISCUSSION_DESIGN.md (290行)
   - 三甲硬性: 三级/四级手术必须有术前讨论记录
   - 完整业务流程: 创建→签名→审核→绑定手术
   - 10条业务规则(PD-001~PD-010)
   - 数据模型: 讨论记录表+参与者表
   - 10个API接口
   - 前端页面设计(左右布局弹窗)
   - 8个测试用例

2. MD/specs/INFORMED_CONSENT_DESIGN.md (161行)
   - 三甲硬性: 手术/麻醉/输血必须签署知情同意
   - 7种知情同意类型
   - 完整签署流程: 发起→编辑→医生签→患者签→归档
   - 数据模型: 知情同意书表
   - 8条业务规则(IC-001~IC-008)
   - 6个测试用例

3. MD/specs/PROGRESS_NOTES_DESIGN.md (210行)
   - 三甲硬性: 病程记录时限监控(首次8h/日常3天/上级查房72h)
   - 12种病程记录类型及时限要求
   - 时限监控流程: 定时扫描→预警→通知→上报
   - 数据模型: 病程记录表+提醒表
   - 12条业务规则(PN-001~PN-012)
   - 前端设计: 时限监控面板
   - 6个测试用例
This commit is contained in:
2026-06-06 15:15:35 +08:00
parent 22712547bc
commit 5c425e12ea
3 changed files with 661 additions and 0 deletions

View File

@@ -0,0 +1,290 @@
# 术前讨论记录模块设计文档
> **文档类型**: 深度业务设计
> **版本**: v1.0
> **编制日期**: 2026-06-06
> **三甲依据**: 《三级医院评审标准(2022版)》手术分级管理制度 — 三级/四级手术必须有术前讨论记录
> **评审条款**: 现场检查必查项,缺失则一票否决
---
## 一、业务背景
### 1.1 为什么要术前讨论?
术前讨论是手术安全管理的核心制度。依据《医疗质量安全核心制度要点》2018版
- **三级手术**:必须有术前讨论,由副主任医师及以上主持
- **四级手术**:必须有科内讨论+全科讨论,由科主任主持
- 术前讨论记录是病历的必要组成部分,评审专家现场必查
### 1.2 当前系统差距
当前系统已有手术管理模块(申请→审批→安排→执行),但缺少**术前讨论记录**这一关键环节。评审时如果手术病历中没有术前讨论记录,将被判定为不合格。
### 1.3 参考标准
- 《医疗质量安全核心制度要点》2018版第5条术前讨论制度
- 《病历书写基本规范》2010版手术记录要求
- 《三级医院评审标准2022版手术质量安全核心指标
- 《手术分级管理办法》:手术分级与讨论要求对应关系
---
## 二、完整业务流程
### 2.1 术前讨论全流程
```
医生提交手术申请
系统判断手术级别
├── 一级/二级手术 → 无需术前讨论(可选)
└── 三级/四级手术 → 强制要求术前讨论
创建术前讨论记录
邀请讨论参与者至少2人
讨论内容录入
├── 患者基本信息(自动带入)
├── 术前诊断(关联诊断模块)
├── 手术名称和指征
├── 手术方案(主方案+备选方案)
├── 麻醉方式
├── 术中可能风险及对策
├── 术后注意事项
└── 讨论结论(同意手术/需进一步检查/暂不手术)
参与者签名(电子签名)
主持人审核确认
绑定到手术申请
手术申请可继续流转(审批→安排→执行)
```
### 2.2 异常流程
| 场景 | 处理方式 |
|------|---------|
| 讨论结论为"暂不手术" | 手术申请状态变为"讨论后暂停",需修改后重新讨论 |
| 讨论结论为"需进一步检查" | 手术申请状态变为"待补充检查",检查完成后重新讨论 |
| 参与者不足(三级手术<2人 | 拦截提交提示"三级手术术前讨论至少需要2名医师参与" |
| 四级手术主持人非科主任 | 拦截提交提示"四级手术必须由科主任主持讨论" |
| 术前讨论记录缺失时尝试安排手术 | 系统拦截提示"请先完成术前讨论" |
---
## 三、状态流转
### 3.1 术前讨论记录状态
```
草稿(0) → 待签名(1) → 待审核(2) → 已完成(3) → 已归档(4)
已驳回(5) → 草稿(0)
```
| 状态 | | 触发条件 | 允许操作 |
|------|-----|---------|---------|
| 草稿 | 0 | 创建讨论记录 | 编辑/删除/提交签名 |
| 待签名 | 1 | 提交参与者签名 | 参与者签名 |
| 待审核 | 2 | 所有参与者已签名 | 主持人审核 |
| 已完成 | 3 | 主持人审核通过 | 绑定手术/查看 |
| 已归档 | 4 | 手术完成自动归档 | 查看 |
| 已驳回 | 5 | 主持人驳回 | 编辑后重新提交 |
---
## 四、业务规则
| 规则编号 | 规则名称 | 规则描述 | 触发时机 | 处理方式 |
|---------|---------|---------|---------|---------|
| PD-001 | 三级手术讨论 | 三级手术必须有术前讨论记录 | 手术审批时 | 缺失则拦截 |
| PD-002 | 四级手术讨论 | 四级手术必须有科内讨论记录 | 手术审批时 | 缺失则拦截 |
| PD-003 | 主持人资质 | 三级手术副主任医师以上主持 | 创建讨论时 | 自动校验 |
| PD-004 | 四级手术主持人 | 四级手术必须由科主任主持 | 创建讨论时 | 自动校验 |
| PD-005 | 参与者人数 | 三级手术2人四级手术3人 | 提交时 | 不足则拦截 |
| PD-006 | 讨论时效 | 术前讨论必须在手术前24小时内完成 | 创建讨论时 | 超时则提醒 |
| PD-007 | 电子签名 | 所有参与者必须电子签名 | 审核前 | 未签则拦截 |
| PD-008 | 绑定手术 | 讨论完成后自动绑定到对应手术申请 | 审核通过时 | 自动关联 |
| PD-009 | 术前诊断一致性 | 讨论中的术前诊断必须与手术申请一致 | 提交审核时 | 不一致则警告 |
| PD-010 | 手术方案完整性 | 必须包含主方案+至少一个备选方案 | 提交时 | 缺失则拦截 |
---
## 五、数据模型
### 5.1 术前讨论记录表 `sys_preop_discussion`
| 字段 | 类型 | 说明 | 必填 |
|------|------|------|------|
| id | BIGSERIAL | 主键 | |
| encounter_id | BIGINT | 就诊ID | |
| surgery_id | BIGINT | 关联手术申请ID | |
| patient_id | BIGINT | 患者ID | |
| patient_name | VARCHAR(50) | 患者姓名 | |
| discussion_type | INT | 讨论类型(1科内讨论 2全科讨论 3全院讨论) | |
| surgery_level | INT | 手术级别(1/2/3/4) | |
| preop_diagnosis | TEXT | 术前诊断 | |
| surgery_name | VARCHAR(200) | 手术名称 | |
| surgery_indication | TEXT | 手术指征 | |
| main_plan | TEXT | 主手术方案 | |
| backup_plan | TEXT | 备选手术方案 | |
| anesthesia_type | VARCHAR(50) | 麻醉方式 | |
| risks_and_countermeasures | TEXT | 术中可能风险及对策 | |
| postop_notes | TEXT | 术后注意事项 | |
| discussion_conclusion | INT | 讨论结论(1同意手术 2需进一步检查 3暂不手术) | |
| discussion_result | TEXT | 讨论详细结果 | |
| host_user_id | BIGINT | 主持人用户ID | |
| host_user_name | VARCHAR(50) | 主持人姓名 | |
| status | INT | 状态(0草稿 1待签名 2待审核 3已完成 4已归档 5已驳回) | |
| discussion_time | TIMESTAMP | 讨论时间 | |
| discussion_location | VARCHAR(200) | 讨论地点 | |
### 5.2 术前讨论参与者表 `sys_preop_discussion_participant`
| 字段 | 类型 | 说明 | 必填 |
|------|------|------|------|
| id | BIGSERIAL | 主键 | |
| discussion_id | BIGINT | 关联讨论记录ID | |
| user_id | BIGINT | 参与者用户ID | |
| user_name | VARCHAR(50) | 参与者姓名 | |
| role | VARCHAR(20) | 角色(主持人/参与者/记录人) | |
| title | VARCHAR(50) | 职称(主任医师/副主任医师/主治医师) | |
| sign_status | INT | 签名状态(0未签 1已签) | |
| sign_time | TIMESTAMP | 签名时间 | |
| sign_image | TEXT | 签名图片(base64) | |
| opinion | TEXT | 个人意见 | |
---
## 六、接口设计
### 6.1 API列表
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | /preop-discussion/add | 创建讨论记录 |
| PUT | /preop-discussion/update | 修改讨论记录 |
| GET | /preop-discussion/detail | 查看讨论详情 |
| GET | /preop-discussion/list | 查询讨论列表 |
| DELETE | /preop-discussion/delete | 删除讨论记录(仅草稿) |
| PUT | /preop-discussion/submit | 提交讨论(草稿待签名) |
| PUT | /preop-discussion/sign | 参与者签名 |
| PUT | /preop-discussion/review | 主持人审核(通过/驳回) |
| GET | /preop-discussion/check-required | 检查手术是否需要术前讨论 |
| GET | /preop-discussion/statistics | 讨论统计 |
### 6.2 核心接口时序
#### 创建术前讨论
```
前端: 弹出讨论表单 → 自动带入患者/手术信息
API: POST /preop-discussion/add
后端:
1. 校验手术级别(PD-001/PD-002)
2. 校验主持人资质(PD-003/PD-004)
3. 校验讨论时效(PD-006)
4. 保存讨论记录+参与者
5. 设置状态=草稿(0)
返回: {code:200, data:{discussionId}}
```
#### 主持人审核
```
前端: 主持人查看讨论内容 → 点击"审核通过"
API: PUT /preop-discussion/review
后端:
1. 校验当前用户是否为主持人
2. 校验所有参与者已签名(PD-007)
3. 校验参与者人数(PD-005)
4. 校验手术方案完整性(PD-010)
5. 更新状态=已完成(3)
6. 自动绑定到手术申请(PD-008)
返回: {code:200, msg:"审核通过"}
```
---
## 七、前端页面设计
### 7.1 页面布局
```
┌─────────────────────────────────────────────┐
│ 术前讨论管理 [新建讨论] │
├─────────────────────────────────────────────┤
│ 搜索区: [患者] [手术级别] [状态] [日期] [搜索] │
├─────────────────────────────────────────────┤
│ 表格: 序号|患者|手术名称|级别|主持人|状态|操作 │
│ 1 张三 阑尾切除 三级 李主任 已完成 │
├─────────────────────────────────────────────┤
│ 分页: < 1 2 3 > │
└─────────────────────────────────────────────┘
```
### 7.2 新建讨论弹窗(左右布局)
```
┌──────────────────────────┬────────────────────┐
│ 患者信息(自动带入) │ 讨论内容 │
│ 姓名: 张三 │ 术前诊断: [____] │
│ 住院号: 2026060001 │ 手术指征: [____] │
│ 科室: 普外科 │ 主方案: [____] │
│ 床号: 12床 │ 备选方案: [____] │
│ │ 麻醉方式: [____] │
│ 手术信息(自动带入) │ 风险及对策: [____] │
│ 手术名称: 阑尾切除术 │ 术后注意: [____] │
│ 手术级别: 三级 │ 讨论结论: [单选] │
│ 申请医生: 王医生 │ │
│ │ 讨论参与者: │
│ 讨论信息 │ □ 李主任(主持) │
│ 讨论时间: [____] │ □ 赵副主任 │
│ 讨论地点: [____] │ □ 孙主治 │
│ 讨论类型: [科内讨论] │ │
└──────────────────────────┴────────────────────┘
```
---
## 八、与手术管理模块的集成
### 8.1 数据关联
```
手术申请(Surgery) ──1:N──→ 术前讨论记录(PreopDiscussion)
术前讨论记录 ──1:N──→ 参与者(Participant)
```
### 8.2 流程集成
- **手术申请提交时**检查三级/四级手术是否有术前讨论
- **手术审批时**强制校验术前讨论完成状态
- **手术安排时**显示术前讨论结论
- **手术完成时**自动归档术前讨论记录
### 8.3 手术管理页面改造
在手术管理页面的"操作"列增加"术前讨论"按钮
- 三级/四级手术显示"查看讨论""新建讨论"
- 一级/二级手术显示"可选讨论"
---
## 九、测试用例
| 用例编号 | 场景 | 操作步骤 | 预期结果 |
|---------|------|---------|---------|
| TC-PD001 | 正常创建讨论 | 填写完整信息保存 | 状态=草稿,可编辑 |
| TC-PD002 | 三级手术强制讨论 | 三级手术不创建讨论直接审批 | 拦截提示"请先完成术前讨论" |
| TC-PD003 | 参与者不足 | 三级手术只邀请1人 | 拦截提示"至少需要2名医师" |
| TC-PD004 | 四级手术非科主任主持 | 主治医师主持四级手术讨论 | 拦截提示"必须由科主任主持" |
| TC-PD005 | 签名流程 | 所有参与者签名主持人审核 | 状态变为已完成 |
| TC-PD006 | 驳回后修改 | 主持人驳回修改重新提交 | 状态从驳回回到草稿 |
| TC-PD007 | 绑定手术 | 讨论完成关联手术申请 | 手术申请可继续流转 |
| TC-PD008 | 讨论时效校验 | 手术前48小时创建讨论 | 警告"请在手术前24小时内完成讨论" |