Files
his/MD/test/HEALTHLINK_HIS_TEST_PLAN.md
华佗 e31337b58a feat(test): 业务逻辑级测试脚本+测试报告
- 04_test_business_logic.py: 业务逻辑测试v1(111用例)
- 04_test_business_logic_v2.py: 修正API路径后v2(107用例,通过率31.8%)
- 测试报告: 揭示大量API路径不匹配和参数问题
- 测试数据: SQL脚本覆盖31个业务模块
- 测试流程: 30个业务流程图+API映射

测试发现的问题:
1. 多个Controller缺少/page端点
2. 部分接口需要必填参数(patientId, startTime等)
3. 部分接口响应格式非标准(rows嵌套为dict)
4. DB列名不匹配(create_by不存在等)
2026-06-07 21:54:20 +08:00

486 lines
16 KiB
Markdown

# HealthLink-HIS 三甲医院全流程测试计划
## 1. 测试概述
**项目**: HealthLink-HIS 三甲医院信息系统
**版本**: v2.0 (JDK 25 + Spring Boot 4.0.6 + Vue 3 + Element Plus)
**测试范围**: 门诊、住院、药房、护理、检验、影像、手术、麻醉、院感、质控、中医等全流程
**测试环境**: 本地开发环境 (localhost:18082)
---
## 2. 测试数据准备
### 2.1 基础数据
```sql
-- 测试科室
INSERT INTO sys_dept (dept_name, parent_id, order_num) VALUES
('内科', 0, 1), ('外科', 0, 2), ('妇产科', 0, 3), ('儿科', 0, 4),
('ICU', 0, 5), ('急诊科', 0, 6), ('手术室', 0, 7), ('药房', 0, 8),
('检验科', 0, 9), ('影像科', 0, 10), ('门诊部', 0, 11), ('住院部', 0, 12);
-- 测试医生
INSERT INTO sys_user (user_name, nick_name, dept_id, email) VALUES
('zhangsan', '张三', 1, 'zhangsan@hospital.com'),
('lisi', '李四', 2, 'lisi@hospital.com'),
('wangwu', '王五', 3, 'wangwu@hospital.com'),
('zhaoliu', '赵六', 5, 'zhaoliu@hospital.com');
-- 测试护士
INSERT INTO sys_user (user_name, nick_name, dept_id) VALUES
('nurse1', '护士A', 1),
('nurse2', '护士B', 5);
-- 测试药品
INSERT INTO drug_info (drug_code, drug_name, drug_spec, drug_category) VALUES
('DRG001', '阿莫西林胶囊', '0.5g*24片', '抗生素'),
('DRG002', '布洛芬缓释胶囊', '0.3g*20粒', '解热镇痛'),
('DRG003', '奥美拉唑肠溶胶囊', '20mg*14粒', '消化系统'),
('DRG004', '氨氯地平片', '5mg*7片', '心血管'),
('DRG005', '头孢曲松注射液', '1g', '抗生素');
```
### 2.2 测试患者数据
```sql
-- 门诊患者
INSERT INTO patient_info (patient_name, id_card, gender, birth_date, phone) VALUES
('患者甲', '450102199001011234', 'M', '1990-01-01', '13800138001'),
('患者乙', '450102198505052345', 'F', '1985-05-05', '13800138002'),
('患者丙', '450102200010103456', 'M', '2000-10-10', '13800138003'),
('患者丁', '450102197512124567', 'F', '1975-12-12', '13800138004');
-- 住院患者
INSERT INTO inpatient_info (patient_id, bed_no, admission_date, diagnosis) VALUES
(1, 'ICU-01', '2026-06-01', '重症肺炎'),
(2, '内-01', '2026-06-03', '高血压3级'),
(3, '外-01', '2026-06-05', '急性阑尾炎');
```
---
## 3. 全流程测试用例
### 3.1 门诊就诊流程
#### 流程图
```
患者挂号 → 医生接诊 → 开具处方 → 药房发药 → 收费结算
↓ ↓ ↓ ↓ ↓
[挂号管理] [门诊医生站] [处方管理] [药房管理] [收费管理]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 挂号 | 创建挂号记录 | POST /api/v1/outpatient/registration | 返回挂号单号 |
| 2. 接诊 | 医生接诊患者 | POST /api/v1/outpatient/encounter | 创建就诊记录 |
| 3. 开方 | 开具处方 | POST /api/v1/outpatient/prescription | 返回处方号 |
| 4. 发药 | 药房发药 | POST /api/v1/pharmacy/dispense | 更新库存 |
| 5. 结算 | 收费结算 | POST /api/v1/charge/settle | 生成收费记录 |
#### 测试数据
```json
// 1. 挂号
{
"patientId": 1,
"doctorId": 1,
"deptId": 1,
"appointTime": "2026-06-07 09:00:00",
"regType": "普通"
}
// 2. 开方
{
"encounterId": 1001,
"patientId": 1,
"doctorId": 1,
"items": [
{"drugCode": "DRG001", "quantity": 2, "usage": "tid po"},
{"drugCode": "DRG002", "quantity": 1, "usage": "bid po"}
]
}
```
---
### 3.2 住院入院流程
#### 流程图
```
入院登记 → 护理评估 → 医嘱开具 → 执行医嘱 → 出院结算
↓ ↓ ↓ ↓ ↓
[入院管理] [护理评估] [医嘱管理] [护理执行] [出院管理]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 入院登记 | 创建入院记录 | POST /api/v1/inpatient/admission | 返回住院号 |
| 2. 护理评估 | Braden压疮评估 | POST /nursing-assessment-enhanced/braden/assess | 评估完成 |
| 3. 跌倒评估 | Morse跌倒评估 | POST /nursing-assessment-enhanced/morse/assess | 评估完成 |
| 4. 开医嘱 | 医生开具医嘱 | POST /api/v1/order/submit | 医嘱生效 |
| 5. 执行医嘱 | 护士执行医嘱 | POST /api/v1/order/execute | 执行完成 |
| 6. 出院结算 | 出院结算 | POST /api/v1/inpatient/discharge | 结算完成 |
#### 测试数据
```json
// 1. 入院登记
{
"patientId": 1,
"deptId": 5,
"bedNo": "ICU-01",
"admissionDate": "2026-06-07",
"diagnosis": "重症肺炎",
"admissionDoctor": "赵六"
}
// 2. Braden评估
{
"patientName": "患者甲",
"encounterId": 1001,
"itemScores": "{\"sensation\":2,\"moisture\":2,\"activity\":1,\"mobility\":2,\"nutrition\":3,\"friction\":2}",
"detail": "压疮高危患者"
}
// 3. Morse评估
{
"patientName": "患者甲",
"encounterId": 1001,
"itemScores": "{\"history\":15,\"diagnosis\":0,\"ambulation\":15,\"iv\":20,\"gait\":0,\"mental\":0}",
"detail": "跌倒高危患者"
}
```
---
### 3.3 药房管理流程
#### 流程图
```
采购入库 → 库存管理 → 处方审核 → 发药 → 库存预警
↓ ↓ ↓ ↓ ↓
[采购管理] [库存管理] [合理用药] [发药管理] [库存预警]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 采购入库 | 药品采购 | POST /api/v1/pharmacy/purchase | 库存增加 |
| 2. 库存查询 | 查询库存 | GET /api/v1/pharmacy/stock | 返回库存列表 |
| 3. 处方审核 | 审核处方 | POST /api/v1/rational-drug/audit | 审核完成 |
| 4. 发药 | 药房发药 | POST /api/v1/pharmacy/dispense | 库存减少 |
| 5. 库存预警 | 查询预警 | GET /pharmacystockalert/page | 返回预警列表 |
---
### 3.4 检验管理流程
#### 流程图
```
开具检验单 → 标本采集 → 标本接收 → 检验执行 → 报告审核 → 结果查看
↓ ↓ ↓ ↓ ↓ ↓
[检验申请] [标本管理] [标本接收] [检验执行] [报告审核] [结果查看]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 开检验单 | 申请检验 | POST /api/v1/inspection/apply | 返回申请单号 |
| 2. 标本采集 | 采集标本 | POST /api/v1/specimen/collect | 标本登记 |
| 3. 标本接收 | 接收标本 | POST /api/v1/specimen/receive | 状态更新 |
| 4. 检验执行 | 录入结果 | POST /api/v1/inspection/result | 结果保存 |
| 5. 报告审核 | 审核报告 | POST /api/v1/inspection/audit | 报告完成 |
---
### 3.5 影像检查流程
#### 流程图
```
开具检查单 → 预约排队 → 检查执行 → 报告编写 → 结果查看 → 历史对比
↓ ↓ ↓ ↓ ↓ ↓
[检查申请] [预约管理] [检查执行] [报告管理] [结果查看] [影像对比]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 开检查单 | 申请检查 | POST /api/v1/exam/apply | 返回申请单号 |
| 2. 预约检查 | 预约排队 | POST /api/v1/exam/appointment | 预约成功 |
| 3. 检查执行 | 执行检查 | POST /api/v1/exam/execute | 检查完成 |
| 4. 编写报告 | 编写报告 | POST /api/v1/exam/report | 报告保存 |
| 5. 历史对比 | 对比影像 | GET /radiology-comparison/compare | 返回对比数据 |
---
### 3.6 手术管理流程
#### 流程图
```
手术申请 → 术前讨论 → 手术排班 → 术前准备 → 手术执行 → 术后随访
↓ ↓ ↓ ↓ ↓ ↓
[手术申请] [术前讨论] [手术排班] [术前检查] [手术记录] [术后随访]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 手术申请 | 申请手术 | POST /api/v1/surgery/apply | 申请成功 |
| 2. 术前讨论 | 讨论记录 | POST /api/v1/surgery/discussion | 讨论完成 |
| 3. 手术排班 | 安排手术 | POST /api/v1/surgery/schedule | 排班成功 |
| 4. 术前准备 | 准备检查 | POST /api/v1/surgery/preop-check | 准备完成 |
| 5. 手术记录 | 记录手术 | POST /api/v1/surgery/record | 记录保存 |
| 6. 术后随访 | 随访记录 | POST /api/v1/anesthesia/followup | 随访完成 |
---
### 3.7 麻醉管理流程
#### 流程图
```
麻醉评估 → 麻醉记录 → 术中监测 → 术后随访 → 麻醉质控
↓ ↓ ↓ ↓ ↓
[麻醉评估] [麻醉记录] [生命体征] [术后随访] [质控统计]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 麻醉评估 | 评估患者 | POST /api/v1/anesthesia/record | 评估完成 |
| 2. 麻醉记录 | 记录麻醉 | POST /api/v1/anesthesia/record | 记录保存 |
| 3. 术中监测 | 记录体征 | POST /api/v1/anesthesia/vital-sign | 体征保存 |
| 4. 术后随访 | 随访记录 | POST /api/v1/anesthesia/followup | 随访完成 |
| 5. 质控统计 | 统计分析 | GET /anesthesia-enhanced/qc/stats | 返回统计 |
---
### 3.8 院感管理流程
#### 流程图
```
感染监测 → 暴发预警 → 疫情报告 → 干预措施 → 效果评估
↓ ↓ ↓ ↓ ↓
[感染监测] [暴发预警] [疫情报告] [干预措施] [效果评估]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 感染监测 | 目标性监测 | POST /infection/surveillance/add | 监测记录 |
| 2. 暴发预警 | 预警记录 | POST /infection/warning/add | 预警记录 |
| 3. 多重耐药 | 耐药监测 | POST /infection/resistant/add | 耐药记录 |
| 4. 职业暴露 | 暴露报告 | POST /infection/exposure/add | 暴露记录 |
| 5. 手卫生 | 手卫生监测 | POST /infection/hygiene/add | 手卫生记录 |
| 6. 环境监测 | 环境采样 | POST /infection/environment/add | 环境记录 |
---
### 3.9 质量管理流程
#### 流程图
```
运行质控 → 终末质控 → 缺陷记录 → 整改追踪 → 质量统计
↓ ↓ ↓ ↓ ↓
[运行质控] [终末质控] [缺陷管理] [整改追踪] [质量统计]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 运行质控 | 检查病历 | POST /api/v1/emr-quality/runtime-check/{id} | 检查结果 |
| 2. 终末质控 | 评分 | POST /api/v1/emr-quality/terminal-check/{id} | 评分结果 |
| 3. 缺陷记录 | 记录缺陷 | GET /api/v1/emr-quality/defect/{id} | 缺陷列表 |
| 4. 护理质量 | 质量指标 | GET /nursing-quality/summary | 质量统计 |
---
### 3.10 处方点评流程
#### 流程图
```
创建计划 → 自动筛查 → 人工点评 → 整改通知 → 统计分析
↓ ↓ ↓ ↓ ↓
[点评计划] [自动筛查] [人工点评] [整改通知] [统计排名]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 创建计划 | 创建点评计划 | POST /api/v1/review/plan | 计划创建 |
| 2. 自动筛查 | 筛选处方 | POST /api/v1/review/auto-screen | 筛选结果 |
| 3. 人工点评 | 点评处方 | POST /api/v1/review/record | 点评完成 |
| 4. 医生排名 | 排名统计 | GET /api/v1/review/ranking | 排名列表 |
---
### 3.11 临床路径管理流程
#### 流程图
```
路径定义 → 入径管理 → 执行监控 → 变异分析 → 效果评价
↓ ↓ ↓ ↓ ↓
[路径管理] [入径管理] [执行监控] [变异分析] [效果评价]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 路径定义 | 创建路径 | POST /clinical-pathway/add | 路径创建 |
| 2. 入径管理 | 患者入径 | POST /clinical-pathway/enter | 入径完成 |
| 3. 完成路径 | 完成治疗 | PUT /clinical-pathway/complete/{id} | 路径完成 |
| 4. 变异记录 | 记录变异 | PUT /clinical-pathway/vary/{id} | 变异记录 |
---
### 3.12 中医管理流程
#### 流程图
```
体质辨识 → 辨证论治 → 方剂开具 → 中药处方 → 疗效评价
↓ ↓ ↓ ↓ ↓
[体质辨识] [辨证论治] [方剂管理] [中药处方] [疗效评价]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 体质辨识 | 辨识体质 | POST /api/v1/tcm/constitution | 辨识完成 |
| 2. 查询方剂 | 查询方剂 | GET /api/v1/tcm/prescriptions | 方剂列表 |
| 3. 新增方剂 | 新增方剂 | POST /api/v1/tcm/prescription | 方剂创建 |
| 4. 统计查询 | 统计分析 | GET /api/v1/tcm/statistics | 统计结果 |
---
### 3.13 医嘱闭环管理流程
#### 流程图
```
医嘱开具 → 药师审核 → 护士执行 → 执行确认 → 闭环完成
↓ ↓ ↓ ↓ ↓
[医嘱管理] [处方审核] [护理执行] [执行确认] [闭环统计]
```
#### 测试步骤
| 步骤 | 操作 | API接口 | 预期结果 |
|------|------|---------|----------|
| 1. 执行医嘱 | 执行医嘱 | POST /api/v1/order-closed-loop/execute | 执行完成 |
| 2. 完成医嘱 | 完成医嘱 | POST /api/v1/order-closed-loop/complete | 闭环完成 |
| 3. 取消医嘱 | 取消医嘱 | POST /api/v1/order-closed-loop/cancel | 取消完成 |
| 4. 统计查询 | 统计分析 | GET /api/v1/order-closed-loop/statistics | 统计结果 |
---
## 4. 测试执行计划
### 4.1 测试顺序
| 阶段 | 模块 | 优先级 | 预计耗时 |
|------|------|--------|----------|
| Phase 1 | 基础数据 + 登录认证 | P0 | 30分钟 |
| Phase 2 | 门诊就诊流程 | P0 | 60分钟 |
| Phase 3 | 住院入院流程 | P0 | 60分钟 |
| Phase 4 | 药房管理流程 | P1 | 45分钟 |
| Phase 5 | 检验管理流程 | P1 | 45分钟 |
| Phase 6 | 影像检查流程 | P1 | 45分钟 |
| Phase 7 | 手术麻醉流程 | P1 | 60分钟 |
| Phase 8 | 院感管理流程 | P2 | 45分钟 |
| Phase 9 | 质量管理流程 | P2 | 45分钟 |
| Phase 10 | 处方点评流程 | P2 | 30分钟 |
| Phase 11 | 临床路径流程 | P2 | 30分钟 |
| Phase 12 | 中医管理流程 | P2 | 30分钟 |
| Phase 13 | 医嘱闭环流程 | P1 | 30分钟 |
### 4.2 测试验证点
每个测试用例需要验证:
1. **接口返回码**: 确认API返回200
2. **数据完整性**: 确认数据正确保存
3. **业务逻辑**: 确认流程正确执行
4. **异常处理**: 确认异常情况正确处理
5. **权限控制**: 确认权限正确验证
---
## 5. 测试报告模板
```markdown
### 测试报告
**测试日期**: 2026-06-07
**测试人员**: AI Agent
**测试环境**: 本地开发环境
#### 测试结果汇总
| 模块 | 测试用例数 | 通过数 | 失败数 | 通过率 |
|------|-----------|--------|--------|--------|
| 门诊就诊 | 5 | 5 | 0 | 100% |
| 住院入院 | 6 | 6 | 0 | 100% |
| 药房管理 | 5 | 5 | 0 | 100% |
| 检验管理 | 5 | 5 | 0 | 100% |
| 影像检查 | 6 | 6 | 0 | 100% |
| 手术麻醉 | 6 | 6 | 0 | 100% |
| 院感管理 | 6 | 6 | 0 | 100% |
| 质量管理 | 4 | 4 | 0 | 100% |
| 处方点评 | 4 | 4 | 0 | 100% |
| 临床路径 | 4 | 4 | 0 | 100% |
| 中医管理 | 4 | 4 | 0 | 100% |
| 医嘱闭环 | 4 | 4 | 0 | 100% |
| **总计** | **59** | **59** | **0** | **100%** |
#### 发现问题
| 序号 | 问题描述 | 严重程度 | 状态 |
|------|----------|----------|------|
| 1 | 无 | - | - |
#### 结论
所有测试用例全部通过,系统功能完整,可以交付使用。
```
---
## 6. 附录
### 6.1 API接口清单
| 模块 | 接口前缀 | 方法 |
|------|----------|------|
| 门诊管理 | /api/v1/outpatient | GET/POST |
| 住院管理 | /api/v1/inpatient | GET/POST |
| 药房管理 | /api/v1/pharmacy | GET/POST |
| 检验管理 | /api/v1/inspection | GET/POST |
| 影像管理 | /api/v1/exam | GET/POST |
| 手术管理 | /api/v1/surgery | GET/POST |
| 麻醉管理 | /api/v1/anesthesia | GET/POST |
| 护理管理 | /nursing-assessment-enhanced | GET/POST |
| 院感管理 | /infection | GET/POST |
| 质量管理 | /api/v1/emr-quality | GET/POST |
| 处方点评 | /api/v1/review | GET/POST |
| 临床路径 | /clinical-pathway | GET/POST |
| 中医管理 | /api/v1/tcm | GET/POST |
| 医嘱闭环 | /api/v1/order-closed-loop | GET/POST |
### 6.2 测试数据文件
- `test_data.sql` - SQL测试数据
- `test_api.json` - API测试数据
- `test_report.md` - 测试报告