ผู้เขียน หัวข้อ: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้  (อ่าน 9163 ครั้ง)

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

ออฟไลน์ naj

  • Hero Member
  • *****
  • กระทู้: 2,449
  • Respect: +10
    • ดูรายละเอียด
    • http://www.luangphopern-hospital.com
อธิบาย Concept ในการออกแบบก่อนนะครับ คือ ห้องยาต้องการพิมพ์ Drug Profile ของผู้ป่วยในจุดประสงค์เพื่อที่จะให้ห้องยาและ IPD ใช้ฟอร์มตัวเดียวกันในการจัด จ่ายยา และลงบันทึกเวลาจ่ายยาให้กับผู้ป่วย ซึ่งของเดิม ที่ ward หรือห้องคลอดจะมี ฟอร์มของตัวเองไม่แน่ใจเรียกว่าใบ Mar หรือเปล่านะครับ ส่วนห้องยาก็มีฟอร์มของตัวเองด้วยเหมือนกัน  ปัญหา อ.สรพ ไม่ปลื้ม ไม่แหล่ม  อยากให้สมานฉันท์รวมเป็นฟอร์มเดียวกัน เพื่อที่จะได้ทวนสอบได้ง่าย เพราะคนจัด คนเช็ค คนจ่าย คนให้ยากับผู้ป่วยจะได้ลงเวลาให้ยาในฟอร์มเดียวกันนี้ได้เลย  เพื่อจะได้ลดความคลาดเคลื่อน ยิ่งมีมากฟอร์ม มากขั้นตอน ก็ยิ่งเสี่ยงและ ก็ต้องเพิ่มงานโดยไม่จำเป็น โดนว่าเป็นประเภทย้ำคิดย้ำทำ ซะง้าน.... :D :D :D :D :D :D สรุป ประมานว่าฟอร์มเดียวจบ (แต่ไม่ค่อยจะสะดวกกับ รพ ที่คนไข้ admit มากๆๆเพราะใบนี้มันจะวิ่งไป วิ่งมาระหว่าง ward กับห้องยา  :P :P :P :P :P แต่เมื่อ อ.สรพ กล้าขอมา ก็จะจัดให้ ;D ;D ;D ;D โชคดีหรือดชคร้ายที่ รพ ผม ไม่ค่อยมีคนไข้ admit มากเท่าไหร่ครับ ) โดยฟอร์ทีผมออกแบบจะจำกัดให้มียาหน้าละ 4 รายการ กรณีที่มีรายการยาเพิ่มมาใหม่ ปกติจะ print ออกมาพร้อมฟอร์มรายงานเลยครับ แต่เนื่องจากว่าถ้าต้องพิมพ์แผ่นใหม่ทุกครั้ง(A4)ที่มีการเพิ่มยาหรือเปลี่ยนแปลง order คงไม่ไหวเหมือนกัน เลยออกแบบให้มีรายการเปล่า เพื่อไว้ ดั้งนั้นถ้า เกิดรายการยาไม่ครบพอดีหน้า อาจจะขาดหรือเกินหน้าไป หน้าฟอร์มมันจะมีพื้นที่โล่งๆๆ ผู้ใช้บอกว่าขัดใจ ไม่ปลื้ม เลยปรับให้มันสามารถ
1.เติมรายการให้ครบ 4 รายการต่อหน้า auto
2.ระบุจำหน้าที่เป็น ฟอร์มเปล่าได้เพื่อเผื่อมีรายการเพิ่มเติมจะได้พิมพ์ Sticker ออกมาแล้ว Print แปะได้แลย

