query DM Foot

query

SELECT *
FROM
(
(
SELECT
ovst.hn,
ovst.vn,
pt.pname,
pt.fname,
pt.lname,
 
IFNULL(pt.addrpart, '') AS 'บ้านเลขที่',
IFNULL(pt.moopart, '') AS 'หมู่ที่',
IFNULL(t3.name, '') AS 'ตำบล',
IFNULL(t2.name, '') AS 'อำเภอ',
IFNULL(t1.name, '') AS 'จังหวัด',
ovst.vstdate
-- ,GROUP_CONCAT(DISTINCT od.icd10 ORDER BY od.diagtype, od.icd10 SEPARATOR ', ') AS all_diagnoses
FROM
ovst
INNER JOIN patient pt ON pt.hn = ovst.hn
-- JOIN เพื่อแสดงรายการ Diag ทั้งหมดใน visit นั้น
LEFT JOIN ovstdiag od ON od.vn = ovst.vn
-- JOIN สำหรับสร้างที่อยู่
LEFT JOIN thaiaddress t1 ON t1.chwpart = pt.chwpart AND t1.amppart = '00' AND t1.tmbpart = '00'
LEFT JOIN thaiaddress t2 ON t2.chwpart = pt.chwpart AND t2.amppart = pt.amppart AND t2.tmbpart = '00'
LEFT JOIN thaiaddress t3 ON t3.chwpart = pt.chwpart AND t3.amppart = pt.amppart AND t3.tmbpart = pt.tmbpart
WHERE
ovst.vstdate BETWEEN '2024-10-01' AND '2025-09-30'
-- เงื่อนไขที่ 1: ต้องมี E114 เป็น Diag หลัก (diagtype = '1') ใน visit นั้น
AND EXISTS (
SELECT 1
FROM ovstdiag
WHERE vn = ovst.vn AND icd10 = 'E114' AND diagtype = '1'
)
-- เงื่อนไขที่ 2: และต้องมี G632 เป็น Diag ร่วมใน visit เดียวกัน
AND EXISTS (
SELECT 1
FROM ovstdiag
WHERE vn = ovst.vn AND icd10 = 'G632'
)
GROUP BY
ovst.vn,
ovst.hn,
pt.pname,
pt.fname,
pt.lname
)
UNION
(
SELECT
ovst.hn,
ovst.vn,
pt.pname,
pt.fname,
pt.lname,
 
IFNULL(pt.addrpart, '') AS 'บ้านเลขที่',
IFNULL(pt.moopart, '') AS 'หมู่ที่',
IFNULL(t3.name, '') AS 'ตำบล',
IFNULL(t2.name, '') AS 'อำเภอ',
IFNULL(t1.name, '') AS 'จังหวัด',
ovst.vstdate
-- ,GROUP_CONCAT(DISTINCT od.icd10 ORDER BY od.diagtype, od.icd10 SEPARATOR ', ') AS all_diagnoses
FROM
ovst
INNER JOIN patient pt ON pt.hn = ovst.hn
-- JOIN เพื่อแสดงรายการ Diag ทั้งหมดใน visit นั้น
LEFT JOIN ovstdiag od ON od.vn = ovst.vn
-- JOIN สำหรับสร้างที่อยู่
LEFT JOIN thaiaddress t1 ON t1.chwpart = pt.chwpart AND t1.amppart = '00' AND t1.tmbpart = '00'
LEFT JOIN thaiaddress t2 ON t2.chwpart = pt.chwpart AND t2.amppart = pt.amppart AND t2.tmbpart = '00'
LEFT JOIN thaiaddress t3 ON t3.chwpart = pt.chwpart AND t3.amppart = pt.amppart AND t3.tmbpart = pt.tmbpart
WHERE
ovst.vstdate BETWEEN '2024-10-01' AND '2025-09-30'
-- เงื่อนไขที่ 1: ต้องมี E114 เป็น Diag หลัก (diagtype = '1') ใน visit นั้น
AND EXISTS (
SELECT 1
FROM ovstdiag
WHERE vn = ovst.vn AND icd10 = 'E115' AND diagtype = '1'
)
-- เงื่อนไขที่ 2: และต้องมี G632 เป็น Diag ร่วมใน visit เดียวกัน
AND EXISTS (
SELECT 1
FROM ovstdiag
WHERE vn = ovst.vn AND icd10 = 'I792'
)
GROUP BY
ovst.vn,
ovst.hn,
pt.pname,
pt.fname,
pt.lname
)
) z
GROUP BY z.hn