อ.โก้ ครับ ตอนนี้ผมยังไม่สามารถเชื่อมโยงชื่อแพทย์ใส่ในฟอร์ม ใบรับรองยานอกฯ ได้เลยครับ เพราะ ใช้ฟอร์มเดียวกันทั้งใน ระบบซักประวัติ และ ห้องตรวจแพทย์ (ยังไม่ได้ทดสอบหน้า ห้องยา) ผมใช้ฟอร์มของ อ.โก้ เป็นต้นแบบ ก็ไม่แสดงครับ
และอีกอย่าง ฟิลด์ doctor ในตาราง ovst_presc_reason จะเก็บรหัสของทั้งแพทย์และไม่ใช่แพทย์ (กรณีจนท.อื่นสั่งยาจากระบบซักประวัติ) ตาราง ovst_presc_reason น่าจะเก็บทั้งแพทย์จริงๆ แพทย์ รคส. และจนท.ที่สั่งยาแทนแพทย์ หรือป่าวครับ
ที่ผมใช้อยู่ เป็นแบบนี้นะครับ
ที่ว่าได้จากผมน่ะ แบบไหนครับ
เอามาจากอันนี้ครับ (ไฟล์แนบ)
select concat(p.pname,p.fname," ",p.lname) as ptname, p.hn, o.rxdate, v.age_y, concat(d.name,d.strength,d.units) as drugname,
opn.*, concat(i.code,i.name,"(",i.tname,")") as diag, o.qty, o.sum_price, ocd.doctor as control_doctor,
if(ocd.doctor="",opn.doctor,ocd.doctor) as doctor_orderfrom ovst_presc_ned opn
join drugitems d on d.icode = opn.icode
join opitemrece o on o.vn = opn.vn and o.icode = opn.icode
join patient p on p.hn = o.hn
join vn_stat v on v.vn = o.vn
left outer join icd101 i on i.code = v.pdx
left outer join ovst_control_doctor ocd on ocd.vn=opn.vn
where opn.vn = "550907000630" and opn.doctor = "00556"
ซึ่งจะต่างจากอันใหม่ ที่ อ.โก้ โพสให้คือ
select concat(p.pname,p.fname," ",p.lname) as ptname, p.hn, o.rxdate, v.age_y, concat(d.name,d.strength,d.units) as drugname,
opn.*, concat(i.code,i.name,"(",i.tname,")") as diag, o.qty, o.sum_price, ocd.doctor as control_doctor,
if(ocd.doctor is null,opn.doctor,ocd.doctor) as doctor_orderfrom ovst_presc_ned opn
join drugitems d on d.icode = opn.icode
join opitemrece o on o.vn = opn.vn and o.icode = opn.icode
join patient p on p.hn = o.hn
join vn_stat v on v.vn = o.vn
left outer join icd101 i on i.code = v.pdx
left outer join ovst_control_doctor ocd on ocd.vn=opn.vn
where opn.vn = "550907000630" and opn.doctor = "00556"
แต่ปัญหาที่ผมเจอก็คือ ถ้าพิมพ์ใบนี้โดยใช้ฟอร์มของ อ. โก้ ทั้งสองอันนี้ จากหน้าซักประวัติ ชื่อแพทย์จะเป็น ชื่อพยาบาลที่ซักประวัติครับ (ซึ่งปกติหน้าซักประวัติ พยาบาลจะใส่เป็น รคส.) ส่วนที่ห้องตรวจแพทย์นั้น ไม่ว่าจะเป็นหมอน้อง หรือ แพทย์ staff ก็ถือเป็นแพทย์เหมือนกัน ซึ่งยังไม่เคยลงชื่อ แพทย์ที่ควบคุม (อาจแตกต่างจาก รพ. อ.โก้ครับ)
ผมก็เลยได้มาเป็นอันนี้
SELECT concat(p.pname,p.fname," ",p.lname) as ptname, p.hn, o.rxdate, v.age_y,
concat(d.name," ",d.strength," ",d.units) as drugname,
opn.*,concat(i.code,i.name,"(",i.tname,")") as diag, o.qty, o.sum_price,ocd.doctor as control_doctor,
if(ov.command_doctor <> "",ov.command_doctor,if(ov.command_doctor = ov.doctor,ov.command_doctor,ov.doctor)) as dr_codeFROM ovst_presc_ned opn
JOIN drugitems d on d.icode = opn.icode
JOIN opitemrece o on o.vn = opn.vn and o.icode = opn.icode
JOIN patient p on p.hn = o.hn
JOIN vn_stat v on v.vn = o.vn
LEFT OUTER JOIN icd101 i on i.code = v.pdx
LEFT OUTER JOIN ovst_control_doctor ocd on ocd.vn = opn.vn
LEFT OUTER JOIN ovst ov on ov.vn = opn.vn
LEFT OUTER JOIN doctor dr on dr.code = ov.command_doctor
WHERE opn.vn = "550907000630" AND opn.doctor = "00556"