BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: naj ที่ มิถุนายน 13, 2012, 22:58:37 PM

หัวข้อ: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: naj ที่ มิถุนายน 13, 2012, 22:58:37 PM
ขออธิบายนิดหนึ่งนะครับ ว่าทางหน่วยงาน OPD(cur_dep=010) ของ รพ ผม ต้องการเปิดช่องทางพิเศษให้กับผู้สูงอายุ(>70 ปีขึ้นไป) และเด็ก(อายุ<5 ปี) ได้รับการตรวจก่อนผู้ป่วยทั่วไป เลยได้ Idea ว่าจะให้ห้องบัตรเป็นคนเลือกความเร่งด่วนของผู้ป่วยตอนที่ส่งตรวจเป็น มาก ซึ่งโปแกรมในหน้าเมนูคัดกรอง ทางพยาบาลที่คัดกรองก็จะเห็นสัญลักษณ์รูปหน้าคนยิ้ม ก็จะได้เรียกผู้ป่วยมาคัดกรองก่อน จะได้ไม่ต้องรอนาน  แต่มีปัญหาว่าห้องบัตรไม่สะดวกที่ต้องมากำหนดเองทุกครั้ง บางครั้งส่งผิดก็ต้องเสียเวลากลับมาแก้ไขใหม่(แทนที่จะช่วยให้บริการง่ายขึ้น กลับเพิ่มความยุ่งยากให้กับเจ้าหน้าที่..) พี่หัวหน้าห้องบัตรเลยเสนอว่าน่าจะผลักให้เป็นหน้าที่ของโปรแกรม(admin งานเข้า  :) :) :) :D :D :D) จัดการให้ auto น่าจะดี  เลยลองเขียนคำสั่งในการตรวจสอบฝากไว้ใน FORM-RxORDER1 (ที่ รพ. ผม ห้องบัตร print ฟอร์มนี้ ให้กับ pt ทุกคนที่มารักษา ) ท่านใด
สนใจที่จะลองไปทดสอบก็ตามสบายเลยครับ  :D :D :D :D
ดั้งนั้น ตอนที่ส่งตรวจแค่ให้เจ้าหน้าที่เลือกความเร่งด่วนเป็น ปกติ เท่านั้น เดี๋ยว script ใน FORM-RxORDER1  จะตรวจสอบให้เองครับ
ตัวอย่าง code
 unit TanReg;
 procedure main;
 var
 s1,s2,s3:string;
 tc:Tclientdatset;
 begin
     s2:=report_value(3);
     //showmessage(s2);
     s1:=report_value(2);
     s1:=trim(copy(s1,1,2));
    // Showmessage(s1);
      if (s1='FU') or (s1='Un') then
     s1:='0' ;
     
      if (strtoint(s1)>=70) or ((strtoint(s1)<6)) then
      if getsqldata('select count(*) as dd from ovst where vn="'+s2+'" and cur_dep="010" ')>0 then
      begin
      tc:=Tclientdataset.create(nil);
      tc.data:=Hosxp_getdataset('select pt_priority from ovst where  vn="'+s2+'"');
      tc.open;
      tc.edit;
      tc['pt_priority']:='1';
      tc.post;
       hosxp_updatedelta(tc.delta,'select pt_priority from ovst where  vn="'+s2+'"');
       tc.free;
      //showmessage('You Can Done...');
     
     end;
     
         
     
 end;
 end.
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: GODgimuru ที่ มิถุนายน 14, 2012, 09:05:12 AM
ขอบคุณมากครับ พอดีหนังสือเรื่องนี้ถึงโต๊ะผมพอดีเมื่อวานเลย ;D
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: udomchok ที่ มิถุนายน 14, 2012, 09:27:56 AM
สุดยอด...
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: kkko ที่ มิถุนายน 14, 2012, 09:49:18 AM
เยี่ยมเลย อ.นาจ ที่มี tool ดีๆมาฝากเสมอ แต่ปัญหาคือหน้ายิ้มหรือหน้าบูดตูไม่สนตามคิวครับ จนท.บางคนยังไม่รู้เลยครับว่าสัญลักษณ์พวกนี้คืออะไร ตูไม่สนอีกเช่นกัน
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: golf_win ที่ มิถุนายน 14, 2012, 11:45:29 AM
report_value(2);
report_value(3);

รับค่าจากอะไร แล้วส่งค่าอะไรออกมาครับพี่นาจ
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: naj ที่ มิถุนายน 14, 2012, 11:55:36 AM
Script ที่ผมเขียนมันยังมี error อยู่นะครับ โดยมันจะไปเปลี่ยน pt_priority ของผู้ป่วยรายอื่นด้วย
 ขอบคุณน้อง Golf_Win มากครับที่แจ้งปัญหามาให้ทราบ  เดี๋ยวจะแก้ไขให้ใหม่นะครับ
สงสัยเหมือนกันตอนที่ทดสอบใน NoteBook ไม่พบ error นี้  ;D ;D ;D ;D ;D
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: naj ที่ มิถุนายน 14, 2012, 12:04:32 PM
report_value(2);
report_value(3);


