BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: [-_เอ็ม_-] ที่ พฤษภาคม 30, 2012, 10:59:46 AM

หัวข้อ: รบกวนช่วยดู Query ให้ทีครับ
เริ่มหัวข้อโดย: [-_เอ็ม_-] ที่ พฤษภาคม 30, 2012, 10:59:46 AM
ช่วยดูด้วยครับ พอดีว่า วิธีกิน / ใช้ยา ไม่แสดงเป็นบางรายการครับ

#####################################

select i.vn, i.hn,i.icode,i.qty,d.units,
concat(u.name1, ' ', u.name2, ' ', u.name3) as detail_use
from opitemrece i
left join drugitems d on d.icode=i.icode
left join drugusage u on u.drugusage=i.drugusage
left join ovstdiag o on o.vn = i.vn
left join patient pt on pt.hn = i.hn
where
(
   o.icd10 in(" + icd + ")
or
   o.icd103 in(" + icd + "))
and pt.hn=o.hn and pt.cid <> '' and SUBSTR(pt.cid,1) <> 0
and o.vstdate BETWEEN '2012-05-18' and '2012-05-18'
and i.income='03' and i.vn is not null
group by i.vn

#####################################
หัวข้อ: Re: รบกวนช่วยดู Query ให้ทีครับ
เริ่มหัวข้อโดย: Adeno Benzoate ที่ พฤษภาคม 30, 2012, 11:07:07 AM
เจ้าหน้าที่ไม่ได้ลงวิธีใช้ใน visit นั้นๆ หรือเปล่าครับ
หัวข้อ: Re: รบกวนช่วยดู Query ให้ทีครับ
เริ่มหัวข้อโดย: [-_เอ็ม_-] ที่ พฤษภาคม 30, 2012, 11:11:23 AM
บางตัวก็ตามนั้นครับ แต่บางตัวดูแล้วก็มีวิธีใช้อยู่ครับ
หัวข้อ: Re: รบกวนช่วยดู Query ให้ทีครับ
เริ่มหัวข้อโดย: Adeno Benzoate ที่ พฤษภาคม 30, 2012, 11:23:36 AM
มีวิธีใช้ ในตารางไหนครับ ระหว่าง opitemrece.drugusage หรือ drugusage.drugusage

บางทียาอาจจะกำหนดวิธีใช้ไว้ก็จริง แต่พอเจ้าหน้าที่ key ข้องมูล อาจจะลบวิธีใช้ออกแล้วไม่ได้ใส่ใหม่ก็ได้ครับ
หัวข้อ: Re: รบกวนช่วยดู Query ให้ทีครับ
เริ่มหัวข้อโดย: [-_เอ็ม_-] ที่ พฤษภาคม 30, 2012, 11:26:45 AM
join ตาราง opitemrece field drugusage กับ ตาราง drugusage field drugusage เพื่อเอาวิธีใช้ มาแสดงครับ
หัวข้อ: Re: รบกวนช่วยดู Query ให้ทีครับ
เริ่มหัวข้อโดย: golf_win ที่ พฤษภาคม 30, 2012, 11:29:22 AM
select i.vn, i.hn,i.icode,i.qty,d.units,
if(i.drugusage<>"",concat(u.name1, ' ', u.name2, ' ', u.name3),concat(u1.name1, ' ', u1.name2, ' ', u1.name3)) as usuge
from opitemrece i
left join drugitems d on d.icode=i.icode
left join drugusage u on u.drugusage=i.drugusage
left join sp_use u1 on u1.sp_use=i.sp_use
left join ovstdiag o on o.vn = i.vn
left join patient pt on pt.hn = i.hn
where
(o.icd10 in ("+icd+") or o.icd103 in ("+icd+"))
and pt.hn=o.hn and pt.cid <> '' and SUBSTR(pt.cid,1) <> 0
and o.vstdate BETWEEN '2012-05-01' and '2012-05-18'
and i.income='03' and i.vn is not null
group by i.vn
หัวข้อ: Re: รบกวนช่วยดู Query ให้ทีครับ
เริ่มหัวข้อโดย: Adeno Benzoate ที่ พฤษภาคม 30, 2012, 11:47:57 AM
join ตาราง opitemrece field drugusage กับ ตาราง drugusage field drugusage เพื่อเอาวิธีใช้ มาแสดงครับ


