BMS-HOSxP Community

HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: neopalm ที่ สิงหาคม 26, 2009, 16:49:55 PM

หัวข้อ: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: neopalm ที่ สิงหาคม 26, 2009, 16:49:55 PM
เราจะสร้างเงื่อนไขอย่างไรดีครับ
1. ผู้ป่วยที่ได้รับยา Oseltamivir ภายใน 48 ชม.
2. ผู้ป่วยที่ได้รับยา Oseltamivir ภายใน 72 ชม.

เช่น สมมุติว่า มาวันที่ 2009-08-26  เราจะตรวจสอบอย่างไรว่า รายนี้ ได้มารับการรักษาก่อนหน้านี้ 48 ชั่วโมง หรือ 72 หรือไม่  (นับเป็น case ครับ)

ผมมีตัวอย่างรายงานที่ยังทำไม่เสร็จครับ
ขอคำแนะนำด้วยนะครับ
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: thannawe ที่ สิงหาคม 26, 2009, 19:10:39 PM
ใช้ ตาราง vn_stat ครับ
ฟิลด์ lastvisit_hour

อ.manoi ทำไว้ให้ หมดแล้ว  ครับ ;D :D ;D
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: neopalm ที่ สิงหาคม 26, 2009, 21:55:29 PM
ขอบคุณครับ  แล้วถ้า ฟิลด์นั้น เป็นค่าว่างหล่ะครับ หมายความว่าอะไรครับ บาง record อ่ะครับ

แล้วก็ เราจะรู้ได้อย่างไรครับ ว่า lastvisit_hour นั้นเป็น visit ไหน เพื่อ ตรวจสอบว่ามีอาการคล้ายไข้หวัดใหญ่2009 หรือไม่อ่ะครับ เช่น
vn 520806131943      lastvisit_hour=24 เราจะรู้ได้อย่างไรว่า เมื่อ 24 ชม. ที่แล้ว เป็น vn ไหนครับ
ขอบคุณครับ
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: thannawe ที่ สิงหาคม 26, 2009, 22:23:01 PM
ข้อมูล
ลองหาข้อมูล HN นั้น ในตาราง vn_stat ดูสิครับ
ใช้คำสั่ง
 
select * from vn_stat
where hn = '1234567'

จะได้รู้ว่าคนไข้มา visit ครั้งก่อนๆ เมื่อไหร่  ;)

จะได้เห็นว่า VN ปัจจุบัน - VN ครั้งก่อน  = lastvisit ของครั้งนั้น

กรณีไม่มี อาจเกิดจากVN ไม่ได้มีการคำนวนครับ

รอผู้เชี่ยวชาญมาตอบอีกที ผมก็เพียงแค่สังเกตุเอาหน่ะครับ ;)
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: neopalm ที่ สิงหาคม 27, 2009, 09:12:42 AM
สมมุติว่า

select count(*) from opdscreen o left outer join vn_stat v on v.vn=o.vn
where (o.vstdate between "2009-08-01" and "2009-08-31") and o.temperature>38 and
v.lastvisit_hour<48 and .....
("เราจะสร้างเงื่อนไขอย่างไรต่อครับ เพื่อให้รู้ว่าครั้งที่แล้วของ query กลุ่มนี้ มาด้วยอาการเีดียวกันคือ Temperature>38") ไม่รู้จะทำ subquery อย่างไร

ิถามเพิ่มเติมครับ  ฟิลด์ lastvisit ใน vn_stat เป็นจำนวนวัน หรือปล่าวครับ

ขอบคุณครับ
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: neopalm ที่ สิงหาคม 27, 2009, 11:17:12 AM
ทำได้แล้วครับ

select v.vn,v.hn,v.vstdate,ov.vsttime,IF(v.lastvisit_hour>24,FLOOR(v.lastvisit_hour/24),CEILING(v.lastvisit_hour/24))as lastvisit_day,v.lastvisit_hour,
IF(v.lastvisit_hour>24,
DATE_FORMAT(MAKEDATE(2009,(DAYOFYEAR(DATE_FORMAT(concat(ov.vstdate," ",ov.vsttime),GET_FORMAT(DATETIME,"USA")))-(FLOOR(v.lastvisit_hour/24)))),"%Y-%m-%d"),
DATE_FORMAT(MAKEDATE(2009,(DAYOFYEAR(DATE_FORMAT(concat(ov.vstdate," ",ov.vsttime),GET_FORMAT(DATETIME,"USA")))-(CEILING(v.lastvisit_hour/24)))),"%Y-%m-%d"))as lastvisit_date,
o.temperature,o.cc,op.icode
from vn_stat v
left join opdscreen o on o.vn=v.vn
left join ovst     ov on ov.vn=v.vn
left join opitemrece op on op.vn=v.vn
where  (v.vstdate between '2009-08-01' and '2009-08-31') and v.lastvisit_hour<48 and o.temperature>=38
and (o.cc like "%ไข้%" or o.cc like "%ไอ%" or o.cc like "%เจ็บคอ%") and op.icode=1460039
and v.hn=(select v2.hn from vn_stat v2 left join opdscreen o2 on o2.vn=v2.vn
where  v2.hn=v.hn and
v2.vstdate=(
IF(v.lastvisit_hour>24,
DATE_FORMAT(MAKEDATE(2009,(DAYOFYEAR(DATE_FORMAT(concat(ov.vstdate," ",ov.vsttime),GET_FORMAT(DATETIME,"USA")))-(FLOOR(v.lastvisit_hour/24)))),"%Y-%m-%d"),
DATE_FORMAT(MAKEDATE(2009,(DAYOFYEAR(DATE_FORMAT(concat(ov.vstdate," ",ov.vsttime),GET_FORMAT(DATETIME,"USA")))-(CEILING(v.lastvisit_hour/24)))),"%Y-%m-%d"))
)
and o2.temperature>=38 and (o2.cc like "%ไข้%" or o2.cc like "%ไอ%" or o2.cc like "%เจ็บคอ%")
)


