BMS-HOSxP Community

HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: Bluebird ที่ เมษายน 04, 2011, 11:59:34 AM

หัวข้อ: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: Bluebird ที่ เมษายน 04, 2011, 11:59:34 AM
พยาบาลต้องการ รายชื่อ ผู้ป่วย ที่อยู่ใน คลีนิคความดันอย่างเดียว   คลีนิคเบาหวานอย่างเดียว   และเป็นทั้ง 2 โรค
เช่น select * from vn_stat v
left outer join patient p on p.hn=v.hn
left outer join clinicmember c on c.hn= p.hn
where c.clinic="001"  (สำหรับเบาหวาน) แต่ก็ยังไม่ใช่สำหรับผู้ที่เป็นเบาหวานอย่างเดียวอีก  ช่วยแนะนำด้วยครับ
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: manoi ที่ เมษายน 04, 2011, 12:08:37 PM
เป็นเบาหวานอย่างเดียว

select c.hn,concat(p.pname,p.fname," ",p.lname) as patient_name ,count(c.clinic) as cc
from clinicmember c,patient p
where c.hn = p.hn and c.clinic in (select sys_value from sys_var where sys_name = "dm_clinic_code")
group by c.hn ,p.pname,p.fname,p.lname
having count(c.clinic)=1


เป็นความดันอย่างเดียว

select c.hn,concat(p.pname,p.fname," ",p.lname) as patient_name ,count(c.clinic) as cc
from clinicmember c,patient p
where c.hn = p.hn and c.clinic in (select sys_value from sys_var where sys_name = "ht_clinic_code")
group by c.hn ,p.pname,p.fname,p.lname
having count(c.clinic)=1


เป็นเบาหวานและความดัน

select c.hn,concat(p.pname,p.fname," ",p.lname) as patient_name ,count(c.clinic) as cc
from clinicmember c,patient p
where c.hn = p.hn and (c.clinic in (select sys_value from sys_var where sys_name = "ht_clinic_code")
  or c.clinic in (select sys_value from sys_var where sys_name = "dm_clinic_code") )
group by c.hn ,p.pname,p.fname,p.lname
having count(c.clinic)>1


หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 04, 2011, 12:23:05 PM
วันนี้ อ.mn มาตอบเองเลย  ;) ;) ;)
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: sulaiman_hosxp ที่ เมษายน 04, 2011, 14:03:34 PM
เป็นเบาหวานอย่างเดียว

select c.hn,concat(p.pname,p.fname," ",p.lname) as patient_name ,count(c.clinic) as cc
from clinicmember c,patient p
where c.hn = p.hn and c.clinic in (select sys_value from sys_var where sys_name = "dm_clinic_code")
group by c.hn ,p.pname,p.fname,p.lname
having count(c.clinic)=1


เป็นความดันอย่างเดียว

select c.hn,concat(p.pname,p.fname," ",p.lname) as patient_name ,count(c.clinic) as cc
from clinicmember c,patient p
where c.hn = p.hn and c.clinic in (select sys_value from sys_var where sys_name = "ht_clinic_code")
group by c.hn ,p.pname,p.fname,p.lname
having count(c.clinic)=1


เป็นเบาหวานและความดัน

select c.hn,concat(p.pname,p.fname," ",p.lname) as patient_name ,count(c.clinic) as cc
from clinicmember c,patient p
where c.hn = p.hn and (c.clinic in (select sys_value from sys_var where sys_name = "ht_clinic_code")
  or c.clinic in (select sys_value from sys_var where sys_name = "dm_clinic_code") )
group by c.hn ,p.pname,p.fname,p.lname
having count(c.clinic)>1



อ.manoi ถ้าจะระบุวันที่ ทำยังงั้ยครับเช่น 2010-10-01 ถึง 2011-03-31 ประมาณนี้ครับ ได้มั้ยครับ
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: Bluebird ที่ เมษายน 04, 2011, 14:31:43 PM
ลองรัยดูแล้ว
 ปรากฎว่า คนไข้ที่เป็นทั้ง HT และ DM  มีแล้ว เมื่อกรอง HT อย่างเดียว หรือ DM อย่างเดียวจะเข้ามาด้วย

