ผู้เขียน หัวข้อ: ใบรายงานผล LAB  (อ่าน 20918 ครั้ง)

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

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,348
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
ใบรายงานผล LAB
« เมื่อ: ธันวาคม 02, 2009, 23:36:31 PM »
0
เพิ่งทำเสร็จเมื่อปลายเดือน พ.ย. 52 แต่พอนำไปใช้งานจริงแล้วมีปัญหาเรื่องการเรียงลำดับ
เมื่อคืนเอามาแก้ไขใหม่ น่าจะเรียบร้อย เรียงลำดับตามกลุ่ม LAB (CBC, Electrolyte, etc.)
เพิ่มการตรวจสอบผล LAB ที่ได้ว่ามากกว่าหรือน้อยกว่าค่าปกติ หากมากกว่าให้แสดง H ในช่อง Flag หากน้อยกว่าแสดง L
แต่ต้องไปลงข้อมูลใน "ค่าปกติ(ตัวเลข)" ของ LAB แต่ละตัวด้วยนะครับ จึงจะตรวจสอบได้ถูกต้อง ให้ใส่ในทั้ง 2 เพศเลยครับ เพราะจะตรวจสอบเพศก่อน แล้วค่อยไปเทียบกับค่าปกติ
หากไม่ใส่ค่าใน "ค่าปกติ(ตัวเลข)" จะแปรผลว่าเป็น H หมดเลยครับ

ปล. ฝาก อ.อ๊อดช่วยดู DBText11 ด้วย เขียนอย่างไรให้สวยงาม
เดิมใช้ If...then...else ซ้อนกันหลายชั้น แล้วไม่สามารถแสดงผลได้หากมีการตรวจสอบเพศ
ตอนนี้ใช้ case....of แทน ก็สามารถตรวจสอบได้

คราวนี้ต่อไปหากเพื่อการตรวจสอบกับค่าวิกฤตอีก จะต้องซ้อน If อีก จะกำหนด begin...end อย่างไรให้ ทำงานได้
« แก้ไขครั้งสุดท้าย: ธันวาคม 03, 2009, 00:29:11 AM โดย udomchok »
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,348
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ใบรายงานผล LAB
« ตอบกลับ #1 เมื่อ: ธันวาคม 02, 2009, 23:54:33 PM »
0
ตอนแรกใช้ If...then...else
procedure DBText11OnGetText(var Text: String);
begin
  If DBPipeline['result_type'] = 0 then
    If DBPipeline['sex'] = 1 then
      If DBPipeline['lab_order_result'] < DBPipeline['range_check_min'] then
        Text := 'L'
      else
        If DBPipeline['lab_order_result'] > DBPipeline['range_check_max'] then
          Text := 'H'
        else
          Text := ''
    else
      If DBPipeline['lab_order_result'] < DBPipeline['range_check_min_female'] then
        Text := 'L'
      else
        If DBPipeline['lab_order_result'] > DBPipeline['range_check_max_female'] then
          Text := 'H'
        else
          Text := '';
end;
ไม่สามารถแสดงผลได้ถูกต้องหาก sex <> 1

เลยเปลี่ยนมาใช้แบบนี้
procedure DBText11OnGetText(var Text: String);
begin
  If DBPipeline['result_type'] = 0 then
  begin
    case DBPipeline['sex'] of
    1: If DBPipeline['lab_order_result'] < DBPipeline['range_check_min'] then
        Text := 'L'
      else
        If DBPipeline['lab_order_result'] > DBPipeline['range_check_max'] then
          Text := 'H'
        else
          Text := '';
    2: If DBPipeline['lab_order_result'] < DBPipeline['range_check_min_female'] then
        Text := 'L'
      else
        If DBPipeline['lab_order_result'] > DBPipeline['range_check_max_female'] then
          Text := 'H'
        else
          Text := '';
    end;
  end;
end;