ผมเลยสร้างตารางขึ้นมาใหม่ ไม่กล้าไปยุ่งกลับตารางเดิมครับกลัวงานเข้า... ;D ;D ;D ;D
โค๊ด: Delphi
  1. Unit Yindee;
  2. procedure main;
  3. var
  4. fan,pageno:String;
  5. a,b,c,i:integer;
  6. begin
  7. fan:=report_value(1);
  8. //ShowMessage(fan);
  9. zquery.close;
  10. zquery.sql.text:='CREATE TABLE IF NOT EXISTS `yindee_ipd_profile_print` ( '+
  11.  ' `med_plan_number` int(11) DEFAULT "0",    '+
  12.   '`an` varchar(9) DEFAULT NULL,      '+
  13.   '`doctor` varchar(7) DEFAULT NULL,   '+
  14.   '`icode` varchar(7) DEFAULT NULL,      '+
  15.   '`qty` int(11) DEFAULT NULL,             '+
  16.   '`offdate` date DEFAULT NULL,              '+
  17.   '`orderdate` date DEFAULT NULL,              '+
  18.   '`orderstatus` varchar(5) DEFAULT NULL,        '+
  19.   '`drugusage` varchar(7) DEFAULT NULL,            '+
  20.   '`sp_use` varchar(7) DEFAULT NULL,                 '+
  21.   '`frequency` int(11) DEFAULT NULL,                   '+
  22.   '`name` varchar(250) DEFAULT NULL,  '+
  23.   '`shortlist` varchar(250) DEFAULT NULL, '+
  24.   '`d1` int(11) DEFAULT NULL, '+
  25.   '`d2` int(11) DEFAULT NULL,   '+
  26.   '`d3` int(11) DEFAULT NULL,     '+
  27.   '`d4` int(11) DEFAULT NULL,       '+
  28.   '`d5` int(11) DEFAULT NULL, '+
  29.   '`d6` int(11) DEFAULT NULL,  '+
  30.   '`d7` int(11) DEFAULT NULL,    '+
  31.   '`d8` int(11) DEFAULT NULL,      '+
  32.   '`d9` int(11) DEFAULT NULL,        '+
  33.   '`d10` int(11) DEFAULT NULL, '+
  34.   '`d11` int(11) DEFAULT NULL,   '+
  35.   '`d12` int(11) DEFAULT NULL,     '+
  36.   '`d13` int(11) DEFAULT NULL,       '+
  37.   '`d14` int(11) DEFAULT NULL,         '+
  38.   '`number` int(11) DEFAULT NULL,   '+
  39.   '`icode_type` char(3) DEFAULT NULL, '+
  40.   '`return_qty` int(11) DEFAULT NULL,   '+
  41.   '`vorder` int(11) DEFAULT NULL,         '+
  42.   '`start_date` date DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=tis620';
  43.   zquery.execsql;
  44. zquery.sql.text:='delete from yindee_ipd_profile_print';
  45. zquery.execsql;
  46. zquery.sql.text:='insert into yindee_ipd_profile_print(an,doctor,drugusage,frequency, '+
  47. 'icode,icode_type,med_plan_number,name,number,offdate,orderdate,orderstatus,  '+
  48. 'qty,return_qty,shortlist,sp_use,start_date,vorder,d1,d2,d3,d4,d5,d6,d7,d8, '+
  49. 'd9,d10,d11,d12,d13,d14) '+
  50. 'select an,doctor,drugusage,frequency,icode,icode_type,med_plan_number,name,number, '+
  51. 'offdate,orderdate,orderstatus,qty,return_qty,shortlist, '+
  52. 'sp_use,start_date,vorder,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14   '+
  53. 'from  ipd_profile_print  where an="'+fan+'" ';
  54. zquery.execsql;
  55. fcds2.datarequest('select * from ipd_profile_print where an="'+fan+'" ');
  56. fcds2.open;
  57. //ShowMessage(inttostr(fcds2.recordcount));
  58. fcds.datarequest('select * from yindee_ipd_profile_print');
  59. fcds.open;
  60.  Try
  61. b:=strtoint(getsqldata('select max(med_plan_number) as dd from ipd_profile_print where an="'+fan+'" '));
  62. execpt b:=0; end;
  63. //ShowMessage(inttostr(b));
  64.  
  65. a:=fcds2.recordcount mod 4;
  66. //showmessage(inttostr(a));
  67. pageno:='0';
  68. inputquery('¡Ó˹´¨Ó¹Ç¹Ë¹éÒ·Õèµéͧ¡ÒþÔÁà¾ÔèÁàµÔÁ','¨Ó¹Ç¹Ë¹éÒ·Õè¾ÔÁ¾ìà¾ÔèÁ (ÃкØà»ç¹µÑÇàÅ¢à·èÒ¹Ñé¹)',pageno);
  69. c:=strtoint(pageno);
  70. if a>0 then
  71. begin
  72. for i:=1 to (4-a+(4*c)) do
  73. begin
  74.  b:=b+1;
  75.  fcds.insert;
  76.  fcds['med_plan_number']:=b;
  77.  fcds['an']:=fcds2['an'];
  78.  fcds['start_date']:=fcds2['start_date'];
  79.  fcds['orderstatus']:='S';
  80.  fcds.post;
  81. end;
  82. end else
  83. begin
  84. for i:=1 to(4*c) do
  85. begin
  86.  b:=b+1;
  87.  fcds.insert;
  88.  fcds['med_plan_number']:=b;
  89.  fcds['an']:=fcds2['an'];
  90.  fcds['start_date']:=fcds2['start_date'];
  91.  fcds['orderstatus']:='S';
  92.  fcds.post;
  93. end;
  94. end;
  95. fcds.datarequest('select * from yindee_ipd_profile_print');
  96. applyupdate_fcds(-1);
  97. fcds2.close;
  98. fcds.close;
  99. zquery.close;
  100. //ShowMessage('Done...');
  101. end;
  102. end.
  103.  