select vn.vn,pt.cid,pt.hn,concat(pt.pname,pt.fname,"  ",pt.lname) as fullname,vn.age_y,count(c.clinic) as cc,dc.screen_datetime
from depression_screen dc
left outer join vn_stat vn on vn.vn=dc.vn
left outer join clinicmember c on c.hn=vn.hn
left outer join patient pt on pt.hn=c.hn
where  dc.screen_datetime between "2011-01-01" and "2011-01-31"
and (c.clinic in (select sys_value from sys_var where sys_name = "ht_clinic_code")
or c.clinic in (select sys_value from sys_var where sys_name = "dm_clinic_code") )
group by c.hn ,pt.pname,pt.fname,pt.lname
having count(c.clinic)>1

เมื่อ HT อย่างเดียว

select vn.vn,pt.cid,pt.hn,concat(pt.pname,pt.fname,"  ",pt.lname) as fullname,vn.age_y,count(c.clinic) as cc,dc.screen_datetime
from depression_screen dc
left outer join vn_stat vn on vn.vn=dc.vn
left outer join clinicmember c on c.hn=vn.hn
left outer join patient pt on pt.hn=c.hn
where  dc.screen_datetime between "2011-01-01" and "2011-01-31"
and c.clinic in (select sys_value from sys_var where sys_name = "ht_clinic_code")
group by c.hn ,pt.pname,pt.fname,pt.lname
having count(c.clinic)=1

เมื่อ DM อย่างเดียว

select vn.vn,pt.cid,pt.hn,concat(pt.pname,pt.fname,"  ",pt.lname) as fullname,vn.age_y,count(c.clinic) as cc,dc.screen_datetime
from depression_screen dc
left outer join vn_stat vn on vn.vn=dc.vn
left outer join clinicmember c on c.hn=vn.hn
left outer join patient pt on pt.hn=c.hn
where  dc.screen_datetime between "2011-01-01" and "2011-01-31"
and c.clinic in (select sys_value from sys_var where sys_name = "dm_clinic_code")
group by c.hn ,pt.pname,pt.fname,pt.lname
having count(c.clinic)=1

หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 04, 2011, 22:16:38 PM
ลองรัยดูแล้ว
 ปรากฎว่า คนไข้ที่เป็นทั้ง HT และ DM  มีแล้ว เมื่อกรอง HT อย่างเดียว หรือ DM อย่างเดียวจะเข้ามาด้วย

select vn.vn,pt.cid,pt.hn,concat(pt.pname,pt.fname,"  ",pt.lname) as fullname,vn.age_y,count(c.clinic) as cc,dc.screen_datetime
from depression_screen dc
left outer join vn_stat vn on vn.vn=dc.vn
left outer join clinicmember c on c.hn=vn.hn
left outer join patient pt on pt.hn=c.hn
where  dc.screen_datetime between "2011-01-01" and "2011-01-31"
and (c.clinic in (select sys_value from sys_var where sys_name = "ht_clinic_code")
or c.clinic in (select sys_value from sys_var where sys_name = "dm_clinic_code") )
group by c.hn ,pt.pname,pt.fname,pt.lname
having count(c.clinic)>1
ลองตรวจสอบอีกทีครับ
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: Bluebird ที่ เมษายน 05, 2011, 11:05:00 AM
ลองรัยดูแล้ว
 ปรากฎว่า คนไข้ที่เป็นทั้ง HT และ DM  มีแล้ว เมื่อกรอง HT อย่างเดียว หรือ DM อย่างเดียวจะเข้ามาด้วย