เข้าใจว่าคงต้องใส่ begin...end; ครอบ if บางช่วง แต่ยังไม่รู้ว่าจะใส่ตรงไหนดี ใช้ได้บ่อยแค่ไหน
เดี๋ยวคืนนี้จะทดลองหาคำตอบก่อนครับ  ;D
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,348
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ใบรายงานผล LAB
« ตอบกลับ #2 เมื่อ: ธันวาคม 03, 2009, 00:12:53 AM »
0
ลองใส่ begin...end แบบมั่ว ๆ (น่าจะเป็น) ไล่ไปไล่มา ได้แบบนี้ครับ
procedure DBText11OnGetText(var Text: String);
begin
  If DBPipeline['result_type'] = 0 then
  begin
    If DBPipeline['sex'] = 1 then
    begin
      If DBPipeline['lab_order_result'] < DBPipeline['range_check_min'] then
        Text := 'L'
      else
      begin
        If DBPipeline['lab_order_result'] > DBPipeline['range_check_max'] then
          Text := 'H'
        else
          Text := '';
      end;
    end
    else
    begin
      If DBPipeline['lab_order_result'] < DBPipeline['range_check_min_female'] then
        Text := 'L'
      else
      begin
        If DBPipeline['lab_order_result'] > DBPipeline['range_check_max_female'] then
          Text := 'H'
        else
          Text := '';
      end;
    end;
  end;
end;

ดู ๆ แล้ว ไม่รู้ว่าเกินความจำเป็นตรงไหนบ้างหรือเปล่า แต่ run ได้
ถ้าเทียบกับ case..of แล้ว ยาวกว่า ดูแล้วงงกว่า...เฮ้อ
ท่านไหนว่างช่วยดูหน่อยครับ (ชอบใช้ If มากกว่า case...of แต่สงสัยต้องเปลี่ยนใจซะแล้ว :D )
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ thannawe

  • Hero Member
  • *****
  • กระทู้: 2,904
  • Respect: +8
    • ดูรายละเอียด
Re: ใบรายงานผล LAB
« ตอบกลับ #3 เมื่อ: ธันวาคม 03, 2009, 00:52:18 AM »
0
สุดยอดเลยครับ อ.โก้  :D ;) ;D
กิจจา ชาญธัญกรรม
นักวิชาการคอมพิวเตอร์ชำนาญการ รพ.โพธาราม จ.ราชบุรี
็HOSxP XE

ออฟไลน์ kungkung

  • Sr. Member
  • ****
  • กระทู้: 491
  • Respect: +2
    • ดูรายละเอียด
Re: ใบรายงานผล LAB
« ตอบกลับ #4 เมื่อ: ธันวาคม 15, 2009, 23:42:40 PM »
0
ขอบคุณครับ  สุดยอดอีกแล้ว
นวก.คอมพิวเตอร์  รพช.บ้านแหลม จ.เพชรบุรี
MASTER  :  Acer  AT350 F1 Intel Xeon E5620 SATA 146 x3  DDR3 36 GB. CentOS 6.3
Lenovo System x 3550 M5  16 GB  SAS 300 x 4 = CentOS 7.0
HOSxP v.3.53.7.16

ออฟไลน์ atit

  • Hero Member
  • *****
  • กระทู้: 1,233
  • ขออภัย ความรู้ไม่มาก
  • Respect: +3
    • ดูรายละเอียด
