มาทำคิวรอซักประวัติกัน Ovst Q
ได้โจทย์ต่อยอดจาก คิวรอรับยา มาทำหน้าจอแสดงคิวรอซักประวัติกันครับ
ระบบนี้ไม่ต้องมีอะไรมาก ให้คีย์หรือต้องเข้าไปบันทึกที่ขั้นตอนไหน เพราะหลังจากส่งตรวจก็จะทราบเลยว่า มีคนรอซักประวัติ แค่รู้ว่าจะแสดงที่แผนกไหน ที่ฝ่ายเวชระเบียนส่งตรวจมารอที่แผนกไหน เท่านั้นเอง ที่นี้ก็มาออกแบบหน้าจอกัน เลยได้ตามรูปนี้เลย
ก็เอา รูปแบบมาจากตัว Q คิวรอจ่ายยา นั้นเอง แต่ปรับแต่งอีกนิดหน่อย ( เดี่ยวระบบคิวรอจ่ายยา รออีกสักพักนะครับ กะจะแจกก่อนแต่ว่ามีขั้นตอนเยอะ และต้องทำคู่มือตั้งค่าก่อน) เอาอันนี้ไปก่อน ติดตั้งแล้ว config นิดหน่อยก็ใช้งานได้แล้ว
ต่อมาก็มาคิวรี่ หาโค้ด sql ที่หน้าจอจุดซักประวัติ กัน
หน้านี้เลย วิธีหาก็ใช้ sql trace นี้แหละครับ
ก็จะได้โค้ดประมาณนี้ครับ
select distinct hn from opdscreen
where vstdate=curdate()
and screen_dep in(select screendepcode from opdconfig )
and waiting=’Y’
อันนี้เป็นโค้ด sql หาจำนวนคนที่ยังได้ผ่านการซักประวัติไปแล้ว คือฟิวล์ waiting =’Y’ นั้นเอง เอาแยกกลุ่มทั้งหมดว่าไม่เอา กลุ่มนี้ นั้นเอง
ต่อมาก็ได้โค้ด คนส่งตรวจทั้งหมด คือ
select v.vn,v.hn,
v.pt_priority,v.oqueue,
v.cur_dep_time,k.department,xh.confirm_all,
l.lab_count,l.report_count,ovq.pttype_check,v.pt_priority,
curtime(),v.cur_dep_time,substr(TIMEDIFF(curtime(),v.cur_dep_time),1,5)as ttime
from ovst v
left outer join patient p on p.hn=v.hn
left outer join lab_status l on l.vn = v.vn
left outer join xray_head xh on xh.vn = v.vn
left outer join ovst_seq ovq on ovq.vn = v.vn
left outer join kskdepartment k on k.depcode = v.cur_dep
where v.vstdate = curdate()
and v.cur_dep in(select screendepcode from opdconfig )
and v.cur_dep_busy=’N’
order by v.pt_priority desc,v.cur_dep_time
ตรงจุดนี้จะมีฟิวล์ ttime เป็นเวลาที่รอ โดยผมใช้วิธีคำนวนโดยใช้ฟังชัน TIMEDIFF เอาเวลาปัจจุบัน กับเวลาในฟิวล์ cur_dep_time เวลาที่ส่งมายังจุดซักประวัตินั้นเอง มาหาค่าเวลา ก็จะได้เป็นเวลา ที่รอ ประมาณการ นะครับ (อาจจะไม่ถูกก็ได้)
แล้วก็เอาโค้ด 2 ตัวนี้มารวมกัน ก็จะได้
select v.vn,v.hn,
v.pt_priority,v.oqueue,
v.cur_dep_time,k.department,xh.confirm_all,
l.lab_count,l.report_count,ovq.pttype_check,v.pt_priority,
curtime(),v.cur_dep_time,substr(TIMEDIFF(curtime(),v.cur_dep_time),1,5)as ttime
from ovst v
left outer join patient p on p.hn=v.hn
left outer join lab_status l on l.vn = v.vn
left outer join xray_head xh on xh.vn = v.vn
left outer join ovst_seq ovq on ovq.vn = v.vn
left outer join kskdepartment k on k.depcode = v.cur_dep
where v.vstdate = curdate()
and v.cur_dep in(select screendepcode from opdconfig )
and v.cur_dep_busy=’N’
and v.hn not in (select distinct hn from opdscreen
where vstdate=curdate()
and screen_dep in(select screendepcode from opdconfig )
and waiting=’Y’)
order by v.pt_priority desc,v.cur_dep_time
ก็จะได้คิวรีหน้า ซักประวัติแล้ว ก็เอาโค้ดนี้มาวางใส่ไฟล์ php
ดาวโหลดไฟล์ php ชื่อ ov_queue คลิก
ใน zip ก็จะมีไฟล์ php อยู่ตามรูปนี้ครับ
ก็แตกไฟล์แล้ว เอาไว้วางไว้ที่ host webserver ของท่านเอง ก็ไปวางไว้ที่ /var/www/html
ต่อมาก็เข้าไปแก้ไขไฟล์ config.php
กำหนด hostname , user , password , dbname ตามลำดับเลยนะครับ admin แต่จะรู้เองหากเคยเขียน php มาก่อนนะครับ
เสร็จแล้วก็ไปเปิด brower ดูว่าใช้งานได้ไหมนะครับ ถ้าออกมาหน้าจอตามรูปนี้ ก็ถือว่า ใช้ได้นะครับ
ผมใช้ฟอน ฟรี ๆ ของ google นะครับ
หรือท่านอื่นๆ จะเปลี่ยนเป็น font อื่นก็เข้าไปดาวโหลดได้ที่ ลิ้งนี้นะครับ
https://fonts.google.com/?subset=thai&selection.family=Kanit
ดาวโหลด source code ตามนี้ครับ
https://www.dropbox.com/s/gsunlhaumfgew3q/ov_queue%20-%20demo%20-%20610619.zip?dl=0
หวังว่าจะเป็นประโยชน์กับทุกท่านที่ได้ เข้ามา ชม นะครับ
หากเอาไปต่อยอดแล้ว อย่าลืมแชร์มาให้ผมใช้ต่อด้วยนะครับ ขอบคุณครับ
ติดตามหรือแนะนำติชมผมได้ทาง Facebook
https://www.facebook.com/arm.youant