122 lines
4.2 KiB
SQL
122 lines
4.2 KiB
SQL
-- ============================================
|
||
-- 查询流水号相关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天
|
||
|
||
|
||
|
||
|