Dispense ยา — Barcode / QR / Manual
เภสัชรับใบสั่งจาก OPD, สแกน barcode → ตัด stock อัตโนมัติ, พิมพ์ label, ส่งคนไข้
ภาพรวม flow
- หมอเขียน Rx + Sign visit
- ใบสั่งวิ่งเข้าคิวห้องยา
- เภสัชเปิดใบสั่ง → ตรวจ stock + interaction อีกครั้ง
- สแกน barcode ยา (หรือ manual เลือก)
- ระบบตัด stock + บันทึก lot ที่จ่าย
- พิมพ์ label + ใบรับยา → ส่งคนไข้
เปิดคิวห้องยา
Pharmacy → คิวรอจ่าย (/dashboard/pharmacy)
แสดงใบสั่งที่ Sign แล้วและยังไม่ dispensed — เรียงตามเวลาสั่ง
แต่ละแถวเห็น:
- เลข HN + ชื่อคนไข้
- เลขใบสั่ง (Rx-NO)
- จำนวนรายการยา
- เวลา (กี่นาทีที่รอ)
- Priority (ถ้าผู้สูงอายุ/เด็ก/ฉุกเฉิน)
เปิดใบสั่ง
กดที่แถว → หน้าใบสั่ง:
- รายการยาแต่ละตัว + dose / frequency / duration / qty
- Diagnosis ที่หมอใส่ (ช่วยตัดสินใจ)
- Allergy ของคนไข้
- ยา active ที่กำลังกินจาก visit ก่อน
Dispense ทีละตัว
แต่ละรายการมีสถานะ:
- ⚪ ยังไม่จ่าย
- 🟢 จ่ายแล้ว
- 🔴 ปฏิเสธ (เภสัชเห็นว่าไม่ควรจ่าย — บันทึกเหตุผล)
Mode 1: Barcode scan (เร็วที่สุด)
- กดที่ field Scan barcode
- ใช้เครื่องสแกน yong barcode บนกล่องยา
- ระบบ:
- Match กับ drug catalog → confirm รายการ - แสดง lot + expiry ที่จ่าย (FIFO: lot เก่าก่อน) - กดยืนยัน → ตัด stock 1 หน่วย (หรือตาม qty ที่ Rx ระบุ)
- ทำซ้ำกับยาตัวถัดไป
Mode 2: Manual
ถ้าไม่มี barcode (เช่น cream, syrup, ยาแบ่ง):
- กด เลือก lot
- ระบบโชว์ lot ที่มีของ drug นั้น
- เลือก lot → ระบุจำนวน (default = qty ตาม Rx) → ยืนยัน
Mode 3: ปฏิเสธ
ถ้ายาตัวไหนไม่ควรจ่าย (allergy ที่หมอลืม, stock หมด, interaction รุนแรง):
- กด ปฏิเสธ
- ระบุเหตุผล (dropdown: out-of-stock, allergy-mismatch, dose-too-high, ฯลฯ)
- ระบบ:
- บันทึก audit - แจ้งหมอผ่าน notification (LINE/in-app) - คนไข้ไม่ได้รับยาตัวนั้น (ตัวอื่นยังจ่ายปกติ)
ปิดใบสั่ง
หลังจ่ายครบทุกตัว:
- กด เสร็จสิ้น
- ระบบ:
- มาร์คใบสั่งเป็น DISPENSED - ส่งใบสั่งไป Cashier (ถ้ายังไม่จ่ายเงิน) หรือเข้า history - คนไข้ได้ใบรับยา + ยา
พิมพ์ Label
ปุ่ม 🖨️ พิมพ์ Label บนแต่ละรายการ — พิมพ์ thermal label แปะถุงยา ระบุ:
- ชื่อคนไข้ + HN
- ชื่อยา (generic + brand)
- ขนาด + วิธีใช้ (ภาษาไทย — auto-translate จาก dose+frequency)
- คำเตือน (allergen, controlled drug)
- วันหมดอายุของ lot
- QR code → คนไข้สแกนเห็นข้อมูลยาเต็ม
ต้องมีเครื่องพิมพ์ thermal (Argox, TSC, Zebra) เชื่อม USB หรือ Bluetooth
ตัวอย่างปัญหาที่พบ
Scan barcode แล้วระบบไม่เจอ — ยาตัวนั้นยังไม่ import เข้า catalog. ไปเพิ่มก่อน
Stock หมดกลางคัน — ใบสั่งจะ disable ปุ่ม dispense. รับยาใหม่เข้า stock ก่อน (Stock → Receive)
Lot ที่ระบบเลือกไม่ตรงกับที่จะหยิบ — กด "เปลี่ยน lot" → เลือก manual. ระบบ default FIFO
เคยจ่ายผิด — กด Reverse Dispense ใน history (สิทธิ์ MANAGER). คืน stock + บันทึก audit