BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: panda ที่ มิถุนายน 22, 2012, 09:33:23 AM

หัวข้อ: รบกวนดูรายงานBP ให้หน่อยค่ะ ผู้ป่วยHT/DM โดยใช้BPครั้งสุดท้าย
เริ่มหัวข้อโดย: panda ที่ มิถุนายน 22, 2012, 09:33:23 AM
รบกวนเซียนทั้งหลาย ใครมีรายงานประมาณนี้บ้าง รบกวนขอรายงาน BP ผู้ป่วย HT / DM  ที่มีค่า BP มากกว่าหรือเท่ากับ 130/80 โดยใช้ BP ที่วัดครั้งสุดท้ายเป็นตัวกำหนด

รายงานระดับ BP ที่ควบคุมได้ ช่วง 3 เดือน
มีเงื่อนไข  ดังนี้ 
- เป็นผู้ป่วย DM และ HT
- BP มากกว่าหรือเท่ากับ 130/80
- BP ที่วัดต้องเป็นครั้งสุดท้าย
หัวข้อ: รบกวนดูโค้ดให้หน่อยค่ะ ผิดตรงไหนอ่ะ
เริ่มหัวข้อโดย: panda ที่ มิถุนายน 22, 2012, 15:21:55 PM
หลังจากไปนั่งคิดมาครึ่งวัน ได้ออกมาแบบนี้ รบกวนเซียนทั้งหลายดูให้หน่อยค่ะ ว่าผิดตรงไหนอ่ะ

set @d1 = '2012-01-01';
set @d2 = '2012-01-31';

select *
from
(select v.hn,concat(p.pname,p.fname,space(3),p.lname) as ptname,p.clinic,sc.bps,sc.bpd
,
(
select sc.bps
from opdscreen sc1
where sc1.vstdate between DATE_ADD(@d1, INTERVAL -1 MONTH) and DATE_ADD(@d2, INTERVAL -1 MONTH)
and sc1.hn = v.hn
) as bps1
,
(
select sc.bps
from opdscreen sc2
where sc2.vstdate between DATE_ADD(@d1, INTERVAL -2 MONTH) and DATE_ADD(@d2, INTERVAL -2 MONTH)
and sc2.hn = v.hn
) as bps2
,
(
select sc.bpd
from opdscreen sc3
where sc3.vstdate between DATE_ADD(@d1, INTERVAL -1 MONTH) and DATE_ADD(@d2, INTERVAL -1 MONTH)
and sc3.hn = v.hn
) as bpd1
,
(
select sc.bpd
from opdscreen sc4
where sc4.vstdate between DATE_ADD(@d1, INTERVAL -2 MONTH) and DATE_ADD(@d2, INTERVAL -2 MONTH)
and sc4.hn = v.hn
) as bpd2
from vn_stat v
left join opdscreen sc on sc.vn = v.vn
left join patient p on p.hn = v.hn
where v.vstdate between @d1 and @d2
and p.clinic like '%àºÒËÇÒ¹%'
and sc.bps is not null
and sc.bps >= '130' or sc.bpd >= '80'
and v.vstdate between @d1 and @d2
group by v.hn
order by v.aid desc ,v.vstdate,v.hn
) as ttemp
where bps >= '130' and bps1 >= '130' and bps2 >= '130'
หัวข้อ: Re: รบกวนดูรายงานBP ให้หน่อยค่ะ ผู้ป่วยHT/DM โดยใช้BPครั้งสุดท้าย
เริ่มหัวข้อโดย: panda ที่ มิถุนายน 22, 2012, 16:03:29 PM
ดันหน่อยจะหล่นแล้วค่ะ  ;D ;D
หัวข้อ: Re: รบกวนดูรายงานBP ให้หน่อยค่ะ ผู้ป่วยHT/DM โดยใช้BPครั้งสุดท้าย
เริ่มหัวข้อโดย: u10908 ที่ มิถุนายน 23, 2012, 09:40:05 AM
ช่วยดันค่ะ ;D
หัวข้อ: Re: รบกวนดูรายงานBP ให้หน่อยค่ะ ผู้ป่วยHT/DM โดยใช้BPครั้งสุดท้าย
เริ่มหัวข้อโดย: pop_hosxp ที่ มิถุนายน 23, 2012, 10:53:32 AM
แบบนี้ได้ไหมครับ

set @d1 = '2012-01-01';
set @d2 = '2012-01-31';