รับค่าจากอะไร แล้วส่งค่าอะไรออกมาครับพี่นาจ
report_value(2) คือ Fullage
report_value(3) คือ VN
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: naj ที่ มิถุนายน 14, 2012, 13:47:42 PM
ขออภัยด้วยครับ แก้ไข code ให้ใหม่แล้ว ทดสอบกับระบบจริงของ รพ. น่าจะ Ok แล้วนะครับ (สังเกตจากไม่มีเสียงโทรศัพท์มา  :D :D :D :D)
Thanks  For Gowf_Win มากที่ช่วยตรวจสอบให้ครับ
Code....
 unit YindeeAndTan;
 procedure main;
 var
 s1,s2,s3:string;
 tc:Tclientdatset;
 begin
     s2:=report_value(3);
     //showmessage(s2);
     s1:=report_value(2);
     s1:=trim(copy(s1,1,2));
    // Showmessage(s1);
      if (s1='FU') or (s1='Un') then
     s1:='0' ;
     
      if (strtoint(s1)>=70) or ((strtoint(s1)<5)) then
      if getsqldata('select count(*) as dd from ovst where vn="'+s2+'" and cur_dep="010" ')>0 then
      begin
        zquery.close;
        zquery.sql.text:='update ovst set pt_priority="1" where vn="'+s2+'" and cur_dep="010" ';
        zquery.execsql;
        zquery.close;
      //showmessage('You Can Done...');
     
     end;
     
         
     
 end;
 end.
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: naj ที่ มิถุนายน 14, 2012, 17:02:46 PM
ได้รับโจทย์เพิ่มว่าให้นอกจากผู้ป่วยสูงอายุและเด็ก ทางงาน OPD อยากให้ครอบคลุมถึง พระ ชี สามเณร  ด้วย   คงต้องปล่อยให้ขอไปก่อน ...ตอนนี้ยังคิดไม่ออก  ;D ;D ;D ;D ;D
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: golf_win ที่ มิถุนายน 14, 2012, 18:39:17 PM
ผมว่าพระ ชี สามเณร ดูเอาเองก็น่าจะรู้ครับ ;D ;D
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ มิถุนายน 14, 2012, 20:48:58 PM
ได้รับโจทย์เพิ่มว่าให้นอกจากผู้ป่วยสูงอายุและเด็ก ทางงาน OPD อยากให้ครอบคลุมถึง พระ ชี สามเณร  ด้วย   คงต้องปล่อยให้ขอไปก่อน ...ตอนนี้ยังคิดไม่ออก  ;D ;D ;D ;D ;D

ความต้องการของมนุษย์โลก  อย่าง เรา ๆ ท่าน ๆ ไม่มีสิ้นสุดครับ...ยืนยัน.. :D
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: jdadmin1 ที่ มิถุนายน 15, 2012, 04:23:29 AM
อ้างถึง
ผมว่าพระ ชี สามเณร ดูเอาเองก็น่าจะรู้ครับ Grin Grin
;D ;D ;D
สงสัยกลัวร.ต.อ.ปลอมตัวมาหรือเปล่าครับพี่กอล์ฟ อิ อิ อิ
 ;D ;D ;D
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: naj ที่ มิถุนายน 15, 2012, 11:30:44 AM
คงอย่างที่ อ.เกื้อบอกครับ ว่าความต้องการไม่มีที่สิ้นสุด แต่ก็เข้าใจงาน OPD เขาอยากพัฒนางานบริการให้กับผู้มารับบริการ เลยถูกบังคับทางอ้อม ว่าทำให้หน่อย   :D :D :D :D
หลังจากที่ไปหาแรงบันดาลใจมา   ;D ;D ;D ;D ;D  เลยได้ Idea ในการจัดการกรณีที่เป็นพระภิกษุ แม่ชี สามเณร โดยเพิ่ม code ในส่วนที่เป็นอักษรสีแดง 
 unit YindeeAndTan;
 procedure main;
 var
 s1,s2,s3,fhn:string;

 begin
     s2:=report_value(3);
     //showmessage(s2);
     s1:=report_value(2);
     s1:=trim(copy(s1,1,2));
    // Showmessage(s1);
    fhn:=GetSqldata('select hn  from ovst where vn="'+s2+'" and cur_dep="010" limit 1');
    s3:=GetSqlData('select count(*) as dd from patient where hn="'+fhn+'"and pname in("พระ","แม่ชี","สามเณร") ');
    //Showmessage(s3);
      if (s1='FU') or (s1='Un') then
     s1:='0' ;
     
      if (strtoint(s1)>=70) or ((strtoint(s1)<5)) or ((strtoint(s3)>0)) then
      if getsqldata('select count(*) as dd from ovst where vn="'+s2+'" and cur_dep="010" limit 1 ')>0 then
      begin
        zquery.close;
        zquery.sql.text:='update ovst set pt_priority="1" where vn="'+s2+'" and cur_dep="010" ';
        zquery.execsql;
        zquery.close;
      //showmessage('You Can Done...');
     
     end;
     
         
     
 end;
 end.
ปล..
ดีใจหลาย ที่ Spain ชนะกับเขาเป็นบ้างเสียที  ;D ;D ;D ;D ;D ;D
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: jassada ที่ กรกฎาคม 05, 2012, 13:29:27 PM
ขอบคุณกับ script ดีๆๆ ครับ
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: nksawan2011 ที่ กรกฎาคม 23, 2012, 14:18:56 PM
รบกวนท่านเจ้าของกระทู้ ถ้าไม่รันscriptในreportจะทำได้ไหมครับ หรือรันที่ vn_script ตามรูปได้หรือไม่ครับ และต้องเขียน script อย่างไรครับ
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: naj ที่ กรกฎาคม 23, 2012, 16:15:46 PM
ได้ครับ แต่ว่าต้องการระบุเงื่อนไขแบบไหนครับ  :) :) :) :) :)
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: nksawan2011 ที่ กรกฎาคม 24, 2012, 08:40:51 AM
เงื่อนไขเดียวกันครับ <5      >70  โดยให้ scrip run ที่ห้องเวชระเบียนครับ
หัวข้อ: Re: script ปรับการแสดง pt_priority อัตโนมัติ
เริ่มหัวข้อโดย: nksawan2011 ที่ กรกฎาคม 31, 2012, 16:07:51 PM
ขอเป็นแบบ pre_vn_script ได้ไหมครับ