BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: Auing ที่ มิถุนายน 03, 2010, 10:52:02 AM

หัวข้อ: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: Auing ที่ มิถุนายน 03, 2010, 10:52:02 AM
สอบถามการดึงผล lab ทั้งหมดของผู้ป่วยคนเดียวให้ออกมาใน 1 บรรทัด(ดังรูปครับ)แต่ code ที่ผมได้คือคนไข้ 1 คนจะแยกผล lab ออกมาเป็นอย่างล่ะบรรทัด   อ. ทุกท่านแนะนำด้วยครับ  ขอบคุณครับ

จาก code

select
  concat(pt.pname,pt.fname,'  ',pt.lname) as ptname,pt.cid,v.age_y as age,op.bw,pt.sex,pt.informaddr,oh.cc_persist_disease as history_ill,
  l.lab_items_name,
  o.lab_order_result,
  h.hn,v.vstdate

from
  lab_order o
  left outer join lab_head h on o.lab_order_number = h.lab_order_number
  left outer join ovst o1 on h.vn = o1.vn
  left outer join patient pt on h.hn = pt.hn
  inner join lab_items l on l.lab_items_code =  o.lab_items_code and  o.lab_items_code in ('199','100','109','155')
  inner join opdscreen op on op.vn = o1.vn
  inner join vn_stat v on v.vn = o1.vn
  left outer join opd_ill_history  oh on oh.hn=op.hn

                                                               
where h.order_date between "2009-10-01" and "2010-04-30"


หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: aphirat ที่ มิถุนายน 03, 2010, 11:29:51 AM
อยากได้เหมือนกันครับ
หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: songwut ที่ สิงหาคม 24, 2011, 16:36:55 PM
สงสัยเหมือนกันครับ
หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: chencs ที่ สิงหาคม 24, 2011, 16:43:21 PM
ลองเข้าไปกระทู้นี้ดูครับว่าถูกใจหรือป่าว...พี่เอกทำไว้ครับ

http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=14542.0
หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: songwut ที่ สิงหาคม 24, 2011, 17:00:54 PM
ลองเข้าไปกระทู้นี้ดูครับว่าถูกใจหรือป่าว...พี่เอกทำไว้ครับ

http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=14542.0

มีคำสั่งแบบไม่ใช้ตัวแปรไม๊ครับ ที่ดึง 1 คน มีหลายผล lab ในแถวเดียวกัน โดยดึงผ่านตัว sql น่ะครับ เผื่อไว้จะไปประยุกต์ใช้กับงานอื่นด้วยครับ

ขอบคุณครับ
หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: chitvichai ที่ สิงหาคม 24, 2011, 17:47:13 PM

มีคำสั่งแบบไม่ใช้ตัวแปรไม๊ครับ ที่ดึง 1 คน มีหลายผล lab ในแถวเดียวกัน โดยดึงผ่านตัว sql น่ะครับ เผื่อไว้จะไปประยุกต์ใช้กับงานอื่นด้วยครับ

ขอบคุณครับ

ดึงผ่าน sql query ได้เลยครับ
แก้เฉพาะตัวแปรข้างบน
@a=วันที่เริ่มต้น
@b=วันที่สิ้นสุด
@c="ชื่อแลบ%" หรือ ถ้าเป็น "ncdlab%" หมายถึง ผลแลปตามคอลัม ncd ทั้งหมดมี fbs+chol+tri+...
@d=min ของผลแลปที่แสดง ถ้ากำหนด 0 หมายถึงไม่ระบุค่า min หรือ มากกว่า 0
@e=max ของผลแลปที่แสดง ถ้ากำหนด 0 หมายถึงไม่ระบุค่า max
@f="dm" หรือ "ht" หรือ "all" dm หมายถึง เบาหวาน ht หมายถึงความดัน all หมายถึง ไม่ระบุโรค

ลองดูครับนำไปประยุกต์ได้ครับ

โค๊ด: [Select]
set @a="2010-10-01";
set @b="2011-03-31";
set @c="ncdlab%";
set @d=6;
set @e=10;
set @f="all";
SELECT ovst.vstdate,month(ovst.vstdate) as mx,ovst.hn, concat(patient.pname,
 patient.fname, " ", patient.lname) as ptname,patient.moopart,