Re: ใบรายงานผล LAB
« ตอบกลับ #5 เมื่อ: ธันวาคม 18, 2009, 18:20:48 PM »
0
พี่โก้ครับเพิ่มเติมส่วนที่การรายงานเป็นตัวอักษรครับมันไม่มีมากกว่าหรือน้อยกว่าครับมีแต่ <> หรือ not like "%ค่าปรกติที่เราตั้งไว้%" คงต้องรบกวนเพิ่มเติมจุดนี้ด้วยครับ ;D
"-"           รู้อะไรไม่สู้รู้วิชา รู้จักหาในบอร์ดเป็นยอดคน                   tel 081-3202497 
ความรู้เพียงเล็กน้อย อาจช่วยคนเป็นร้อยแก้ปัญหา
เพราะฉะนั้น อย่ากลัวที่จะบอกสิ่งที่คุณรู้กับคนอื่น แม้จะเป็นเรื่องพื้นๆ ก็ตาม
cen-os 64 bit ,ram 4 g ,my sql 5.1.33
วิธีแนะนำตัวเอง  http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=4413.0
ก่อนตั้งกระทู้ใหม่ ลองหาดูกระทู่เก่าก่อนดีบ่? อาจได้คำตอบเร็วกว่าเด้อ   http://hosxp.net/index.php?option=com_smf&Itemid=28&action=search
วิธีขอบคุณผู้ที่ตอบคำถามถูกใจ   http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=8180.0
การเปิดใช้ Server แยก เก็บรูปภาพ/log http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=10169.0
การติดตั้ง mysql http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=11513.0
sql วันละคำกับคุณperjer http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=4007.0
8)ยินดีต้อนรับสู่สังคมแห่งการแบ่งปัน- การแบ่งปันทำให้สังคมน่าอยู่- ;Dขอขอบคุณ
- อ.mn ผู้เขียนโปรแกรมดีๆและช่วยขึ้นระบบ
- อ.อ๊อด,อ.นาจ,อ.ขวด,อ.โก้,อ.nutawut,อ.ตั๊ก,อ.JD,อ.กิจ...ที่คอยช่วยเหลือและให้ความรู้
- ทุกท่านที่ช่วย review โปรแกรมทำให้เราได้ใช้โปรแกรมที่สุดยอด(อยากให้เป็นโปรแกรมระดับประเทศเร็วๆจังจะได้ไม่ต้องง้อ สปสช 5555 :D)

ออฟไลน์ atit

  • Hero Member
  • *****
  • กระทู้: 1,233
  • ขออภัย ความรู้ไม่มาก
  • Respect: +3
    • ดูรายละเอียด
Re: ใบรายงานผล LAB
« ตอบกลับ #6 เมื่อ: ธันวาคม 18, 2009, 18:25:02 PM »
0
หรือไม่ก็อาจต้องกำหนดเงื่อนไข ว่า ให้แสดงกรณีที่ติ๊กถูกว่าการรายงานเป็นแบบตัวเลขเท่านั้น ถ้าเป็นแบบตัวอักษร ไม่ต้องแสดง มาครอบใว้อีกทีครับ ;D
"-"           รู้อะไรไม่สู้รู้วิชา รู้จักหาในบอร์ดเป็นยอดคน                   tel 081-3202497 
ความรู้เพียงเล็กน้อย อาจช่วยคนเป็นร้อยแก้ปัญหา
เพราะฉะนั้น อย่ากลัวที่จะบอกสิ่งที่คุณรู้กับคนอื่น แม้จะเป็นเรื่องพื้นๆ ก็ตาม
cen-os 64 bit ,ram 4 g ,my sql 5.1.33
วิธีแนะนำตัวเอง  http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=4413.0
ก่อนตั้งกระทู้ใหม่ ลองหาดูกระทู่เก่าก่อนดีบ่? อาจได้คำตอบเร็วกว่าเด้อ   http://hosxp.net/index.php?option=com_smf&Itemid=28&action=search
วิธีขอบคุณผู้ที่ตอบคำถามถูกใจ   http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=8180.0
การเปิดใช้ Server แยก เก็บรูปภาพ/log http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=10169.0
การติดตั้ง mysql http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=11513.0
sql วันละคำกับคุณperjer http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=4007.0
8)ยินดีต้อนรับสู่สังคมแห่งการแบ่งปัน- การแบ่งปันทำให้สังคมน่าอยู่- ;Dขอขอบคุณ
- อ.mn ผู้เขียนโปรแกรมดีๆและช่วยขึ้นระบบ
- อ.อ๊อด,อ.นาจ,อ.ขวด,อ.โก้,อ.nutawut,อ.ตั๊ก,อ.JD,อ.กิจ...ที่คอยช่วยเหลือและให้ความรู้
- ทุกท่านที่ช่วย review โปรแกรมทำให้เราได้ใช้โปรแกรมที่สุดยอด(อยากให้เป็นโปรแกรมระดับประเทศเร็วๆจังจะได้ไม่ต้องง้อ สปสช 5555 :D)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,348
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ใบรายงานผล LAB
« ตอบกลับ #7 เมื่อ: ธันวาคม 18, 2009, 22:56:18 PM »
0
พี่โก้ครับเพิ่มเติมส่วนที่การรายงานเป็นตัวอักษรครับมันไม่มีมากกว่าหรือน้อยกว่าครับมีแต่ <> หรือ not like "%ค่าปรกติที่เราตั้งไว้%" คงต้องรบกวนเพิ่มเติมจุดนี้ด้วยครับ ;D
กำลังว่าจะทำครับ เดี๋ยวขอตั้งตัวก่อน  :D :D :D