select vn.vn,pt.cid,pt.hn,concat(pt.pname,pt.fname,"  ",pt.lname) as fullname,vn.age_y,count(c.clinic) as cc,dc.screen_datetime
from depression_screen dc
left outer join vn_stat vn on vn.vn=dc.vn
left outer join clinicmember c on c.hn=vn.hn
left outer join patient pt on pt.hn=c.hn
where  dc.screen_datetime between "2011-01-01" and "2011-01-31"
and (c.clinic in (select sys_value from sys_var where sys_name = "ht_clinic_code")
or c.clinic in (select sys_value from sys_var where sys_name = "dm_clinic_code") )
group by c.hn ,pt.pname,pt.fname,pt.lname
having count(c.clinic)>1
ลองตรวจสอบอีกทีครับ

ลองแล้ว  ปรากฏว่ารายชื่อผู้ป่วย จะเข้ามาทั้ง ที่เป็น เบาหวานอย่างเดียว หรือ ความดันอย่างเดียวก็จะปรากฏด้วย
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: naydekdee ที่ เมษายน 05, 2011, 11:30:29 AM
เอาคนตายออกด้วยนะคับ  เด๋ว เขาจะว่า ว่า คนไข้ ทำไม เยอะ จัง  บางคนตายไปแล้ว คลีนิกไม่จำหน่ายออก ให้

p.death <>"Y"
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: usa0823 ที่ เมษายน 05, 2011, 11:53:17 AM
เรื่องคนตายทำยังไงดีครับ
จำหน่ายแล้วก็ยังอยู่  ...... อยากให้มีตัวกรองได้

ของผมเอา cid ไปหาจาก สปสช. ค้นแบบกลุ่ม
เพราะบางคนไม่ได้ เสียชีวิตที่โรงพยาบาล  ก็เลยไม่ได้จำหน่าย
ถ้าคนไหน ตายก็มาใส่ให้ครับ  แต่วันที่หาไม่ได้
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: James011 ที่ เมษายน 05, 2011, 13:54:23 PM
 ;D ;D  แบบนี้ได้ป่าวครับ 
 
    1. เบาหวานอย่างเดียว
โค๊ด: SQL
  1.   SELECT hn,pname,fname,lname,cid,hometel,addrpart,moopart,full_name
  2. FROM patient p
  3. LEFT OUTER JOIN thaiaddress t ON t.addressid=concat(p.chwpart,p.amppart,p.tmbpart)
  4. WHERE (hn IN (SELECT hn FROM clinicmember WHERE clinic="001"))
  5. AND (hn NOT IN (SELECT hn FROM clinicmember WHERE clinic="002"))
  6. ORDER BY hn
  7.    

   2. ความดันอย่างเดียว

โค๊ด: SQL
  1.   SELECT hn,pname,fname,lname,cid,hometel,addrpart,moopart,full_name
  2. FROM patient p
  3. LEFT OUTER JOIN thaiaddress t ON t.addressid=concat(p.chwpart,p.amppart,p.tmbpart)
  4. WHERE (hn IN (SELECT hn FROM clinicmember WHERE clinic="002"))
  5. AND (hn NOT IN (SELECT hn FROM clinicmember WHERE clinic="001"))
  6. ORDER BY hn
  7.    

3. 2 โรค
โค๊ด: SQL
  1.   SELECT hn,pname,fname,lname,cid,hometel,addrpart,moopart,full_name
  2. FROM patient p
  3. LEFT OUTER JOIN thaiaddress t ON t.addressid=concat(p.chwpart,p.amppart,p.tmbpart)
  4. WHERE (hn IN (SELECT hn FROM clinicmember WHERE clinic="001"))
  5. AND (hn IN (SELECT hn FROM clinicmember WHERE clinic="002"))
  6. ORDER BY hn
  7.    


