ตอนนี้กำลังทำรายงานข้อมูลผู้ป่วย HT,DM แยกรายพื้นที่รับผิดชอบ รพ.สต. ให้พี่ที่ดูแล NCD ครับ เพราะที่โรงพยาบาลมีนโยบายให้คนไข้ที่เป็น HT,DM ที่อาการไม่หนักมากกลับไปรับยาของคลีนิคที่ รพ.สต. จะได้ลด Workload ของโรงพยาบาลได้ ก็เลยจะต้องมีข้อมูล lab ของคนไข้ด้วยว่ามีการทำ lab อะไรไปแล้วบ้าง ข้อมูล lab แต่ละตัวเป็นยังไง จะได้ประกอบการตัดสินใจได้ว่าคนไหนจะส่งกลับ รพ. สต. คนไหนจะให้รักษาตัวต่อที่ รพ.
ก็เลยลองเอารายงานของ อ. เอก CMI 2 ตัว (รายงานข้อมูลดิบส่ง สปสช. กับรายงานคนไข้ DMHT แยกราย รพ.สต.) มาจับยำรวมกันดู ก็ไม่มี Error อะไรนะครับ แต่ว่าทำออกมาแล้วมันไม่สามารถดึงผล Lab ของคนไข้แต่ละคนได้ ลอง SQL Trace ออกมาดูก็ได้ประมาณนี้
select lo.lab_order_result from lab_head lh left outer join lab_order lo on lo.lab_order_number=lh.lab_order_number where lo.lab_items_code= '153' and lh.hn='' order by order_date desc limit 1
เทียบกับโค้ดใน Variable ตัวนี้ครับ
Value := GetSQLIntegerData('select lo.lab_order_result from lab_head lh '+
' left outer join lab_order lo on lo.lab_order_number=lh.lab_order_number '+
' where lo.lab_items_code= "'+lab_fbs_code+'" '+
' and lh.hn="' +DBPipeline['hn'] + '" order by order_date desc limit 1');
ค่อนข้างชัดเลยว่าตัวที่มีปัญหาคือ DBPipeline['hn'] ที่ไม่เอาค่า hn ของคนไข้มาใส่ เวลาดึงผลออกมาจะได้เป็น 0 ตลอด เลยอยากสอบถามว่ามีปัญหาตรงไหนได้บ้างครับ ผมแนบรายงานทั้งสองตัวไว้ข้างล่างแล้วนะครับ สำหรับให้เอาไปลองกัน ขอบคุณทุกคำตอบล่วงหน้าด้วยครับ