เท่าที่เห็นเปลี่ยนแปลง
อาจารย์เพิ่มเงื่อนไข
select k.depcode,k.department,k.doctor_code,k.online_time,d.name as doctor_name,
count(o.vn) as current_visit_count, count(r.vn) as doctor_visit_count from kskdepartment k left outer join doctor d on d.code = k.doctor_code left outer join ovst o on o.vstdate = '2008-10-28' and o.cur_dep = k.depcode
and o.ovstost<>'99' left outer join
rx_doctor r on r.doctor = k.doctor_code and r.rx_date = '2008-10-28' where k.doctor_code<>'' and k.on_desk = 'Y' and k.online_time > '2008-10-27 00:00:01' group by k.depcode,k.department,k.doctor_code,k.online_time,d.name
ทดสอบเบื้องต้น รู้สึกว่ายังมีปัญหาอยู่ล่ะครับอาจารย์
ยังพบว่ายอดที่แพทย์ตรวจไม่ตรงจริงครับ
และยอดรอตรวจกับที่ตรวจแล้ว มักจะเท่ากัน
ถ้าเป็นแบบ ในหน้าตรวจรักษาของแพทย์คิดว่าใช้แบบนี้อยู่ ค่าถูกต้องดีครับ
select v.hn as hn,l.lab_count,xh.confirm_all,l.report_count,v.pt_priority as pt_priority,v.vn as vn,v.oqueue as oqueue,v.cur_dep_time as cur_dep_time,
count(s.vn) as svn_count, count(r.vn) as rx_count,count(r1.vn) as pay_count , count(t.vn) as finance_count , concat(p.pname,p.fname,' ',p.lname) as ptname from ovst v left outer join patient p on p.hn=v.hn
left outer join pq_screen s on s.vn=v.vn left outer join rx_operator r on r.vn=v.vn left outer join rcpt_print t on t.vn=v.vn 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 rx_operator r1 on r1.vn=v.vn and r1.pay='Y' where v.vstdate='2008-10-28' and v.cur_dep='008' and v.cur_dep_busy='N' group by v.hn,l.lab_count,xh.confirm_all,l.report_count,v.pt_priority,v.vn,v.oqueue,v.cur_dep_time,p.pname,p.fname,p.lname order by v.pt_priority desc,v.cur_dep_time
จะต่างตรงที่
จำนวนรอตรวจ...แบบที่ใช้ตอนนี้จะเอาจาก ovst ทั้งหมดที่เข้าตามเงื่อนไข ชื่อแพทย์ แผนก เวลา
ถ้าเป็นหน้าตรวจรักษา จะเอารายชื่อที่ผ่าน pq_screen (มีเลข dep_code)
จำนวนที่ตรวจเสร็จ...แบบตอนนี้เอาข้อมูลจาก rx_doctor
หน้าตรวจรักษา จะเอาจาก rx_operator (ไม่มีเลข dep_code)
... แต่ก็งงว่า ถ้าเอาจาก rx_operator ทำไมยอดถึงถูก เพราะถ้าหมอไม่ได้สั่งยา จะไม่มีข้อมูลใน table นี้
... อาจจะไม่ใช่ script นี้จริงผมลองทำตัวอย่างให้ดูครับ
โดยตรวจ โดยเลือกแผนกส่งต่ออัตโนมัติทั้งหมด
รอตรวจ 3 ตรวจแล้ว 0 --- เลขขึ้น 3, 0 (ถูกต้อง)
...ส่งตรวจเพิ่มอีกคน รวมเป็น 4
รอตรวจ 2 ตรวจแล้ว 2 --- เลขขึ้น 4, 4 (ผิด, ตามรูป)
...ตรวจจนหมด
รอตรวจ 0 ตรวจแล้ว 4 --- เลขขึ้น 0, 4 (ถูกต้อง)
...ส่งตรวจเพิ่มมารอตรวจอีกคน
รอตรวจ 1 ตรวจแล้ว 4 --- เลขขึ้น 4, 4 (ผิด)
...ตรวจจนหมด
รอตรวจ 0 ตรวจแล้ว 5 --- เลขขึ้น 0, 5 (ถูกต้อง)หาแล้วหาอีก ไม่เข้าใจจริงๆครับ + หาไม่เจอว่าทำไมค่าถึงไม่ตรง