挂号补单功能的完善

This commit is contained in:
2026-01-20 09:31:37 +08:00
parent 649f7bcf5b
commit d1223aec07
27 changed files with 4875 additions and 307 deletions

121
query_serial_number.sql Normal file
View File

@@ -0,0 +1,121 @@
-- ============================================
-- 查询流水号相关SQL语句
-- ============================================
-- 1. 查询所有挂号记录的流水号主键ID及相关信息
SELECT
id AS ,
display_order AS ,
bus_no AS ,
patient_id AS ID,
organization_id AS ID,
create_time AS ,
status_enum AS
FROM adm_encounter
WHERE delete_flag = '0'
ORDER BY create_time DESC;
-- 2. 根据流水号主键ID查询某条挂号记录的详细信息
SELECT
e.id AS ,
e.display_order AS ,
e.bus_no AS ,
p.name AS ,
p.id_card AS ,
p.phone AS ,
o.name AS ,
pr.name AS ,
e.create_time AS ,
e.status_enum AS
FROM adm_encounter e
LEFT JOIN adm_patient p ON e.patient_id = p.id AND p.delete_flag = '0'
LEFT JOIN adm_organization o ON e.organization_id = o.id AND o.delete_flag = '0'
LEFT JOIN adm_encounter_participant ep ON e.id = ep.encounter_id AND ep.delete_flag = '0' AND ep.type_code = 'PRF'
LEFT JOIN adm_practitioner pr ON ep.practitioner_id = pr.id AND pr.delete_flag = '0'
WHERE e.id = 1234567890123456789 -- 替换为实际的流水号主键ID
AND e.delete_flag = '0';
-- 3. 根据患者姓名或身份证号查询流水号
SELECT
e.id AS ,
e.display_order AS ,
p.name AS ,
p.id_card AS ,
e.create_time AS ,
o.name AS
FROM adm_encounter e
LEFT JOIN adm_patient p ON e.patient_id = p.id AND p.delete_flag = '0'
LEFT JOIN adm_organization o ON e.organization_id = o.id AND o.delete_flag = '0'
WHERE e.delete_flag = '0'
AND (p.name LIKE '%张三%' OR p.id_card = '110101199001011234') -- 替换为实际的患者姓名或身份证号
ORDER BY e.create_time DESC;
-- 4. 查询当日的挂号记录及流水号
SELECT
e.id AS ,
e.display_order AS ,
e.bus_no AS ,
p.name AS ,
p.id_card AS ,
o.name AS ,
pr.name AS ,
e.create_time AS ,
e.status_enum AS
FROM adm_encounter e
LEFT JOIN adm_patient p ON e.patient_id = p.id AND p.delete_flag = '0'
LEFT JOIN adm_organization o ON e.organization_id = o.id AND o.delete_flag = '0'
LEFT JOIN adm_encounter_participant ep ON e.id = ep.encounter_id AND ep.delete_flag = '0' AND ep.type_code = 'PRF'
LEFT JOIN adm_practitioner pr ON ep.practitioner_id = pr.id AND pr.delete_flag = '0'
WHERE e.delete_flag = '0'
AND DATE(e.create_time) = CURRENT_DATE -- 查询当日
ORDER BY e.display_order ASC, e.create_time ASC;
-- 5. 查询指定日期范围的挂号记录及流水号
SELECT
e.id AS ,
e.display_order AS ,
e.bus_no AS ,
p.name AS ,
p.id_card AS ,
o.name AS ,
e.create_time AS
FROM adm_encounter e
LEFT JOIN adm_patient p ON e.patient_id = p.id AND p.delete_flag = '0'
LEFT JOIN adm_organization o ON e.organization_id = o.id AND o.delete_flag = '0'
WHERE e.delete_flag = '0'
AND e.create_time >= '2024-01-01 00:00:00' -- 开始时间
AND e.create_time <= '2024-01-31 23:59:59' -- 结束时间
ORDER BY e.create_time DESC;
-- 6. 查询指定科室的挂号记录及流水号
SELECT
e.id AS ,
e.display_order AS ,
p.name AS ,
o.name AS ,
e.create_time AS
FROM adm_encounter e
LEFT JOIN adm_patient p ON e.patient_id = p.id AND p.delete_flag = '0'
LEFT JOIN adm_organization o ON e.organization_id = o.id AND o.delete_flag = '0'
WHERE e.delete_flag = '0'
AND o.name LIKE '%心内科%' -- 替换为实际的科室名称
AND DATE(e.create_time) = CURRENT_DATE
ORDER BY e.display_order ASC;
-- 7. 统计每日挂号数量及流水号范围
SELECT
DATE(create_time) AS ,
COUNT(*) AS ,
MIN(id) AS ,
MAX(id) AS ,
MIN(display_order) AS ,
MAX(display_order) AS
FROM adm_encounter
WHERE delete_flag = '0'
GROUP BY DATE(create_time)
ORDER BY DESC
LIMIT 30; -- 最近30天