# 门诊预约挂号功能测试数据使用指南 ## 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. 打开门诊预约挂号界面
2. 检查号源日期选择器的默认值 | 默认值为当前系统日期 | | | | | 状态筛选下拉框-默认值 | 1. 打开门诊预约挂号界面
2. 检查状态筛选下拉框的默认值 | 默认值为"未预约" | | | | | 号源预约功能-正常流程 | 1. 双击状态为"未预约"的号源卡片
2. 在弹出的患者选择弹窗中选择患者
3. 点击"确定"按钮 | 卡片状态更新为"已预约",显示患者信息 | | | | | 取消预约功能-正常流程 | 1. 右键状态为"已预约"的号源卡片
2. 选择"取消预约"选项
3. 在二次确认弹窗中点击"确认"按钮 | 号源状态恢复为"未预约",清除患者信息 | | | | | 医生搜索框-实时搜索 | 1. 在左侧边栏的医生搜索框中输入医生姓名
2. 观察医生列表的实时更新 | 医生列表根据输入内容实时筛选显示 | | | | | 号源类型切换-联动过滤 | 1. 在左侧边栏切换号源类型为"专家号"
2. 观察右侧号源卡片和左侧医生列表 | 仅显示专家号的号源和医生 | | | | | 号源预约功能-未选择患者 | 1. 双击状态为"未预约"的号源卡片
2. 不选择患者直接点击"确定"按钮 | 提示"请选择患者" | | | | | 取消预约功能-已取号状态 | 1. 右键状态为"已取号"的号源卡片 | 右键菜单不显示"取消预约"选项 | | | | | 患者信息搜索框组-无效输入 | 1. 在患者信息搜索框组中输入无效的姓名、就诊卡号或手机号
2. 点击查询按钮 | 返回无结果或提示"未找到匹配的患者" | | | | | 日期选择器-无效日期 | 1. 在号源日期选择器中输入无效日期(如过去日期或格式错误)
2. 尝试查询号源 | 提示"请输入有效日期" | | | | | 医生搜索框-无匹配结果 | 1. 在医生搜索框中输入不存在的医生姓名
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:初始版本,完成测试数据说明和测试指南