ผู้เขียน หัวข้อ: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ  (อ่าน 6271 ครั้ง)

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

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
คือผมกำลังทำ Report รายงานผลการตรวจสุขภาพจาก UE แต่ติดปัญหาอยู่นิดหนึ่งตรง Label ที่สร้างขึ้นเพื่อแปลผลครับ ตามรูป
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
Re: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ
« ตอบกลับ #1 เมื่อ: ตุลาคม 13, 2011, 09:39:31 AM »
0
ปัญหาคือตัว variable ที่ดึงข้อมูลมา ในตัวอย่างสมมุติว่าเป็น Variable44 ใช้คำสั่งตามนี้

 vn := DBPipeline['vn'];
lon := GetSQLStringData('select lab_order_number from lab_head where vn = "'+vn+'"');
  Value := GetSQLStringData('select lab_order_result from lab_order where lab_order_number = "'+lon+'"'+
           'and lab_items_code ="3074" ');

ส่วน Label ที่ใช้เป็นส่วนแปลผลคือ Label66
   if variable44.value<='7.4' then
  Text :='ปกติ' else
    if ((variable44.value>'7.4')and(variable44.value<'10')) then
  Text :='ระดับกรดยูริคสูงเล็กน้อย' else
  if variable44.value>='10' then
  Text :='ระดับกรดยูริคสูงมากผิดปกติ' else
  Text :='ไม่มีข้อมูล' ;

และ Label100
    if variable44.value<='7.4' then
  Text :='' else
    if ((variable44.value>'7.4')and(variable44.value<'10')) then
  Text :='ควรหลีกเลี่ยงอาหารที่มีกรดยูริคสูง ได้แก่ เครื่องในสัตว์ สัตว์ปีก หน่อไม้ฝรั่ง กะปิ กระถิน ชะอม แตงกวา ยอดผัก'+
' และแอลกอฮอล์ ควรรับการรักษาโดยแพทย์ทันที' else
  if variable44.value>='10' then
  Text :='ควรหลีกเลี่ยงอาหารที่มีกรดยูริคสูง ได้แก่ เครื่องในสัตว์ สัตว์ปีก หน่อไม้ฝรั่ง กะปิ กระถิน ชะอม แตงกวา ยอดผัก'+
