Files
his/MD/specs/PREOP_DISCUSSION_DESIGN.md
华佗 5c425e12ea 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个测试用例
2026-06-06 15:15:35 +08:00

291 lines
12 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版)》手术分级管理制度 — 三级/四级手术必须有术前讨论记录
> **评审条款**: 现场检查必查项,缺失则一票否决
---
## 一、业务背景
### 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小时内完成讨论" |