concat(patient.chwpart,patient.amppart,patient.tmbpart) as tbc,   
if(@f="all","ไม่ระบุโรค",concat(@f,"==",
ovstdiag.icd10)) as icd10,
if(@c <>"ncdlab%",lab_items_name_ref,"ncdlab") as labset,if(@c <>"ncdlab%",r.lab_order_result,"ncdlab") as lab,
 max(if(lab_items_name_ref like "fbs%",r.lab_order_result,0)) as fbs,
 max(if(lab_items_name_ref like "choles%",r.lab_order_result,0)) as `Cholesterol`,
 max(if(lab_items_name_ref like "trigly%",r.lab_order_result,0)) as `Triglyceride`,
 max(if(lab_items_name_ref like "hdl%",r.lab_order_result,0)) as HDL,
 max(if(lab_items_name_ref like "ldl%",r.lab_order_result,0)) as LDL,
 max(if(lab_items_name_ref like "Urine albumin%",r.lab_order_result,0)) as `Urine albumin`,
 max(if(lab_items_name_ref like "Micro Albumin Urine%",r.lab_order_result,0)) as `Micro Albumin`,
 max(if(lab_items_name_ref like "hba1%",r.lab_order_result,0)) as Hba1c,
 max(if(lab_items_name_ref like "bun%",r.lab_order_result,0)) as Bun,
 max(if(lab_items_name_ref like "Creatinine%",r.lab_order_result,0)) as Creatinine



FROM  ovst left outer join ovstdiag ON ovst.vn = ovstdiag.vn
left outer join lab_head l on l.vn=ovst.vn
left outer join lab_order r on l.lab_order_number=r.lab_order_number
left outer join patient   ON patient.hn = ovst.hn

WHERE ovst.vstdate Between @a And @b
AND ((@f="dm" and ovstdiag.icd10 Like "E1%") or (@f="ht" and ovstdiag.icd10 Like "I10%") or (@f="all")) and

((@c="ncdlab%" and (lab_items_name_ref like "fbs%"
or lab_items_name_ref like "chol%"
or lab_items_name_ref like "tri%"
or lab_items_name_ref like "hdl%"
or lab_items_name_ref like "ldl%"
or lab_items_name_ref like "urine%"
or lab_items_name_ref like "micro%"
or lab_items_name_ref like "%micro%"
or lab_items_name_ref like "hba1%"
or lab_items_name_ref like "creati%"
or lab_items_name_ref like "bun%"


)  )
or (@c <>"ncdlab%" and lab_items_name_ref like @c) )

and
r.lab_order_result > 0 and ((@d=0 or r.lab_order_result >= @d) and (@e=0 or r.lab_order_result <= @e))
group by tbc,moopart,hn,ovst.vn
order by tbc,moopart,mx,hn,ovst.vn

หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: udomchok ที่ สิงหาคม 24, 2011, 17:50:02 PM
โรงพยาบาลเมืองปาน (ขนาด 30 เตียง) จังหวัดลำปาง โทร 054-276345-6
Server : ประกอบเอง Pentium D 3.0 GHz Ram 1 GB  HDDSATA 160 GB  Fedora 8.0 Linux MySQL 5.0.45
Client : windows XP Sp2
ขึ้นระบบ 1 มิ.ย.50
ท่าน chitvivhai ไม่ Update MySQL สักหน่อยเหรอครับ
หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: chitvichai ที่ สิงหาคม 24, 2011, 18:01:31 PM
โรงพยาบาลเมืองปาน (ขนาด 30 เตียง) จังหวัดลำปาง โทร 054-276345-6
Server : ประกอบเอง Pentium D 3.0 GHz Ram 1 GB  HDDSATA 160 GB  Fedora 8.0 Linux MySQL 5.0.45
Client : windows XP Sp2
ขึ้นระบบ 1 มิ.ย.50
ท่าน chitvichai ไม่ Update MySQL สักหน่อยเหรอครับ

ปล.เปลื่ยนแล้วครับ :)
หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: udomchok ที่ สิงหาคม 24, 2011, 18:47:10 PM
ปล.เปลื่ยนแล้วครับ :)
;D ;D ;D ;D ;D
เปลี่ยนนานแล้วสิเนี่ย แต่ลืมเปลี่ยนที่ลายเซ็นต์หรือเปล่า
หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: songwut ที่ สิงหาคม 25, 2011, 12:19:59 PM
ขอบคุณมากครับ

ช่วยได้มากเลย

ที่ผ่านมา left join ทีละ lab เวลาต้องการหลายๆ lab โหลดช้ามากมายเลย
หัวข้อ: Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
เริ่มหัวข้อโดย: วีระวัฒน์ (เอก) ที่ สิงหาคม 25, 2011, 13:21:52 PM
ที่ผมทำใว้ จะเป็น รายงาน มาตราฐาน ไม่ต้องแก้ตัวรายงานใด ๆ เพียงแค่ ทำ lab link ใน main setting เท่านั้น
ทำให้ง่ายต่อการนำไปใช้งาน

รหัส จังหวัด อำเภอ ตำบล ผมอ้างจาก ตาราง opdconfig เป็นตัวหลัก ไม่ได้ใช้แบบเดิมแล้ว

แบบ เดิม chwpart="50" 

แบบใหม่ chwpart=( select chwpart from hospcode where hospcode =(select hospitalcode from opdconfig limit 1))

ทุกรายงานผมจะทำแบบนี้หมดทุกตัวแล้ว ตอนนี้กำลังแก้ ได้ ราว 20 เปอร์เซนต์