BMS-HOSxP Community

HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: Knott ที่ กรกฎาคม 28, 2008, 12:35:22 PM

หัวข้อ: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: 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
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: manoi ที่ กรกฎาคม 28, 2008, 13:00:34 PM
Resync VN ใหม่ครับ
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: Knott ที่ กรกฎาคม 28, 2008, 14:04:57 PM
resync vn แล้วก็ไม่ขึ้นครับ อ่อ รบกวนอธิบาย เลข VN ด้วยครับ แต่ละหลังมีความหมายอย่างไรบ้างครับ
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: yord ที่ กรกฎาคม 28, 2008, 18:27:46 PM
เช่น 510728080030
51 = yy
07 = mm
28 = dd
08 = hh
00 = mm
30 = ss
ครับ  ;D
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: Khuad ที่ กรกฎาคม 29, 2008, 00:52:55 AM


ช่วยดูคำสั่งให้หน่อยครับ 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  จำนวนวินิจฉัย)...
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: Knott ที่ กรกฎาคม 29, 2008, 09:30:18 AM
ขอบคุณทุกท่านเลยครับ  ผมเองก็ยังไม่ค่อยรู้เรื่องตารางในโปรแกรมดีนักครับ ไม่รู้ว่าตารางไหนเชื่อมกับตารางไหนก็ค่อยๆ แกะไปนะครับ ความพยายามอยู่ที่ไหน ความสำเร็จอยู่ที่นั่น  อิอิ
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ กรกฎาคม 29, 2008, 09:42:13 AM
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 ลองดูนะครับ

หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: por ที่ กรกฎาคม 29, 2008, 10:45:29 AM
ผมรันได้นะครับ จากคำสั่งนี้ครับ ดุที่ HN ครับว่าถูกต้องใหมครับ และตรงตามวันที่ต้องการหรือเปล่าครับ
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ กรกฎาคม 29, 2008, 11:26:03 AM
ผมรันได้นะครับ จากคำสั่งนี้ครับ ดุที่ HN ครับว่าถูกต้องใหมครับ และตรงตามวันที่ต้องการหรือเปล่าครับ

เหมือนกับที่ อ.Khuad บอกครับ ว่า sql มันแปลก ๆ เพราะ vn_stat ไม่ควร join กับ iptdiag เพราะมันคนละข้อมูลกันครับ คำสั่งอาจจะ run ได้ แต่ได้ข้อมูลที่ไม่ถูกต้องครับ
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: por ที่ กรกฎาคม 29, 2008, 14:08:04 PM
ครับ ผมใช้ เวอร์ชั่น 3.51.7.2 ตาราง opitemrece กรณีเป็นการสั่งยา ผู้ป่วยในจะว่างครับ จึงจะได้เฉพาะผู้ป่วยนอกครับ เพราะคิดว่าจากคำสั่งผู้เขียนต้องการรายการใช้ยาของผุ้ป่วยนอก

แต่ดูอีกทีก็สับสน ครับ ตอ้งการรายการใช้ยาผู้ป่วยนอกหรือผู้ป่วยในครับ แต่อ้างอายุจาก vn_stat
แต่ถ้าเป็นผู้ป่วยใน เอาอายุจาก an_stat ก็ได้นะครับ

ตอ้งการผู้ป่วยในหรือผู้ป่วยนอกครับ
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: Knott ที่ กรกฎาคม 30, 2008, 11:37:11 AM
ผมต้องการรายการยาผู้ป่วยในนะครับ แต่ผมต้องการอายุด้วย เลยไปดึงเอา vn_stat แทนทีจะเอาจาก an_stat มันก็เลยไม่ขึ้นนะครับ แต่ตอนนี้ได้แล้วครับ
หัวข้อ: Re: รบกวนดูคำสั่ง sql ให้หน่อยครับ
เริ่มหัวข้อโดย: Khuad ที่ กรกฎาคม 30, 2008, 12:08:03 PM

....ส่วนเรื่องการวินิจฉัย ถ้าคำสั่งเป็นลักษณะเดิมตามที่คุณ blacksimon ให้ไว้  ก็ใช้ข้อมูลจากตาราง an_stat(pdx,dx0,dx1,dx2,dx3,dx4,dx5) ได้เลยครับ  ไม่ต้อง join กับ iptdiag เพิ่มก็ได้ ข้อมูลที่ได้จะดูง่ายขึ้นครับ... :D...