BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: [-_เอ็ม_-] ที่ ตุลาคม 05, 2009, 22:12:23 PM
-
เอามาแจก และให้ทดสอบครับ เป็นรายงานการ Re-Visit ของ
ผู้ป่วยนอกทั้งหมดครับ รูปร่างหน้าตาคร่าวๆ ดังรูปครับ
คิดว่ามีข้อบกพร่อง แน่นอน (น้อมรับคำแนะนำเสมอครับ) ถ้าไม่มีก็แล้วไปครับ
ผมเอาจากในบอร์ดนี้ มา พัฒนาต่อครับ หัดเขียนไปเรื่อยๆ เผื่อจะเก่งเหมือน
ท่านเทพในบอร์ดแห่งนี้บ้าง
หวังว่าคงเป็นแนวทางสำหรับท่านที่กำลังหัดเขียน Report เหมือนกัน
หรือท่านที่นำไปใช้นะครับ แก้ไข ต่อเติมได้ ไม่ว่ากัน แต่อย่าลืม
เอามาแจกกันต่อด้วยนะครับ ;) :D ;D
-
สู้ต่อไป ทาเกชิ ;D ;D
-
ขอบคุณมากครับ
-
:)ขอบคุณครับผม
-
ขอบคุณมากค่ะ :D
-
ลองแก้ไข+เพิ่มเติม เป็นรายงาน revisit in 48 hr. กับ เลือก diag 2 แบบ - diag เดียวกัน กับ คนละ diag ในแต่ละ revisit
' revisit in 48 hr, diag เดียวกัน
select op.vn as vn_1,op.vstdate as d1,i1.name as icdname_1,d1.name as doctor_name1,
concat(p.pname,"",p.fname," ",p.lname) as ptname ,
v.hn,count(v.hn),
op2.vn as vn_2,op2.vstdate as d2,op.vsttime as time_1,op2.vsttime as time_2, i2.name as icdname_2, d2.name as doctor_name2 ,
(((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600))
as revist_time
from opitemrece op
left outer join vn_stat v on v.vn=op.vn
left outer join ovst o on o.hn=v.hn and o.vn > v.vn and o.vn is not null
left outer join vn_stat v2 on v2.vn=o.vn
left outer join opitemrece op2 on o.vn=op2.vn and op2.vn is not null
left outer join icd101 i1 on i1.code=v.pdx
left outer join icd101 i2 on i2.code=v2.pdx
left outer join doctor d1 on d1.code=v.dx_doctor
left outer join doctor d2 on d2.code=v2.dx_doctor
left outer join patient p on p.hn=o.hn
where op.vstdate between'2009-03-01'and'2009-03-01'
and (((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600)) between 0.001 and 48
and v.pdx=v2.pdx
group by v.hn
having count(v.hn)>1
order by op.vstdate
...............................................................
' revisit in 48 hr, คนละ diag
select op.vn as vn_1,op.vstdate as d1,i1.name as icdname_1,d1.name as doctor_name1,
concat(p.pname,"",p.fname," ",p.lname) as ptname ,
v.hn,count(v.hn),
op2.vn as vn_2,op2.vstdate as d2,op.vsttime as time_1,op2.vsttime as time_2, i2.name as icdname_2, d2.name as doctor_name2 ,
(((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600))
as revist_time
from opitemrece op
left outer join vn_stat v on v.vn=op.vn
left outer join ovst o on o.hn=v.hn and o.vn > v.vn and o.vn is not null
left outer join vn_stat v2 on v2.vn=o.vn
left outer join opitemrece op2 on o.vn=op2.vn and op2.vn is not null
left outer join icd101 i1 on i1.code=v.pdx
left outer join icd101 i2 on i2.code=v2.pdx
left outer join doctor d1 on d1.code=v.dx_doctor
left outer join doctor d2 on d2.code=v2.dx_doctor
left outer join patient p on p.hn=o.hn
where op.vstdate between'2009-03-01'and'2009-03-01'
and (((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600)) between 0.001 and 48
and v.pdx<>v2.pdx
group by v.hn
having count(v.hn)>1
order by op.vstdate
..........................................................................
// ลองรันดูนะครับ
ผมลองแล้วแต่ยังไม่ได้ลองทานสอบกับ database แบบ manual ดู
-
ลองแก้ไข+เพิ่มเติม เป็นรายงาน revisit in 48 hr. กับ เลือก diag 2 แบบ - diag เดียวกัน กับ คนละ diag ในแต่ละ revisit
' revisit in 48 hr, diag เดียวกัน
select op.vn as vn_1,op.vstdate as d1,i1.name as icdname_1,d1.name as doctor_name1,
concat(p.pname,"",p.fname," ",p.lname) as ptname ,
v.hn,count(v.hn),
op2.vn as vn_2,op2.vstdate as d2,op.vsttime as time_1,op2.vsttime as time_2, i2.name as icdname_2, d2.name as doctor_name2 ,
(((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600))
as revist_time
from opitemrece op
left outer join vn_stat v on v.vn=op.vn
left outer join ovst o on o.hn=v.hn and o.vn > v.vn and o.vn is not null
left outer join vn_stat v2 on v2.vn=o.vn
left outer join opitemrece op2 on o.vn=op2.vn and op2.vn is not null
left outer join icd101 i1 on i1.code=v.pdx
left outer join icd101 i2 on i2.code=v2.pdx
left outer join doctor d1 on d1.code=v.dx_doctor
left outer join doctor d2 on d2.code=v2.dx_doctor
left outer join patient p on p.hn=o.hn
where op.vstdate between'2009-03-01'and'2009-03-01'
and (((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600)) between 0.001 and 48
and v.pdx=v2.pdx
group by v.hn
having count(v.hn)>1
order by op.vstdate
...............................................................
' revisit in 48 hr, คนละ diag
select op.vn as vn_1,op.vstdate as d1,i1.name as icdname_1,d1.name as doctor_name1,
concat(p.pname,"",p.fname," ",p.lname) as ptname ,
v.hn,count(v.hn),
op2.vn as vn_2,op2.vstdate as d2,op.vsttime as time_1,op2.vsttime as time_2, i2.name as icdname_2, d2.name as doctor_name2 ,
(((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600))
as revist_time
from opitemrece op
left outer join vn_stat v on v.vn=op.vn
left outer join ovst o on o.hn=v.hn and o.vn > v.vn and o.vn is not null
left outer join vn_stat v2 on v2.vn=o.vn
left outer join opitemrece op2 on o.vn=op2.vn and op2.vn is not null
left outer join icd101 i1 on i1.code=v.pdx
left outer join icd101 i2 on i2.code=v2.pdx
left outer join doctor d1 on d1.code=v.dx_doctor
left outer join doctor d2 on d2.code=v2.dx_doctor
left outer join patient p on p.hn=o.hn
where op.vstdate between'2009-03-01'and'2009-03-01'
and (((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600)) between 0.001 and 48
and v.pdx<>v2.pdx
group by v.hn
having count(v.hn)>1
order by op.vstdate
..........................................................................
// ลองรันดูนะครับ
ผมลองแล้วแต่ยังไม่ได้ลองทานสอบกับ database แบบ manual ดู
เยี่ยมครับ :D
-
ตรงเงื่อนไขต่าง ๆ เช่น จำนวนชั่วโมง หรือ diag ทำเป็นตัวแปรไว้ แล้วใช้การรับค่าจากผู้ใช้ จะได้ไม่ต้องมีรายงานหลายตัวครับ
-
ตรงเงื่อนไขต่าง ๆ เช่น จำนวนชั่วโมง หรือ diag ทำเป็นตัวแปรไว้ แล้วใช้การรับค่าจากผู้ใช้ จะได้ไม่ต้องมีรายงานหลายตัวครับ
อยากได้แบบตัวแปรเหมือนกันคับ แต่ยังเขียนไม่เป็น.......................... :'(
// เพื่อน ๆ สงเคราะห์ได้บ้างครับ?
-
อยากได้แบบตัวแปรเหมือนกันคับ แต่ยังเขียนไม่เป็น.......................... :'(
// เพื่อน ๆ สงเคราะห์ได้บ้างครับ?
ลองศึกษาจาก http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=12664.0 ครับ
-
อยากได้แบบตัวแปรเหมือนกันคับ แต่ยังเขียนไม่เป็น.......................... :'(
// เพื่อน ๆ สงเคราะห์ได้บ้างครับ?
ลองศึกษาจาก http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=12664.0 ครับ
ขอบคุณครับ................. :) จะโหลดไปศึกษาดูครับ
-
เอามาแจก และให้ทดสอบครับ เป็นรายงานการ Re-Visit ของ
ผู้ป่วยนอกทั้งหมดครับ รูปร่างหน้าตาคร่าวๆ ดังรูปครับ
คิดว่ามีข้อบกพร่อง แน่นอน (น้อมรับคำแนะนำเสมอครับ) ถ้าไม่มีก็แล้วไปครับ
ผมเอาจากในบอร์ดนี้ มา พัฒนาต่อครับ หัดเขียนไปเรื่อยๆ เผื่อจะเก่งเหมือน
ท่านเทพในบอร์ดแห่งนี้บ้าง
หวังว่าคงเป็นแนวทางสำหรับท่านที่กำลังหัดเขียน Report เหมือนกัน
หรือท่านที่นำไปใช้นะครับ แก้ไข ต่อเติมได้ ไม่ว่ากัน แต่อย่าลืม
เอามาแจกกันต่อด้วยนะครับ ;) :D ;D
:D :D ขอบคุณครับ
ลองแก้ไข+เพิ่มเติม เป็นรายงาน revisit in 48 hr. กับ เลือก diag 2 แบบ - diag เดียวกัน กับ คนละ diag ในแต่ละ revisit
' revisit in 48 hr, diag เดียวกัน
select op.vn as vn_1,op.vstdate as d1,i1.name as icdname_1,d1.name as doctor_name1,
concat(p.pname,"",p.fname," ",p.lname) as ptname ,
v.hn,count(v.hn),
op2.vn as vn_2,op2.vstdate as d2,op.vsttime as time_1,op2.vsttime as time_2, i2.name as icdname_2, d2.name as doctor_name2 ,
(((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600))
as revist_time
from opitemrece op
left outer join vn_stat v on v.vn=op.vn
left outer join ovst o on o.hn=v.hn and o.vn > v.vn and o.vn is not null
left outer join vn_stat v2 on v2.vn=o.vn
left outer join opitemrece op2 on o.vn=op2.vn and op2.vn is not null
left outer join icd101 i1 on i1.code=v.pdx
left outer join icd101 i2 on i2.code=v2.pdx
left outer join doctor d1 on d1.code=v.dx_doctor
left outer join doctor d2 on d2.code=v2.dx_doctor
left outer join patient p on p.hn=o.hn
where op.vstdate between'2009-03-01'and'2009-03-01'
and (((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600)) between 0.001 and 48
and v.pdx=v2.pdx
group by v.hn
having count(v.hn)>1
order by op.vstdate
...............................................................
' revisit in 48 hr, คนละ diag
select op.vn as vn_1,op.vstdate as d1,i1.name as icdname_1,d1.name as doctor_name1,
concat(p.pname,"",p.fname," ",p.lname) as ptname ,
v.hn,count(v.hn),
op2.vn as vn_2,op2.vstdate as d2,op.vsttime as time_1,op2.vsttime as time_2, i2.name as icdname_2, d2.name as doctor_name2 ,
(((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600))
as revist_time
from opitemrece op
left outer join vn_stat v on v.vn=op.vn
left outer join ovst o on o.hn=v.hn and o.vn > v.vn and o.vn is not null
left outer join vn_stat v2 on v2.vn=o.vn
left outer join opitemrece op2 on o.vn=op2.vn and op2.vn is not null
left outer join icd101 i1 on i1.code=v.pdx
left outer join icd101 i2 on i2.code=v2.pdx
left outer join doctor d1 on d1.code=v.dx_doctor
left outer join doctor d2 on d2.code=v2.dx_doctor
left outer join patient p on p.hn=o.hn
where op.vstdate between'2009-03-01'and'2009-03-01'
and (((to_days(op2.vstdate)*24)- ((to_days(op.vstdate)*24)) + (( time_to_sec(op2.vsttime))/3600)) - (( time_to_sec(op.vsttime))/3600)) between 0.001 and 48
and v.pdx<>v2.pdx
group by v.hn
having count(v.hn)>1
order by op.vstdate
..........................................................................
// ลองรันดูนะครับ
ผมลองแล้วแต่ยังไม่ได้ลองทานสอบกับ database แบบ manual ดู
;D ;D ;D ขออนุญาติขุดกระทู้ขึ้นมาครับ คือหยั่งงี้ครับ อ.ทั้งหลาย
ถ้าจะเอา อับดับโรคที่มีการ re visit 20 อันดับ
จาก รายงานตัวนี้ครับ ;D ;D ;D ;D
-
48 ชั่วโมงต้องแก้ตรงไหนบ้างครับ....เป็นงงๆ ครับ
-
48 ชั่วโมงต้องแก้ตรงไหนบ้างครับ....เป็นงงๆ ครับ
ลองดูทีี่ตาราง vn_stat ครับ..น่าจะมีคอลัมน์เก็บค่าชั่วโมงอยู่แล้ว 8) 8)