« แก้ไขครั้งสุดท้าย: พฤษภาคม 27, 2011, 19:55:04 PM โดย naj »
Yindee And Tan

ออฟไลน์ jdadmin1

  • Hero Member
  • *****
  • กระทู้: 6,468
  • "เครื่องชำรุด...งดใช้งานชั่วคราว"
  • Respect: +33
    • ดูรายละเอียด
Re: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้
« ตอบกลับ #1 เมื่อ: พฤษภาคม 26, 2011, 05:50:21 AM »
0
 ;D ;D ;D ขอบคุณครับ ขอให้มีแรงบันดาลใจเยอะ ๆ ๆ นะครับ แต่ระวังตัวแถมแถว ๆ ปากท่อมาแอบหนีบแรงบันดาลใจไปหมดนะครับ ;D ;D ;D
โรงพยาบาลพระสมุทรเจดีย์สวาทยานนท์ จังหวัดสมุทรปราการ
Master   : HOSxP 3.67.6.5
Slave1   : HOSxP 3.67.6.5
Upgrade 8/06/2567
Facebook : Suntad Mamak

ออฟไลน์ werachon

  • Sr. Member
  • ****
  • กระทู้: 300
  • Respect: 0
    • ดูรายละเอียด
Re: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้
« ตอบกลับ #2 เมื่อ: พฤษภาคม 26, 2011, 08:17:37 AM »
0
ขอบคุณครับ ... ;D
วีระชน พันธะ  นักเทคโนโลยีสารสนเทศ โรงพยาบาลหนองไผ่ เพชรบูรณ์
โทรศัพท์. 056-781113-4 ต่อ 130 งานประกันสุขภาพ
มือถือ. 081-2800068
HOSxP XE4 ขึ้นระบบ 22 -04 -59 Version 4.59.10.29
Master : HP ProLiant DL 380 G8  Ram 32 G
Slave : HP ProLiant DL 380 G7 Ram 22 G
ImageServer: HP ProLiant DL 380 G7 Ram 20

ออฟไลน์ jatuhospital

  • Jr. Member
  • **
  • กระทู้: 66
  • Respect: 0
    • ดูรายละเอียด
Re: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้
« ตอบกลับ #3 เมื่อ: พฤษภาคม 26, 2011, 10:31:03 AM »
0
มันขึ้นแบบนี้ครับ Error in unit 'Yindee' online 60 , Type mismatch ครับต้องแก้ยังไง
 

ออฟไลน์ naj

  • Hero Member
  • *****
  • กระทู้: 2,449
  • Respect: +10
    • ดูรายละเอียด
    • http://www.luangphopern-hospital.com
Re: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้
« ตอบกลับ #4 เมื่อ: พฤษภาคม 26, 2011, 20:22:51 PM »
0
จะตรวจสอบให้อีกครั้งครับ แต่ทีผมลองทดสอบมันก็ใช้งานได้นะครับ :) :) :) :) :)
คำสั่งบรรทัดนี้มันดึงค่าสูงสุดของ med_plan_number ของ an ที่เราเรียก ในตาราง ipd_profile_print มาเพื่อจะนำค่านี้ไป run field  med_plan_number ที่เพิ่มขึ้นมาใหม่ครับ ของตาราง yindee_ipd_profile_prin
« แก้ไขครั้งสุดท้าย: พฤษภาคม 26, 2011, 20:44:48 PM โดย naj »
Yindee And Tan

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

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
Re: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้
« ตอบกลับ #5 เมื่อ: พฤษภาคม 26, 2011, 22:12:43 PM »
0
;D ;D ;D ขอบคุณครับ ขอให้มีแรงบันดาลใจเยอะ ๆ ๆ นะครับ แต่ระวังตัวแถมแถว ๆ ปากท่อมาแอบหนีบแรงบันดาลใจไปหมดนะครับ ;D ;D ;D

มีพาดพิงงงง...ครับ...ป๋า...ผมยังไม่กล้าไปสมุทรประการ...กลัวทั้งเขียว..ทั้งแดง...ผมมันสีใสครับ...แต่ไม่ใช่สุเทพ
Implement  HOSxP  Start 2548 ---> NOW!
Station : 140 Client   V.3 Version  3.67.7.8
Server  : CENTOS 7 +MySQL maria 10.x.x

