Files
his/sql/迁移记录-DB变更记录/门诊预约测试数据使用指南.md

203 lines
8.3 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.

# 门诊预约挂号功能测试数据使用指南
## 1. 准备工作
### 1.1 数据库环境准备
- 确保已安装并启动PostgreSQL数据库
- 确保已创建`hisdev`模式(或根据实际情况修改脚本中的模式名)
- 确保已创建相关表结构:
- clinical_ticket (号源表)
- adm_practitioner (医生表)
- adm_patient (患者表)
- cli_reservation_record (预约记录表)
### 1.2 验证表结构
执行以下查询验证核心表是否存在:
```sql
SELECT table_name FROM information_schema.tables WHERE table_schema = 'hisdev';
```
## 2. 执行测试数据脚本
### 2.1 脚本位置
`d:\work\门诊预约测试数据插入.sql`
### 2.2 执行方式
**方式一通过pgAdmin执行**
1. 打开pgAdmin连接到数据库
2. 选择`hisdev`模式
3. 打开SQL编辑器粘贴脚本内容
4. 点击执行按钮或按F5
**方式二:通过命令行执行**
```bash
psql -h localhost -U username -d database_name -f "d:\work\门诊预约测试数据插入.sql"
```
## 3. 测试数据说明
### 3.1 号源数据 (clinical_ticket)
#### 3.1.1 未预约状态的号源(用于测试正常预约流程)
- 号源数量10个普通号 + 5个专家号
- 日期:当前系统日期
- 医生:张三(内科)
- 状态:`unbooked`
#### 3.1.2 已预约状态的号源(用于测试取消预约流程)
- 号源数量2个
- 日期:当前系统日期
- 医生:张三(内科)
- 状态:`booked`
- 患者患者A、患者B
#### 3.1.3 已取号状态的号源(用于测试逆向用例)
- 号源数量1个
- 日期:当前系统日期
- 医生:张三(内科)
- 状态:`checked`
- 患者患者C
#### 3.1.4 明天日期的号源(用于测试日期选择功能)
- 号源数量10个普通号
- 日期:当前系统日期 + 1天
- 医生:王五(外科)
- 状态:`unbooked`
### 3.2 预约记录数据 (cli_reservation_record)
- 记录数量2条
- 患者患者A、患者B
- 医生:张三
## 4. 测试用例执行指南
### 4.1 正向测试用例
#### 4.1.1 号源日期选择器-默认值
- **测试步骤**
1. 打开门诊预约挂号界面
2. 检查号源日期选择器的默认值
- **预期结果**:默认值为当前系统日期
#### 4.1.2 状态筛选下拉框-默认值
- **测试步骤**
1. 打开门诊预约挂号界面
2. 检查状态筛选下拉框的默认值
- **预期结果**:默认值为"未预约"
#### 4.1.3 号源预约功能-正常流程
- **测试步骤**
1. 双击状态为"未预约"的号源卡片
2. 在弹出的患者选择弹窗中选择患者
3. 点击"确定"按钮
- **预期结果**:卡片状态更新为"已预约",显示患者信息
- **可用测试数据**当前日期的未预约号源TICKET000001-TICKET000010
#### 4.1.4 取消预约功能-正常流程
- **测试步骤**
1. 右键状态为"已预约"的号源卡片
2. 选择"取消预约"选项
3. 在二次确认弹窗中点击"确认"按钮
- **预期结果**:号源状态恢复为"未预约",清除患者信息
- **可用测试数据**已预约号源TICKET000011、TICKET000012
#### 4.1.5 医生搜索框-实时搜索
- **测试步骤**
1. 在左侧边栏的医生搜索框中输入医生姓名
2. 观察医生列表的实时更新
- **预期结果**:医生列表根据输入内容实时筛选显示
- **可用测试数据**:张三、王五
#### 4.1.6 号源类型切换-联动过滤
- **测试步骤**
1. 在左侧边栏切换号源类型为"专家号"
2. 观察右侧号源卡片和左侧医生列表
- **预期结果**:仅显示专家号的号源和医生
- **可用测试数据**专家号TICKET000014-TICKET000018
### 4.2 逆向测试用例
#### 4.2.1 号源预约功能-未选择患者
- **测试步骤**
1. 双击状态为"未预约"的号源卡片
2. 不选择患者直接点击"确定"按钮
- **预期结果**:提示"请选择患者"
#### 4.2.2 取消预约功能-已取号状态
- **测试步骤**
1. 右键状态为"已取号"的号源卡片
- **预期结果**:右键菜单不显示"取消预约"选项
- **可用测试数据**已取号源TICKET000013
#### 4.2.3 患者信息搜索框组-无效输入
- **测试步骤**
1. 在患者信息搜索框组中输入无效的姓名、就诊卡号或手机号
2. 点击查询按钮
- **预期结果**:返回无结果或提示"未找到匹配的患者"
- **可用测试数据**:输入不存在的姓名(如"测试患者")、就诊卡号(如"PAT999")或手机号(如"13999999999"
#### 4.2.4 日期选择器-无效日期
- **测试步骤**
1. 在号源日期选择器中输入无效日期(如过去日期或格式错误)
2. 尝试查询号源
- **预期结果**:提示"请输入有效日期"
#### 4.2.5 医生搜索框-无匹配结果
- **测试步骤**
1. 在医生搜索框中输入不存在的医生姓名
2. 观察医生列表
- **预期结果**:显示"无匹配结果"或空列表
- **可用测试数据**:输入不存在的医生姓名(如"李四"
## 5. 测试结果记录
| 用例名 | 测试步骤 | 预期结果 | 实际结果 | 测试时间 | 测试人 |
|-------|---------|---------|---------|---------|-------|
| 号源日期选择器-默认值 | 1. 打开门诊预约挂号界面<br>2. 检查号源日期选择器的默认值 | 默认值为当前系统日期 | | | |
| 状态筛选下拉框-默认值 | 1. 打开门诊预约挂号界面<br>2. 检查状态筛选下拉框的默认值 | 默认值为"未预约" | | | |
| 号源预约功能-正常流程 | 1. 双击状态为"未预约"的号源卡片<br>2. 在弹出的患者选择弹窗中选择患者<br>3. 点击"确定"按钮 | 卡片状态更新为"已预约",显示患者信息 | | | |
| 取消预约功能-正常流程 | 1. 右键状态为"已预约"的号源卡片<br>2. 选择"取消预约"选项<br>3. 在二次确认弹窗中点击"确认"按钮 | 号源状态恢复为"未预约",清除患者信息 | | | |
| 医生搜索框-实时搜索 | 1. 在左侧边栏的医生搜索框中输入医生姓名<br>2. 观察医生列表的实时更新 | 医生列表根据输入内容实时筛选显示 | | | |
| 号源类型切换-联动过滤 | 1. 在左侧边栏切换号源类型为"专家号"<br>2. 观察右侧号源卡片和左侧医生列表 | 仅显示专家号的号源和医生 | | | |
| 号源预约功能-未选择患者 | 1. 双击状态为"未预约"的号源卡片<br>2. 不选择患者直接点击"确定"按钮 | 提示"请选择患者" | | | |
| 取消预约功能-已取号状态 | 1. 右键状态为"已取号"的号源卡片 | 右键菜单不显示"取消预约"选项 | | | |
| 患者信息搜索框组-无效输入 | 1. 在患者信息搜索框组中输入无效的姓名、就诊卡号或手机号<br>2. 点击查询按钮 | 返回无结果或提示"未找到匹配的患者" | | | |
| 日期选择器-无效日期 | 1. 在号源日期选择器中输入无效日期(如过去日期或格式错误)<br>2. 尝试查询号源 | 提示"请输入有效日期" | | | |
| 医生搜索框-无匹配结果 | 1. 在医生搜索框中输入不存在的医生姓名<br>2. 观察医生列表 | 显示"无匹配结果"或空列表 | | | |
## 6. 注意事项
1. **数据唯一性**:脚本使用条件判断避免重复插入数据
2. **日期更新**:脚本中的日期会自动使用当前系统日期
3. **依赖关系**:号源数据依赖于医生和患者的基础数据,请确保系统中已有相关记录
4. **测试顺序**:建议先执行正向测试,再执行逆向测试
5. **数据清理**测试完成后可使用以下SQL清理测试数据
```sql
DELETE FROM clinical_ticket WHERE bus_no LIKE 'TICKET%';
DELETE FROM cli_reservation_record WHERE patient_name IN ('患者A', '患者B');
```
## 7. 常见问题
### 7.1 执行脚本时提示表不存在
- 检查数据库连接是否正确
- 检查是否已创建相关表结构
- 检查模式名是否为`hisdev`
### 7.2 测试数据不显示
- 检查日期选择器是否选择了正确的日期
- 检查状态筛选条件是否为"未预约"
- 检查医生选择是否正确
### 7.3 预约功能无法正常工作
- 检查患者选择弹窗是否能正常加载患者数据
- 检查网络连接是否正常
- 检查浏览器控制台是否有错误信息
---
**版本1.0**
**创建时间2025-12-31**
**更新记录:**
- 2025-12-31初始版本完成测试数据说明和测试指南