ผู้เขียน หัวข้อ: รบกวนดูรายงานBP ให้หน่อยค่ะ ผู้ป่วยHT/DM โดยใช้BPครั้งสุดท้าย  (อ่าน 8346 ครั้ง)

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

ออฟไลน์ panda

  • Jr. Member
  • **
  • กระทู้: 56
  • Respect: 0
    • ดูรายละเอียด
รบกวนเซียนทั้งหลาย ใครมีรายงานประมาณนี้บ้าง รบกวนขอรายงาน BP ผู้ป่วย HT / DM  ที่มีค่า BP มากกว่าหรือเท่ากับ 130/80 โดยใช้ BP ที่วัดครั้งสุดท้ายเป็นตัวกำหนด

รายงานระดับ BP ที่ควบคุมได้ ช่วง 3 เดือน
มีเงื่อนไข  ดังนี้ 
- เป็นผู้ป่วย DM และ HT
- BP มากกว่าหรือเท่ากับ 130/80
- BP ที่วัดต้องเป็นครั้งสุดท้าย
« แก้ไขครั้งสุดท้าย: มิถุนายน 22, 2012, 16:01:55 PM โดย panda »
นักวิชาการคอมพิวเตอร์ ลูกจ้างชั่วคราว(มือใหม่หัดทำ)
โรงพยาบาลห้วยพลู จังหวัด นครปฐม
วัยรุ่น :  มีเวลา + มีกำลัง... แต่ไม่มีเงิน 
วัยทำงาน : มีเงิน +มีกำลัง....แต่ไม่มีเวลา 
วัยชรา :  มีเวลา +มีเงิน....แต่ไม่มีกำลัง 
จงทำแต่พอดี.....ในตอนที่ยังมี กำลัง 
อย่าโหมงานหนักจน.....ไม่มี เวลา 
แม้จะได้ เงิน มา....แต่อาจไม่ได้ใช้

ออฟไลน์ panda

  • Jr. Member
  • **
  • กระทู้: 56
  • Respect: 0
    • ดูรายละเอียด
รบกวนดูโค้ดให้หน่อยค่ะ ผิดตรงไหนอ่ะ
« ตอบกลับ #1 เมื่อ: มิถุนายน 22, 2012, 15:21:55 PM »
0
หลังจากไปนั่งคิดมาครึ่งวัน ได้ออกมาแบบนี้ รบกวนเซียนทั้งหลายดูให้หน่อยค่ะ ว่าผิดตรงไหนอ่ะ

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'
« แก้ไขครั้งสุดท้าย: มิถุนายน 22, 2012, 15:30:03 PM โดย panda »
นักวิชาการคอมพิวเตอร์ ลูกจ้างชั่วคราว(มือใหม่หัดทำ)
โรงพยาบาลห้วยพลู จังหวัด นครปฐม
วัยรุ่น :  มีเวลา + มีกำลัง... แต่ไม่มีเงิน 
วัยทำงาน : มีเงิน +มีกำลัง....แต่ไม่มีเวลา 
วัยชรา :  มีเวลา +มีเงิน....แต่ไม่มีกำลัง 
จงทำแต่พอดี.....ในตอนที่ยังมี กำลัง 
อย่าโหมงานหนักจน.....ไม่มี เวลา 
แม้จะได้ เงิน มา....แต่อาจไม่ได้ใช้

ออฟไลน์ panda

  • Jr. Member
  • **
  • กระทู้: 56
  • Respect: 0
    • ดูรายละเอียด
ดันหน่อยจะหล่นแล้วค่ะ  ;D ;D
นักวิชาการคอมพิวเตอร์ ลูกจ้างชั่วคราว(มือใหม่หัดทำ)
โรงพยาบาลห้วยพลู จังหวัด นครปฐม
วัยรุ่น :  มีเวลา + มีกำลัง... แต่ไม่มีเงิน 
วัยทำงาน : มีเงิน +มีกำลัง....แต่ไม่มีเวลา 
วัยชรา :  มีเวลา +มีเงิน....แต่ไม่มีกำลัง 
จงทำแต่พอดี.....ในตอนที่ยังมี กำลัง 
อย่าโหมงานหนักจน.....ไม่มี เวลา 
แม้จะได้ เงิน มา....แต่อาจไม่ได้ใช้

ออฟไลน์ u10908

  • Full Member
  • ***
  • กระทู้: 167
  • Respect: 0
    • ดูรายละเอียด
    • http://nonghonghospital.com/
ช่วยดันค่ะ ;D
ขึ้นระบบ มีนาคม 2552 โดยทีม BMS
-----------------------------------------------------
สมิตรา  สงวนเชื้อ
ตำแหน่ง จพ.สถิติ

ออฟไลน์ pop_hosxp

  • Hero Member
  • *****
  • กระทู้: 3,138
  • Respect: +40
    • ดูรายละเอียด
    • Phanomphrai Hospital
แบบนี้ได้ไหมครับ

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'
pop434241@gmail.com
รพ.พนมไพร จ.ร้อยเอ็ด https://pnphos.moph.go.th/hosweb/

ออฟไลน์ jingjoe

  • Jr. Member
  • **
  • กระทู้: 98
  • ชีวิติคือการต่อสู้
  • Respect: 0
    • ดูรายละเอียด
    • เว็บไซต์ http://www.pakphayunhospital.net
ไม่ออกค่าใดๆ มาเลยครับ
วิเชียร  admin โรงพยาบาลปากพะยูน จังหวัดพัทลุง 30 เตียง
ขึ้นระบบ ปี 51
Server Dell Ram 16 GB
Linux CENTOS 5.6 64 Bit
MySQL 5.5.30 64 Bit
HOSxP_Upgrade  ปัจจุบัน

ออฟไลน์ เกื้อกูล ครับ..

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
ถ้ากติกา คือมากกว่า หรือเท่ากับ   130/80  มิใช่ค่า bps   or  bpd  อย่างใดอย่างหนึ่ง   เช่น ถ้าวัดได้ 135/79  ก็จะนอกเงื่อนไขครับ
« แก้ไขครั้งสุดท้าย: พฤษภาคม 02, 2014, 10:17:12 AM โดย เกื้อกูล ครับ.. »
Implement  HOSxP  Start 2548 ---> NOW!
Station : 140 Client   V.3 Version  3.67.7.8
Server  : CENTOS 7 +MySQL maria 10.x.x

ออฟไลน์ jingjoe

  • Jr. Member
  • **
  • กระทู้: 98
  • ชีวิติคือการต่อสู้
  • Respect: 0
    • ดูรายละเอียด
    • เว็บไซต์ http://www.pakphayunhospital.net
รายชื่อผู้ป่วย 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"
วิเชียร  admin โรงพยาบาลปากพะยูน จังหวัดพัทลุง 30 เตียง
ขึ้นระบบ ปี 51
Server Dell Ram 16 GB
Linux CENTOS 5.6 64 Bit
MySQL 5.5.30 64 Bit
HOSxP_Upgrade  ปัจจุบัน