[HOSxP Tip] กรณี Astra ฟอร์ม XE-FORM-COVID-19-LABEL-1 พิมพ์ 1 ขวด 10 dose
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 (109 downloads )
***
– ขอบคุณที่ติดตามครับ
– แล้วพบกันใหม่ครับ