76 门诊预约挂号
This commit is contained in:
115
迁移记录-DB变更记录/202512301200add_table_order_main.sql
Normal file
115
迁移记录-DB变更记录/202512301200add_table_order_main.sql
Normal file
@@ -0,0 +1,115 @@
|
||||
-- 创建序列
|
||||
CREATE SEQUENCE order_main_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
-- 创建订单主表
|
||||
CREATE TABLE "order_main" (
|
||||
-- 主键字段
|
||||
"id" int8 NOT NULL DEFAULT nextval('order_main_id_seq'::regclass),
|
||||
|
||||
-- 业务核心字段
|
||||
"order_no" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 订单号
|
||||
"patient_id" int8, -- 患者ID
|
||||
"patient_name" varchar(50) COLLATE "pg_catalog"."default", -- 患者姓名
|
||||
"medical_card" varchar(32) COLLATE "pg_catalog"."default", -- 就诊卡号
|
||||
"phone" varchar(20) COLLATE "pg_catalog"."default", -- 手机号
|
||||
"gender" int4, -- 性别(1-男,2-女)
|
||||
"schedule_id" int8, -- 排班ID
|
||||
"slot_id" int8, -- 号源ID
|
||||
"department_id" int8, -- 科室ID
|
||||
"department_name" varchar(100) COLLATE "pg_catalog"."default", -- 科室名称
|
||||
"doctor_id" int8, -- 医生ID
|
||||
"doctor_name" varchar(50) COLLATE "pg_catalog"."default", -- 医生姓名
|
||||
"reg_type" varchar(10) COLLATE "pg_catalog"."default", -- 号别(普通/专家)
|
||||
"fee" numeric(10,2), -- 挂号费
|
||||
"appointment_date" timestamptz(6), -- 预约日期
|
||||
"appointment_time" timestamptz(6), -- 预约时间
|
||||
"cancel_time" timestamptz(6), -- 取消时间
|
||||
"cancel_reason" varchar(200) COLLATE "pg_catalog"."default", -- 取消原因
|
||||
"status" int4 NOT NULL DEFAULT 1, -- 状态(1-预约中,2-已完成,3-已取消)
|
||||
"pay_status" int4 NOT NULL DEFAULT 0, -- 支付状态(0-未支付,1-已支付)
|
||||
"version" int4 NOT NULL DEFAULT 0, -- 版本号(乐观锁)
|
||||
|
||||
-- 继承HisBaseEntity的审计字段
|
||||
"tenant_id" int8 NOT NULL, -- 租户ID
|
||||
"delete_flag" char(1) COLLATE "pg_catalog"."default" NOT NULL DEFAULT '0', -- 删除标志(0-未删除,1-已删除)
|
||||
"create_by" varchar(32) COLLATE "pg_catalog"."default" NOT NULL DEFAULT '', -- 创建人
|
||||
"create_time" timestamptz(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 创建时间
|
||||
"update_by" varchar(32) COLLATE "pg_catalog"."default", -- 更新人
|
||||
"update_time" timestamptz(6), -- 更新时间
|
||||
|
||||
-- 主键约束
|
||||
CONSTRAINT "order_main_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- 设置表所有者(根据实际数据库用户修改,如果不存在postgres角色可注释掉此行)
|
||||
-- ALTER TABLE "order_main" OWNER TO "postgres";
|
||||
|
||||
-- 表及字段注释
|
||||
COMMENT ON TABLE "order_main" IS '订单主表:存储门诊预约挂号订单信息';
|
||||
|
||||
COMMENT ON COLUMN "order_main"."id" IS '主键ID';
|
||||
COMMENT ON COLUMN "order_main"."order_no" IS '订单号:唯一标识订单,系统自动生成';
|
||||
COMMENT ON COLUMN "order_main"."patient_id" IS '患者ID:关联adm_patient表';
|
||||
COMMENT ON COLUMN "order_main"."patient_name" IS '患者姓名:冗余字段,便于查询';
|
||||
COMMENT ON COLUMN "order_main"."medical_card" IS '就诊卡号:患者就诊卡编号';
|
||||
COMMENT ON COLUMN "order_main"."phone" IS '手机号:患者联系电话';
|
||||
COMMENT ON COLUMN "order_main"."gender" IS '性别:1-男,2-女';
|
||||
COMMENT ON COLUMN "order_main"."schedule_id" IS '排班ID:关联排班表';
|
||||
COMMENT ON COLUMN "order_main"."slot_id" IS '号源ID:关联clinical_ticket表';
|
||||
COMMENT ON COLUMN "order_main"."department_id" IS '科室ID:关联科室表';
|
||||
COMMENT ON COLUMN "order_main"."department_name" IS '科室名称:冗余字段,便于查询';
|
||||
COMMENT ON COLUMN "order_main"."doctor_id" IS '医生ID:关联医生表';
|
||||
COMMENT ON COLUMN "order_main"."doctor_name" IS '医生姓名:冗余字段,便于查询';
|
||||
COMMENT ON COLUMN "order_main"."reg_type" IS '号别:普通/专家';
|
||||
COMMENT ON COLUMN "order_main"."fee" IS '挂号费:挂号费用金额';
|
||||
COMMENT ON COLUMN "order_main"."appointment_date" IS '预约日期:患者预约的就诊日期';
|
||||
COMMENT ON COLUMN "order_main"."appointment_time" IS '预约时间:患者预约的具体时间';
|
||||
COMMENT ON COLUMN "order_main"."cancel_time" IS '取消时间:订单取消的时间';
|
||||
COMMENT ON COLUMN "order_main"."cancel_reason" IS '取消原因:订单取消的原因说明';
|
||||
COMMENT ON COLUMN "order_main"."status" IS '状态:1-预约中,2-已完成,3-已取消';
|
||||
COMMENT ON COLUMN "order_main"."pay_status" IS '支付状态:0-未支付,1-已支付';
|
||||
COMMENT ON COLUMN "order_main"."version" IS '版本号:乐观锁,防止并发冲突';
|
||||
COMMENT ON COLUMN "order_main"."tenant_id" IS '租户ID:多租户系统隔离字段';
|
||||
COMMENT ON COLUMN "order_main"."delete_flag" IS '删除标志:0-未删除,1-已删除';
|
||||
COMMENT ON COLUMN "order_main"."create_by" IS '创建人:存储创建者用户名';
|
||||
COMMENT ON COLUMN "order_main"."create_time" IS '创建时间:默认当前时间,带时区';
|
||||
COMMENT ON COLUMN "order_main"."update_by" IS '更新人:存储更新者用户名';
|
||||
COMMENT ON COLUMN "order_main"."update_time" IS '更新时间:带时区';
|
||||
|
||||
-- 创建索引
|
||||
CREATE INDEX "idx_order_main_order_no"
|
||||
ON "order_main" ("order_no")
|
||||
WHERE "delete_flag" = '0';
|
||||
|
||||
CREATE INDEX "idx_order_main_patient_id"
|
||||
ON "order_main" ("patient_id")
|
||||
WHERE "delete_flag" = '0';
|
||||
|
||||
CREATE INDEX "idx_order_main_slot_id"
|
||||
ON "order_main" ("slot_id")
|
||||
WHERE "delete_flag" = '0';
|
||||
|
||||
CREATE INDEX "idx_order_main_department_id"
|
||||
ON "order_main" ("department_id")
|
||||
WHERE "delete_flag" = '0';
|
||||
|
||||
CREATE INDEX "idx_order_main_doctor_id"
|
||||
ON "order_main" ("doctor_id")
|
||||
WHERE "delete_flag" = '0';
|
||||
|
||||
CREATE INDEX "idx_order_main_status"
|
||||
ON "order_main" ("status")
|
||||
WHERE "delete_flag" = '0';
|
||||
|
||||
CREATE INDEX "idx_order_main_tenant_id"
|
||||
ON "order_main" ("tenant_id", "create_time")
|
||||
WHERE "delete_flag" = '0';
|
||||
|
||||
-- 向迁移历史表插入记录
|
||||
INSERT INTO __MigrationsHistory (MigrationId, ProductVersion)
|
||||
VALUES ('202512301200add_table_order_main', '1.0.0');
|
||||
51
迁移记录-DB变更记录/202512301200verify_order_main.sql
Normal file
51
迁移记录-DB变更记录/202512301200verify_order_main.sql
Normal file
@@ -0,0 +1,51 @@
|
||||
-- 验证order_main表是否创建成功
|
||||
|
||||
-- 1. 查看表结构
|
||||
\d order_main;
|
||||
|
||||
-- 2. 查看表注释
|
||||
SELECT
|
||||
obj_description('order_main'::regclass) AS table_comment;
|
||||
|
||||
-- 3. 查看字段注释(使用pg_catalog.pg_description)
|
||||
SELECT
|
||||
a.attname AS column_name,
|
||||
d.description AS column_comment
|
||||
FROM pg_attribute a
|
||||
LEFT JOIN pg_catalog.pg_description d
|
||||
ON d.objoid = a.attrelid
|
||||
AND d.objsubid = a.attnum
|
||||
WHERE a.attrelid = 'order_main'::regclass
|
||||
AND a.attnum > 0
|
||||
AND NOT a.attisdropped
|
||||
ORDER BY a.attnum;
|
||||
|
||||
-- 4. 查看索引
|
||||
SELECT
|
||||
indexname AS index_name,
|
||||
indexdef AS index_definition
|
||||
FROM pg_indexes
|
||||
WHERE tablename = 'order_main';
|
||||
|
||||
-- 5. 查看迁移历史
|
||||
SELECT * FROM __MigrationsHistory
|
||||
WHERE MigrationId = '202512301200add_table_order_main';
|
||||
|
||||
-- 6. 查看表的所有约束
|
||||
SELECT
|
||||
conname AS constraint_name,
|
||||
contype AS constraint_type
|
||||
FROM pg_constraint
|
||||
WHERE conrelid = 'order_main'::regclass;
|
||||
|
||||
-- 7. 查看序列
|
||||
SELECT
|
||||
sequencename AS sequence_name,
|
||||
last_value,
|
||||
start_value,
|
||||
increment_by
|
||||
FROM pg_sequences
|
||||
WHERE sequencename = 'order_main_id_seq';
|
||||
|
||||
-- 8. 统计表记录数
|
||||
SELECT COUNT(*) AS record_count FROM order_main;
|
||||
202
迁移记录-DB变更记录/门诊预约测试数据使用指南.md
Normal file
202
迁移记录-DB变更记录/门诊预约测试数据使用指南.md
Normal file
@@ -0,0 +1,202 @@
|
||||
# 门诊预约挂号功能测试数据使用指南
|
||||
|
||||
## 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:初始版本,完成测试数据说明和测试指南
|
||||
89
迁移记录-DB变更记录/门诊预约测试数据插入.sql
Normal file
89
迁移记录-DB变更记录/门诊预约测试数据插入.sql
Normal file
@@ -0,0 +1,89 @@
|
||||
-- 门诊预约挂号功能测试数据插入脚本
|
||||
-- 执行前请确保已创建相关表结构
|
||||
|
||||
-- 设置当前模式
|
||||
SET search_path TO hisdev;
|
||||
|
||||
-- ====================================
|
||||
-- 说明:
|
||||
-- 1. 此脚本主要包含号源表(clinical_ticket)的测试数据
|
||||
-- 2. 其他相关表(医生、患者、科室等)请确保系统中已有基础数据
|
||||
-- 3. 如需要完整测试,建议先在系统中创建相应的医生和患者信息
|
||||
-- ====================================
|
||||
|
||||
-- ====================================
|
||||
-- 注意:以下是可选的表结构验证
|
||||
-- 如果不确定表结构是否正确,请先执行这些查询
|
||||
-- ====================================
|
||||
-- SELECT column_name FROM information_schema.columns WHERE table_name = 'clinical_ticket';
|
||||
-- SELECT column_name FROM information_schema.columns WHERE table_name = 'adm_practitioner';
|
||||
-- SELECT column_name FROM information_schema.columns WHERE table_name = 'adm_patient';
|
||||
|
||||
|
||||
-- ====================================
|
||||
-- 5. 号源数据 (clinical_ticket)
|
||||
-- 包含不同状态的号源:未预约、已预约、已取号
|
||||
-- ====================================
|
||||
|
||||
-- 获取当前日期和明天日期
|
||||
DO $$
|
||||
DECLARE
|
||||
current_date DATE := CURRENT_DATE;
|
||||
tomorrow_date DATE := CURRENT_DATE + INTERVAL '1 day';
|
||||
BEGIN
|
||||
-- 当前日期号源
|
||||
-- 未预约状态的号源(用于测试正常预约流程)
|
||||
INSERT INTO clinical_ticket (bus_no, department, doctor, ticket_type, time, status, fee, appointment_date, appointment_time, department_id, doctor_id, create_time, tenant_id, delete_flag)
|
||||
SELECT
|
||||
'TICKET' || lpad(i::text, 6, '0'),
|
||||
'内科', '张三', '普通', '08:00-' || (7 + i) || ':50',
|
||||
'unbooked', '50', current_date, CURRENT_TIMESTAMP, 1, 1, CURRENT_TIMESTAMP, 1, '0'
|
||||
FROM generate_series(1, 10) i
|
||||
WHERE NOT EXISTS (SELECT 1 FROM clinical_ticket WHERE bus_no = 'TICKET' || lpad(i::text, 6, '0'));
|
||||
|
||||
-- 已预约状态的号源(用于测试取消预约流程)
|
||||
INSERT INTO clinical_ticket (bus_no, department, doctor, ticket_type, time, status, fee, patient_id, patient_name, medical_card, phone, appointment_date, appointment_time, department_id, doctor_id, create_time, tenant_id, delete_flag)
|
||||
VALUES
|
||||
('TICKET000011', '内科', '张三', '普通', '09:00-09:50', 'booked', '50', 1, '患者A', 'PAT001', '13900139001', current_date, CURRENT_TIMESTAMP, 1, 1, CURRENT_TIMESTAMP, 1, '0'),
|
||||
('TICKET000012', '内科', '张三', '普通', '09:50-10:40', 'booked', '50', 2, '患者B', 'PAT002', '13900139002', current_date, CURRENT_TIMESTAMP, 1, 1, CURRENT_TIMESTAMP, 1, '0');
|
||||
|
||||
-- 已取号状态的号源(用于测试逆向用例:取消已取号的预约)
|
||||
INSERT INTO clinical_ticket (bus_no, department, doctor, ticket_type, time, status, fee, patient_id, patient_name, medical_card, phone, appointment_date, appointment_time, department_id, doctor_id, create_time, tenant_id, delete_flag)
|
||||
VALUES
|
||||
('TICKET000013', '内科', '张三', '普通', '10:40-11:30', 'checked', '50', 3, '患者C', 'PAT003', '13900139003', current_date, CURRENT_TIMESTAMP, 1, 1, CURRENT_TIMESTAMP, 1, '0');
|
||||
|
||||
-- 专家号源(用于测试号源类型切换功能)
|
||||
INSERT INTO clinical_ticket (bus_no, department, doctor, ticket_type, time, status, fee, appointment_date, appointment_time, department_id, doctor_id, create_time, tenant_id, delete_flag)
|
||||
VALUES
|
||||
('TICKET000014', '内科', '张三', '专家', '08:00-08:50', 'unbooked', '150', CURRENT_DATE, CURRENT_TIMESTAMP, 1, 1, CURRENT_TIMESTAMP, 1, '0'),
|
||||
('TICKET000015', '内科', '张三', '专家', '09:00-09:50', 'unbooked', '150', CURRENT_DATE, CURRENT_TIMESTAMP, 1, 1, CURRENT_TIMESTAMP, 1, '0'),
|
||||
('TICKET000016', '内科', '张三', '专家', '10:00-10:50', 'unbooked', '150', CURRENT_DATE, CURRENT_TIMESTAMP, 1, 1, CURRENT_TIMESTAMP, 1, '0'),
|
||||
('TICKET000017', '内科', '张三', '专家', '11:00-11:50', 'unbooked', '150', CURRENT_DATE, CURRENT_TIMESTAMP, 1, 1, CURRENT_TIMESTAMP, 1, '0'),
|
||||
('TICKET000018', '内科', '张三', '专家', '14:00-14:50', 'unbooked', '150', CURRENT_DATE, CURRENT_TIMESTAMP, 1, 1, CURRENT_TIMESTAMP, 1, '0');
|
||||
|
||||
-- 明天日期的号源(用于测试日期选择功能)
|
||||
INSERT INTO clinical_ticket (bus_no, department, doctor, ticket_type, time, status, fee, appointment_date, appointment_time, department_id, doctor_id, create_time, tenant_id, delete_flag)
|
||||
SELECT
|
||||
'TICKET' || lpad((20 + i)::text, 6, '0'),
|
||||
'外科', '王五', '普通', '08:00-' || (7 + i) || ':50',
|
||||
'unbooked', '60', tomorrow_date, CURRENT_TIMESTAMP, 2, 3, CURRENT_TIMESTAMP, 1, '0'
|
||||
FROM generate_series(1, 10) i
|
||||
WHERE NOT EXISTS (SELECT 1 FROM clinical_ticket WHERE bus_no = 'TICKET' || lpad((20 + i)::text, 6, '0'));
|
||||
END $$;
|
||||
|
||||
-- ====================================
|
||||
-- 6. 预约记录数据 (cli_reservation_record)
|
||||
-- 用于测试预约历史查询
|
||||
-- ====================================
|
||||
INSERT INTO cli_reservation_record (patient_name, patient_tel, chief_complaint, reservation_time, org_id, practitioner_id, tenant_id, create_time, create_by, update_time, update_by)
|
||||
VALUES
|
||||
('患者A', '13900139001', '感冒发烧', CURRENT_TIMESTAMP, 1, 1, 1, CURRENT_TIMESTAMP, 'system', CURRENT_TIMESTAMP, 'system'),
|
||||
('患者B', '13900139002', '腹痛', CURRENT_TIMESTAMP, 1, 1, 1, CURRENT_TIMESTAMP, 'system', CURRENT_TIMESTAMP, 'system');
|
||||
|
||||
-- ====================================
|
||||
-- 数据插入完成提示
|
||||
-- ====================================
|
||||
SELECT '门诊预约测试数据插入完成!' AS message;
|
||||
SELECT '未预约号源数量:' || COUNT(*) FROM clinical_ticket WHERE status = 'unbooked';
|
||||
SELECT '已预约号源数量:' || COUNT(*) FROM clinical_ticket WHERE status = 'booked';
|
||||
SELECT '已取号号源数量:' || COUNT(*) FROM clinical_ticket WHERE status = 'checked';
|
||||
Reference in New Issue
Block a user