กว่าจะมั่วออกมาได้  ตัวแปรที่เปลี่ยนแปลงได้ คือ icode ของยา Oseltamivir ,  lastvisit_hour<48, CC , temperature ครับ

ขอบคุณมากครับ
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: neopalm ที่ สิงหาคม 27, 2009, 16:33:09 PM
พร่งุนี้จะ เอา รายงานตัวเสร็จแล้วมาฝากครับ
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: doramon ที่ สิงหาคม 27, 2009, 16:40:18 PM
พร่งุนี้จะ เอา รายงานตัวเสร็จแล้วมาฝากครับ

เก่งมากครับ   :)
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: thannawe ที่ สิงหาคม 28, 2009, 10:25:23 AM
เก่งมากๆครับ แหล่ม  :D ;D ;)
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: neopalm ที่ สิงหาคม 28, 2009, 16:30:47 PM
มาแล้วครับ แต่ยังไม่ค่อยสมบูรณ์ ขาดการตาย เพราะโรงพยาบาลผมส่วนใหญ่จะ Refer ครับถ้าอาการหนัก
ไปตาย รพ.อื่น แล้วส่วนใหญ่เจ้าหน้าที่ไม่ได้ติดตามผล พอได้ผล ก็ไม่เอามาลง

ค่อนข้างเป็นรายงานอันตรายนะครับ แนะนำว่า เอาเป็นรายวันครับ รายเดือน กลัวแฮงค์
อีกอย่างคือ  ผม ทำ pickuplist วันที่ แบบ วันเดียวไม่เป็นครับ  มีแต่ DateRange
สามารถเปลี่ยน icode ยา ได้นะครับ แล้วก็ icode lab

ช่วย comment หน่อยนะครับ ขอบคุณครับ
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: thannawe ที่ สิงหาคม 28, 2009, 17:25:29 PM
เขียนเป็น tempreport อย่างเทพเลยนะครับเนี่ย
เก่งจังครับ
ผมยังเขียนไม่เป็นเลย  ;D :D ;)

ยอดเยี่ยมครับ

แต่ผม run แล้วติด error name21 คืออะไรครับ
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: jdadmin1 ที่ สิงหาคม 28, 2009, 18:32:13 PM
อ้างถึง
เขียนเป็น tempreport อย่างเทพเลยนะครับเนี่ย
เก่งจังครับ
ผมยังเขียนไม่เป็นเลย  Grin Cheesy Wink
;D ;D ;D ขยันฝึกต่อไปครับ จะได้อาศัยด้วย ไอ้ผมก็เขียนไม่เป็นเหมือนกันไอ้ Temp report เนี่ย เขียนทีไรเป็น Temp Recycle Bin ไปซะทุกที เฮ้อ ;D ;D ;D
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: asawincyber ที่ สิงหาคม 29, 2009, 17:58:29 PM
รอ น้าเจดีย์ปล่อย รายงานเทพๆ ออกมา อย่าเอาเก็บไว้เลย เอามาแจกบ้าง  ;D ;D
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: jdadmin1 ที่ สิงหาคม 29, 2009, 18:20:07 PM
อ้างถึง
รอ น้าเจดีย์ปล่อย รายงานเทพๆ ออกมา อย่าเอาเก็บไว้เลย เอามาแจกบ้าง  Grin Grin
;D ;D ;D รอไปก่อนครับ บอกแล้วตอนนี้เป็นเทพ Temp Recycle Bin ทำทีไรลงขยะทุกที 5555 ;D ;D ;D
หัวข้อ: Re: ขอความช่วยเหลือ เกี่ยวกับรายงาน การจ่ายยา Oseltamivir ครับ
เริ่มหัวข้อโดย: neopalm ที่ สิงหาคม 31, 2009, 08:48:10 AM
เขียนเป็น tempreport อย่างเทพเลยนะครับเนี่ย
เก่งจังครับ
ผมยังเขียนไม่เป็นเลย  ;D :D ;)

ยอดเยี่ยมครับ

แต่ผม run แล้วติด error name21 คืออะไรครับ

fcds['name21']:=getsqldata(' select count(o.vn) as total from opdscreen o'+
' left join an_stat a on a.vn=o.vn and (a.regdate between "'+ds1+'" and "'+ds2+'")'+
' left join vn_stat v on v.vn=o.vn and (v.vstdate between "'+ds1+'" and "'+ds2+'")'+
' where (o.vstdate between "'+ds1+'" and "'+ds2+'")'+
' and (a.an<>"" or a.an is not null)'+
' and (v.pdx="J11" or v.dx0="J11" or v.dx1="J11" or v.dx2="J11" or v.dx3="J11" or v.dx4="J11" or v.dx5="J11")');

name21  เป็น ผู้ป่วยในครับ ที่มีการ Diag J11
รู้สึกเงื่อนไขจะผิด ผู้ป่วยในผมดัน เอาจาก vn_stat ความจริงต้องเป็น an_stat
รบกวนโหลดใหม่นะครับ ใครที่โหลดไป ก่อนวันที่ 31-08-2552 เวลา 9:00
ผม ทำ icode เป็นตัวแปลให้แล้วนะครับ
อยู่แถวๆ VAR ชื่อตัวแปล drug_icode กับ lab_icode ให้เปลี่ยนตัวนั้นเป็น icode ของยาและแล็บโรงพยาบาลคุณได้เลยครับ  ขอบคุณสำหรับกำลังใจครับ