select *
from
(select v.hn,concat(p.pname,p.fname,space(3),p.lname) as ptname,p.clinic,sc.bps,sc.bpd
,
(
select sc.bps
from opdscreen sc1
where sc1.vstdate between DATE_ADD(@d1, INTERVAL -1 MONTH) and DATE_ADD(@d2, INTERVAL -1 MONTH)
and sc1.hn = v.hn
) as bps1
,
(
select sc.bps
from opdscreen sc2
where sc2.vstdate between DATE_ADD(@d1, INTERVAL -2 MONTH) and DATE_ADD(@d2, INTERVAL -2 MONTH)
and sc2.hn = v.hn
) as bps2
,
(
select sc.bpd
from opdscreen sc3
where sc3.vstdate between DATE_ADD(@d1, INTERVAL -1 MONTH) and DATE_ADD(@d2, INTERVAL -1 MONTH)
and sc3.hn = v.hn
) as bpd1
,
(
select sc.bpd
from opdscreen sc4
where sc4.vstdate between DATE_ADD(@d1, INTERVAL -2 MONTH) and DATE_ADD(@d2, INTERVAL -2 MONTH)
and sc4.hn = v.hn
) as bpd2
from vn_stat v
left join opdscreen sc on sc.vn = v.vn
left join patient p on p.hn = v.hn
where v.vstdate between @d1 and @d2
and p.clinic like '%àºÒËÇÒ¹%'
and sc.bps is not null
and (sc.bps >= '130' or sc.bpd >= '80')
and v.vstdate between @d1 and @d2
group by v.hn
order by v.aid desc ,v.vstdate,v.hn
) as ttemp
where bps >= '130' and bps1 >= '130' and bps2 >= '130'
หัวข้อ: Re: รบกวนดูรายงานBP ให้หน่อยค่ะ ผู้ป่วยHT/DM โดยใช้BPครั้งสุดท้าย
เริ่มหัวข้อโดย: jingjoe ที่ พฤษภาคม 01, 2014, 22:51:02 PM
ไม่ออกค่าใดๆ มาเลยครับ
หัวข้อ: Re: รบกวนดูรายงานBP ให้หน่อยค่ะ ผู้ป่วยHT/DM โดยใช้BPครั้งสุดท้าย
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ พฤษภาคม 02, 2014, 08:42:10 AM
ถ้ากติกา คือมากกว่า หรือเท่ากับ   130/80  มิใช่ค่า bps   or  bpd  อย่างใดอย่างหนึ่ง   เช่น ถ้าวัดได้ 135/79  ก็จะนอกเงื่อนไขครับ
หัวข้อ: Re: รบกวนดูรายงานBP ให้หน่อยค่ะ ผู้ป่วยHT/DM โดยใช้BPครั้งสุดท้าย
เริ่มหัวข้อโดย: jingjoe ที่ พฤษภาคม 02, 2014, 09:39:22 AM
รายชื่อผู้ป่วย HT ที่มี BP น้อยกว่า 140/90 จำนวน 2 ครั้งติดกัน เลือกในช่วงที่ที่ต้องการได้

select *
from(select v.hn,concat(p.pname,p.fname,space(3),p.lname) as ptname,p.clinic,sc.bps,sc.bpd,
     (select sc.bps
      from opdscreen sc1
           where sc1.vstdate between DATE_ADD("2014-01-01", INTERVAL -1 MONTH)  and DATE_ADD("2014-04-20", INTERVAL -1 MONTH)
           and sc1.hn = v.hn
      ) as bps1,

      (select sc.bps from opdscreen sc2
      where sc2.vstdate between DATE_ADD("2014-01-01", INTERVAL -2 MONTH)  and DATE_ADD("2014-04-20", INTERVAL -2 MONTH)
      and sc2.hn = v.hn
      ) as bps2,

      (select sc.bpd
       from opdscreen sc3
        where sc3.vstdate between DATE_ADD("2014-01-01", INTERVAL -1 MONTH)  and DATE_ADD("2014-04-20", INTERVAL -1 MONTH)
       and sc3.hn = v.hn
       ) as bpd1,

       (select sc.bpd
        from opdscreen sc4
        where sc4.vstdate between DATE_ADD("2014-01-01", INTERVAL -2 MONTH)  and DATE_ADD("2014-04-20", INTERVAL -2 MONTH)
        and sc4.hn = v.hn
        ) as bpd2

        from vn_stat v
        left join opdscreen sc on sc.vn = v.vn
        left join patient p on p.hn = v.hn
        where v.vstdate between "2014-01-01" and "2014-04-20"
              and p.clinic like '%àºÒËÇÒ¹%' (?ตรงนี้คืออะไร)
              and sc.bps is not null
              and (sc.bps<= "140" and sc.bpd<= "90")
              and v.vstdate between "2014-01-01" and "2014-04-20"
              group by v.hn
              order by v.aid desc ,v.vstdate,v.hn) as ttemp
              where bps<= "140" and bps1<= "140" and bps2<= "140"