HOSxP Tip วันนี้มาเสนอ การแก้ไขฟอร์ม XE-FORM-COVID-19-LABEL-1 ให้รองรับการพิมพ์ ได้ทั้ง วังซีน Sinovac และ AstraZeneca  ลองเอาไปประยุกต์ให้ดูครับ   ( อาจจะไม่ถูกวิธี   เป็นรายงานที่ผมประยุกต์เอาอีกที  ความเห็นส่วนตัวครับ )
กรณีใช้  จะพิมพ์สติกเกอร์ ฟอร์ม XE-FORM-COVID-19-LABEL-1
– ใช้กับ วัคซีน AstraZeneca แบบพิมพ์ 1 ขวด เป็น 10 dose
– ใช้วิธีเขียน ChangeReportSQL() อีกทีในฟอร์มรายงานนะครับ ก็จะได้แบบนี้

– เริ่มที่กำหนดตัวแปร variables ก่อนนะครับ

– ต่อมาก็เขียนโค้ดตามนี้  เลย อธิบายแค่เช็คว่าเป็น  วัคซีน AstraZeneca หรือไม่


vaccine_inventory_lot_id := GetUserParameter(0);
vaccine_manufacturer_id := GetSQLStringData(‘SELECT vaccine_manufacturer_id FROM vaccine_inventory_lot ‘+
‘ WHERE vaccine_inventory_lot_id = “‘+vaccine_inventory_lot_id+'” ‘);
if vaccine_manufacturer_id = ‘1’ then
begin
dose_no_select := GetSQLStringData(‘SELECT count(*)as cc FROM vaccine_inventory_label ‘+
‘ WHERE vaccine_inventory_lot_id =”‘+vaccine_inventory_lot_id+'” ‘);
dose_no_select := inttostr(strtoint(dose_no_select) * 10);
ChangeReportSQL(‘ ‘+
‘ select tmp1.* FROM (SELECT c.cancer_visit_type_id as dose_no_new,CONCAT(label_code,”X”,c.cancer_visit_type_id)as label_code_new,vaccine_labal1.* ‘+
‘ FROM cancer_visit_type c ‘+
‘ JOIN (SELECT v1.*, vil.vaccine_lot_no, vil.vaccine_serial_no, ‘+
‘ vil.vaccine_expire_date, ‘+
‘ Concat(p1.pname, p1.fname, ” “, p1.lname) AS patient_name, ‘+
‘ vm.vaccine_manufacturer_name, vil.vaccine_manufacturer_id ‘+
‘ FROM vaccine_inventory_label v1 ‘+
‘ LEFT OUTER JOIN ovst o1 ON o1.vn = v1.recipient_vn ‘+
‘ LEFT OUTER JOIN patient p1 ON p1.hn = o1.hn ‘+
‘ LEFT JOIN vaccine_inventory_lot vil ON v1.vaccine_inventory_lot_id = vil.vaccine_inventory_lot_id ‘+
‘ LEFT JOIN vaccine_manufacturer vm ON vm.vaccine_manufacturer_id = vil.vaccine_manufacturer_id ‘+
‘ WHERE v1.vaccine_inventory_lot_id = ‘+vaccine_inventory_lot_id+’ ‘+
‘ ORDER BY dose_no ‘+
‘ ) AS vaccine_labal1 ‘+
‘ LIMIT ‘+dose_no_select+’ ‘+
‘ ) AS tmp1 ‘);
end
else
ChangeReportSQL(‘SELECT v1.*,v1.label_code as label_code_new, ‘+
‘ vil.vaccine_lot_no, ‘+
‘ vil.vaccine_serial_no, ‘+
‘ vil.vaccine_expire_date, ‘+
‘ Concat(p1.pname, p1.fname, ” “, p1.lname) AS patient_name, ‘+
‘ vm.vaccine_manufacturer_name, ‘+
‘ vil.vaccine_manufacturer_id ‘+
‘ FROM vaccine_inventory_label v1 ‘+
‘ LEFT OUTER JOIN ovst o1 ON o1.vn = v1.recipient_vn ‘+
‘ LEFT OUTER JOIN patient p1 ON p1.hn = o1.hn ‘+
‘ LEFT JOIN vaccine_inventory_lot vil ON v1.vaccine_inventory_lot_id = vil.vaccine_inventory_lot_id ‘+
‘ LEFT JOIN vaccine_manufacturer vm ON vm.vaccine_manufacturer_id = vil.vaccine_manufacturer_id ‘+
‘ WHERE v1.vaccine_inventory_lot_id = ‘+GetUserParameter(0)+’ ‘+
‘ ORDER BY v1.dose_no ‘);

–  ถ้าเงื่อนไขไม่ใช่ ก็จะเป็นรูปทั่วไป

– เวลาพิมพ์ระบบจะเช็คเองว่าเป็น Astra หรือ Sinovac  แค่นี้เองครับ
– มีตาราง  cancer_visit_type  เอาไว้วนลูป 10 รอบ เท่านั้นนะไม่เกี่ยว กรณีอื่นเลย

– ผลก็จะได้ตามนี้คับ

– จะเริ่มเลขใหม่ทุกๆ 10 dose ของแต่ละขวด นะครับ

–  ชื่อฟอร์ม  XE-FORM-COVID-19-LABEL-1–comcenter1    ลองเอาไปประยุกต์ดูนะครับ  ไม่ต้องเอาทับนะครับ เป็นทางเลือกอีกแบบหนึ่งครับ
*** XE-FORM-COVID-19-LABEL-1--comcenter1-640527 (101 downloads) ***

– ขอบคุณที่ติดตามครับ
– แล้วพบกันใหม่ครับ

 2,290 total views,  4 views today

[HOSxP Tip] กรณี Astra ฟอร์ม XE-FORM-COVID-19-LABEL-1 พิมพ์ 1 ขวด 10 dose

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

This site uses Akismet to reduce spam. Learn how your comment data is processed.