query OPD
SELECT ovst.hn, CONCAT(pt.pname,pt.fname," ",pt.lname) as "fullname", -- เพิ่มส่วนคำนวณอายุตรงนี้ TIMESTAMPDIFF(YEAR, pt.birthday, ovst.vstdate) AS age_y, CONCAT( IFNULL(pt.addrpart, ''), ' ม.', IFNULL(pt.moopart, ''), ' ', IFNULL(t3.name, ''), ' ', IFNULL(t2.name, ''), ' ', IFNULL(t1.name, '') ) AS fulladdressname, ovst.vstdate, dx.icd10 AS main_diag, GROUP_CONCAT(DISTINCT dx_all.icd10 ORDER BY dx_all.icd10 SEPARATOR ', ') AS other_diagnoses, (select GROUP_CONCAT(b.name) from opitemrece a INNER JOIN er_oper_code b ON b.icode = a.icode where a.vn = ovst.vn) as 'หัตถการ'FROM ovst JOIN patient pt ON pt.hn = ovst.hn -- Join สำหรับหา visit ที่มี diag หลัก JOIN ovstdiag dx ON dx.vn = ovst.vn -- Join เพื่อหาโรคอื่นๆ ที่ "ไม่ใช่" โรคหลัก LEFT JOIN ovstdiag dx_all ON dx_all.vn = ovst.vn AND dx_all.icd10 <> dx.icd10 -- Joins สำหรับที่อยู่ 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.tmbpartWHERE ovst.vstdate BETWEEN '2025-06-01' AND '2025-07-31' AND dx.icd10 = 'E115' AND ovst.main_dep = '004'GROUP BY ovst.vnORDER BY ovst.hn;