Files
his/query_serial_number.sql

122 lines
4.2 KiB
SQL
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.

-- ============================================
-- 查询流水号相关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天