*** clinic 001 = เบาหวาน ,  002 = ความดัน
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: shukree ที่ มีนาคม 18, 2013, 12:12:04 PM
ถ้าเราจะดึงจากตาราง ovstdiag ต้องใช้คำสั่งอย่างไรครับ เพราะมีผู้ป่วยบางคนยังไม่ลงทะเบียนใน clinic_member
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ มีนาคม 18, 2013, 13:46:12 PM
ถ้าเราจะดึงจากตาราง ovstdiag ต้องใช้คำสั่งอย่างไรครับ เพราะมีผู้ป่วยบางคนยังไม่ลงทะเบียนใน clinic_member


 
โค๊ด: Ada
  1. select hn,pname,fname,lname,cid,hometel,addrpart,moopart,full_name
  2.  
  3. FROM patient p
  4.  
  5. LEFT OUTER JOIN thaiaddress t ON t.addressid=concat(p.chwpart,p.amppart,p.tmbpart)
  6.  
  7. WHERE (hn IN (SELECT distinct(hn) FROM ovstdiag  WHERE icd10 between "I10" and "I15"))
  8.  
  9. AND (hn NOT IN (SELECT distinct(hn) FROM ovstdiag  WHERE icd10 between "E10" and "E14"))
  10. and p.death<>"Y"  ORDER BY hn
  11.  
แนว  ๆ นี้
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: James011 ที่ มีนาคม 18, 2013, 13:55:08 PM
ถ้าเราจะดึงจากตาราง ovstdiag ต้องใช้คำสั่งอย่างไรครับ เพราะมีผู้ป่วยบางคนยังไม่ลงทะเบียนใน clinic_member
    ;D ;D ;D  SuperP2P  --->Visit2Clinic   เลือกผู้ป่วยเฉพาะที่ยังไม่ได้ลงทะเบียนใน clinic  แล้ว สามารถนำเข้า Clinic ได้เลย
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ มีนาคม 18, 2013, 13:57:23 PM
ถ้าเราจะดึงจากตาราง ovstdiag ต้องใช้คำสั่งอย่างไรครับ เพราะมีผู้ป่วยบางคนยังไม่ลงทะเบียนใน clinic_member
    ;D ;D ;D  SuperP2P  --->Visit2Clinic   เลือกผู้ป่วยเฉพาะที่ยังไม่ได้ลงทะเบียนใน clinic  แล้ว สามารถนำเข้า Clinic ได้เลย

ของ เทพ.อ.เจมส์ ตัด hn ที่ตายอัตโนมัติแล้วใช่ไหมครับ  8) 8) 8) 8)
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: James011 ที่ มีนาคม 18, 2013, 14:00:56 PM
ถ้าเราจะดึงจากตาราง ovstdiag ต้องใช้คำสั่งอย่างไรครับ เพราะมีผู้ป่วยบางคนยังไม่ลงทะเบียนใน clinic_member
    ;D ;D ;D  SuperP2P  --->Visit2Clinic   เลือกผู้ป่วยเฉพาะที่ยังไม่ได้ลงทะเบียนใน clinic  แล้ว สามารถนำเข้า Clinic ได้เลย

ของ เทพ.อ.เจมส์ ตัด hn ที่ตายอัตโนมัติแล้วใช่ไหมครับ  8) 8) 8) 8)
    ;D ;D ผมทำให้เลือก Checkbok  ก่อนว่า จะ นำเข้าคนไหนบ้างครับ  เพื่อให้เจ้าหน้าทีตรวจสอบอีกทีครับ
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ มีนาคม 18, 2013, 14:14:18 PM
ยอดเยี่ยม...สมกับเป็นราชาเทพแดนใต้... :D :D :D :D
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: tikza ที่ มิถุนายน 19, 2014, 17:17:27 PM
ขอความช่วยเหลือ sql ช่วงความดัน <=130/80 mmHg ด้วยค่ะ
หัวข้อ: Re: ปัญหากรอง ผู้ป่วยคลีนิค ความดัน เบาหวาน
เริ่มหัวข้อโดย: jdadmin1 ที่ มิถุนายน 19, 2014, 19:15:49 PM
 
อ้างถึง
ขอความช่วยเหลือ sql ช่วงความดัน <=130/80 mmHg ด้วยค่ะ
;D ;D ;D
EasyReport By James
 ;D ;D ;D