ผู้เขียน หัวข้อ: ขอคำแนะนำการนับจำนวนครั้งของการมารับบริการของผู้ป่วยด้วยฮะ  (อ่าน 5628 ครั้ง)

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

ออฟไลน์ gweeped

  • Sr. Member
  • ****
  • กระทู้: 254
  • ขอบคุณทุกคน กับสังคมดีๆ ใน HosXP
  • Respect: +2
    • ดูรายละเอียด
    • TAKBAI HOSPITAL FANPAGE
คืออยากหาจำนวนครั้งของผู้ป่วยที่มารับบริการ เฉพาะ diag อ่ะคะ
เช่น ผู้ป่วยที่มีโรค F123 ระหว่าง วันที่ วว-ดด-ปป ถึง วว-ดด-ปป

ลำดับ   HN       ชื่อ                       จำนวนครั้งที่มารับบริการ
1      xxxxxx    น.ส  กอไก่ ขอไข่          3
2      yyyyyy    นาย  งองู จอจาน           2
3      zzzzzzz    นาง  ลอลิง นอหนู          4

จำนวนครั้งในที่นี่คือนับเฉพาะที่มารับบริการเพราะ F123 ช่วงวันที่ที่กำหนดเท่านั้นนะฮะ
     
Nirafeeda Binnima
Systems Admin
Takbai Hospital
MASTER SERVER :
IBM System x3550 M4
CentOS 6.3
MySQL version 5.6.15-56
SLAVE SERVER :
HP Proliant DL160 Gen8
CentOS Linux 5.3
MySQL version 5.6.15-56
ขึ้นระบบโดย BMS TEAM ปี 47
เริ่มงานและเริ่มรู้จัก HosXP 1 กค. 2011

dusit

  • บุคคลทั่วไป
คืออยากหาจำนวนครั้งของผู้ป่วยที่มารับบริการ เฉพาะ diag อ่ะคะ
เช่น ผู้ป่วยที่มีโรค F123 ระหว่าง วันที่ วว-ดด-ปป ถึง วว-ดด-ปป

ลำดับ   HN       ชื่อ                       จำนวนครั้งที่มารับบริการ
1      xxxxxx    น.ส  กอไก่ ขอไข่          3
2      yyyyyy    นาย  งองู จอจาน           2
3      zzzzzzz    นาง  ลอลิง นอหนู          4

จำนวนครั้งในที่นี่คือนับเฉพาะที่มารับบริการเพราะ F123 ช่วงวันที่ที่กำหนดเท่านั้นนะฮะ
     

โค๊ด: [Select]

แบบนี้ไหมครับ

select hn,count(hn) As cc,pdx from vn_stat where pdx like "F123%" and
 vstdate between "2012-05-01" and "2012-05-30" group by hn order by cc Desc

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

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
select p.hn,concat(p.pname,p.fname,"  ",p.lname) as pat,count(v.vn) as aa from vn_stat v
left outer join patient p on p.hn=v.hn
where v.pdx between"I00" and "I999" and v.vstdate between"2012-01-01" and "2012-05-31"
group by hn
order by hn
Implement  HOSxP  Start 2548 ---> NOW!
Station : 140 Client   V.3 Version  3.67.7.8
Server  : CENTOS 7 +MySQL maria 10.x.x

ออฟไลน์ gweeped

  • Sr. Member
  • ****
  • กระทู้: 254
  • ขอบคุณทุกคน กับสังคมดีๆ ใน HosXP
  • Respect: +2
    • ดูรายละเอียด
    • TAKBAI HOSPITAL FANPAGE
ถ้าแบบนี้จำนวนครั้งจะถูกมั้ยฮะ


select pt.hn,concat(pt.pname,pt.fname,'  ',pt.lname) as  ptname    , count(v.vn) as aa
from vn_stat ov ,patient pt ,ovst vt
where  ov.vn=vt.vn and pt.hn=ov.hn and ov.vstdate between "2012-05-01" and  "2012-05-31" and ov.hn=pt.hn
 and ( (ov.pdx = "F123")
 or (ov.dx0 = "F123")
 or (ov.dx1 = "F123")
 or (ov.dx2 = "F123")
 or (ov.dx3 = "F123")
 or (ov.dx4 = "F123")
 or (ov.dx5 = "F123")
)

group by   pt.hn
order by   pt.hn
Nirafeeda Binnima
Systems Admin
Takbai Hospital
MASTER SERVER :
IBM System x3550 M4
CentOS 6.3
MySQL version 5.6.15-56
SLAVE SERVER :
HP Proliant DL160 Gen8
CentOS Linux 5.3
MySQL version 5.6.15-56
ขึ้นระบบโดย BMS TEAM ปี 47
เริ่มงานและเริ่มรู้จัก HosXP 1 กค. 2011

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

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
ถ้าแบบนี้จำนวนครั้งจะถูกมั้ยฮะ


