BMS-HOSxP Community
HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: Knott ที่ กรกฎาคม 28, 2008, 12:35:22 PM
-
ช่วยดูคำสั่งให้หน่อยครับ field icd10 กับ age_y ไม่ขึ้นข้อมูล แต่ในตารางหลักมีข้อมูลครับ
select op.hn,CONCAT(p.pname,p.fname," ",p.lname) as ptfullname,p.cid,CONCAT(di.name," - ",di.strength," ",di.dosageform) as drugname,di.stdtaken,op.rxdate,op.qty,op.sum_price,pt.name,id.icd10,vs.age_y
from opitemrece op
left outer join patient p on p.hn=op.hn
left outer join drugitems di on di.icode=op.icode
left outer join vn_stat vs on vs.vn=op.vn
left outer join pttype pt on pt.pttype=op.pttype
left outer join iptdiag id on id.hn=op.hn
where op.hn='0053174' and op.rxdate='2008-07-14'
order by op.icode
-
Resync VN ใหม่ครับ
-
resync vn แล้วก็ไม่ขึ้นครับ อ่อ รบกวนอธิบาย เลข VN ด้วยครับ แต่ละหลังมีความหมายอย่างไรบ้างครับ
-
เช่น 510728080030
51 = yy
07 = mm
28 = dd
08 = hh
00 = mm
30 = ss
ครับ ;D
-
ช่วยดูคำสั่งให้หน่อยครับ field icd10 กับ age_y ไม่ขึ้นข้อมูล แต่ในตารางหลักมีข้อมูลครับ
...คำสั่งแปลกๆ นะครับ ดู age_y จาก vn_stat ส่วน icd10 ดูจาก iptdiag.. ???...
...ไม่ทราบว่าผู้ป่วยคนนี้(op.hn='0053174' ) ในวันที่นี้(op.rxdate='2008-07-14') เป็นผู้ป่วยในหรือเปล่าครับ...
...ถ้าเป็นผู้ป่วยใน age_y จาก vn_stat จะไม่แสดงครับ เพราะว่า opitemrece นั้น ถ้าเป็นผู้ป่วยในจะเก็บเฉพาะ an ครับไม่ได้เก็บ vn(ส่วนผู้ป่วยนอกจะเก็บเฉพาะ vn) ดั้งนั้นจึง ไม่มี vn ให้เชื่อมกันน่ะครับ ต้องเปลี่ยนไปดึงค่า age_y มาจาก an_stat แทนครับ โดยใช้ an เป็นตัวเชื่อม เช่น
select as.age_y from opitemrece op
left outer join an_stat as on as.an = op.an
where op.hn='0053174' and op.rxdate='2008-07-14'
...ถ้าเป็นผู้ป่วยนอกก็ใช้จาก vn_stat เหมือนเดิมครับ ส่วนเรื่องการวินิจฉัย ถ้าเป็นผู้ป่วยนอกก็ใช้จากตาราง ovstdiag ส่วนผู้ป่วยในก็ใช้ตาราง iptdiag ครับ ลองทดสอบดูนะครับ.... :D.....
...แต่ว่าคำสั่งของคุณ blacksimon นี้ถ้าเกิดว่าผู้ป่วยคนนี้ มีรายการค่ารักษาหลายรายการ และมีการวินิจฉัยหลายตัวด้วย ผลที่ได้จะดูงงๆ นิดนะครับ (จำนวนข้อมูลที่ได้จะเท่ากับ จำนวนรายการค่ารักษา x จำนวนวินิจฉัย)...
-
ขอบคุณทุกท่านเลยครับ ผมเองก็ยังไม่ค่อยรู้เรื่องตารางในโปรแกรมดีนักครับ ไม่รู้ว่าตารางไหนเชื่อมกับตารางไหนก็ค่อยๆ แกะไปนะครับ ความพยายามอยู่ที่ไหน ความสำเร็จอยู่ที่นั่น อิอิ
-
select op.hn,CONCAT(p.pname,p.fname," ",p.lname) as ptfullname,p.cid,CONCAT(di.name," - ",di.strength," ",di.dosageform) as drugname,di.stdtaken,op.rxdate,op.qty,op.sum_price,pt.name,vn.pdx,vs.age_y
from opitemrece op
left outer join patient p on p.hn=op.hn
left outer join drugitems di on di.icode=op.icode
left outer join vn_stat vs on vs.vn=op.vn
left outer join pttype pt on pt.pttype=op.pttype
where op.hn='0053174' and op.rxdate='2008-07-14'
order by op.icode
แก้ตัว left outer join iptdiag ออก และเปลี่ยน id.icd เป็น vn.pdx ลองดูนะครับ
-
ผมรันได้นะครับ จากคำสั่งนี้ครับ ดุที่ HN ครับว่าถูกต้องใหมครับ และตรงตามวันที่ต้องการหรือเปล่าครับ
-
ผมรันได้นะครับ จากคำสั่งนี้ครับ ดุที่ HN ครับว่าถูกต้องใหมครับ และตรงตามวันที่ต้องการหรือเปล่าครับ
เหมือนกับที่ อ.Khuad บอกครับ ว่า sql มันแปลก ๆ เพราะ vn_stat ไม่ควร join กับ iptdiag เพราะมันคนละข้อมูลกันครับ คำสั่งอาจจะ run ได้ แต่ได้ข้อมูลที่ไม่ถูกต้องครับ
-
ครับ ผมใช้ เวอร์ชั่น 3.51.7.2 ตาราง opitemrece กรณีเป็นการสั่งยา ผู้ป่วยในจะว่างครับ จึงจะได้เฉพาะผู้ป่วยนอกครับ เพราะคิดว่าจากคำสั่งผู้เขียนต้องการรายการใช้ยาของผุ้ป่วยนอก
แต่ดูอีกทีก็สับสน ครับ ตอ้งการรายการใช้ยาผู้ป่วยนอกหรือผู้ป่วยในครับ แต่อ้างอายุจาก vn_stat
แต่ถ้าเป็นผู้ป่วยใน เอาอายุจาก an_stat ก็ได้นะครับ
ตอ้งการผู้ป่วยในหรือผู้ป่วยนอกครับ
-
ผมต้องการรายการยาผู้ป่วยในนะครับ แต่ผมต้องการอายุด้วย เลยไปดึงเอา vn_stat แทนทีจะเอาจาก an_stat มันก็เลยไม่ขึ้นนะครับ แต่ตอนนี้ได้แล้วครับ
-
....ส่วนเรื่องการวินิจฉัย ถ้าคำสั่งเป็นลักษณะเดิมตามที่คุณ blacksimon ให้ไว้ ก็ใช้ข้อมูลจากตาราง an_stat(pdx,dx0,dx1,dx2,dx3,dx4,dx5) ได้เลยครับ ไม่ต้อง join กับ iptdiag เพิ่มก็ได้ ข้อมูลที่ได้จะดูง่ายขึ้นครับ... :D...