อันนั้นเข้าใจครับ

ลองไปดูในตาราง Opitemrece นะครับว่า field drugusage ว่างหรือเปล่า
หัวข้อ: Re: รบกวนช่วยดู Query ให้ทีครับ
เริ่มหัวข้อโดย: realaerm ที่ พฤษภาคม 30, 2012, 13:34:12 PM
ช่วยดูด้วยครับ พอดีว่า วิธีกิน / ใช้ยา ไม่แสดงเป็นบางรายการครับ

#####################################

select i.vn, i.hn,i.icode,i.qty,d.units,
concat(u.name1, ' ', u.name2, ' ', u.name3) as detail_use
from opitemrece i
left join drugitems d on d.icode=i.icode
left join drugusage u on u.drugusage=i.drugusage
left join ovstdiag o on o.vn = i.vn
left join patient pt on pt.hn = i.hn
where
(
   o.icd10 in(" + icd + ")
or
   o.icd103 in(" + icd + "))
and pt.hn=o.hn and pt.cid <> '' and SUBSTR(pt.cid,1) <> 0
and o.vstdate BETWEEN '2012-05-18' and '2012-05-18'
and i.income='03' and i.vn is not null
group by i.vn

#####################################

เป็นไปได้ 2 อย่างครับ
1.คำสั่ง concat ใช้ต้องระวังเรื่องค่าว่าง หากมีตัวใดตัวหนึ่งที่เราเอามา concat กันเป็นค่าว่าง ผลที่ได้จะเป็นค่าว่างทั้งหมด ต้องเขียน if ดักครับ

2.วิธีใช้ยามี 2 แบบนะครับ
    1.แบบ code จากในโปรแกรม ซึ่งก็คือฟิว drugusage ใน opitemrece
    2.แบบ กำหนดเอง เวลาคียวิธีใช้ยาแบบกำหนดเอง ข้อมูลในฟิล drugusage ของ opitemrece จะว่าง แล้วจะมีอยู่ในฟิว sp_use ของ ตาราง opitemrece แทนครับ (สังเกตุได้ว่าวิธีใช้ที่กำหนดเองจะมี > อยุ่ข้างหน้าวิธีใช้นั้น)

ลองตรวจสอบดูว่าวิธีใช้ยาดังกล่าวเป็นแบบไหนแล้วใช้วิธีดึงแบบนั้นครับ
หัวข้อ: Re: รบกวนช่วยดู Query ให้ทีครับ
เริ่มหัวข้อโดย: realaerm ที่ พฤษภาคม 30, 2012, 13:37:17 PM
select i.vn, i.hn,i.icode,i.qty,d.units,
if(i.drugusage<>"",concat(u.name1, ' ', u.name2, ' ', u.name3),concat(u1.name1, ' ', u1.name2, ' ', u1.name3)) as usuge
from opitemrece i
left join drugitems d on d.icode=i.icode
left join drugusage u on u.drugusage=i.drugusage
left join sp_use u1 on u1.sp_use=i.sp_use
left join ovstdiag o on o.vn = i.vn
left join patient pt on pt.hn = i.hn
where
(o.icd10 in ("+icd+") or o.icd103 in ("+icd+"))
and pt.hn=o.hn and pt.cid <> '' and SUBSTR(pt.cid,1) <> 0
and o.vstdate BETWEEN '2012-05-01' and '2012-05-18'
and i.income='03' and i.vn is not null
group by i.vn

หรือใช้คำสั่งนี้ครับ :)