select pt.hn,concat(pt.pname,pt.fname,'  ',pt.lname) as  ptname    , count(v.vn) as aa
from vn_stat ov ,patient pt ,ovst vt
where  ov.vn=vt.vn and pt.hn=ov.hn and ov.vstdate between "2012-05-01" and  "2012-05-31" and ov.hn=pt.hn
 and ( (ov.pdx = "F123")
 or (ov.dx0 = "F123")
 or (ov.dx1 = "F123")
 or (ov.dx2 = "F123")
 or (ov.dx3 = "F123")
 or (ov.dx4 = "F123")
 or (ov.dx5 = "F123")
)

group by   pt.hn
order by   pt.hn


เอารหัสโรคทั้งหมด จาก ovstdiag ง่ายกว่านะคัรบ..ไม่สนใจ โรคหลัก โรครอง...เอาทุกประเภท ที่มีรหัสICD10 ตามต้องการ
Implement  HOSxP  Start 2548 ---> NOW!
Station : 140 Client   V.3 Version  3.67.7.8
Server  : CENTOS 7 +MySQL maria 10.x.x

ออฟไลน์ jameborn

  • Full Member
  • ***
  • กระทู้: 113
  • เด็กป๋าเวช
  • Respect: 0
    • ดูรายละเอียด
select p.hn,concat(p.pname,p.fname,'  ',p.lname) as  ptname
,odx.icd10,count(distinct o.vn) CC,max(o.vstdate) lastdate
from ovst o
left join patient p on p.hn=o.hn
left join vn_stat v on v.vn=o.vn
left join ovstdiag odx on o.vn=odx.vn
where  o.vstdate between "2012-01-01" and  "2012-05-31"
and odx.icd10 between 'F20' and 'F2099'
group by p.hn
order by p.hn

หรือจะประมาณนี้ เปลี่ยนรหัสโรคเอาหล่ะกัน
server :Acer Altos G320
 pentium D 3.00 GHz 2.99 GHz ram 512 MB
HDD:160 GB OS : server 2003 r2 My SQL 5.1.20-bata
replication: intel cpu 2160 ram 896 HDD 160 gb os: server 2003 r2
client:intel intel cpu 2160 ram 896 HDD 160 gb os: server 2003 r2
::HOSxP::v.3.52.8.30  HOSxP pcu ::v.3.52.8.25
***ไม่เสียสละ ชัยชนะไม่เกิด***

ออฟไลน์ gweeped

  • Sr. Member
  • ****
  • กระทู้: 254
  • ขอบคุณทุกคน กับสังคมดีๆ ใน HosXP
  • Respect: +2
    • ดูรายละเอียด
    • TAKBAI HOSPITAL FANPAGE
ถ้าแบบนี้จำนวนครั้งจะถูกมั้ยฮะ


select pt.hn,concat(pt.pname,pt.fname,'  ',pt.lname) as  ptname    , count(v.vn) as aa
from vn_stat ov ,patient pt ,ovst vt
where  ov.vn=vt.vn and pt.hn=ov.hn and ov.vstdate between "2012-05-01" and  "2012-05-31" and ov.hn=pt.hn
 and ( (ov.pdx = "F123")
 or (ov.dx0 = "F123")
 or (ov.dx1 = "F123")
 or (ov.dx2 = "F123")
 or (ov.dx3 = "F123")
 or (ov.dx4 = "F123")
 or (ov.dx5 = "F123")
)

group by   pt.hn
order by   pt.hn


เอารหัสโรคทั้งหมด จาก ovstdiag ง่ายกว่านะคัรบ..ไม่สนใจ โรคหลัก โรครอง...เอาทุกประเภท ที่มีรหัสICD10 ตามต้องการ

งั้นเอาแบบนี้น่าจะใช่แล้ว ขอบคุณฮะ  :D

select pt.hn,concat(pt.pname,pt.fname,'  ',pt.lname) as  ptname    , count(ov.vn) as aa
from vn_stat ov ,patient pt ,ovst vt , ovstdiag od
where  ov.vn=vt.vn and pt.hn=ov.hn  and  od.vn=vt.vn
 and ov.vstdate between "2012-05-01" and  "2012-05-31" and ov.hn=pt.hn
 and od.icd10 = "F1122"

group by   pt.hn
order by   pt.hn

Nirafeeda Binnima
Systems Admin
Takbai Hospital
MASTER SERVER :
IBM System x3550 M4
CentOS 6.3
MySQL version 5.6.15-56
SLAVE SERVER :
HP Proliant DL160 Gen8
CentOS Linux 5.3
MySQL version 5.6.15-56
ขึ้นระบบโดย BMS TEAM ปี 47
เริ่มงานและเริ่มรู้จัก HosXP 1 กค. 2011