ผู้เขียน หัวข้อ: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ  (อ่าน 9941 ครั้ง)

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

ออฟไลน์ Auing

  • Sr. Member
  • ****
  • กระทู้: 458
  • " *-* "
  • Respect: 0
    • ดูรายละเอียด
สอบถามการดึงผล 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"


Santisuk Hosp
Mr.NOPHADON,>เจ้าพนักงานเครื่องคอมพิวเตอร์ชำนาญการกินเป็นพิเศษ
MSN      : auinga@hotmail.com    
Server   :   HP, Cen OS 6.4 64 bit, Ram 2 G 
Hosxp structure version    : 3.56.8.21, MariaDB 5.5.32
HOSxP Start : 13092549

ออฟไลน์ aphirat

  • Full Member
  • ***
  • กระทู้: 165
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #1 เมื่อ: มิถุนายน 03, 2010, 11:29:51 AM »
0
อยากได้เหมือนกันครับ
รพ.เกษตรวิสัย 30 เตียง
implimented on 10-10-2006
Server : Double XEON 3.2 G. Ram 2 G. SCSI 147 G : OS CentOS 6.2

ออฟไลน์ songwut

  • Jr. Member
  • **
  • กระทู้: 55
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #2 เมื่อ: สิงหาคม 24, 2011, 16:36:55 PM »
0
สงสัยเหมือนกันครับ
 

ออฟไลน์ chencs

  • Jr. Member
  • **
  • กระทู้: 56
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #3 เมื่อ: สิงหาคม 24, 2011, 16:43:21 PM »
0
ลองเข้าไปกระทู้นี้ดูครับว่าถูกใจหรือป่าว...พี่เอกทำไว้ครับ

http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=14542.0
ราเชนทร์ กันใจมา
โรงพยาบาลแม่จริม จ.น่าน
HOSxP ขึ้นระบบวันที่ 01/04/2549
E-Mail : rachen_303@hotmail.com

ออฟไลน์ songwut

  • Jr. Member
  • **
  • กระทู้: 55
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #4 เมื่อ: สิงหาคม 24, 2011, 17:00:54 PM »
0
ลองเข้าไปกระทู้นี้ดูครับว่าถูกใจหรือป่าว...พี่เอกทำไว้ครับ

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

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

ขอบคุณครับ
 

ออฟไลน์ chitvichai

  • Full Member
  • ***
  • กระทู้: 103
  • Respect: +5
    • ดูรายละเอียด
    • รพ.เมืองปาน
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #5 เมื่อ: สิงหาคม 24, 2011, 17:47:13 PM »
0

มีคำสั่งแบบไม่ใช้ตัวแปรไม๊ครับ ที่ดึง 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

« แก้ไขครั้งสุดท้าย: ตุลาคม 19, 2011, 14:58:39 PM โดย chitvichai »
โรงพยาบาลเมืองปาน (ขนาด 30 เตียง) จังหวัดลำปาง โทร 054-276345-6
Master Server : HP Proliant DL360G7 Ram DDR3 1333 ECC 2x2 GB  HDD 2x146 GB  CentOS 6.2 Linux MySQL 5.5.11
Slave Server I : Acer Altos G540 Ram DDR2 667 ECC 2x1 GB HDD 2x146 GB Redhat Ent 5.2 Linux Mysql 5.1.29
Slave Server II : คอมประกอบ Ram DDR2 667  2x2 GB HDD SATA 160 GB Endian Firewall Community release 2.4.1 Mysql 5.5.24
Client : Windows XP Sp2
ขึ้นระบบ 1 มิ.ย.50

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,358
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #6 เมื่อ: สิงหาคม 24, 2011, 17:50:02 PM »
0
โรงพยาบาลเมืองปาน (ขนาด 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 สักหน่อยเหรอครับ
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ chitvichai

  • Full Member
  • ***
  • กระทู้: 103
  • Respect: +5
    • ดูรายละเอียด
    • รพ.เมืองปาน
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #7 เมื่อ: สิงหาคม 24, 2011, 18:01:31 PM »
0
โรงพยาบาลเมืองปาน (ขนาด 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 สักหน่อยเหรอครับ

ปล.เปลื่ยนแล้วครับ :)
« แก้ไขครั้งสุดท้าย: สิงหาคม 24, 2011, 18:13:18 PM โดย chitvichai »
โรงพยาบาลเมืองปาน (ขนาด 30 เตียง) จังหวัดลำปาง โทร 054-276345-6
Master Server : HP Proliant DL360G7 Ram DDR3 1333 ECC 2x2 GB  HDD 2x146 GB  CentOS 6.2 Linux MySQL 5.5.11
Slave Server I : Acer Altos G540 Ram DDR2 667 ECC 2x1 GB HDD 2x146 GB Redhat Ent 5.2 Linux Mysql 5.1.29
Slave Server II : คอมประกอบ Ram DDR2 667  2x2 GB HDD SATA 160 GB Endian Firewall Community release 2.4.1 Mysql 5.5.24
Client : Windows XP Sp2
ขึ้นระบบ 1 มิ.ย.50

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,358
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #8 เมื่อ: สิงหาคม 24, 2011, 18:47:10 PM »
0
ปล.เปลื่ยนแล้วครับ :)
;D ;D ;D ;D ;D
เปลี่ยนนานแล้วสิเนี่ย แต่ลืมเปลี่ยนที่ลายเซ็นต์หรือเปล่า
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ songwut

  • Jr. Member
  • **
  • กระทู้: 55
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #9 เมื่อ: สิงหาคม 25, 2011, 12:19:59 PM »
0
ขอบคุณมากครับ

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

ที่ผ่านมา left join ทีละ lab เวลาต้องการหลายๆ lab โหลดช้ามากมายเลย
 

ออฟไลน์ วีระวัฒน์ (เอก)

  • Hero Member
  • *****
  • กระทู้: 1,368
  • ให้ก้าวไปข้างหน้าก่อนผู้อืนอย่างน้อย 1 ก้าวเสมอ
  • Respect: +7
    • ดูรายละเอียด
Re: สอบถามการดึงผล lab ทั้งหมดของคนผู้ป่วยคนเดียวครับ
« ตอบกลับ #10 เมื่อ: สิงหาคม 25, 2011, 13:21:52 PM »
0
ที่ผมทำใว้ จะเป็น รายงาน มาตราฐาน ไม่ต้องแก้ตัวรายงานใด ๆ เพียงแค่ ทำ lab link ใน main setting เท่านั้น
ทำให้ง่ายต่อการนำไปใช้งาน

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

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

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

ทุกรายงานผมจะทำแบบนี้หมดทุกตัวแล้ว ตอนนี้กำลังแก้ ได้ ราว 20 เปอร์เซนต์
รพ.จอมทอง เชียงใหม่ ขนาด 120 เตียง  เริ่มใช้ HOSxP 1 ต.ค 2557 ขึ้นระบบโดย BMS
วีระวัฒน์ ใจอินผล  081-9609614 AIS  Email weerawatjaiinpol@gmail.com  Facebook วีระวัฒน์ ใจอินผล
Server: Xeon 4 core 2.27 GHz, CentOS 7.1 , RAM : 32 GB , HD SAS :300 GBx4 R5, MySQL MariaDB 10.0.20 64 bit