BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: Yuwa-Hos ที่ กรกฎาคม 16, 2014, 10:48:50 AM

หัวข้อ: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ
เริ่มหัวข้อโดย: Yuwa-Hos ที่ กรกฎาคม 16, 2014, 10:48:50 AM
ถึง อาจารย์ และพี่ๆน้องๆ ทุกท่าน

     ขอบอกตามตรงครับว่ามีแค่ความรู้พื้นฐานจริง เรื่องของเรื่องคือว่า กลุ่มงานวิจัยและวิชาการ ของ รพ. จะทำวิจัยจากการมารับบริการของผู้ป่วย มีกลุ่มเป้าหมายแยกตามช่วงอายุ
     1. ผู้ป่วยใหม่-เก่า ที่มารับบริการครั้งแรกในปีงบประมาณ
     2. แยกตามช่วงอายุ
         0 - 5 ปี
         5 ปี 1 เดือน - 10 ปี
        10 ปี 1 เดือน - 15 ปี
        15 ปี 1 เดือน - 20 ปี
        20 ปี ขึ้นไป
--------------------------------------------------------
ลองเขียนแบบทีละช่วงอายุก่อน (เบสิกจริงๆครับ)
select pt.hn,concat(ov.age_y,' ปี',' ',ov.age_m, ' เดือน') as 'อายุ', x.name, ovst.pt_subtype, ov.pdx
from vn_stat ov ,patient pt ,ovst ovst, sex x
where  ov.vn=ovst.vn and pt.hn=ov.hn and pt.firstday between "2012-10-01" and  "2013-09-30" and ov.hn=pt.hn and ov.sex=x.code
 and ov.age_y>= 5
 and ov.age_y<= 10
 and ov.age_m between "1" and "11"
 group by pt.hn
------------------------------------------------------------
ผลลัพธ์ที่เจอคือ ข้อมูลมันซ้ำกัน อย่าง ผู้ป่วยอายุ 10 ปี, 15 ปี จะนับซ้ำกันที่ จำนวนเดือน
แต่ก็คิดว่าถ้านำเอา วันที่มารับบริการครั้งแรก - วันเกิด น่าจะแบ่งช่วงอายุได้ง่ายกว่ารึป่าว แต่คำสั่งจะเขียนนี่สิครับ
ต้องขอรบกวน อาจารย์ และพี่ๆน้องๆ ทุกท่าน ด้วยครับ
หัวข้อ: Re: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ
เริ่มหัวข้อโดย: udomchok ที่ กรกฎาคม 16, 2014, 12:32:30 PM
มันต้องกำหนดช่วงอายุใหม่ครับ
เช่น 0 - 5 ปี 0 เดือน 0 วัน
5 ปี 0 เดือน 1 วัน - 10 ปี 0 เดือน 0 วัน
10 ปี 0 เดือน 1 วัน - 15 ปี 0 เดือน 0 วัน
15 ปี 0 เดือน 1 วัน - 20 ปี 0 เดือน 0 วัน
20 ปี 0 เดือน 1 วัน ขึ้นไป

หัวข้อ: Re: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ
เริ่มหัวข้อโดย: Yuwa-Hos ที่ กรกฎาคม 16, 2014, 14:11:25 PM
มันต้องกำหนดช่วงอายุใหม่ครับ
เช่น 0 - 5 ปี 0 เดือน 0 วัน
5 ปี 0 เดือน 1 วัน - 10 ปี 0 เดือน 0 วัน
10 ปี 0 เดือน 1 วัน - 15 ปี 0 เดือน 0 วัน
15 ปี 0 เดือน 1 วัน - 20 ปี 0 เดือน 0 วัน
20 ปี 0 เดือน 1 วัน ขึ้นไป



ขอบคุณครับ ลองกำหนดตามที่ udomchok แนะนำ
หัวข้อ: Re: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ
เริ่มหัวข้อโดย: Yuwa-Hos ที่ กรกฎาคม 16, 2014, 14:58:47 PM
ผมลองใช้คำสั่งนี้ดู นับจำนวนเดือน จะเสียเวลาที่ต้องมาเปลี่ยนจำนวนเดือน

select pt.hn,concat(ov.age_y,' ปี',' ',ov.age_m, ' เดือน') as ' อายุ', x.name, ovst.pt_subtype, ov.pdx
from vn_stat ov
inner join patient pt on pt.hn = ov.hn
inner join ovst on ovst.vn = ov.vn
inner join sex x on ov.sex=x.code
where  pt.firstday between "2011-10-01" and  "2012-09-30"
and timestampdiff(MONTH,pt.birthday,pt.firstday) between 0 and 60
group by pt.hn

หัวข้อ: Re: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ
เริ่มหัวข้อโดย: udomchok ที่ กรกฎาคม 16, 2014, 15:59:30 PM
ลองดูตัวอย่างครับ

select i.code, i.name, count(an) as cases
from an_stat a
join icd101 i on i.code=a.pdx
where (a.dchdate between "2012-01-01" and "2014-04-30") and ((a.age_y between 0 and 1) or (a.age_y=2 and a.age_m=0 and age_d=0)) and a.pdx not like "Z38%"
group by a.pdx
order by cases desc, code

select i.code, i.name, count(an) as cases
from an_stat a
join icd101 i on i.code=a.pdx
where (a.dchdate between "2012-01-01" and "2014-04-30") and ((a.age_y between 3 and 4) or (a.age_y=5 and a.age_m=0 and age_d=0) or (a.age_y=2 and age_d>0)) and (a.pdx not like "Z38%")
group by a.pdx
order by cases desc, code

select i.code, i.name, count(an) as cases
from an_stat a
join icd101 i on i.code=a.pdx
where (a.dchdate between "2012-01-01" and "2014-04-30") and ((a.age_y between 6 and 14) or (a.age_y=5 and age_d>0)) and (a.pdx not like "Z38%")
group by a.pdx
order by cases desc, code