HOSxP Tip ! สร้างแจ้งเตือน ผู้ป่วยรายนี้ ยังไม่มีการคิดค่าฉีดยา ด้วย SYS_VN_PRE_SCRIPT
HOSxP Tip วันนี้มาทำระบบแจ้งเตือนกันครับ มีสมาชิก ส่งคำถามมา เลยมาทดสอบดูว่าจะพอทำได้ไหม ก็เลยมาเป็น ระบบ SYS_VN_PRE_SCRIPT แจ้งเตือนผู้ป่วยรายนี้ ยังไม่มีการคิดค่าบริการฉีดยา เป็นไงมาเริ่มกันเลยครับ
ความต้องการ และวัตถุประสงค์
– ใช้กับ HOSxP เท่านั้น
– เปิดใช้งาน RUN VN Script ที่หน้าจอ System Setting
– สร้าง โค้ด แล้วตั้งชื่อ Script ชื่อ SYS_VN_PRE_SCRIPT
– ทำงานหลังจากเลือกคนไข้ขึ้นมาแล้ว จะแสดงทันที
อยากแรกเลย ไปกำหนดค่าเริ่มต้นก่อน
กำหนดให้ RUN VN Script ติ๊กถูกแล้วบันทึก
กำหนดให้ ยอมให้ Run Pre processing vn script เฉพาะแผนกที่จะให้ทำงาน หน่วยงานไหนไม่กำหนดก็จะไม่ทำงานนะครับ
ต่อมาก็เปิด sql query เลย
ไปที่แท็บ Script เพื่อสร้าง script ก่อนเลย
ต่อมาก็ลบ โค้ด ทั้งหมดออกก่อน ทั้งแท็บ Source และ DFM
ต่อมาก็ว่างโค้ดนี้ใส่เข้าไปในแท็บ Source
——————————-
var
a,fvn,fonlineid,fuser,fcid,pcid,fcomputername,fdepartment,fhn: string;
tc : TClientDataset;
cc:integer;
cds:tclientdataset;
icode_notify, icode_im :string;
hcode ,iplocal ,drug_hosxp,drug_qty ,key_time :string;
value_all :string;
number :integer;
begin
cds :=tclientdataset.create(nil);
fvn:= GetGlobalValue(‘VN’);
if fvn =” then exit
fonlineid:=get_onlineid;
fhn:=getsqldata(‘select o.hn from ovst o ‘+
‘ left outer join vn_stat v on v.vn=o.vn ‘+
‘ where v.pt_subtype in (“0″,”1”) and ‘+
‘ v.vn = “‘+fvn+'”‘);
if fhn =” then
exit;
fcomputername := getsqldata(‘select servername from onlineuser where onlineid=”‘+fonlineid+'”‘);
fuser :=getsqldata(‘select kskloginname from onlineuser where onlineid=”‘+fonlineid+'”‘);
fdepartment := getsqldata(‘select k.depcode from onlineuser o ‘+
‘ left outer join kskdepartment k on k.department = o.department ‘+
‘ where o.onlineid=”‘+fonlineid+'” ‘);
icode_notify := GetSQLSubQueryData(‘select icode from drugitems where icode=”1000140” ‘);
hcode := getsqldata(‘select hospitalcode from opdconfig’);
iplocal := getsqldata(‘select computername from onlineuser’);
icode_im := GetSQLSubQueryData(‘select icode from nondrugitems where icode=”3000197” ‘);
if getsqldata(‘select count(*) as cc’+
‘ from opitemrece o ‘+
‘ where o.vn = “‘+fvn+'” and o.icode in(‘+icode_notify+’) and o.icode like”1%” ‘+
‘ ‘)>0 then
begin
if getsqldata(‘select count(*) as cc’+
‘ from opitemrece o ‘+
‘ where o.vn = “‘+fvn+'” and o.icode in(‘+icode_im+’) ‘+
‘ ‘) > 0 then
begin
Application.MessageBox(‘แจ้งเตือนผู้ป่วยรายนี้มีการคิดค่าบริการฉีดยา แล้ว ! ‘ +#13+#13+#13+#13+#13+
‘[SYS_VN_PRE_SCRIPT]’,
‘By ARM ANT’, MB_ICONWARNING);
end
else
begin
Application.MessageBox(‘แจ้งเตือนผู้ป่วยรายนี้ ยังไม่มีการคิดค่าบริการฉีดยา ! ‘ +#13+#13+#13+#13+#13+
‘[SYS_VN_PRE_SCRIPT]’,
‘By ARM ANT’, MB_ICONQUESTION);
end;
end;
end;
หมายเหตุ 1000140 คือ รหัส icode ของรายการยา GENTAMICIN หรือยาฉีดนะครับ
3000197 คือ รหัส icode ค่าใช่จ่าย ค่าฉีดยา IM หรือค่าบริการฉีดยา
ว่างโค้ดตามรูป ให้อยู่ในแท็บ Source
แล้วก็มาบันทึก ก่อนบันทึกให้ติ๊กถูกที่ Checkbox ของ Allow User Run ก่อน แล้วค่อยไปคลิกปุ่ม Save จะขึ้นหน้าจอตั้งชื่อ
ตั้งชื่อ เป็น SYS_VN_PRE_SCRIPT จะใช้ชื่ออื่นไม่ได้นะ ต้องชื่อนี้เลย
ระบบจะจัดเก็บไว้ที่ตาราง sys_app_script ก็จะพร้อมสำหรับใช้งาน แต่ให้แน่ใจ ต้องปิด HOSxP แล้วเข้าใหม่อีกทีนะครับ
ต่อมา ไปดูขั้นตอนที่ระบบทำงานตอนที่เลือกคนไข้ขึ้นมา ยกตัวอย่างเช่น
ขั้นแรกให้คีย์ รายการ นี้ก่อน GENTAMICIN เพื่อให้ทราบว่ามีการสั่ง ฉีด จากแพทย์หรือพยาบาลก่อน
แล้วพอหน่วยงานอื่น หรือเครื่องคอมฯ ที่หน่วยงานอื่น เลือกคนไข้รายนี้เปิดดู ระบบจะแจ้งเตือน ตามเงื่อนไขที่ทำไว้
จะแจ้งเตือนว่า ” แจ้งเตือนผู้ป่วยรายงาน ยังไม่มีการคิดค่าบริการฉีดยา” กรณียังไม่ได้คีย์ค่าใช้จ่ายค่าบริการฉีดยา ต่อมาก็ทำการคีย์ค่าบริการฉีดยา แล้ว
เสร็จแล้ว เมื่อหน่วยงานอื่น หรือคอมฯ เครื่องอื่น เลือกคนไข้รายนี้ขึ้นมา ก็จะแสดงแจ้งเตือนอีกเงื่อนไข คือ
เมื่อเลือกคนไข้รายนี้ขึ้นมา ก็จะแสดงอีกเงื่อนไขคือ “แจ้งเตือนผู้ป่วยรายนี้ มีการคิดค่าบริการฉีดยา แล้ว” ก็แสดงว่า เงื่อนไข กรณีมีการคิดค่าบริการฉีดยาแล้ว
ก็เป็นอันเสร็จ ตามโจทย์นี้ และตรงตามเงื่อนไขที่กำหนด
ก็ลองเอาไปปรับใช้ดูนะครับ ไม่น่ายาก และอาจจะไม่ง่าย นะครับ
ติดปัญหาอะไรก็แจ้งหรือบอก ผมมาด้วยนะครับ
ขอบคุณที่อ่านจนจบ บทความนี้ หวังว่าจะเป็นประโยชน์ นะครับ แล้วพบกันใหม่ ในโจทย์ต่อไป เร็วๆนี้้
ต่อตามได้ทาง…. https://www.facebook.com/armdsant/