หรือไม่ก็อาจต้องกำหนดเงื่อนไข ว่า ให้แสดงกรณีที่ติ๊กถูกว่าการรายงานเป็นแบบตัวเลขเท่านั้น ถ้าเป็นแบบตัวอักษร ไม่ต้องแสดง มาครอบใว้อีกทีครับ ;D

ผมเลือกเฉพาะที่เป็นตัวเลขอยู่แล้วครับ ดังคำสั่งข้างล่างนี้
procedure DBText11OnGetText(var Text: String);
begin
  If DBPipeline['result_type'] = 0 then
  begin
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,348
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ใบรายงานผล LAB
« ตอบกลับ #8 เมื่อ: ธันวาคม 19, 2009, 15:38:39 PM »
0
ตอนนี้แก้ไขด้วยวิธีนี้ไปก่อนครับ
http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=12902.msg92516#msg92516

update lab_items set result_type=1 where ((range_check_min is null) or (range_check_max is null) or (range_check_min_female is null) or (range_check_max_female is null))
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,348
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ใบรายงานผล LAB
« ตอบกลับ #9 เมื่อ: ธันวาคม 19, 2009, 17:30:58 PM »
0
หลังจากนั้นตามด้วย
update lab_items set range_check="Y" where result_type =0
เพื่อปรับปรุงให้โปรแกรมเตือนเมื่อค่าไม่อยู่ในช่วงของค่าปกติ อาจจะเข้าไปติ๊กในหน้ารายการ LAB ก็ได้นะครับ ตรงช่อง "เตือนเมื่อมีค่าผิดปกติ"
เพราะ report ตัวต่อไปจะตรวจสอบตรงนี้ด้วย
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,348
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ใบรายงานผล LAB
« ตอบกลับ #10 เมื่อ: สิงหาคม 22, 2013, 18:06:19 PM »
+1
ปรับปรุงล่าสุด
ปรับการแสดงผลรายการ HIV ต่าง ๆ จากเดิม fix code เปลี่ยนเป็นอ่านจากชื่อ ต้องมีคำว่า HIV ในชื่อ LAB
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ yossak

  • Sr. Member
  • ****
  • กระทู้: 428
  • Respect: 0
    • ดูรายละเอียด
    • www.tpphosp.com
Re: ใบรายงานผล LAB
« ตอบกลับ #11 เมื่อ: ตุลาคม 14, 2013, 13:44:12 PM »
0
ไม่มีแบบที่เป็น Custom Repost หรือครับต้องการมากเขียนเองแล้วมันแสดงข้อมูลออกมาครับ
ยศศักดิ์   น้อยประสิทธิ์  โรงพยาบาลทองผาภูมิ ขนาด 90 เตียง
Server HP ML350 G6 / Hdd scis 3 TB. / Ram 16 GB./ Centos 6.4 / Mysql 5.5.26/ Hosxp 3.57.2.x
ขึ้นระบบ 2549  จากทีม BMS และขอขอบพี่กิจ สสจ.กจ  คุณ พีบอย ด่านมะขามเตี้ย   พี่นาจ รพ.หลวงพ่อเปิ่น, พี่อ๊อด รพ.ไทรโยค, และที่ให้ความรู้และคำแนะนำ เว็บไซค์โรงพยาบาล  www.tpphosp.com