ผู้เขียน หัวข้อ: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ  (อ่าน 4289 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ Yuwa-Hos

  • Jr. Member
  • **
  • กระทู้: 70
  • Respect: +1
    • ดูรายละเอียด
    • ycap.go.th
ถึง อาจารย์ และพี่ๆน้องๆ ทุกท่าน

     ขอบอกตามตรงครับว่ามีแค่ความรู้พื้นฐานจริง เรื่องของเรื่องคือว่า กลุ่มงานวิจัยและวิชาการ ของ รพ. จะทำวิจัยจากการมารับบริการของผู้ป่วย มีกลุ่มเป้าหมายแยกตามช่วงอายุ
     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 ปี จะนับซ้ำกันที่ จำนวนเดือน
แต่ก็คิดว่าถ้านำเอา วันที่มารับบริการครั้งแรก - วันเกิด น่าจะแบ่งช่วงอายุได้ง่ายกว่ารึป่าว แต่คำสั่งจะเขียนนี่สิครับ
ต้องขอรบกวน อาจารย์ และพี่ๆน้องๆ ทุกท่าน ด้วยครับ
รพ.ยุวประสาทไวทโยปถัมภ์ กรมสุขภาพจิต
เริ่มใช้งาน : ตุลาคม 2554
Server&Salve : IBM System x3200 M3 (Xeon X3450 2.67GHz)
RAM : 18 GB
OS : CentOS 6.2
ขึ้นระบบ : เมื่อ 10 ตุลาคม 2554 ( ทีม BMS )
HOSxP vsersion : 3
Percona MySQL 5.5.28

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ
« ตอบกลับ #1 เมื่อ: กรกฎาคม 16, 2014, 12:32:30 PM »
0
มันต้องกำหนดช่วงอายุใหม่ครับ
เช่น 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 วัน ขึ้นไป

ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ Yuwa-Hos

  • Jr. Member
  • **
  • กระทู้: 70
  • Respect: +1
    • ดูรายละเอียด
    • ycap.go.th
Re: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ
« ตอบกลับ #2 เมื่อ: กรกฎาคม 16, 2014, 14:11:25 PM »
0
มันต้องกำหนดช่วงอายุใหม่ครับ
เช่น 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 แนะนำ
รพ.ยุวประสาทไวทโยปถัมภ์ กรมสุขภาพจิต
เริ่มใช้งาน : ตุลาคม 2554
Server&Salve : IBM System x3200 M3 (Xeon X3450 2.67GHz)
RAM : 18 GB
OS : CentOS 6.2
ขึ้นระบบ : เมื่อ 10 ตุลาคม 2554 ( ทีม BMS )
HOSxP vsersion : 3
Percona MySQL 5.5.28

ออฟไลน์ Yuwa-Hos

  • Jr. Member
  • **
  • กระทู้: 70
  • Respect: +1
    • ดูรายละเอียด
    • ycap.go.th
Re: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ
« ตอบกลับ #3 เมื่อ: กรกฎาคม 16, 2014, 14:58:47 PM »
0
ผมลองใช้คำสั่งนี้ดู นับจำนวนเดือน จะเสียเวลาที่ต้องมาเปลี่ยนจำนวนเดือน

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

รพ.ยุวประสาทไวทโยปถัมภ์ กรมสุขภาพจิต
เริ่มใช้งาน : ตุลาคม 2554
Server&Salve : IBM System x3200 M3 (Xeon X3450 2.67GHz)
RAM : 18 GB
OS : CentOS 6.2
ขึ้นระบบ : เมื่อ 10 ตุลาคม 2554 ( ทีม BMS )
HOSxP vsersion : 3
Percona MySQL 5.5.28

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: รบกวนขอ scrip เพื่อกลุ่มผู้ป่วย ตามช่วงอายุ
« ตอบกลับ #4 เมื่อ: กรกฎาคม 16, 2014, 15:59:30 PM »
0
ลองดูตัวอย่างครับ

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
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)