ออฟไลน์ naj

  • Hero Member
  • *****
  • กระทู้: 2,449
  • Respect: +10
    • ดูรายละเอียด
    • http://www.luangphopern-hospital.com
Re: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้
« ตอบกลับ #6 เมื่อ: พฤษภาคม 27, 2011, 08:51:09 AM »
0
พบสาเหตุแล้วครับ เกิดจากที่มันไม่พบ an ที่เราเรียกจากตาราง ipd_profile_print ทำให้ไม่สามารถจะหาค่า Max(med_plan_number)  เพราะมันไม่มีจึงหาไม่ได้ :) :) :) :) :) ครับ แก้ไขให้แล้วครับ ขอบคุณมากที่แจ้งมาครับ แนบ file IPD-PROFILE-REPORT-1 มาให้ใหม่แล้วครับ
« แก้ไขครั้งสุดท้าย: พฤษภาคม 29, 2011, 06:36:59 AM โดย naj »
Yindee And Tan

ออฟไลน์ nayok

  • Full Member
  • ***
  • กระทู้: 143
  • ทำงานให้สนุก และจงเป็นสุขกับการทำงาน
  • Respect: +1
    • ดูรายละเอียด
Re: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้
« ตอบกลับ #7 เมื่อ: พฤษภาคม 27, 2011, 10:09:27 AM »
0
 :o :o สุดยอดเลย อ.นาจเรา  ;D ;D
สุรนนท์ ประกอบพร
โรงพยาบาลนครนายก
HOSxP : 3.5ุ6.11.19d
Server: HP ProLiant ML350 Gen8 DOUBLE XEON E5-2620 X 2 CPU RAM 128 G. SAS 300 G. X 4  Raid 5 
OS: CentOS 6.3 _x64 Linux Server  MySQL 5.5.28-29.1-Percona_x64
Slave: HP ProLiant ML350 Gen8 DOUBLE XEON E5-2620 X 2 CPU RAM 128 G. SAS 300 G. X 4  Raid 5 
OS: CentOS 6.3 _x64 Linux Server  MySQL 5.5.28-29.1-Percona_x64
E-mail: hynix6635@hotmail.com
Nakhonnayok Hospital Tel.037-311151 # 201 (Compcenter)

ออฟไลน์ naj

  • Hero Member
  • *****
  • กระทู้: 2,449
  • Respect: +10
    • ดูรายละเอียด
    • http://www.luangphopern-hospital.com
Re: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้
« ตอบกลับ #8 เมื่อ: พฤษภาคม 29, 2011, 06:27:33 AM »
0
เพิ่ม Code ในการตรวจสอบจำนวนหน้าที่ระบุว่าเป็นตัวเลขหรือไม่ครับ โดยใช้ Function  IsStrANumber()
function IsStrANumber(const S:String):Boolean;
begin
Result:=TRUE;
Try
StrToInt(S);
Except
Result:=False;
end;
end;
« แก้ไขครั้งสุดท้าย: พฤษภาคม 29, 2011, 08:59:48 AM โดย naj »
Yindee And Tan

ออฟไลน์ kkko

  • Full Member
  • ***
  • กระทู้: 144
  • Respect: 0
    • ดูรายละเอียด
0
รบกวนขอฟอร์ม IPD-PROFILE-REPORT-1 ด้วยครับ
จะแก้ไขของระบบแต่หาตัวฟอร์มใน Report designer ไม่เจอ ขอบคุณล่วงหน้าครับ
กลุ่มงานรังสีวิทยา โรงพยาบาลสามโก้ จ.อ่างทอง HOSxP 3.62.2.19

ออฟไลน์ kkko

  • Full Member
  • ***
  • กระทู้: 144
  • Respect: 0
    • ดูรายละเอียด
Re: ตัวอย่าง IPD-PROFILE-REPORT-1 แบบระบุจำหน้าที่พิมพ์เพิ่มได้
« ตอบกลับ #10 เมื่อ: ตุลาคม 28, 2011, 11:35:37 AM »
0
เพิ่มเติมครับอยากได้แบบที่มีอยู่ในระบบนะครับ (ของ อ.นาจ userไม่ชอบลองให้ใช้แล้ว)
กลุ่มงานรังสีวิทยา โรงพยาบาลสามโก้ จ.อ่างทอง HOSxP 3.62.2.19