' และแอลกอฮอล์ ควรรับการรักษาโดยแพทย์ทันที แม้ว่าไม่มีอาการของโรคเก๊าท์ก็ตาม'  ;
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
Re: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ
« ตอบกลับ #2 เมื่อ: ตุลาคม 13, 2011, 09:42:42 AM »
0
ปัญหาคือตัว Variable44 ที่ดึงผล Lab มา ถ้าเลือกเป็นชนิด string จะแสดงค่าตัวเลขได้ถูกต้องคือ 7.9 แต่แปลผลใน Label66 และ Label100 ไม่ตรงกับคำสั่งที่กำหนดไว้คือ จะแปลค่าเป็น "ระดับกรดยูริคสูงมากผิดปกติ"(จริงๆ แล้วต้องค่าเกินกว่า 10 ถึงจะแสดงค่าการแปลผลนี้"

หากเลือกตัว Variable44 ที่ดึงผล Lab มา เป็นชนิด Integer ตัวเลขที่ดึงมาจะปัดเศษเป็นจำนวนเต็มคือแสดงเป็น "8"(แทนที่จะเป็น 7.9)ถึงแม้จะเปลี่ยนค่า Display format เป็นจุดทศนิยม ก็จะแสดงเป็น "8.0" แทนที่จะเป็น "7.9"  แต่การแปลผลใน Label66 และ Label100 ถูกต้อง

เลยอยากขอคำแนะนำให้ อ.ทั้งหลายช่วยดูให้หน่อยว่าต้องแก้ไขอะไรตรงไหนบ้าง ขอบคุณครับ ;D ;D ;D
« แก้ไขครั้งสุดท้าย: ตุลาคม 13, 2011, 09:48:14 AM โดย navyNP »
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22

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

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
Re: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ
« ตอบกลับ #3 เมื่อ: ตุลาคม 13, 2011, 09:47:53 AM »
0
GetSQLStringData  -->Intreger Data ได้ไหมครับพี่
Implement  HOSxP  Start 2548 ---> NOW!
Station : 130 Client   V.3 Version  3.67.1.XX
Server  : CENTOS  +MySQL maria 10.x.x

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 409
  • Respect: +12
    • ดูรายละเอียด
Re: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ
« ตอบกลับ #4 เมื่อ: ตุลาคม 13, 2011, 10:09:01 AM »
0
เพิ่มตัวแปร อีกสักตัว
nUric:Integer;
แล้วไปแปลงค่า variable44 เอา
nUric:=strtoint(variable44.value);
*****
น่าจะพอใช้ได้นะ
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง

ออฟไลน์ sungvien

  • Sr. Member
  • ****
  • กระทู้: 267
  • Respect: +1
    • ดูรายละเอียด
    • www.konsarnhospital.com
Re: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ
« ตอบกลับ #5 เมื่อ: ตุลาคม 13, 2011, 11:51:04 AM »
0
เยี่ยมเลยครับ
อยากรบกวน อ.nuttawut วางขวดนมลูก มาดูให้แป๊ปหนึ่ง
เงียบหายไปนาน ส่งสัยซุ่มทำโปรเจคใหญ่ปลายปี
ทำเสร็จแล้ว แบ่งบุญด้วยนะครับ
"คอนสาร ดินแดนแห่งน้ำผุดไหลหลาก ป่าหมากอุดม  รื่นรมย์เขื่อนจุฬาฯ เพลินป่าทุ่งกะมัง  มนต์ขลังทุ่งลุยลาย"

โรงพยาบาลคอนสาร  จังหวัดชัยภูมิ
sungvien@gmail.com
Server IBM X3650  HDD SATA 180x3  RAM 8 GB
 OS : CentOS 5.2   MySQL 5.1.30  HOSxP 3.54.8.19
Datatcenter IBM 3500 HDD SATA 180x3  RAM 4 GB
ขึ้นระบบ 28 สิงหาคม 2550 : Updateล่าสุด  19/08/2011

 5 ปีกับชีวิตอันอบอุ่นและมีความสุข ในครอบครัว ชุมชน HOSxP
------------------------------------------------------------------
ขอเป็นพลังสนับสนุนและให้กำลังใจ อ.ชัยพร และทีมงาน BMS ขอรับครับผม

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
Re: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ
« ตอบกลับ #6 เมื่อ: ตุลาคม 13, 2011, 12:45:04 PM »
0
เพิ่มตัวแปร อีกสักตัว
nUric:Integer;
แล้วไปแปลงค่า variable44 เอา
nUric:=strtoint(variable44.value);
*****
น่าจะพอใช้ได้นะ
ลองดูแล้วครับ ได้ค่าเป็น "0" ครับ
แต่ผมยังสงสัยอยู่ดีครับว่า ทำไม variable ตัวอื่นๆ ที่ทำไว้เป็น string เหมือนกัน แต่ก็แปลผลได้ถูกต้อง มีอันนี้อันเดียวที่แปลผลไม่ตรงกับค่าที่กำหนดไว้ครับ ???
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22

ออฟไลน์ golf_win

  • Hero Member
  • *****
  • กระทู้: 3,481
  • Respect: +112
    • ดูรายละเอียด
Re: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ
« ตอบกลับ #7 เมื่อ: ตุลาคม 13, 2011, 13:14:55 PM »
0
ลองใช้ GetSQLDoubleData ในการดึงผล lab ครับและใช้ประเภท variable เป็น double จากนั้นค่อยใช้ ongettext มาเปรียบเทียบค่าจาก variable ครับ

เช่น
if variable5.value>=90 then
  value:='ÃÐÂзÕè 1'
else if variable5.value>=60 then
  value:='ÃÐÂзÕè 2'
else if variable5.value>=30 then
  value:='ÃÐÂзÕè 3'
else if variable5.value>=15 then
  value:='ÃÐÂзÕè 4'
else
  value:='ÃÐÂÐÊØ´·éÒÂ';
 
« แก้ไขครั้งสุดท้าย: ตุลาคม 13, 2011, 13:19:42 PM โดย golf_win »
โรงพยาบาลเจ็ดเสมียน จังหวัดราชบุรี
Start 19-1-51    35 station
HOSxP  3.59.5.18 Activate License
Tel. 032-305096-7 ต่อ 118
Web. http://csmhos.thaiddns.com:8080
         http://csmhos.thaieasydns.com:8080

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 409
  • Respect: +12
    • ดูรายละเอียด
Re: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ
« ตอบกลับ #8 เมื่อ: ตุลาคม 13, 2011, 15:42:55 PM »
0
procedure Variable44OnCalc(var Value: Variant);
begin
Value := GetSQLStringData('select ifnull(l2.lab_order_result,0) Uric '+
                                           'from lab_head l1 '+
                                           'left join lab_order l2 on l1.lab_order_number=l2.lab_order_number '+
                                           'where l1.vn= "'+dbpipeline['vn']+'" and l1.lab_items_code=3074 ');
nresult:=StrtoInt(value);
if nresult<=0 then
  variable66.value='Error'
else if nresult<=7.4 then
  variable66.value:='ปกติ'
else if nresult<10 then
  variable66.valu:e='ระดับกรดยูริคสูงเล็กน้อย'
else
  variable66.value:='ระดับกรดยูริคสูงมากผิดปกติ';
end;
หรือประมาณนี้
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
Re: ขอความช่วยเหลือการเขียนคำสั่งแปลผลใน Label ครับ
« ตอบกลับ #9 เมื่อ: ตุลาคม 13, 2011, 16:20:39 PM »
0
ได้แล้วครับ แก้ปัญหาแบบ Admin บ้านนอก คือสร้าง variable ชนิด string ขึ้นมาอีกอันไว้แสดงผลตัวเลขเฉยๆ ส่วน Variable ชนิด Integer อันเดิมที่ใช้อ้างอิงค่านั้นซ่อน(Disvisible)เอาไว้ ;D ;D ;D
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22