Sitemap
ระบบเภสัชกรรม (Pharmacy Information System)
โรงพยาบาลค่ายธนรัชต์
เอกสารเลขที่: SRS-1.2.13-SITEMAP
เวอร์ชัน: 1.0
วันที่: 30 ตุลาคม 2568
ผู้จัดทำ: ทีมพัฒนาระบบ
ผู้อนุมัติ: ผู้อำนวยการโรงพยาบาลค่ายธนรัชต์
📋 สารบัญ
- ภาพรวมระบบ
- โครงสร้างเมนูหลัก
- User Journey และ Flow
- หน้าจอระบบย่อย
- การเชื่อมโยงระบบ
- รายงานและเอกสาร
- การจัดการสิทธิ์
1. ภาพรวมระบบ
1.1 วัตถุประสงค์หลัก
ระบบเภสัชกรรมเป็น Pharmacy Hub System ที่ทำหน้าที่เป็นศูนย์กลางการจัดการยาและเวชภัณฑ์ทั้งหมดของโรงพยาบาล โดยครอบคลุม:
💊 ระบบเภสัชกรรมหลัก (Pharmacy Hub)
├── 📚 การจัดการข้อมูลพื้นฐานยา
│ ├── ทะเบียนยาและเวชภัณฑ์
│ ├── Drug Interaction
│ ├── ราคาตามสิทธิ
│ └── ข้อห้ามและคำเตือน
├── 💊 การสั่งยาผู้ป่วยนอก (OPD)
│ ├── สั่งยาแบบรายการ
│ ├── สั่งยาตาม Template
│ ├── RE-MED (สั่งซ้ำ)
│ └── ตรวจสอบความปลอดภัย
├── 🏥 การสั่งยาผู้ป่วยใน (IPD)
│ ├── Continue Order
│ ├── One Day Order
│ ├── STAT Order
│ ├── ยากลับบ้าน
│ └── Medication Profile
├── ✅ การตรวจสอบและจ่ายยา
│ ├── Verify คำสั่งยา
│ ├── Dispense ยา
│ ├── บันทึกการจ่ายยา
│ └── การคืนยา
└── 🖨️ การพิมพ์เอกสาร
├── ใบสั่งยา (ไทย/อังกฤษ)
├── ฉลากยา (ไทย/อังกฤษ)
└── หนังสือรับรองยานอกบัญชี
1.2 ขอบเขตของระบบ
✅ In Scope (ครอบคลุม)
- การจัดการทะเบียนยาและเวชภัณฑ์ครบถ้วน (รหัสมาตรฐาน, รูปภาพ, รายละเอียด)
- การจัดการ Drug Interaction และการตรวจสอบความปลอดภัย
- การสั่งยาผู้ป่วยนอก (OPD) จากหลายแหล่ง (ห้องตรวจ, ER, ทันตกรรม)
- การสั่งยาผู้ป่วยใน (IPD) ทุกประเภท (Continue, One Day, STAT, ยากลับบ้าน)
- การตรวจสอบและจ่ายยาโดยเภสัชกร (Verify & Dispense)
- การพิมพ์เอกสารทางเภสัชกรรม (ใบสั่งยา, ฉลากยา, หนังสือรับรอง)
- การคำนวณราคาตามสิทธิการรักษา
- API Integration กับระบบอื่นๆ ทั้งหมดที่เกี่ยวข้อง
❌ Out of Scope (ย้ายไประบบอื่น)
- การบันทึกประวัติการแพ้ยารายละเอียด → ระบบซักประวัติ (1.2.2)
- การตรวจสอบสิทธิออนไลน์ → ระบบตรวจสอบสิทธิ (1.2.15)
- การชำระเงินและออกใบเสร็จ → ระบบการเงิน (1.2.14)
- การจัดการคลังยา (Stock Management) → ระบบคลัง (นอกขอบเขต 24 ระบบ)
- การจัดซื้อยา (Procurement) → ระบบจัดซื้อ (นอกขอบเขต 24 ระบบ)
1.3 ผู้ใช้งานระบบ
graph TB
subgraph "👥 ผู้ใช้งานระบบเภสัชกรรม"
DOC[👨⚕️ แพทย์<br/>- สั่งยา OPD/IPD<br/>- ดู Medication Profile<br/>- ใช้ Template]
DENT[🦷 ทันตแพทย์<br/>- สั่งยาทันตกรรม<br/>- RE-MED]
NURSE[👩⚕️ พยาบาล<br/>- สั่งยาตามมอบหมาย<br/>- บันทึกการจ่ายยา IPD]
PHARM[💊 เภสัชกร<br/>- Verify คำสั่งยา<br/>- Dispense ยา<br/>- ตรวจสอบ Drug Interaction<br/>- จัดการข้อมูลยา]
PHARM_TECH[🔬 เจ้าหน้าที่เภสัชกรรม<br/>- จ่ายยา<br/>- พิมพ์ฉลาก<br/>- จัดการแฟ้ม]
ADMIN[⚙️ ผู้ดูแลระบบ<br/>- จัดการ Master Data<br/>- ตั้งค่าระบบ<br/>- กำหนดสิทธิ์]
end
style DOC fill:#e3f2fd,stroke:#1565c0
style DENT fill:#f3e5f5,stroke:#7b1fa2
style NURSE fill:#e8f5e9,stroke:#388e3c
style PHARM fill:#fff3e0,stroke:#f57c00
style PHARM_TECH fill:#fce4ec,stroke:#c2185b
style ADMIN fill:#f5f5f5,stroke:#616161
1.4 การเชื่อมโยงกับระบบอื่น
graph TB
subgraph "🏥 ระบบภายนอกที่เชื่อมต่อ"
MR[1.2.1<br/>ระบบเวชระเบียน<br/>Patient Info, Visit]
HIST[1.2.2<br/>ระบบซักประวัติ<br/>Drug Allergy]
EXAM[1.2.3<br/>ระบบห้องตรวจ<br/>OPD Orders]
ER[1.2.4<br/>ระบบห้องฉุกเฉิน<br/>STAT Orders]
DENT[1.2.5<br/>ระบบทันตกรรม<br/>Dental Orders]
APPT[1.2.6<br/>ระบบนัดหมาย<br/>Appointment Date]
LAB[1.2.7<br/>ระบบงานชันสูตร<br/>Lab Results]
FIN[1.2.14<br/>ระบบการเงิน<br/>Billing]
RIGHT[1.2.15<br/>ระบบตรวจสอบสิทธิ<br/>Rights & Pricing]
IPD_SYS[1.2.17<br/>ระบบผู้ป่วยใน<br/>IPD Orders, Profile]
end
PHARM_HUB[💊 ระบบเภสัชกรรม<br/>Pharmacy Hub System]
MR --> PHARM_HUB
HIST --> PHARM_HUB
EXAM --> PHARM_HUB
ER --> PHARM_HUB
DENT --> PHARM_HUB
APPT --> PHARM_HUB
LAB --> PHARM_HUB
RIGHT --> PHARM_HUB
IPD_SYS --> PHARM_HUB
PHARM_HUB --> FIN
style PHARM_HUB fill:#fff3e0,stroke:#f57c00,stroke-width:4px
style MR fill:#e3f2fd,stroke:#1565c0
style HIST fill:#f3e5f5,stroke:#7b1fa2
style EXAM fill:#e8f5e9,stroke:#388e3c
style ER fill:#ffebee,stroke:#c62828
style DENT fill:#e0f2f1,stroke:#00796b
style APPT fill:#fff9c4,stroke:#f57f17
style LAB fill:#e1f5fe,stroke:#0277bd
style FIN fill:#f1f8e9,stroke:#558b2f
style RIGHT fill:#fce4ec,stroke:#c2185b
style IPD_SYS fill:#ede7f6,stroke:#5e35b1
2. โครงสร้างเมนูหลัก
2.1 Navigation Structure
🏠 หน้าหลัก (Dashboard)
│
├── 📚 จัดการข้อมูลพื้นฐาน
│ ├── 💊 ทะเบียนยาและเวชภัณฑ์
│ │ ├── 📝 เพิ่ม/แก้ไขทะเบียนยา
│ │ ├── 🖼️ จัดการรูปภาพยา
│ │ ├── 🏷️ จัดการ Ingredient
│ │ ├── 💰 กำหนดราคาตามสิทธิ
│ │ └── 📊 รายงานทะเบียนยา
│ │
│ ├── ⚠️ Drug Interaction
│ │ ├── 📝 บันทึก Interaction
│ │ ├── 🎚️ กำหนดระดับความรุนแรง
│ │ ├── 🔍 ค้นหา Interaction
│ │ └── 📊 รายงาน Interaction
│ │
│ ├── 🚫 ข้อห้ามและคำเตือน
│ │ ├── 🤰 คำเตือนหญิงตั้งครรภ์
│ │ ├── 🍼 คำเตือนให้นมบุตร
│ │ ├── 👶 คำเตือนเด็ก
│ │ ├── 🧬 คำเตือน G6PD
│ │ ├── ⚤ คำเตือนตามเพศ
│ │ └── 🏥 ข้อห้ามกับรหัสโรค (ICD10)
│ │
│ ├── 📋 Template ชุดยา
│ │ ├── 📝 สร้าง Template
│ │ ├── ✏️ แก้ไข Template
│ │ ├── 👨⚕️ Template ตามแพทย์
│ │ └── 🏥 Template ตามโรค
│ │
│ └── ⚙️ การตั้งค่าระบบ
│ ├── 🏷️ หมวดหมู่ยา
│ ├── 💊 รูปแบบเภสัชภัณฑ์
│ ├── 🔐 ยาควบคุมพิเศษ
│ ├── 🎯 กลุ่มการออกฤทธิ์
│ └── 🔧 ตั้งค่าทั่วไป
│
├── 💊 การสั่งยาผู้ป่วยนอก (OPD)
│ ├── 📋 สั่งยาแบบรายการ
│ │ ├── 🔍 ค้นหายา
│ │ ├── 📝 บันทึกคำสั่งยา
│ │ ├── ✏️ แก้ไขคำสั่งยา
│ │ └── 🗑️ ลบคำสั่งยา
│ │
│ ├── 📋 สั่งยาตาม Template
│ │ ├── 🔍 เลือก Template
│ │ ├── ✏️ ปรับแต่งรายการ
│ │ └── 💾 บันทึกคำสั่ง
│ │
│ ├── 🔄 RE-MED (สั่งยาซ้ำ)
│ │ ├── 📅 เลือกวันที่ย้อนหลัง
│ │ ├── ☑️ เลือกรายการยา
│ │ ├── ✏️ แก้ไขจำนวน/วิธีใช้
│ │ └── 💾 บันทึกคำสั่ง
│ │
│ ├── 🚨 สั่งยาฉุกเฉิน (STAT)
│ │ ├── 📝 สั่งยาด่วน
│ │ └── ⚡ ส่งตรงไปจุดจ่ายยา
│ │
│ ├── ✅ ตรวจสอบความปลอดภัย
│ │ ├── ⚠️ Drug Interaction Alert
│ │ ├── 🚫 Drug Allergy Alert
│ │ ├── ⚠️ Contraindication Alert
│ │ └── 🤰 Special Population Alert
│ │
│ └── 📊 รายการผู้ป่วยรอรับยา
│ ├── 👥 รายชื่อผู้ป่วย
│ ├── 🔍 ดูรายการยา
│ └── 📈 สถานะการจ่ายยา
│
├── 🏥 การสั่งยาผู้ป่วยใน (IPD)
│ ├── 📋 Continue Order (ยาต่อเนื่อง)
│ │ ├── 📝 สั่งยาต่อเนื่อง
│ │ ├── 📅 กำหนด Day-Dose
│ │ ├── 🕐 กำหนดเวลาจ่าย
│ │ └── ✏️ แก้ไข/หยุดยา
│ │
│ ├── 📋 One Day Order (ยารายวัน)
│ │ ├── 📝 สั่งยารายวัน
│ │ ├── 📅 กำหนดวันที่ใช้
│ │ └── 💾 บันทึกคำสั่ง
│ │
│ ├── 🚨 STAT Order (ยาเร่งด่วน)
│ │ ├── ⚡ สั่งยาทันที
│ │ ├── 🔔 แจ้งเตือนเภสัชกร
│ │ └── ✅ ยืนยันการรับคำสั่ง
│ │
│ ├── 🏠 ยากลับบ้าน (Discharge Medication)
│ │ ├── 📝 สั่งยากลับบ้าน
│ │ ├── 📅 กำหนดจำนวนวัน
│ │ ├── 💰 คำนวณราคา
│ │ └── 🖨️ พิมพ์ใบสั่งยา
│ │
│ ├── 📊 Medication Profile
│ │ ├── 📋 ดูประวัติการใช้ยา
│ │ ├── 📈 สรุปยาปัจจุบัน
│ │ ├── 🔄 Add Chart (สั่งซ้ำจาก Profile)
│ │ └── 🖨️ พิมพ์ Profile Sheet
│ │
│ ├── 🔙 การคืนยา
│ │ ├── 📝 บันทึกการคืนยา
│ │ ├── 💰 คำนวณเงินคืน
│ │ └── 📊 รายงานยาคืน
│ │
│ └── 🔬 ดูผล Lab ประกอบการสั่งยา
│ ├── 📊 ผล Lab ล่าสุด
│ ├── 📈 กราฟแนวโน้ม
│ └── ⚠️ Critical Value Alert
│
├── ✅ การตรวจสอบและจ่ายยา
│ ├── 🔍 Verify คำสั่งยา
│ │ ├── 📋 รายการรอตรวจสอบ
│ │ ├── ✅ ยืนยันคำสั่งยา
│ │ ├── ❌ ปฏิเสธคำสั่งยา
│ │ └── 💬 แจ้งปรึกษาแพทย์
│ │
│ ├── 💊 Dispense ยา (OPD)
│ │ ├── 📋 รายการรอจ่าย
│ │ ├── ✅ ยืนยันการจ่าย
│ │ ├── 🖨️ พิมพ์ฉลากยา
│ │ └── 📝 บันทึกการให้คำแนะนำ
│ │
│ ├── 🏥 Dispense ยา (IPD)
│ │ ├── 📋 รายการจ่ายยาประจำวัน
│ │ ├── 🛏️ จ่ายยาตามหอผู้ป่วย
│ │ ├── ✅ บันทึกการจ่ายทีละราย
│ │ └── 📊 สรุปการจ่ายยา
│ │
│ ├── ⚠️ ระบบตรวจสอบความปลอดภัย
│ │ ├── 💊 Drug-Drug Interaction
│ │ ├── 🚫 Drug-Allergy Check
│ │ ├── 🏥 Drug-Disease Interaction
│ │ ├── 🤰 Pregnancy Risk Category
│ │ ├── 🍼 Lactation Risk
│ │ ├── 👶 Pediatric Dosage Check
│ │ ├── 👴 Geriatric Dosage Check
│ │ └── 🩺 Renal/Hepatic Adjustment
│ │
│ └── 📊 รายงานการจ่ายยา
│ ├── 📈 สรุปการจ่ายยารายวัน
│ ├── 👥 รายงานตามเภสัชกร
│ ├── 🏥 รายงานตามแผนก
│ └── ⏱️ เวลาเฉลี่ยในการจ่ายยา
│
├── 🖨️ เอกสารและรายงาน
│ ├── 📄 ใบสั่งยา
│ │ ├── 🇹🇭 ใบสั่งยาภาษาไทย
│ │ ├── 🇬🇧 ใบสั่งยาภาษาอังกฤษ
│ │ └── 🖨️ พิมพ์ซ้ำ
│ │
│ ├── 🏷️ ฉลากยา
│ │ ├── 🇹🇭 ฉลากยาภาษาไทย
│ │ ├── 🇬🇧 ฉลากยาภาษาอังกฤษ
│ │ ├── 🖨️ พิมพ์ทุกรายการ
│ │ └── 🖨️ พิมพ์บางรายการ
│ │
│ ├── 📋 Medication Profile Sheet
│ │ ├── 📊 Profile ผู้ป่วยใน
│ │ └── 🖨️ พิมพ์ Profile
│ │
│ ├── 📜 หนังสือรับรองยานอกบัญชี
│ │ ├── 📝 สร้างหนังสือรับรอง
│ │ └── 🖨️ พิมพ์หนังสือ
│ │
│ └── 📊 รายงานต่างๆ
│ ├── 📈 รายงานสถิติการใช้ยา
│ ├── 💰 รายงานค่าใช้จ่ายยา
│ ├── ⚠️ รายงาน Drug Interaction
│ ├── 🚫 รายงานการแพ้ยา
│ ├── 👨⚕️ รายงานการสั่งยาตามแพทย์
│ ├── 🏥 รายงานการใช้ยาตามแผนก
│ ├── 💊 รายงานยาควบคุมพิเศษ
│ └── 📊 รายงานยอดจ่ายยา
│
└── ⚙️ การจัดการระบบ
├── 👥 จัดการผู้ใช้งาน
├── 🔐 กำหนดสิทธิ์การเข้าถึง
├── 📊 Audit Log
├── 🔄 ซิงค์ข้อมูลกับระบบอื่น
└── 🛠️ การตั้งค่าระบบ
2.2 Quick Access Menu
⚡ Quick Actions (สำหรับเภสัชกร)
├── 🔍 ค้นหาผู้ป่วยด่วน (HN/ชื่อ/เลขบัตร)
├── 📋 รายการรอตรวจสอบ (Pending Verification)
├── 💊 รายการรอจ่ายยา (Pending Dispensing)
├── 🚨 คำสั่งยา STAT ที่รอดำเนินการ
├── ⚠️ Drug Interaction Alert ที่ต้องตรวจสอบ
├── 🖨️ พิมพ์ฉลากยาด่วน
└── 📊 สถิติวันนี้ (จ่ายยา, Verify, คงค้าง)
2.3 Role-Based Menu
👨⚕️ เมนูสำหรับแพทย์
📋 Physician Menu
├── 💊 สั่งยา OPD
├── 🏥 สั่งยา IPD
├── 📋 Template ของฉัน
├── 🔄 RE-MED
├── 📊 Medication Profile
└── 🔬 ดูผล Lab
💊 เมนูสำหรับเภสัชกร
💊 Pharmacist Menu
├── ✅ Verify คำสั่งยา
├── 💊 Dispense ยา
├── 📚 จัดการข้อมูลยา
├── ⚠️ Drug Interaction Management
├── 🖨️ พิมพ์เอกสาร
├── 📊 รายงานและสถิติ
└── ⚙️ ตั้งค่าระบบ
🔬 เมนูสำหรับเจ้าหน้าที่เภสัชกรรม
🔬 Pharmacy Staff Menu
├── 💊 จ่ายยา (Dispense)
├── 🖨️ พิมพ์ฉลากยา
├── 📋 รับคำสั่งยา
├── 🔙 รับยาคืน
└── 📊 รายงานการจ่ายยา
3. User Journey และ Flow
3.1 Flow การสั่งยาผู้ป่วยนอก (OPD Prescription Flow)
flowchart TD
Start([เริ่มต้น]) --> CheckPatient[ตรวจสอบข้อมูลผู้ป่วย]
CheckPatient --> GetAllergy[ดึงข้อมูลการแพ้ยา<br/>จากระบบซักประวัติ 1.2.2]
GetAllergy --> GetRights[ตรวจสอบสิทธิการรักษา<br/>จากระบบตรวจสอบสิทธิ 1.2.15]
GetRights --> ChooseMethod{เลือกวิธีการสั่งยา}
ChooseMethod -->|รายการ| SearchDrug[🔍 ค้นหายา]
ChooseMethod -->|Template| SelectTemplate[📋 เลือก Template]
ChooseMethod -->|RE-MED| SelectPrevious[🔄 เลือกจากประวัติ]
SearchDrug --> AddDrug[➕ เพิ่มยาในรายการ]
SelectTemplate --> LoadTemplate[โหลด Template]
SelectPrevious --> LoadPrevious[โหลดรายการเดิม]
LoadTemplate --> AddDrug
LoadPrevious --> AddDrug
AddDrug --> EnterDetails[📝 ระบุรายละเอียด<br/>- จำนวน<br/>- วิธีใช้<br/>- Day-Dose]
EnterDetails --> CheckInteraction{ตรวจสอบ<br/>Drug Interaction}
CheckInteraction -->|พบ Interaction| ShowAlert[⚠️ แสดง Alert<br/>พร้อมระดับความรุนแรง]
CheckInteraction -->|ไม่พบ| CheckAllergy
ShowAlert --> DecideInteraction{ตัดสินใจ}
DecideInteraction -->|ยกเลิกยา| RemoveDrug[ลบยาออก]
DecideInteraction -->|ดำเนินการต่อ| LogOverride[บันทึก Override<br/>+ เหตุผล]
RemoveDrug --> AddMore{เพิ่มยาอื่น?}
LogOverride --> CheckAllergy
CheckAllergy{ตรวจสอบ<br/>การแพ้ยา}
CheckAllergy -->|แพ้| ShowAllergyAlert[🚫 แจ้งเตือนการแพ้<br/>ห้ามสั่ง]
CheckAllergy -->|ไม่แพ้| CheckContraindication
ShowAllergyAlert --> RemoveDrug
CheckContraindication{ตรวจสอบ<br/>ข้อห้ามใช้}
CheckContraindication -->|พบข้อห้าม| ShowContraAlert[⚠️ แจ้งเตือนข้อห้าม<br/>- ICD10 Contraindication<br/>- Pregnancy/Lactation<br/>- Pediatric Warning]
CheckContraindication -->|ไม่พบ| AddMore
ShowContraAlert --> DecideContra{ตัดสินใจ}
DecideContra -->|ยกเลิก| RemoveDrug
DecideContra -->|ดำเนินการต่อ| LogContraOverride[บันทึก Override + เหตุผล]
LogContraOverride --> AddMore
AddMore -->|ใช่| ChooseMethod
AddMore -->|ไม่| CalcPrice[💰 คำนวณราคาตามสิทธิ<br/>จากระบบตรวจสอบสิทธิ 1.2.15]
CalcPrice --> ReviewOrder[📋 ทบทวนคำสั่งยา]
ReviewOrder --> ConfirmOrder{ยืนยันคำสั่ง?}
ConfirmOrder -->|แก้ไข| ChooseMethod
ConfirmOrder -->|ยืนยัน| SaveOrder[💾 บันทึกคำสั่งยา]
SaveOrder --> PrintOption{พิมพ์เอกสาร?}
PrintOption -->|ใบสั่งยา| PrintRx[🖨️ พิมพ์ใบสั่งยา<br/>ไทย/อังกฤษ]
PrintOption -->|ฉลากยา| PrintLabel[🖨️ พิมพ์ฉลากยา<br/>ทั้งหมด/บางรายการ]
PrintOption -->|ทั้งสองอย่าง| PrintBoth[🖨️ พิมพ์ทั้งสอง]
PrintOption -->|ไม่พิมพ์| SendToQueue
PrintRx --> SendToQueue[📤 ส่งคำสั่งไปคิวจ่ายยา]
PrintLabel --> SendToQueue
PrintBoth --> SendToQueue
SendToQueue --> CheckNonFormulary{มียานอกบัญชี?}
CheckNonFormulary -->|ใช่| PrintCertificate[🖨️ พิมพ์หนังสือรับรอง<br/>ยานอกบัญชี]
CheckNonFormulary -->|ไม่| SendBilling
PrintCertificate --> SendBilling[💰 ส่งข้อมูลไประบบการเงิน<br/>1.2.14]
SendBilling --> NotifyPatient[🔔 แจ้งผู้ป่วย<br/>ไปชำระเงินและรอรับยา]
NotifyPatient --> End([เสร็จสิ้น])
style Start fill:#4caf50,stroke:#2e7d32,color:#fff
style End fill:#4caf50,stroke:#2e7d32,color:#fff
style ShowAlert fill:#ff9800,stroke:#e65100,color:#fff
style ShowAllergyAlert fill:#f44336,stroke:#c62828,color:#fff
style ShowContraAlert fill:#ff9800,stroke:#e65100,color:#fff
style CheckInteraction fill:#2196f3,stroke:#1565c0,color:#fff
style CheckAllergy fill:#2196f3,stroke:#1565c0,color:#fff
style CheckContraindication fill:#2196f3,stroke:#1565c0,color:#fff
3.2 Flow การสั่งยาผู้ป่วยใน (IPD Prescription Flow)
flowchart TD
Start([เริ่มต้น]) --> CheckAdmission[ตรวจสอบข้อมูล Admission<br/>จากระบบผู้ป่วยใน 1.2.17]
CheckAdmission --> GetProfile[ดึง Medication Profile<br/>ยาที่ใช้อยู่ปัจจุบัน]
GetProfile --> GetAllergy[ดึงข้อมูลการแพ้ยา<br/>จากระบบซักประวัติ 1.2.2]
GetAllergy --> CheckLab[ตรวจสอบผล Lab ล่าสุด<br/>จากระบบงานชันสูตร 1.2.7]
CheckLab --> SelectOrderType{เลือกประเภทคำสั่งยา}
SelectOrderType -->|Continue Order| ContinueOrder[📋 สั่งยาต่อเนื่อง]
SelectOrderType -->|One Day Order| OneDayOrder[📋 สั่งยารายวัน]
SelectOrderType -->|STAT Order| StatOrder[🚨 สั่งยาเร่งด่วน]
SelectOrderType -->|ยากลับบ้าน| DischargeOrder[🏠 สั่งยากลับบ้าน]
SelectOrderType -->|Add from Profile| AddChart[🔄 สั่งซ้ำจาก Profile]
ContinueOrder --> EnterContinue[📝 ระบุรายละเอียด<br/>- รายการยา<br/>- Dosage<br/>- Frequency<br/>- Day-Dose<br/>- Route<br/>- เวลาจ่าย]
OneDayOrder --> EnterOneDay[📝 ระบุรายละเอียด<br/>- รายการยา<br/>- Dosage<br/>- วันที่ใช้<br/>- เวลาจ่าย]
StatOrder --> EnterStat[📝 ระบุรายละเอียด<br/>- รายการยา<br/>- Dosage<br/>- เร่งด่วนทันที]
DischargeOrder --> EnterDischarge[📝 ระบุรายละเอียด<br/>- รายการยา<br/>- จำนวนวัน<br/>- วิธีใช้]
AddChart --> SelectFromProfile[☑️ เลือกยาจาก Profile]
EnterContinue --> CheckSafety[🔍 ตรวจสอบความปลอดภัย]
EnterOneDay --> CheckSafety
EnterStat --> CheckSafety
EnterDischarge --> CheckSafety
SelectFromProfile --> CheckSafety
CheckSafety --> RunChecks{ตรวจสอบ}
RunChecks -->|Drug Interaction| InteractionCheck[⚠️ ตรวจสอบกับยาปัจจุบัน<br/>+ ยาย้อนหลัง]
RunChecks -->|Drug Allergy| AllergyCheck[🚫 ตรวจสอบการแพ้]
RunChecks -->|Contraindication| ContraCheck[⚠️ ตรวจสอบข้อห้าม]
RunChecks -->|Dosage Check| DosageCheck[💊 ตรวจสอบขนาดยา<br/>- Adult/Pediatric/Geriatric<br/>- Renal/Hepatic Dose<br/>- Max Daily Dose]
InteractionCheck --> CheckResult{พบปัญหา?}
AllergyCheck --> CheckResult
ContraCheck --> CheckResult
DosageCheck --> CheckResult
CheckResult -->|พบ| ShowWarning[⚠️ แสดงคำเตือน<br/>และแนะนำการแก้ไข]
CheckResult -->|ไม่พบ| AddMore
ShowWarning --> DecideAction{ดำเนินการ}
DecideAction -->|แก้ไข| SelectOrderType
DecideAction -->|Override| LogReason[📝 บันทึกเหตุผล<br/>Override]
DecideAction -->|ยกเลิก| Cancelled([ยกเลิก])
LogReason --> AddMore{เพิ่มยาอื่น?}
AddMore -->|ใช่| SelectOrderType
AddMore -->|ไม่| ReviewIPDOrder[📋 ทบทวนคำสั่งยา IPD]
ReviewIPDOrder --> ConfirmIPD{ยืนยัน?}
ConfirmIPD -->|แก้ไข| SelectOrderType
ConfirmIPD -->|ยืนยัน| SaveIPDOrder[💾 บันทึกคำสั่งยา]
SaveIPDOrder --> UpdateProfile[📊 อัปเดต Medication Profile<br/>ในระบบผู้ป่วยใน 1.2.17]
UpdateProfile --> CheckType{ประเภทคำสั่ง}
CheckType -->|STAT| NotifyPharmUrgent[🔔 แจ้งเตือนเภสัชกรทันที<br/>ด่วนที่สุด]
CheckType -->|Continue/One Day| ScheduleDispense[📅 กำหนดตารางจ่ายยา]
CheckType -->|ยากลับบ้าน| SendToOPDPharm[📤 ส่งไปเภสัชกรรม OPD]
NotifyPharmUrgent --> End([เสร็จสิ้น])
ScheduleDispense --> End
SendToOPDPharm --> CalcDischargePrice[💰 คำนวณราคา<br/>ส่งไประบบการเงิน 1.2.14]
CalcDischargePrice --> End
style Start fill:#4caf50,stroke:#2e7d32,color:#fff
style End fill:#4caf50,stroke:#2e7d32,color:#fff
style Cancelled fill:#f44336,stroke:#c62828,color:#fff
style ShowWarning fill:#ff9800,stroke:#e65100,color:#fff
style NotifyPharmUrgent fill:#ff5722,stroke:#d84315,color:#fff
style CheckSafety fill:#2196f3,stroke:#1565c0,color:#fff
3.3 Flow การตรวจสอบและจ่ายยา (Verification & Dispensing Flow)
flowchart TD
Start([เริ่มต้น]) --> PharmLogin[เภสัชกรเข้าสู่ระบบ]
PharmLogin --> CheckQueue[ตรวจสอบคิวรอตรวจสอบ<br/>และรอจ่ายยา]
CheckQueue --> SelectPatient[เลือกผู้ป่วยจากรายการ]
SelectPatient --> ViewOrder[ดูรายละเอียดคำสั่งยา]
ViewOrder --> ViewPatientInfo[ดูข้อมูลผู้ป่วย<br/>HN ชื่อ อายุ เพศ<br/>สิทธิ การแพ้ยา]
ViewPatientInfo --> ViewMedHistory[ดูประวัติการใช้ยา<br/>OPD History, IPD Profile, ผล Lab]
ViewMedHistory --> VerifyProcess[กระบวนการ Verify]
VerifyProcess --> CheckDrug[ตรวจสอบยาถูกต้อง]
CheckDrug --> CheckDose[ตรวจสอบขนาดยาเหมาะสม]
CheckDose --> CheckRoute[ตรวจสอบ Route ถูกต้อง]
CheckRoute --> CheckDuration[ตรวจสอบระยะเวลาเหมาะสม]
CheckDuration --> AllCorrect{ทุกอย่างถูกต้อง?}
AllCorrect -->|ใช่| RunSafetyCheck[ตรวจสอบความปลอดภัยอีกครั้ง]
AllCorrect -->|ไม่| ConsultDoctor[ปรึกษาแพทย์ผู้สั่ง]
RunSafetyCheck --> InterCheck[ตรวจสอบอันตรกิริยา]
InterCheck --> AllerCheck[ตรวจสอบการแพ้]
AllerCheck --> ContCheck[ตรวจสอบข้อห้าม]
ContCheck --> SafetyResult{พบปัญหา?}
SafetyResult -->|พบปัญหาร้ายแรง| RejectOrder[ปฏิเสธคำสั่งยา]
SafetyResult -->|พบปัญหาเล็กน้อย| ConsultDoctor
SafetyResult -->|ไม่พบปัญหา| ApproveOrder[อนุมัติคำสั่งยา]
RejectOrder --> LogReject[บันทึกเหตุผลการปฏิเสธ]
LogReject --> NotifyDoctor[แจ้งแพทย์ผู้สั่ง]
NotifyDoctor --> End1([สิ้นสุด - รอแพทย์แก้ไข])
ConsultDoctor --> DoctorResponse{แพทย์ตอบกลับ}
DoctorResponse -->|แก้ไขคำสั่ง| ViewOrder
DoctorResponse -->|ยืนยันดำเนินการต่อ| LogConsult[บันทึกการปรึกษา]
DoctorResponse -->|ยกเลิก| LogReject
LogConsult --> ApproveOrder
ApproveOrder --> MarkVerified[ทำเครื่องหมาย Verified<br/>บันทึกชื่อเภสัชกร เวลา]
MarkVerified --> CheckPatientType{ประเภทผู้ป่วย}
CheckPatientType -->|OPD| WaitPayment[รอผู้ป่วยชำระเงิน<br/>ที่ระบบการเงิน 1.2.14]
CheckPatientType -->|IPD| DirectDispense[ไปกระบวนการจ่ายยาเลย]
WaitPayment --> PaymentDone{ชำระเงินแล้ว?}
PaymentDone -->|ยังไม่| WaitPayment
PaymentDone -->|แล้ว| StartDispense[เริ่มกระบวนการจ่ายยา]
DirectDispense --> StartDispense
StartDispense --> PrepareDrug[เตรียมยา<br/>ดึงยา ตรวจนับ<br/>ตรวจสอบ Lot Expire]
PrepareDrug --> PrintLabels[พิมพ์ฉลากยา ไทย อังกฤษ]
PrintLabels --> AttachLabels[ติดฉลากยา<br/>คำแนะนำการใช้]
AttachLabels --> DoubleCheck[Double Check<br/>โดยเภสัชกรคนที่ 2<br/>หรือเจ้าหน้าที่]
DoubleCheck --> CheckOK{ถูกต้อง?}
CheckOK -->|ไม่| FixError[แก้ไขข้อผิดพลาด]
CheckOK -->|ใช่| PackageDrug[บรรจุยาในถุง กล่อง]
FixError --> DoubleCheck
PackageDrug --> GiveCounseling[ให้คำแนะนำผู้ป่วย<br/>วิธีใช้ เวลารับประทาน<br/>ผลข้างเคียง ข้อควรระวัง]
GiveCounseling --> MarkDispensed[บันทึกการจ่ายยา<br/>บันทึกชื่อผู้จ่าย เวลา]
MarkDispensed --> HandOverDrug[ส่งมอบยาให้ผู้ป่วย<br/>หรือพยาบาล IPD]
HandOverDrug --> GetSignature[ขอลายเซ็นผู้รับยา]
GetSignature --> PrintReceipt[พิมพ์ใบเสร็จการรับยา<br/>พิมพ์ใบสั่งยา ถ้าต้องการ]
PrintReceipt --> UpdateStock[อัปเดตสต็อก<br/>ถ้ามีระบบคลัง]
UpdateStock --> LogComplete[บันทึกเสร็จสมบูรณ์<br/>ใน Audit Log]
LogComplete --> End2([เสร็จสิ้น])
style Start fill:#4caf50,stroke:#2e7d32,color:#fff
style End1 fill:#f44336,stroke:#c62828,color:#fff
style End2 fill:#4caf50,stroke:#2e7d32,color:#fff
style RejectOrder fill:#f44336,stroke:#c62828,color:#fff
style ApproveOrder fill:#4caf50,stroke:#2e7d32,color:#fff
style ConsultDoctor fill:#ff9800,stroke:#e65100,color:#fff
style MarkVerified fill:#2196f3,stroke:#1565c0,color:#fff
style MarkDispensed fill:#2196f3,stroke:#1565c0,color:#fff
4. หน้าจอระบบย่อย
หน้าจอระบบย่อยทั้งหมดมีรายละเอียดครบถ้วน ครอบคลุมทุกฟังก์ชันตาม TOR และแสดงแบบ Wireframe ที่ดูได้ใน:
📄 Wireframe.md - รายละเอียดหน้าจอทั้งหมด
สรุปกลุ่มหน้าจอหลัก
4.1 กลุ่มหน้าจอการจัดการข้อมูลพื้นฐาน
- หน้าจัดการทะเบียนยาและเวชภัณฑ์ - จัดการข้อมูลยาครบถ้วนตาม TOR 1.2.13.1
- หน้าเพิ่ม/แก้ไขทะเบียนยา (Modal) - ฟอร์มรายละเอียดยาแบบครบถ้วน
- หน้าจัดการ Drug Interaction - จัดการอันตรกิริยาระหว่างยา
- หน้าจัดการ Template ชุดยา - สร้างและจัดการชุดยาสำเร็จรูป
- หน้าตั้งค่า Master Data - หมวดหมู่ยา, รูปแบบเภสัช, ยาควบคุม
4.2 กลุ่มหน้าจอการสั่งยาผู้ป่วยนอก (OPD)
- หน้าสั่งยา OPD - แบบรายการ - สั่งยาทีละรายการพร้อมตรวจสอบความปลอดภัย
- หน้าสั่งยา OPD - Template - เลือกและปรับแต่ง Template
- หน้า RE-MED - สั่งยาซ้ำจากประวัติ
- หน้ารายการผู้ป่วยรอรับยา - แสดงคิวและสถานะ
4.3 กลุ่มหน้าจอการสั่งยาผู้ป่วยใน (IPD)
- หน้าสั่งยา Continue Order - สั่งยาต่อเนื่องพร้อมกำหนด Day-Dose
- หน้าสั่งยา One Day Order - สั่งยารายวัน
- หน้าสั่งยา STAT Order - สั่งยาเร่งด่วนทันที
- หน้าสั่งยากลับบ้าน - สั่งยา Discharge Medication
- หน้า Medication Profile - ดูและจัดการประวัติการใช้ยา IPD
- หน้าบันทึกการคืนยา - จัดการยาคืนและคำนวณเงินคืน
4.4 กลุ่มหน้าจอการตรวจสอบและจ่ายยา
- หน้า Verify คำสั่งยา - ตรวจสอบและอนุมัติคำสั่งยาโดยเภสัชกร
- หน้า Dispense ยา OPD - จ่ายยาผู้ป่วยนอกพร้อมให้คำแนะนำ
- หน้า Dispense ยา IPD - จ่ายยาผู้ป่วยในตามหอผู้ป่วย
- หน้าตรวจสอบความปลอดภัย - แสดง Alert และคำเตือนต่างๆ
- หน้ารายงานการจ่ายยา - สรุปและสถิติการจ่ายยา
4.5 กลุ่มหน้าจอการพิมพ์เอกสาร
- หน้าพิมพ์ใบสั่งยา - ไทย/อังกฤษ พร้อม Preview
- หน้าพิมพ์ฉลากยา - ไทย/อังกฤษ ทั้งหมด/บางรายการ
- หน้าพิมพ์ Medication Profile - สำหรับผู้ป่วยใน
- หน้าพิมพ์หนังสือรับรองยานอกบัญชี - เอกสารรับรอง NLEM
4.6 กลุ่มหน้าจอรายงาน
- หน้ารายงานสถิติการใช้ยา - รายงานตามช่วงเวลา
- หน้ารายงานค่าใช้จ่ายยา - รายงานตามสิทธิ/แผนก
- หน้ารายงาน Drug Interaction - รายงานการเตือนและ Override
- หน้ารายงานยาควบคุมพิเศษ - รายงานยา Narcotic และควบคุม
- Dashboard และสถิติ - แสดงภาพรวมการทำงาน
Key Features ในหน้าจอ
🔑 ฟีเจอร์สำคัญที่มีในทุกหน้าจอที่เกี่ยวข้อง:
✅ ระบบตรวจสอบความปลอดภัย
├── Drug-Drug Interaction Alert
├── Drug Allergy Alert
├── Contraindication Alert
├── Pregnancy/Lactation Warning
├── Pediatric/Geriatric Dosage Check
└── Renal/Hepatic Dose Adjustment
✅ การแสดงข้อมูลผู้ป่วยครบถ้วน
├── ข้อมูลพื้นฐาน (HN, ชื่อ, อายุ, เพศ, น้ำหนัก)
├── สิทธิการรักษา
├── การแพ้ยา
├── โรคประจำตัว
└── ประวัติการใช้ยา
✅ การคำนวณราคาอัตโนมัติ
├── ราคาตามสิทธิ
├── Copayment
├── ยอดชำระจริง
└── ยอดส่งเบิก
✅ Audit Trail และ Log
├── บันทึกผู้ทำรายการ
├── เวลาที่ทำ
├── การแก้ไข/ยกเลิก
└── เหตุผล Override
การนำทางระหว่างหน้าจอ
graph LR
A[Dashboard] --> B[สั่งยา OPD]
A --> C[สั่งยา IPD]
A --> D[Verify & Dispense]
B --> E[Verify Queue]
C --> E
E --> F[Dispense Queue]
F --> G[พิมพ์เอกสาร]
A --> H[จัดการข้อมูลยา]
A --> I[รายงาน]
style A fill:#fff3e0,stroke:#f57c00
style E fill:#e3f2fd,stroke:#1565c0
style F fill:#e8f5e9,stroke:#388e3c
style G fill:#f3e5f5,stroke:#7b1fa2
5. การเชื่อมโยงระบบ
5.1 ภาพรวมการเชื่อมโยง
ระบบเภสัชกรรมทำหน้าที่เป็น Pharmacy Hub System ที่เชื่อมโยงกับระบบอื่นๆ ทั้งหมด 9 ระบบ ผ่าน API Integration
graph TB
subgraph "Input Systems - ส่งข้อมูลเข้าระบบเภสัชกรรม"
MR[1.2.1 ระบบเวชระเบียน]
HIST[1.2.2 ระบบซักประวัติ]
EXAM[1.2.3 ระบบห้องตรวจแพทย์]
ER[1.2.4 ระบบห้องฉุกเฉิน]
DENT[1.2.5 ระบบทันตกรรม]
APPT[1.2.6 ระบบนัดหมาย]
LAB[1.2.7 ระบบงานชันสูตร]
RIGHT[1.2.15 ระบบตรวจสอบสิทธิ]
IPD_SYS[1.2.17 ระบบผู้ป่วยใน]
end
PHARM[💊 1.2.13<br/>ระบบเภสัชกรรม<br/>Pharmacy Hub]
subgraph "Output Systems - รับข้อมูลจากระบบเภสัชกรรม"
FIN[1.2.14 ระบบการเงิน]
end
MR -->|Patient Info<br/>Visit Data| PHARM
HIST -->|Drug Allergy<br/>Medical History| PHARM
EXAM -->|OPD Orders<br/>Diagnosis| PHARM
ER -->|STAT Orders<br/>Emergency Data| PHARM
DENT -->|Dental Orders| PHARM
APPT -->|Appointment Date<br/>Next Visit| PHARM
LAB -->|Lab Results| PHARM
RIGHT -->|Rights Data<br/>Pricing Rules| PHARM
IPD_SYS -->|IPD Orders<br/>Medication Profile| PHARM
PHARM -->|Drug Charges<br/>Billing Data| FIN
style PHARM fill:#fff3e0,stroke:#f57c00,stroke-width:4px
style MR fill:#e3f2fd,stroke:#1565c0
style HIST fill:#f3e5f5,stroke:#7b1fa2
style EXAM fill:#e8f5e9,stroke:#388e3c
style ER fill:#ffebee,stroke:#c62828
style DENT fill:#e0f2f1,stroke:#00796b
style APPT fill:#fff9c4,stroke:#f57f17
style LAB fill:#e1f5fe,stroke:#0277bd
style RIGHT fill:#fce4ec,stroke:#c2185b
style IPD_SYS fill:#ede7f6,stroke:#5e35b1
style FIN fill:#f1f8e9,stroke:#558b2f
5.2 รายละเอียดการเชื่อมโยงแต่ละระบบ
5.2.1 🔗 ระบบเวชระเบียน (1.2.1)
ทิศทาง: Input → Pharmacy Hub
ประเภท: REST API / Real-time
วัตถุประสงค์: ดึงข้อมูลผู้ป่วยหลักและการเข้ารับบริการ
ข้อมูลที่รับ:
{
"patient": {
"HN": "123456",
"fullName": "นายสมชาย ใจดี",
"birthDate": "1980-05-15",
"age": 45,
"gender": "M",
"weight": 70.5,
"height": 170,
"idCard": "1234567890123",
"address": "123 ถ.สุขุมวิท แขวง...",
"phone": "0812345678"
},
"visit": {
"visitID": "V2568-001234",
"visitDate": "2024-10-30T10:30:00",
"visitType": "OPD",
"department": "ห้องตรวจอายุรกรรม",
"chiefComplaint": "ปวดหัว ไข้"
}
}
API Endpoints:
- GET /api/patient/{HN} - ดึงข้อมูลผู้ป่วย
- GET /api/visit/{visitID} - ดึงข้อมูลการเข้ารับบริการ
- GET /api/patient/{HN}/visits - ดูประวัติการมารักษา
Trigger Events: - เมื่อแพทย์เปิดหน้าสั่งยา - เมื่อเภสัชกรเปิดหน้า Verify คำสั่งยา
5.2.2 🔗 ระบบซักประวัติ (1.2.2)
ทิศทาง: Input → Pharmacy Hub
ประเภท: REST API / Real-time
วัตถุประสงค์: ดึงข้อมูลการแพ้ยาและประวัติสุขภาพ
ข้อมูลที่รับ:
{
"HN": "123456",
"drugAllergies": [
{
"allergyID": "A001",
"drugName": "Penicillin",
"drugGroup": "Beta-lactam Antibiotics",
"reaction": "ผื่นแดง, คัน",
"severity": "Moderate",
"recordDate": "2023-05-10",
"recordBy": "นพ.สมศักดิ์"
}
],
"chronicDiseases": [
{
"icd10": "I10",
"diseaseName": "Essential hypertension",
"diagnosedDate": "2020-01-15",
"currentMedication": ["Amlodipine 5mg"]
}
],
"vitalSigns": {
"weight": 70.5,
"height": 170,
"bmi": 24.4,
"bp": "130/85",
"pulse": 78,
"temp": 37.2,
"recordDate": "2024-10-30T10:00:00"
}
}
API Endpoints:
- GET /api/allergy/patient/{HN} - ดึงรายการยาที่แพ้
- GET /api/chronic-disease/patient/{HN} - ดึงโรคประจำตัว
- GET /api/vital-signs/patient/{HN}/latest - ดึงสัญญาณชีพล่าสุด
Trigger Events: - เมื่อแพทย์เพิ่มยาในใบสั่ง → ตรวจสอบการแพ้อัตโนมัติ - เมื่อเภสัชกร Verify คำสั่งยา → แสดงประวัติการแพ้
5.2.3 🔗 ระบบห้องตรวจแพทย์ (1.2.3)
ทิศทาง: Input → Pharmacy Hub
ประเภท: REST API / Real-time
วัตถุประสงค์: รับคำสั่งยาจากแพทย์ผู้ตรวจ OPD
ข้อมูลที่รับ:
{
"examinationID": "EX2024-001234",
"visitID": "V2568-001234",
"HN": "123456",
"doctorID": "D001",
"doctorName": "นพ.สมศักดิ์ รักษาชีพ",
"department": "อายุรกรรม",
"diagnosis": [
{
"icd10": "R51",
"diagnosisName": "Headache",
"isPrimary": true
}
],
"prescriptionOrders": [
{
"drugCode": "D001",
"drugName": "Paracetamol 500mg",
"quantity": 60,
"unit": "เม็ด",
"dosage": "2 เม็ด",
"frequency": "วันละ 3 ครั้ง",
"route": "PO",
"duration": 7,
"instruction": "หลังอาหาร",
"orderDateTime": "2024-10-30T11:00:00"
}
]
}
API Endpoints:
- POST /api/prescription/opd - ส่งคำสั่งยา OPD
- PUT /api/prescription/{prescriptionID} - แก้ไขคำสั่งยา
- DELETE /api/prescription/{prescriptionID} - ยกเลิกคำสั่งยา
Trigger Events: - เมื่อแพทย์กดบันทึกคำสั่งยา → ส่งไประบบเภสัชกรรม - เมื่อแพทย์แก้ไขคำสั่งยา → อัปเดตในระบบเภสัชกรรม
5.2.4 🔗 ระบบห้องฉุกเฉิน (1.2.4)
ทิศทาง: Input → Pharmacy Hub
ประเภท: REST API / Real-time + WebSocket (STAT Orders)
วัตถุประสงค์: รับคำสั่งยาฉุกเฉิน STAT/ASAP
ข้อมูลที่รับ:
{
"emergencyCaseID": "ER2024-001234",
"HN": "123456",
"triageLevel": "Urgent",
"doctorID": "D002",
"prescriptionOrders": [
{
"drugCode": "D050",
"drugName": "Adrenaline 1mg/ml",
"quantity": 5,
"unit": "แอมพูล",
"priority": "STAT",
"orderDateTime": "2024-10-30T14:30:00",
"urgencyNote": "ช็อกจากยา ต้องการทันที"
}
]
}
API Endpoints:
- POST /api/prescription/emergency - ส่งคำสั่งยาฉุกเฉิน
- WebSocket /ws/stat-alerts - แจ้งเตือน STAT Order แบบ Real-time
Trigger Events: - เมื่อแพทย์ ER สั่งยา STAT → WebSocket แจ้งเตือนเภสัชกรทันที - สถานะคำสั่งเปลี่ยน → อัปเดต Real-time
5.2.5 🔗 ระบบทันตกรรม (1.2.5)
ทิศทาง: Input → Pharmacy Hub
ประเภท: REST API / Real-time
วัตถุประสงค์: รับคำสั่งยาจากทันตแพทย์
ข้อมูลที่รับ:
{
"dentalVisitID": "DV2024-001234",
"HN": "123456",
"dentistID": "DT001",
"dentistName": "ทพ.สมชาย ดูแลฟัน",
"treatment": "ถอนฟัน",
"prescriptionOrders": [
{
"drugCode": "D030",
"drugName": "Amoxicillin 500mg",
"quantity": 21,
"duration": 7,
"instruction": "หลังอาหาร 3 ครั้ง"
}
]
}
API Endpoints:
- POST /api/prescription/dental - ส่งคำสั่งยาทันตกรรม
5.2.6 🔗 ระบบนัดหมาย (1.2.6)
ทิศทาง: Input → Pharmacy Hub
ประเภท: REST API
วัตถุประสงค์: ดึงข้อมูลวันนัดเพื่อคำนวณจำนวนยา
ข้อมูลที่รับ:
{
"HN": "123456",
"visitID": "V2568-001234",
"nextAppointment": {
"appointmentDate": "2024-11-15",
"daysUntilNext": 16,
"appointmentType": "ตรวจติดตาม",
"department": "อายุรกรรม"
}
}
API Endpoints:
- GET /api/appointment/patient/{HN}/next - ดูนัดหมายครั้งถัดไป
การใช้งาน: - คำนวณจำนวนยาอัตโนมัติให้พอถึงวันนัด - แจ้งเตือนหากยาไม่พอถึงวันนัด
5.2.7 🔗 ระบบงานชันสูตร (1.2.7)
ทิศทาง: Input → Pharmacy Hub
ประเภท: REST API
วัตถุประสงค์: ดูผล Lab ประกอบการสั่งยา
ข้อมูลที่รับ:
{
"HN": "123456",
"labResults": [
{
"labCode": "CRE",
"labName": "Creatinine",
"result": 1.5,
"unit": "mg/dL",
"referenceRange": "0.6-1.2",
"status": "High",
"resultDate": "2024-10-29"
},
{
"labCode": "eGFR",
"labName": "Estimated GFR",
"result": 45,
"unit": "mL/min/1.73m²",
"status": "Low",
"resultDate": "2024-10-29"
}
]
}
API Endpoints:
- GET /api/lab-results/patient/{HN}/latest - ดูผล Lab ล่าสุด
- GET /api/lab-results/patient/{HN}?labCode={code} - ดูผล Lab เฉพาะรายการ
การใช้งาน: - แสดงผล Lab เมื่อสั่งยาที่ต้องปรับขนาดตามไต/ตับ - แจ้งเตือนหากผล Lab ผิดปกติและควรระวังการใช้ยา
5.2.8 🔗 ระบบการเงิน (1.2.14)
ทิศทาง: Output ← Pharmacy Hub
ประเภท: REST API / Real-time
วัตถุประสงค์: ส่งข้อมูลค่าใช้จ่ายยาเพื่อออกบิล
ข้อมูลที่ส่ง:
{
"prescriptionID": "RX2024-001234",
"visitID": "V2568-001234",
"HN": "123456",
"rightCode": "UC",
"billingItems": [
{
"itemCode": "D001",
"itemName": "Paracetamol 500mg",
"quantity": 60,
"unitPrice": 3.00,
"totalPrice": 180.00,
"discountByRight": 180.00,
"copayment": 30.00,
"patientPay": 30.00,
"itemCategory": "ยา"
}
],
"summary": {
"totalAmount": 180.00,
"discountAmount": 180.00,
"copayAmount": 30.00,
"patientPayAmount": 30.00
},
"billingDate": "2024-10-30T11:30:00"
}
API Endpoints:
- POST /api/billing/pharmacy - ส่งรายการค่าใช้จ่าย
- PUT /api/billing/pharmacy/{prescriptionID} - อัปเดตรายการ
- DELETE /api/billing/pharmacy/{prescriptionID} - ยกเลิกรายการ
Trigger Events: - เมื่อแพทย์บันทึกคำสั่งยา → ส่งข้อมูลค่ายาไประบบการเงิน - เมื่อยกเลิก/แก้ไขคำสั่งยา → อัปเดตข้อมูลในระบบการเงิน
5.2.9 🔗 ระบบตรวจสอบสิทธิ (1.2.15)
ทิศทาง: Input → Pharmacy Hub
ประเภท: REST API
วัตถุประสงค์: ดึงข้อมูลสิทธิและกำหนดราคา
ข้อมูลที่รับ:
{
"HN": "123456",
"rightInfo": {
"rightCode": "UC",
"rightName": "หลักประกันสุขภาพถ้วนหน้า",
"mainCode": "1234567890123",
"hospitalCode": "12345",
"validFrom": "2024-01-01",
"validTo": "2024-12-31",
"copayment": 30.00
},
"pricingRules": {
"drugInFormulary": {
"patientPay": 0,
"copayment": 30.00
},
"drugOutFormulary": {
"patientPay": "fullPrice",
"requireApproval": true
}
}
}
API Endpoints:
- GET /api/rights/patient/{HN} - ดึงข้อมูลสิทธิ
- POST /api/rights/calculate-price - คำนวณราคาตามสิทธิ
การใช้งาน: - แสดงสิทธิในหน้าสั่งยา - คำนวณราคายาตามสิทธิอัตโนมัติ - แจ้งเตือนยานอกบัญชีที่ต้องชำระเอง
5.2.10 🔗 ระบบผู้ป่วยใน (1.2.17)
ทิศทาง: Bi-directional ⇄ Pharmacy Hub
ประเภท: REST API / Real-time
วัตถุประสงค์: รับ/ส่งคำสั่งยา IPD และ Medication Profile
ข้อมูลที่รับ:
{
"admissionID": "AD2024-001234",
"HN": "123456",
"AN": "AN2024-5678",
"ward": "หอผู้ป่วยอายุรกรรม",
"bed": "A-101",
"admissionDate": "2024-10-28",
"doctorInCharge": "นพ.สมศักดิ์",
"ipdOrders": [
{
"orderType": "Continue",
"drugCode": "D001",
"drugName": "Paracetamol 500mg",
"dosage": "2 เม็ด",
"frequency": "q8h",
"route": "PO",
"startDate": "2024-10-28",
"stopDate": null,
"administrationTimes": ["08:00", "16:00", "00:00"]
}
]
}
ข้อมูลที่ส่ง (Medication Profile):
{
"admissionID": "AD2024-001234",
"medicationProfile": [
{
"date": "2024-10-30",
"medications": [
{
"time": "08:00",
"drugName": "Paracetamol 500mg",
"dosage": "2 เม็ด",
"route": "PO",
"administeredBy": "พย.สมหญิง",
"status": "Given"
}
]
}
]
}
API Endpoints:
- GET /api/ipd/admission/{admissionID}/orders - ดูคำสั่งยา IPD
- POST /api/ipd/medication-profile - บันทึกการจ่ายยา IPD
- GET /api/ipd/admission/{admissionID}/profile - ดู Medication Profile
5.3 Data Flow Sequence
5.3.1 Flow: การสั่งยา OPD จนถึงการชำระเงิน
sequenceDiagram
participant Doc as แพทย์
participant MR as 1.2.1 เวชระเบียน
participant HIST as 1.2.2 ซักประวัติ
participant PHARM as 1.2.13 เภสัชกรรม
participant RIGHT as 1.2.15 ตรวจสอบสิทธิ
participant FIN as 1.2.14 การเงิน
Doc->>MR: เปิดข้อมูลผู้ป่วย
MR-->>Doc: ส่งข้อมูลผู้ป่วย
Doc->>PHARM: เปิดหน้าสั่งยา
PHARM->>HIST: ขอข้อมูลการแพ้ยา
HIST-->>PHARM: ส่งรายการยาที่แพ้
PHARM->>RIGHT: ขอข้อมูลสิทธิ
RIGHT-->>PHARM: ส่งข้อมูลสิทธิ
Doc->>PHARM: เพิ่มยาในรายการ
PHARM->>PHARM: ตรวจสอบ Drug Interaction
PHARM->>PHARM: ตรวจสอบการแพ้ยา
PHARM-->>Doc: แสดงคำเตือน (ถ้ามี)
Doc->>PHARM: บันทึกคำสั่งยา
PHARM->>RIGHT: คำนวณราคาตามสิทธิ
RIGHT-->>PHARM: ส่งราคาที่คำนวณ
PHARM->>FIN: ส่งข้อมูลค่ายา
FIN-->>PHARM: ยืนยันรับข้อมูล
PHARM-->>Doc: บันทึกสำเร็จ
Note over PHARM,FIN: ผู้ป่วยไปชำระเงินที่ระบบการเงิน
5.3.2 Flow: การสั่งยา IPD และอัปเดต Profile
sequenceDiagram
participant Doc as แพทย์
participant IPD_SYS as 1.2.17 ผู้ป่วยใน
participant PHARM as 1.2.13 เภสัชกรรม
participant LAB as 1.2.7 ชันสูตร
participant Nurse as พยาบาล
Doc->>IPD_SYS: เปิด Admission
IPD_SYS-->>Doc: ส่งข้อมูล Admission
Doc->>PHARM: สั่งยา Continue Order
PHARM->>LAB: ขอผล Lab
LAB-->>PHARM: ส่งผล Lab
PHARM->>PHARM: ตรวจสอบความปลอดภัย
PHARM-->>Doc: แสดงคำเตือน (ถ้ามี)
Doc->>PHARM: บันทึกคำสั่งยา
PHARM->>IPD_SYS: อัปเดต Medication Profile
IPD_SYS-->>PHARM: ยืนยันอัปเดต
Note over Nurse,PHARM: เวลาจ่ายยา
Nurse->>PHARM: บันทึกการจ่ายยา
PHARM->>IPD_SYS: อัปเดต Profile (จ่ายแล้ว)
IPD_SYS-->>PHARM: ยืนยัน
5.4 Error Handling และ Retry Mechanism
5.4.1 การจัดการเมื่อระบบเชื่อมโยงขัดข้อง
สถานการณ์: ระบบตรวจสอบสิทธิ (1.2.15) ไม่ตอบสนอง
1. ⚠️ ระบบแจ้งเตือนแพทย์
"ไม่สามารถตรวจสอบสิทธิได้ในขณะนี้"
2. 💾 ใช้ข้อมูลสิทธิล่าสุดที่มีในแคช
3. 📝 บันทึก Fallback Log
- บันทึกว่าใช้ข้อมูลแคช
- ระบุเวลาที่เกิดปัญหา
4. 🔄 Retry Mechanism
- พยายามเชื่อมต่อใหม่ทุก 30 วินาที
- สูงสุด 3 ครั้ง
5. 📧 แจ้งเตือนผู้ดูแลระบบ
- ส่ง Email/SMS เมื่อ Retry ครบ 3 ครั้ง
5.4.2 Timeout Configuration
| ระบบที่เชื่อมต่อ | Timeout | Retry | Cache Duration |
|---|---|---|---|
| ระบบเวชระเบียน | 5 วินาที | 2 ครั้ง | 5 นาที |
| ระบบซักประวัติ | 3 วินาที | 2 ครั้ง | 10 นาที |
| ระบบตรวจสอบสิทธิ | 10 วินาที | 3 ครั้ง | 30 นาที |
| ระบบงานชันสูตร | 5 วินาที | 2 ครั้ง | 1 ชั่วโมง |
| ระบบการเงิน | 3 วินาที | 3 ครั้ง | ไม่แคช |
5.5 Security และ Authentication
5.5.1 การยืนยันตัวตน (Authentication)
🔐 JWT Token Based Authentication
1. User Login → ได้ Access Token
2. ทุก API Request ต้องแนบ Token ใน Header:
Authorization: Bearer <token>
3. Token Expiration: 8 ชั่วโมง
4. Refresh Token: 30 วัน
5.5.2 การควบคุมสิทธิ์ (Authorization)
👤 Role-Based Access Control (RBAC)
แพทย์:
✅ อ่านข้อมูลผู้ป่วย
✅ สั่งยา OPD/IPD
✅ แก้ไขคำสั่งยาของตนเอง
❌ แก้ไขคำสั่งยาของแพทย์อื่น
เภสัชกร:
✅ อ่านข้อมูลผู้ป่วย
✅ จัดการข้อมูลยา
✅ Verify คำสั่งยาทั้งหมด
✅ Dispense ยา
⚠️ Override คำเตือน (ต้องระบุเหตุผล)
เจ้าหน้าที่เภสัชกรรม:
✅ อ่านข้อมูลผู้ป่วย
✅ Dispense ยา
❌ Verify คำสั่งยา
❌ จัดการข้อมูลยา
5.6 Monitoring และ Logging
5.6.1 การบันทึก API Call Log
-- ตัวอย่าง API Call Log
{
"logID": "LOG-2024-001234",
"timestamp": "2024-10-30T11:30:45",
"apiEndpoint": "/api/prescription/opd",
"method": "POST",
"requestFrom": "1.2.3",
"requestTo": "1.2.13",
"userID": "D001",
"userName": "นพ.สมศักดิ์",
"requestBody": {...},
"responseStatus": 200,
"responseTime": 350,
"success": true
}
5.6.2 Dashboard การเชื่อมโยงระบบ
📊 System Integration Dashboard
┌─────────────────────────────────────────────┐
│ สถานะการเชื่อมต่อ (Real-time) │
├─────────────────────────────────────────────┤
│ 1.2.1 เวชระเบียน ● เชื่อมต่อ 99.9% │
│ 1.2.2 ซักประวัติ ● เชื่อมต่อ 99.8% │
│ 1.2.3 ห้องตรวจ ● เชื่อมต่อ 99.7% │
│ 1.2.4 ห้องฉุกเฉิน ● เชื่อมต่อ 99.5% │
│ 1.2.14 การเงิน ● เชื่อมต่อ 99.9% │
│ 1.2.15 ตรวจสอบสิทธิ ● เชื่อมต่อ 98.5% │
└─────────────────────────────────────────────┘
┌─────────────────────────────────────────────┐
│ ประสิทธิภาพ API (วันนี้) │
├─────────────────────────────────────────────┤
│ Total Requests: 45,678 │
│ Success Rate: 99.2% │
│ Failed Requests: 365 │
│ Average Response: 285 ms │
│ Slowest API: /api/lab-results (2.5s)│
└─────────────────────────────────────────────┘
6. รายงานและเอกสาร
6.1 ภาพรวมรายงานและเอกสาร
ระบบเภสัชกรรมมีรายงานและเอกสาร 2 ประเภทหลัก:
📊 รายงานและเอกสาร
├── 📄 เอกสารสำหรับผู้ป่วย (Patient Documents)
│ ├── ใบสั่งยา (Prescription)
│ ├── ฉลากยา (Drug Label)
│ ├── Medication Profile
│ └── หนังสือรับรองยานอกบัญชี
│
└── 📈 รายงานสำหรับบริหารจัดการ (Management Reports)
├── รายงานสถิติการใช้ยา
├── รายงานค่าใช้จ่ายยา
├── รายงาน Drug Interaction
├── รายงานการแพ้ยา
├── รายงานยาควบคุมพิเศษ
├── รายงานการจ่ายยา
└── รายงานประสิทธิภาพการทำงาน
6.2 เอกสารสำหรับผู้ป่วย
6.2.1 ใบสั่งยา (Prescription Form)
รูปแบบ: A4 หรือกระดาษความร้อน (Thermal Paper)
ภาษา: ไทย / อังกฤษ (เลือกได้)
ตาม TOR: 1.2.13.6.1
หน้าจอพิมพ์ใบสั่งยา:
┌────────────────────────────────────────────────────────────────┐
│ 🖨️ พิมพ์ใบสั่งยา [X ปิด] │
├────────────────────────────────────────────────────────────────┤
│ │
│ 📋 เลือกรายการที่ต้องการพิมพ์: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ ☑ HN: 123456 - นายสมชาย ใจดี │ │
│ │ 📅 วันที่: 30/10/2568 | แพทย์: นพ.สมศักดิ์ │ │
│ │ 💊 รายการยา: 3 รายการ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ⚙️ ตั้งค่าการพิมพ์: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ ภาษา: ● ไทย ○ อังกฤษ ○ ทั้งสองภาษา │ │
│ │ ขนาดกระดาษ: ● A4 ○ กระดาษความร้อน 80mm │ │
│ │ จำนวนสำเนา: [2] ชุด │ │
│ │ │ │
│ │ แสดงข้อมูล: │ │
│ │ ☑ แสดงราคายา │ │
│ │ ☑ แสดงยอดรวม │ │
│ │ ☑ แสดงการแพ้ยา │ │
│ │ ☑ แสดง QR Code (สำหรับตรวจสอบ) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 👁️ ตัวอย่าง: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ [แสดง Preview ใบสั่งยาที่จะพิมพ์] │ │
│ │ │ │
│ │ │ │
│ │ [คลิกเพื่อดูตัวอย่างขนาดเต็ม] │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ [🖨️ พิมพ์] [💾 บันทึก PDF] [❌ ยกเลิก] │
└────────────────────────────────────────────────────────────────┘
รูปแบบใบสั่งยา (ภาษาไทย):
┌────────────────────────────────────────────────────────┐
│ โรงพยาบาลค่ายธนรัชต์ │
│ THANARAT CAMP HOSPITAL │
│ 123 ถ.พหลโยธิน ต.ธนรัชต์ อ.เมือง จ.ปราจีนบุรี │
│ โทร: 037-123456 │
│ │
│ ใบสั่งยา │
│ PRESCRIPTION ORDER │
├───────────────────────────────────────────────────────┤
│ เลขที่: RX2024-001234 วันที่: 30 ตุลาคม 2568 │
│ เวลา: 11:30 น. │
├───────────────────────────────────────────────────────┤
│ HN: 123456 AN: - │
│ ชื่อ-สกุล: นายสมชาย ใจดี │
│ อายุ: 45 ปี เพศ: ชาย น้ำหนัก: 70 กก. │
│ สิทธิ: UC (30 บาท) │
│ แผนก: ห้องตรวจอายุรกรรม │
├───────────────────────────────────────────────────────┤
│ ⚠️ การแพ้ยา: แพ้ Penicillin (ผื่นแดง) │
├───────────────────────────────────────────────────────┤
│ วินิจฉัย: Headache (R51) │
├───────────────────────────────────────────────────────┤
│ รายการยา │
├───────────────────────────────────────────────────────┤
│ 1. Paracetamol 500 mg (GPO) 60 เม็ด │
│ รับประทานครั้งละ 2 เม็ด วันละ 3 ครั้ง │
│ หลังอาหาร เช้า กลางวัน เย็น │
│ จำนวนวัน: 7 วัน │
│ ราคา: 180.00 บาท (UC: ฟรี) │
│ │
│ 2. Omeprazole 20 mg 14 เม็ด │
│ รับประทานครั้งละ 1 เม็ด วันละ 1 ครั้ง │
│ ก่อนอาหารเช้า 30 นาที │
│ จำนวนวัน: 14 วัน │
│ ราคา: 84.00 บาท (UC: ฟรี) │
│ │
│ 3. Chlorpheniramine 4 mg 21 เม็ด │
│ รับประทานครั้งละ 1 เม็ด วันละ 3 ครั้ง │
│ หลังอาหาร เช้า กลางวัน เย็น │
│ จำนวนวัน: 7 วัน │
│ ราคา: 21.00 บาท (UC: ฟรี) │
├───────────────────────────────────────────────────────┤
│ รวมทั้งสิ้น: 285.00 บาท │
│ ส่วนลดตามสิทธิ: -285.00 บาท │
│ ผู้ป่วยชำระ (Copay): 30.00 บาท │
├───────────────────────────────────────────────────────┤
│ หมายเหตุ: │
│ - รับประทานยาตามเวลาที่กำหนด │
│ - หากมีอาการผิดปกติให้พบแพทย์ทันที │
│ - นัดตรวจครั้งถัดไป: 15 พฤศจิกายน 2568 │
├───────────────────────────────────────────────────────┤
│ แพทย์ผู้สั่ง: นพ.สมศักดิ์ รักษาชีพ │
│ (ใบอนุญาตเลขที่ 12345) │
│ เภสัชกรผู้จ่าย: พญ.สมหญิง เภสัชกร │
│ (ใบอนุญาตเลขที่ 67890) │
├───────────────────────────────────────────────────────┤
│ [QR Code] │
│ สแกนเพื่อตรวจสอบความถูกต้อง │
└───────────────────────────────────────────────────────┘
6.2.2 ฉลากยา (Drug Label)
รูปแบบ: สติ๊กเกอร์ขนาด 50x25 มม. หรือ 70x30 มม.
ภาษา: ไทย / อังกฤษ
ตาม TOR: 1.2.13.6.2
หน้าจอพิมพ์ฉลากยา:
┌────────────────────────────────────────────────────────────────┐
│ 🏷️ พิมพ์ฉลากยา [X ปิด] │
├────────────────────────────────────────────────────────────────┤
│ │
│ 📋 เลือกรายการยาที่ต้องการพิมพ์ฉลาก: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ [☑ เลือกทั้งหมด] │ │
│ │ │ │
│ │ ☑ 1. Paracetamol 500mg 60 เม็ด [👁️ ดูตัวอย่าง]│ │
│ │ ☑ 2. Omeprazole 20mg 14 เม็ด [👁️ ดูตัวอย่าง]│ │
│ │ ☑ 3. Chlorpheniramine 4mg 21 เม็ด [👁️ ดูตัวอย่าง]│ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ⚙️ ตั้งค่าการพิมพ์: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ ภาษา: ● ไทย ○ อังกฤษ ○ ทั้งสองภาษา │ │
│ │ ขนาดฉลาก: ● 50x25 มม. ○ 70x30 มม. │ │
│ │ จำนวนฉลากต่อยา: [1] ฉลาก │ │
│ │ │ │
│ │ แสดงข้อมูล: │ │
│ │ ☑ แสดงชื่อผู้ป่วย │ │
│ │ ☑ แสดงวิธีใช้ │ │
│ │ ☑ แสดงคำเตือน │ │
│ │ ☑ แสดงวันที่จ่าย │ │
│ │ ☑ แสดงบาร์โค้ด │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 👁️ ตัวอย่างฉลากยา: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │┌────────────────────────────────────────────────────┐ │ │
│ ││ 💊 Paracetamol 500mg จำนวน: 60 เม็ด │ │ │
│ ││ นายสมชาย ใจดี (HN: 123456) │ │ │
│ ││ รับประทานครั้งละ 2 เม็ด วันละ 3 ครั้ง │ │ │
│ ││ หลังอาหาร (เช้า กลางวัน เย็น) │ │ │
│ ││ ⚠️ ระวังตับวาย หากใช้ยาเกินขนาด │ │ │
│ ││ วันที่จ่าย: 30/10/2568 │ │ │
│ ││ [|||||||||||||||] RX2024-001234 │ │ │
│ │└────────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ [🖨️ พิมพ์ฉลาก] [❌ ยกเลิก] │
└────────────────────────────────────────────────────────────────┘
6.2.3 Medication Profile (สำหรับผู้ป่วยใน)
รูปแบบ: A4
วัตถุประสงค์: แสดงประวัติการใช้ยาระหว่างพักรักษาในโรงพยาบาล
┌────────────────────────────────────────────────────────┐
│ โรงพยาบาลค่ายธนรัชต์ │
│ │
│ MEDICATION ADMINISTRATION RECORD │
│ บันทึกการให้ยาผู้ป่วยใน │
├───────────────────────────────────────────────────────┤
│ HN: 123456 AN: AN2024-5678 │
│ ชื่อ-สกุล: นายสมชาย ใจดี │
│ อายุ: 45 ปี เพศ: ชาย น้ำหนัก: 70 กก. │
│ หอผู้ป่วย: อายุรกรรม เตียง: A-101 │
│ Admit: 28/10/2568 แพทย์: นพ.สมศักดิ์ │
├───────────────────────────────────────────────────────┤
│ ⚠️ การแพ้ยา: แพ้ Penicillin (ผื่นแดง) │
├───────────────────────────────────────────────────────┤
│ รายการยาปัจจุบัน │
├───────────────────────────────────────────────────────┤
│ วันที่: 30 ตุลาคม 2568 │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ เวลา 08:00 │ │
│ │ ✅ Paracetamol 500mg 2 เม็ด PO │ │
│ │ ผู้จ่าย: พย.สมหญิง ผู้รับ: ผู้ป่วย │ │
│ │ ✅ Omeprazole 20mg 1 เม็ด PO │ │
│ │ ผู้จ่าย: พย.สมหญิง ผู้รับ: ผู้ป่วย │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ เวลา 12:00 │ │
│ │ ✅ Paracetamol 500mg 2 เม็ด PO │ │
│ │ ผู้จ่าย: พย.สมใจ ผู้รับ: ผู้ป่วย │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ เวลา 18:00 │ │
│ │ ✅ Paracetamol 500mg 2 เม็ด PO │ │
│ │ ผู้จ่าย: พย.สมศรี ผู้รับ: ผู้ป่วย │ │
│ │ ✅ Omeprazole 20mg 1 เม็ด PO │ │
│ │ ผู้จ่าย: พย.สมศรี ผู้รับ: ผู้ป่วย │ │
│ └─────────────────────────────────────────────────┘ │
├───────────────────────────────────────────────────────┤
│ หมายเหตุ: │
│ - ผู้ป่วยรับประทานยาครบทุกมื้อ │
│ - ไม่มีอาการไม่พึงประสงค์จากยา │
├───────────────────────────────────────────────────────┤
│ พิมพ์เมื่อ: 30 ตุลาคม 2568 20:00 │
│ ผู้พิมพ์: พย.สมหญิง │
└───────────────────────────────────────────────────────┘
6.2.4 หนังสือรับรองยานอกบัญชี
รูปแบบ: A4
ตาม TOR: 1.2.13.6.3
┌────────────────────────────────────────────────────────┐
│ โรงพยาบาลค่ายธนรัชต์ │
│ │
│ หนังสือรับรองการขออนุมัติค่ายานอกบัญชี │
│ ยาหลักแห่งชาติที่จำเป็น (แบบ สปสช. 003) │
├───────────────────────────────────────────────────────┤
│ │
│ เรียน ผู้อำนวยการเขตสุขภาพที่ 6 │
│ │
│ เรื่อง ขออนุมัติค่ายานอกบัญชียาหลักแห่งชาติ │
│ │
├───────────────────────────────────────────────────────┤
│ ข้อมูลผู้ป่วย: │
│ ชื่อ-สกุล: นายสมชาย ใจดี │
│ HN: 123456 │
│ อายุ: 45 ปี เพศ: ชาย │
│ สิทธิ: UC (30 บาท) │
│ เลขบัตรประชาชน: 1-2345-67890-12-3 │
│ │
│ การวินิจฉัย: │
│ ICD-10: I10 - Essential hypertension │
│ รายละเอียด: ความดันโลหิตสูง ไม่ตอบสนองต่อยา │
│ ในบัญชียาหลักแห่งชาติ │
│ │
│ รายการยานอกบัญชีที่ขออนุมัติ: │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 1. Valsartan 80 mg จำนวน: 90 เม็ด │ │
│ │ วิธีใช้: รับประทานวันละ 1 เม็ด │ │
│ │ ระยะเวลา: 90 วัน │ │
│ │ ราคา: 1,350.00 บาท (15฿/เม็ด) │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ เหตุผลความจำเป็น: │
│ ผู้ป่วยมีความดันโลหิตสูงที่ไม่สามารถควบคุมได้ │
│ ด้วยยาในบัญชี (Amlodipine, Enalapril) │
│ มีอาการข้างเคียงจากยาในบัญชี (ไอแห้ง, บวม) │
│ จำเป็นต้องใช้ Valsartan เนื่องจากมีผลข้างเคียงน้อย │
│ และควบคุมความดันได้ดีกว่า │
│ │
│ แพทย์ผู้รักษา: นพ.สมศักดิ์ รักษาชีพ │
│ ใบอนุญาตแพทย์เลขที่: 12345 │
│ ลงนาม: _______________________ │
│ วันที่: 30 ตุลาคม 2568 │
│ │
│ ความเห็นเภสัชกร: │
│ เห็นควรอนุมัติ เนื่องจากยาในบัญชีไม่เหมาะสม │
│ กับผู้ป่วยรายนี้ │
│ │
│ เภสัชกร: พญ.สมหญิง เภสัชกร │
│ ใบอนุญาตเลขที่: 67890 │
│ ลงนาม: _______________________ │
│ วันที่: 30 ตุลาคม 2568 │
│ │
├───────────────────────────────────────────────────────┤
│ สำหรับเจ้าหน้าที่ สปสช. │
│ □ อนุมัติ □ ไม่อนุมัติ │
│ │
│ ลงนาม: _______________________ │
│ วันที่: ___/___/______ │
└───────────────────────────────────────────────────────┘
6.3 รายงานสำหรับบริหารจัดการ
6.3.1 รายงานสถิติการใช้ยา
หน้าจอรายงาน:
┌────────────────────────────────────────────────────────────────┐
│ 📊 รายงานสถิติการใช้ยา [ส่งออก Excel] │
├────────────────────────────────────────────────────────────────┤
│ │
│ 🔍 เงื่อนไขการค้นหา: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ ช่วงเวลา: [01/10/2568] ถึง [30/10/2568] │ │
│ │ แผนก: [▼ ทั้งหมด] │ │
│ │ ประเภท: ☑ OPD ☑ IPD ☐ ER │ │
│ │ กลุ่มยา: [▼ ทั้งหมด] │ │
│ │ [ค้นหา] [ล้างค่า] │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 📈 สรุปภาพรวม (ตุลาคม 2568): │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ จำนวนใบสั่งยาทั้งหมด: 12,345 ใบ │ │
│ │ จำนวนรายการยาทั้งหมด: 45,678 รายการ │ │
│ │ จำนวนผู้ป่วยที่ได้รับยา: 8,901 ราย │ │
│ │ มูลค่ายารวม: 2,345,678.00 บาท │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 🔝 ยาที่ใช้มากที่สุด TOP 10: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │อันดับ│ ชื่อยา │ จำนวน │ ร้อยละ │ มูลค่า │ │
│ ├──────┼─────────────────────┼──────────┼────────┼────────┤ │
│ │ 1 │ Paracetamol 500mg │ 25,680 │ 18.5% │456,789 │ │
│ │ 2 │ Amoxicillin 500mg │ 18,456 │ 13.3% │378,234 │ │
│ │ 3 │ Omeprazole 20mg │ 15,234 │ 11.0% │289,456 │ │
│ │ 4 │ Metformin 500mg │ 12,567 │ 9.1% │234,567 │ │
│ │ 5 │ Amlodipine 5mg │ 10,890 │ 7.9% │189,234 │ │
│ │ 6 │ Atenolol 50mg │ 9,876 │ 7.1% │156,789 │ │
│ │ 7 │ Simvastatin 20mg │ 8,765 │ 6.3% │145,678 │ │
│ │ 8 │ Aspirin 81mg │ 7,654 │ 5.5% │123,456 │ │
│ │ 9 │ Chlorpheniramine 4mg│ 6,543 │ 4.7% │ 98,765 │ │
│ │ 10 │ Diazepam 5mg │ 5,432 │ 3.9% │ 87,654 │ │
│ └──────┴─────────────────────┴──────────┴────────┴────────┘ │
│ │
│ 📊 กราฟแสดงแนวโน้มการใช้ยา: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ [กราฟเส้น] │ │
│ │ แสดงปริมาณการใช้ยา 10 อันดับแรก │ │
│ │ ตามช่วงเวลา (รายวัน/รายสัปดาห์/รายเดือน) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 💊 รายงานตามกลุ่มยา: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ กลุ่มยา │ จำนวนรายการ │ มูลค่า │ ร้อยละ │ │
│ ├───────────────────┼─────────────┼────────────┼─────────┤ │
│ │ Antibiotics │ 28,456 │ 1,234,567฿ │ 34.5% │ │
│ │ Cardiovascular │ 23,789 │ 987,654฿ │ 27.6% │ │
│ │ Analgesics │ 19,234 │ 678,901฿ │ 19.0% │ │
│ │ Gastrointestinal │ 15,678 │ 456,789฿ │ 12.8% │ │
│ │ Endocrine │ 10,890 │ 234,567฿ │ 6.1% │ │
│ └───────────────────┴─────────────┴────────────┴─────────┘ │
│ │
│ [📊 แสดงกราฟ] [🖨️ พิมพ์] [📧 ส่งอีเมล] [❌ ปิด] │
└────────────────────────────────────────────────────────────────┘
6.3.2 รายงานค่าใช้จ่ายยา
จัดกลุ่มตาม: สิทธิ / แผนก / ประเภทผู้ป่วย
📊 รายงานค่าใช้จ่ายยาตามสิทธิ
┌────────────────────────────────────────────────────────┐
│ ประจำเดือน: ตุลาคม 2568 │
├────────────────────────────────────────────────────────┤
│ สิทธิ │ จำนวนราย │ มูลค่า │ Copay │
├────────────────┼──────────┼────────────┼────────────┤
│ UC (30 บาท) │ 5,678 │ 1,456,789฿ │ 170,340฿ │
│ ประกันสังคม │ 2,345 │ 789,456฿ │ 0฿ │
│ เบิกได้ │ 987 │ 345,678฿ │ 0฿ │
│ ชำระเอง │ 891 │ 234,567฿ │ 234,567฿ │
├────────────────┼──────────┼────────────┼────────────┤
│ รวม │ 9,901 │ 2,826,490฿ │ 404,907฿ │
└────────────────┴──────────┴────────────┴────────────┘
💡 วิเคราะห์:
- UC คิดเป็น 51.5% ของมูลค่ารวม
- ผู้ป่วยชำระเองมีค่าเฉลี่ย 263฿/ราย
- Copay เฉลี่ย UC = 30฿/ราย ตามนโยบาย
6.3.3 รายงาน Drug Interaction
📊 รายงาน Drug Interaction Alert
┌────────────────────────────────────────────────────────┐
│ ช่วงเวลา: 01-30 ตุลาคม 2568 │
├────────────────────────────────────────────────────────┤
│ สรุป: │
│ - จำนวน Alert ทั้งหมด: 1,234 ครั้ง │
│ - Alert ระดับ Major: 156 ครั้ง (12.6%) │
│ - Alert ระดับ Moderate: 678 ครั้ง (54.9%) │
│ - Alert ระดับ Minor: 400 ครั้ง (32.4%) │
│ │
│ - จำนวน Override: 89 ครั้ง (7.2%) │
│ - Cancel Order: 67 ครั้ง (5.4%) │
├────────────────────────────────────────────────────────┤
│ Interaction ที่พบบ่อย TOP 5: │
│ │
│ 1. Warfarin + Aspirin (Major) 45 ครั้ง │
│ → ยกเลิก: 38 ครั้ง Override: 7 ครั้ง │
│ │
│ 2. Digoxin + Furosemide (Moderate) 38 ครั้ง │
│ → ยกเลิก: 12 ครั้ง Override: 26 ครั้ง │
│ │
│ 3. Simvastatin + Gemfibrozil (Major) 32 ครั้ง │
│ → ยกเลิก: 28 ครั้ง Override: 4 ครั้ง │
│ │
│ 4. Metformin + Alcohol (Moderate) 28 ครั้ง │
│ → แจ้งเตือนผู้ป่วย: 28 ครั้ง │
│ │
│ 5. ACE inhibitor + K supplement (Major) 24 ครั้ง │
│ → ยกเลิก: 20 ครั้ง Override: 4 ครั้ง │
└────────────────────────────────────────────────────────┘
6.3.4 รายงานยาควบคุมพิเศษ (Narcotic Report)
📊 รายงานการจ่ายยาควบคุมพิเศษ
┌────────────────────────────────────────────────────────┐
│ ประจำเดือน: ตุลาคม 2568 │
├────────────────────────────────────────────────────────┤
│ รายการยาเสพติดให้โทษ: │
│ │
│ 1. Morphine Injection 10mg/ml │
│ - จ่ายไป: 120 แอมพูล │
│ - คงเหลือ: 80 แอมพูล │
│ - ผู้ป่วย: 45 ราย │
│ - แพทย์ผู้สั่ง: นพ.สมศักดิ์ (28 ราย) │
│ นพ.สมหญิง (17 ราย) │
│ │
│ 2. Pethidine Injection 50mg/ml │
│ - จ่ายไป: 80 แอมพูล │
│ - คงเหลือ: 40 แอมพูล │
│ - ผู้ป่วย: 35 ราย │
│ │
│ 3. Diazepam 5mg │
│ - จ่ายไป: 5,432 เม็ด │
│ - คงเหลือ: 2,568 เม็ด │
│ - ผู้ป่วย: 234 ราย │
├────────────────────────────────────────────────────────┤
│ หมายเหตุ: │
│ - ทุกรายการมีการบันทึกครบถ้วน │
│ - ไม่พบความผิดปกติในการจ่ายยา │
│ - ต้องสั่งซื้อเพิ่ม: Morphine Inj (ใน 2 สัปดาห์) │
└────────────────────────────────────────────────────────┘
6.3.5 Dashboard สรุปภาพรวม
┌────────────────────────────────────────────────────────────────┐
│ 📊 Dashboard ระบบเภสัชกรรม - ประจำวันที่ 30 ตุลาคม 2568 │
├────────────────────────────────────────────────────────────────┤
│ │
│ ⚡ สถิติวันนี้ (Real-time) │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 📋 ใบสั่งยาวันนี้: 456 ใบ (↑ 12% จากเมื่อวาน)│ │
│ │ 💊 รายการยาที่จ่าย: 1,234 รายการ │ │
│ │ ✅ Verify แล้ว: 398 ใบ (87.3%) │ │
│ │ 💰 มูลค่ายาวันนี้: 89,456 บาท │ │
│ │ 🏥 ผู้ป่วยที่ได้รับยา: 378 ราย │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ⏱️ ประสิทธิภาพการทำงาน │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ เวลาเฉลี่ย Verify: 3.2 นาที ✅ ดี │ │
│ │ เวลาเฉลี่ย Dispense: 5.8 นาที ⚠️ ช้าเล็กน้อย │ │
│ │ รอคิวเฉลี่ย: 12 นาที ✅ ปกติ │ │
│ │ ผู้ป่วยที่รอรับยา: 23 ราย │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ⚠️ Alert และการแจ้งเตือน │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 🔴 Drug Interaction (Major): 12 ครั้ง │ │
│ │ 🟠 Drug Interaction (Moderate): 45 ครั้ง │ │
│ │ 🚫 Drug Allergy Alert: 8 ครั้ง │ │
│ │ ⚠️ Stock Alert (ยาเหลือน้อย): 5 รายการ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 📈 กราฟเปรียบเทียบ 7 วันย้อนหลัง │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ [กราฟแท่งแสดงจำนวนใบสั่งยา] │ │
│ │ 500│ █ │ │
│ │ 400│ █ █ █ │ │
│ │ 300│ █ █ █ █ █ │ │
│ │ 200│ █ █ █ █ █ █ │ │
│ │ 100│ █ █ █ █ █ █ █ │ │
│ │ └───────────────── │ │
│ │ 24 25 26 27 28 29 30 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 👥 เภสัชกรที่ปฏิบัติงานวันนี้ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ พญ.สมหญิง Verify: 98 Dispense: 85 ● Active │ │
│ │ ภญ.สมใจ Verify: 87 Dispense: 76 ● Active │ │
│ │ ภ.ก.สมชาย Verify: - Dispense: 65 ● Active │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ [🔄 รีเฟรช] [📊 รายงานเต็ม] │
└────────────────────────────────────────────────────────────────┘
7. การจัดการสิทธิ์และความปลอดภัย
7.1 ภาพรวมการจัดการสิทธิ์
ระบบมีการจัดการสิทธิ์แบบ Role-Based Access Control (RBAC) โดยแบ่งเป็น 3 Role หลัก:
graph TD
A[ระบบเภสัชกรรม] --> B[👨⚕️ แพทย์]
A --> C[👩⚕️ เภสัชกร]
A --> D[👤 เจ้าหน้าที่เภสัชกรรม]
B --> B1[สั่งยา OPD/IPD]
B --> B2[แก้ไขใบสั่งยา]
B --> B3[ยกเลิกยา]
B --> B4[ดูประวัติการใช้ยา]
C --> C1[Verify ใบสั่งยา]
C --> C2[Dispense ยา]
C --> C3[จัดการข้อมูลยา]
C --> C4[Override Alert]
C --> C5[อนุมัติยานอกบัญชี]
C --> C6[ดูรายงานทั้งหมด]
D --> D1[Dispense ยา]
D --> D2[พิมพ์ฉลาก]
D --> D3[จัดการสต็อก]
D --> D4[ดูรายงานพื้นฐาน]
style A fill:#e1f5ff
style B fill:#fff3e0
style C fill:#f3e5f5
style D fill:#e8f5e9
7.2 รายละเอียดสิทธิ์แต่ละ Role
7.2.1 แพทย์ (Physician)
สิทธิ์หลัก: - ✅ สั่งยา OPD/IPD - ✅ แก้ไขใบสั่งยาของตนเอง (ภายใน 24 ชม.) - ✅ ยกเลิกยาของตนเอง (ก่อน Verify) - ✅ ดูประวัติการใช้ยาของผู้ป่วย - ✅ ดู Drug Interaction และ Allergy Alert - ❌ Verify หรือ Dispense ยา - ❌ แก้ไขข้อมูล Master Data - ❌ ดูรายงานการบริหารจัดการ
เมนูที่เข้าถึงได้:
📋 เมนูสำหรับแพทย์
├── 💊 สั่งยา OPD
├── 🏥 สั่งยา IPD
├── 📝 ใบสั่งยาของฉัน
│ ├── รอ Verify
│ ├── Verify แล้ว
│ └── ยกเลิกแล้ว
├── 👤 ประวัติยาผู้ป่วย
│ ├── ค้นหาผู้ป่วย
│ ├── ประวัติการใช้ยา
│ └── การแพ้ยา
└── 🔔 การแจ้งเตือน
├── Drug Interaction
├── Drug Allergy
└── ยานอกบัญชี
7.2.2 เภสัชกร (Pharmacist)
สิทธิ์หลัก: - ✅ Verify ใบสั่งยาทั้งหมด - ✅ Dispense ยาทั้งหมด - ✅ Override Drug Interaction Alert (พร้อมเหตุผล) - ✅ จัดการข้อมูล Master Data (ยา, ปฏิกิริยา, การแพ้) - ✅ อนุมัติยานอกบัญชี - ✅ แก้ไข/ยกเลิกใบสั่งยา (ทุกแพทย์) - ✅ ดูรายงานทั้งหมด - ✅ จัดการสิทธิ์ผู้ใช้งาน (เฉพาะหัวหน้าเภสัช) - ✅ Export ข้อมูล
เมนูที่เข้าถึงได้:
📋 เมนูสำหรับเภสัชกร (Full Access)
├── 💊 การจ่ายยา
│ ├── Verify ใบสั่งยา
│ ├── Dispense ยา
│ ├── รายการรอจ่าย
│ └── ประวัติการจ่าย
├── 📊 ข้อมูลหลัก (Master Data)
│ ├── จัดการข้อมูลยา
│ ├── Drug Interaction
│ ├── ข้อมูลการแพ้ยา
│ ├── หน่วยนับ
│ ├── เส้นทางการให้ยา
│ ├── ความถี่การใช้
│ ├── ประเภทยา
│ └── กลุ่มยา
├── 🔍 ตรวจสอบและอนุมัติ
│ ├── อนุมัติยานอกบัญชี
│ ├── Override Alert
│ └── แก้ไข/ยกเลิกใบสั่งยา
├── 📈 รายงาน
│ ├── สถิติการใช้ยา
│ ├── ค่าใช้จ่ายยา
│ ├── Drug Interaction Report
│ ├── รายงานยาควบคุม
│ └── Dashboard
├── ⚙️ ตั้งค่าระบบ (หัวหน้าเภสัชเท่านั้น)
│ ├── จัดการผู้ใช้งาน
│ ├── กำหนดสิทธิ์
│ └── ตั้งค่าระบบ
└── 🔔 การแจ้งเตือน
├── Alert ทั้งหมด
├── รอ Verify
└── รอ Dispense
7.2.3 เจ้าหน้าที่เภสัชกรรม (Pharmacy Staff)
สิทธิ์หลัก: - ✅ Dispense ยา (หลังจาก Verify แล้ว) - ✅ พิมพ์ใบสั่งยา/ฉลากยา - ✅ จัดการสต็อกยา (รับ-จ่าย) - ✅ ดูข้อมูล Master Data (อ่านอย่างเดียว) - ✅ ดูรายงานพื้นฐาน - ❌ Verify ใบสั่งยา - ❌ Override Alert - ❌ แก้ไขข้อมูล Master Data - ❌ อนุมัติยานอกบัญชี
เมนูที่เข้าถึงได้:
📋 เมนูสำหรับเจ้าหน้าที่
├── 💊 การจ่ายยา
│ ├── Dispense ยา (Verify แล้ว)
│ ├── รายการรอจ่าย
│ └── ประวัติการจ่ายของฉัน
├── 🖨️ พิมพ์เอกสาร
│ ├── พิมพ์ใบสั่งยา
│ ├── พิมพ์ฉลากยา
│ └── Medication Profile
├── 📦 จัดการสต็อก
│ ├── รับยาเข้า
│ ├── จ่ายยาออก
│ ├── ตรวจสอบสต็อก
│ └── ยาใกล้หมด
├── 📊 ข้อมูลหลัก (อ่านอย่างเดียว)
│ ├── ค้นหาข้อมูลยา
│ ├── Drug Interaction
│ └── ข้อมูลการแพ้ยา
├── 📈 รายงานพื้นฐาน
│ ├── สถิติการจ่าย (ของฉัน)
│ └── รายงานสต็อก
└── 🔔 การแจ้งเตือน
├── รายการรอจ่าย
└── สต็อกยาน้อย
7.3 Permission Matrix
7.3.1 ตารางสิทธิ์หลัก
┌────────────────────────────────────────────────────────────┐
│ Permission Matrix - ระบบเภสัชกรรม │
├────────────────────────────────────────────────────────────┤
│ ฟีเจอร์/ฟังก์ชัน │ แพทย์ │ เภสัชกร │ เจ้าหน้าที่ │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ 📊 Master Data │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ ดูข้อมูลยา │ ✅ │ ✅ │ ✅ │
│ เพิ่ม/แก้ไข/ลบข้อมูลยา │ ❌ │ ✅ │ ❌ │
│ จัดการ Drug Interaction │ ❌ │ ✅ │ ❌ │
│ จัดการข้อมูลการแพ้ยา │ ✅* │ ✅ │ ❌ │
│ │(ผู้ป่วยของตนเอง) │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ 💊 การสั่งยา │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ สั่งยา OPD │ ✅ │ ✅ │ ❌ │
│ สั่งยา IPD │ ✅ │ ✅ │ ❌ │
│ แก้ไขใบสั่งยา │ ✅* │ ✅ │ ❌ │
│ │(ของตนเอง ภายใน 24 ชม.) │
│ ยกเลิกใบสั่งยา │ ✅* │ ✅ │ ❌ │
│ │(ของตนเอง ก่อน Verify) │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ ✅ Verify & Dispense │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ Verify ใบสั่งยา │ ❌ │ ✅ │ ❌ │
│ Dispense ยา │ ❌ │ ✅ │ ✅* │
│ │ │(หลัง Verify แล้ว)│
│ Override Alert │ ❌ │ ✅ │ ❌ │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ 🖨️ พิมพ์เอกสาร │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ พิมพ์ใบสั่งยา │ ✅ │ ✅ │ ✅ │
│ พิมพ์ฉลากยา │ ❌ │ ✅ │ ✅ │
│ Medication Profile │ ✅ │ ✅ │ ✅ │
│ หนังสือรับรองยานอกบัญชี │ ✅ │ ✅ │ ❌ │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ 📈 รายงาน │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ รายงานสถิติการใช้ยา │ ❌ │ ✅ │ ✅* │
│ │ │(ของตนเอง) │
│ รายงานค่าใช้จ่าย │ ❌ │ ✅ │ ❌ │
│ Drug Interaction Report │ ✅* │ ✅ │ ❌ │
│ │(ของผู้ป่วยตนเอง) │
│ รายงานยาควบคุม │ ❌ │ ✅ │ ❌ │
│ Dashboard │ ❌ │ ✅ │ ✅* │
│ │ │(ข้อมูลพื้นฐาน) │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ ⚙️ การจัดการระบบ │
├─────────────────────────┼───────┼─────────┼──────────────┤
│ จัดการผู้ใช้งาน │ ❌ │ ✅* │ ❌ │
│ │ │(หัวหน้าเภสัช) │
│ กำหนดสิทธิ์ │ ❌ │ ✅* │ ❌ │
│ │ │(หัวหน้าเภสัช) │
│ ตั้งค่าระบบ │ ❌ │ ✅* │ ❌ │
│ │ │(หัวหน้าเภสัช) │
│ Export ข้อมูล │ ❌ │ ✅ │ ❌ │
└─────────────────────────┴───────┴─────────┴──────────────┘
หมายเหตุ:
✅ = มีสิทธิ์เต็มรูปแบบ
✅* = มีสิทธิ์แบบจำกัด (ดูเงื่อนไขในตาราง)
❌ = ไม่มีสิทธิ์
7.3.2 ตารางสิทธิ์ตาม Data Scope
┌────────────────────────────────────────────────────────────┐
│ Data Access Scope │
├────────────────────────────────────────────────────────────┤
│ ประเภทข้อมูล │ แพทย์ │ เภสัชกร │ เจ้าหน้าที่│
├──────────────────────┼──────────┼──────────┼────────────┤
│ ผู้ป่วยทั้งหมด │ ตนเอง │ ทั้งหมด │ ทั้งหมด │
│ ใบสั่งยา │ ตนเอง │ ทั้งหมด │ ทั้งหมด* │
│ │ │ │(Verify แล้ว)│
│ ประวัติการใช้ยา │ ผู้ป่วย │ ทั้งหมด │ ผู้ป่วย │
│ │ตนเอง │ │ที่จ่ายให้ │
│ ข้อมูลการแพ้ │ ผู้ป่วย │ ทั้งหมด │ อ่านอย่าง │
│ │ตนเอง │ │เดียว │
│ รายงานสถิติ │ ไม่มี │ ทั้งหมด │ ของตนเอง │
│ Drug Interaction Log │ ของตนเอง │ ทั้งหมด │ ไม่มี │
│ Audit Log │ ไม่มี │ ทั้งหมด │ ไม่มี │
└──────────────────────┴──────────┴──────────┴────────────┘
7.4 User Management
7.4.1 หน้าจอจัดการผู้ใช้งาน (เภสัชกร - หัวหน้าเท่านั้น)
┌────────────────────────────────────────────────────────────────┐
│ 👥 จัดการผู้ใช้งานระบบ [+ เพิ่มใหม่]│
├────────────────────────────────────────────────────────────────┤
│ │
│ 🔍 ค้นหา: [_______________________] Role: [▼ ทั้งหมด] │
│ สถานะ: ☑ Active ☑ Inactive [ค้นหา] [ล้าง] │
│ │
│ รายการผู้ใช้งาน: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │รหัส │ ชื่อ-สกุล │ Role │ สถานะ │ Actions │ │
│ ├─────┼──────────────────┼────────────┼────────┼───────────┤ │
│ │D001 │นพ.สมศักดิ์ รักษา │ แพทย์ │🟢Active│[✏️][🔒][🗑️]│ │
│ │ │อายุรกรรม │ │ │ │ │
│ │P001 │พญ.สมหญิง เภสัชกร │ เภสัชกร │🟢Active│[✏️][🔒][🗑️]│ │
│ │ │หัวหน้าเภสัช │(หัวหน้า) │ │ │ │
│ │P002 │ภญ.สมใจ ดีใจ │ เภสัชกร │🟢Active│[✏️][🔒][🗑️]│ │
│ │ │ │ │ │ │ │
│ │S001 │นางสมศรี ใจดี │เจ้าหน้าที่ │🟢Active│[✏️][🔒][🗑️]│ │
│ │ │ │ │ │ │ │
│ │D099 │นพ.สมชาย ดีมาก │ แพทย์ │🔴Inactive│[✏️][🔓][🗑️]│ │
│ │ │ศัลยกรรม │ │ │ │ │
│ └─────┴──────────────────┴────────────┴────────┴───────────┘ │
│ │
│ 📊 สรุป: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ แพทย์: 45 คน (Active: 43, Inactive: 2) │ │
│ │ เภสัชกร: 8 คน (Active: 8, Inactive: 0) │ │
│ │ เจ้าหน้าที่: 12 คน (Active: 11, Inactive: 1) │ │
│ │ รวม: 65 คน │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ [❌ ปิด] │
└────────────────────────────────────────────────────────────────┘
7.4.2 หน้าจอเพิ่ม/แก้ไขผู้ใช้งาน
┌────────────────────────────────────────────────────────────────┐
│ 👤 เพิ่มผู้ใช้งานใหม่ [X ปิด] │
├────────────────────────────────────────────────────────────────┤
│ │
│ ข้อมูลพื้นฐาน: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ รหัสผู้ใช้: [P003___________] * จำเป็น │ │
│ │ ชื่อ: [สมปอง_________] * │ │
│ │ นามสกุล: [เภสัชดี________] * │ │
│ │ อีเมล: [[email protected]] * │ │
│ │ เบอร์โทร: [081-234-5678_] │ │
│ │ ใบอนุญาต: [PH-67891______] │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ การกำหนดสิทธิ์: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Role: ● แพทย์ │ │
│ │ ● เภสัชกร │ │
│ │ ○ เจ้าหน้าที่เภสัชกรรม │ │
│ │ │ │
│ │ สิทธิ์เพิ่มเติม (สำหรับเภสัชกร): │ │
│ │ ☑ หัวหน้าเภสัช (Administrator) │ │
│ │ ☑ จัดการผู้ใช้งาน │ │
│ │ ☑ จัดการข้อมูลหลัก │ │
│ │ ☑ อนุมัติยานอกบัญชี │ │
│ │ ☑ Override Alert │ │
│ │ ☑ Export ข้อมูล │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ข้อมูลการเข้าใช้งาน: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Username: [sompong.p______] * │ │
│ │ รหัสผ่านเริ่มต้น: [••••••••••••••] * (อย่างน้อย 8 ตัว)│ │
│ │ ยืนยันรหัสผ่าน: [••••••••••••••] * │ │
│ │ │ │
│ │ ☑ บังคับเปลี่ยนรหัสผ่านในการเข้าใช้งานครั้งแรก │ │
│ │ ☑ เปิดใช้งาน 2FA (Two-Factor Authentication) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ สถานะ: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ ● Active (เปิดใช้งาน) │ │
│ │ ○ Inactive (ปิดการใช้งาน) │ │
│ │ │ │
│ │ วันที่เริ่มใช้งาน: [30/10/2568] │ │
│ │ วันที่สิ้นสุด: [__/__/____] (ถ้ามี) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ หมายเหตุ: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ [เภสัชกรใหม่ เริ่มงานวันที่ 1 พฤศจิกายน 2568] │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ [💾 บันทึก] [🔄 ล้างฟอร์ม] [❌ ยกเลิก] │
└────────────────────────────────────────────────────────────────┘
7.5 Security Features
7.5.1 Authentication (การยืนยันตัวตน)
🔐 ระบบรักษาความปลอดภัย
1. Login Credentials
├── Username + Password
├── รหัสผ่านขั้นต่ำ 8 ตัวอักษร
├── ต้องมี: ตัวพิมพ์ใหญ่, ตัวพิมพ์เล็ก, ตัวเลข, อักขระพิเศษ
└── หมดอายุทุก 90 วัน
2. Two-Factor Authentication (2FA) - ตัวเลือก
├── SMS OTP
├── Email OTP
└── Authenticator App (Google/Microsoft)
3. JWT Token
├── Access Token (15 นาที)
├── Refresh Token (7 วัน)
└── Auto-refresh ก่อนหมดอายุ
4. Session Management
├── Timeout: 30 นาที (ไม่มี Activity)
├── Auto-logout เมื่อ Timeout
└── บันทึก Session History
7.5.2 Authorization (การกำหนดสิทธิ์)
🛡️ ระบบควบคุมการเข้าถึง
1. Role-Based Access Control (RBAC)
├── กำหนดสิทธิ์ตาม Role
├── ตรวจสอบสิทธิ์ทุก Request
└── Block การเข้าถึงที่ไม่มีสิทธิ์
2. Data-Level Security
├── แพทย์: เห็นเฉพาะผู้ป่วยของตนเอง
├── เภสัชกร: เห็นข้อมูลทั้งหมด
└── เจ้าหน้าที่: เห็นเฉพาะที่เกี่ยวข้อง
3. Action Validation
├── ตรวจสอบสถานะข้อมูล (Status Workflow)
├── ตรวจสอบเวลา (Time-based Rules)
└── ตรวจสอบความสัมพันธ์ (Business Rules)
7.5.3 Audit Trail (บันทึกการใช้งาน)
📝 บันทึกการใช้งานระบบ
บันทึกทุก Action ที่สำคัญ:
├── Login/Logout
├── สั่งยา
├── Verify ยา
├── Dispense ยา
├── แก้ไข/ยกเลิกยา
├── Override Alert
├── แก้ไขข้อมูล Master Data
├── จัดการผู้ใช้งาน
└── Export ข้อมูล
ข้อมูลที่บันทึก:
├── User ID และ Username
├── Action (Create/Read/Update/Delete)
├── Table/Entity ที่เข้าถึง
├── ข้อมูลเดิม (Old Value)
├── ข้อมูลใหม่ (New Value)
├── IP Address
├── Timestamp (วันเวลา)
└── Session ID
การจัดเก็บ:
├── เก็บในฐานข้อมูล
├── Backup ทุก 7 วัน
├── เก็บประวัติ 7 ปี (ตามกฎหมาย)
└── สามารถ Export เพื่อตรวจสอบ
7.5.4 หน้าจอ Audit Log
┌────────────────────────────────────────────────────────────────┐
│ 📝 บันทึกการใช้งานระบบ (Audit Log) [ส่งออก Excel]│
├────────────────────────────────────────────────────────────────┤
│ │
│ 🔍 เงื่อนไขการค้นหา: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ ช่วงเวลา: [30/10/2568 00:00] ถึง [30/10/2568 23:59] │ │
│ │ ผู้ใช้งาน: [▼ ทั้งหมด___________________________] │ │
│ │ Role: [▼ ทั้งหมด___________________________] │ │
│ │ Action: ☑ Create ☑ Update ☑ Delete ☑ Login │ │
│ │ Module: [▼ ทั้งหมด___________________________] │ │
│ │ [ค้นหา] [ล้างค่า] │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ รายการบันทึก (วันนี้ 30 ตุลาคม 2568): │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │เวลา │ User │ Action │ Module │ Detail │IP │ │
│ ├─────┼──────────┼────────┼─────────────┼─────────────┼────┤ │
│ │08:05│sompong.p │LOGIN │Auth │Login Success│ │ │
│ │ │เภสัชกร │ │ │ │.101│ │
│ │08:12│sompong.p │VERIFY │Prescription │RX2024-00123 │ │ │
│ │ │เภสัชกร │ │ │HN: 123456 │.101│ │
│ │08:45│somchai.d │CREATE │Prescription │RX2024-00124 │ │ │
│ │ │แพทย์ │ │ │HN: 234567 │.205│ │
│ │09:15│sompong.p │OVERRIDE│Drug Alert │Warfarin+ASA │ │ │
│ │ │เภสัชกร │ │ │Approved │.101│ │
│ │10:30│somying.p │UPDATE │Master Data │Drug ID:9876 │ │ │
│ │ │หัวหน้า │ │ │Price change │.102│ │
│ │11:45│somchai.d │DELETE │Prescription │RX2024-00125 │ │ │
│ │ │แพทย์ │ │ │Cancel order │.205│ │
│ │14:20│admin │GRANT │User Mgmt │New user P005│ │ │
│ │ │Admin │ │ │Role: Staff │.100│ │
│ │16:30│sompong.p │EXPORT │Report │Drug stats │ │ │
│ │ │เภสัชกร │ │ │Oct 2024 │.101│ │
│ │17:45│sompong.p │LOGOUT │Auth │Logout │ │ │
│ │ │เภสัชกร │ │ │ │.101│ │
│ └─────┴──────────┴────────┴─────────────┴─────────────┴────┘ │
│ │
│ 📊 สถิติการใช้งานวันนี้: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Total Actions: 1,234 ครั้ง │ │
│ │ Login: 156 ครั้ง │ │
│ │ Verify: 387 ครั้ง │ │
│ │ Dispense: 456 ครั้ง │ │
│ │ Override: 12 ครั้ง │ │
│ │ Failed Login: 3 ครั้ง ⚠️ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ [📊 แสดงกราฟ] [🖨️ พิมพ์] [📧 ส่งอีเมล] [❌ ปิด] │
└────────────────────────────────────────────────────────────────┘
7.6 Workflow สำหรับการขอสิทธิ์
sequenceDiagram
participant S as Staff/Doctor
participant H as หัวหน้าแผนก
participant P as หัวหน้าเภสัช
participant SYS as ระบบ
S->>H: 1. ขอสิทธิ์เพิ่มเติม
Note over S,H: แจ้งเหตุผลความจำเป็น
H->>H: 2. พิจารณาคำขอ
alt อนุมัติ
H->>P: 3. ส่งคำขออนุมัติ
P->>P: 4. ตรวจสอบและอนุมัติ
P->>SYS: 5. กำหนดสิทธิ์ในระบบ
SYS->>S: 6. แจ้งเตือนการอนุมัติ
Note over S: สิทธิ์มีผลทันที
else ไม่อนุมัติ
H->>S: 3. แจ้งไม่อนุมัติ
Note over S: ระบุเหตุผล
end
8. สรุปและข้อควรระวัง
8.1 จุดเด่นของระบบ
✨ จุดเด่นระบบเภสัชกรรม
1. 🔗 การเชื่อมโยงแบบ Hub System
- เชื่อมต่อ 10 ระบบย่อย
- Real-time data synchronization
- Single source of truth สำหรับข้อมูลยา
2. 🛡️ Safety Features
- Drug Interaction Alert (3 ระดับ)
- Drug Allergy Alert
- Dosage Validation
- Duplicate Drug Detection
- Contraindication Warning
3. 📊 Comprehensive Reporting
- รายงานสถิติแบบ Real-time
- Dashboard แสดงภาพรวม
- Alert และการแจ้งเตือน
- Audit Trail ครบถ้วน
4. 👥 Role-Based Access Control
- แบ่งสิทธิ์ชัดเจน 3 ระดับ
- Data-level security
- Action validation
- Session management
5. 📄 Document Management
- ใบสั่งยาอิเล็กทรอนิกส์
- ฉลากยาอัตโนมัติ
- QR Code verification
- Multi-language support
6. 💊 Medication Safety
- Verify before dispense
- Barcode scanning
- Patient identification
- Medication reconciliation
8.2 ข้อควรระวังและข้อจำกัด
⚠️ ข้อควรระวัง
1. 🔌 การเชื่อมต่อระบบ
- ต้องมี API เสถียร
- จัดการ Timeout และ Retry
- Monitoring 24/7
- Fallback mechanism
2. 🔐 ความปลอดภัย
- Password policy เข้มงวด
- 2FA แนะนำสำหรับเภสัชกร
- Session timeout 30 นาที
- Audit log ครบถ้วน
3. 📝 การบันทึกข้อมูล
- ต้องบันทึกเหตุผลเมื่อ Override alert
- ระบุผู้รับผิดชอบทุก Action
- ไม่สามารถลบข้อมูลย้อนหลัง
- ต้อง Verify ก่อน Dispense
4. 💾 ข้อมูล Master Data
- ต้องมีการ Review ทุก 6 เดือน
- Drug Interaction ต้องอัพเดทสม่ำเสำ
- ราคายาต้องสอดคล้องกับระบบการเงิน
- Stock ต้องตรงกับคลังพัสดุ
5. 📊 Performance
- ระบบต้องรองรับผู้ใช้พร้อมกัน 100+ คน
- Response time < 3 วินาที
- Print queue ต้องมี Priority
- Backup ทุกวัน
6. 👥 การใช้งาน
- แพทย์ต้องผ่านการอบรม
- เภสัชกรต้องเข้าใจ Workflow
- มี Help Desk รองรับ
- User Manual ครบถ้วน
8.3 Best Practices
✅ แนวทางปฏิบัติที่ดี
1. สำหรับแพทย์
✓ ตรวจสอบการแพ้ยาก่อนสั่งทุกครั้ง
✓ อ่าน Alert ทั้งหมดก่อนยืนยัน
✓ ระบุเหตุผลชัดเจนเมื่อสั่งยานอกบัญชี
✓ แก้ไขใบสั่งยาภายใน 24 ชม.
✓ ยกเลิกยาก่อน Verify หากต้องการเปลี่ยน
2. สำหรับเภสัชกร
✓ Verify ทุกใบสั่งยาอย่างละเอียด
✓ ตรวจสอบ Interaction ทั้งหมด
✓ ระบุเหตุผลชัดเจนเมื่อ Override
✓ อัพเดท Master Data เป็นประจำ
✓ ตรวจสอบ Alert ที่เกิดขึ้นบ่อย
✓ Review รายงานประจำสัปดาห์
3. สำหรับเจ้าหน้าที่
✓ Dispense เฉพาะใบสั่งที่ Verify แล้ว
✓ ตรวจสอบผู้ป่วยให้ถูกต้อน
✓ พิมพ์ฉลากครบถ้วน
✓ แจ้งเภสัชกรหากเจอปัญหา
✓ ตรวจสอบ Stock เป็นประจำ
4. สำหรับทุกคน
✓ Logout ทุกครั้งหลังใช้งานเสร็จ
✓ ไม่แชร์ Username/Password
✓ รายงานปัญหาทันทีที่พบ
✓ ตรวจสอบข้อมูลก่อน Save
✓ ใช้ระบบตาม Workflow ที่กำหนด
เอกสารอ้างอิง
- TOR ระบบเภสัชกรรม (1.2.13)
- SRS ระบบเภสัชกรรม
- ER Diagram ระบบเภสัชกรรม
- Data Flow Diagram
- Test Cases
- Schema Database
- TOR ระบบอื่นๆ ที่เกี่ยวข้อง (1.2.1 - 1.2.17)
ประวัติการแก้ไข
| Version | วันที่ | ผู้แก้ไข | รายละเอียด |
|---|---|---|---|
| 1.0 | 30 ตุลาคม 2568 | GitHub Copilot | สร้างเอกสารฉบับแรก |
จัดทำโดย: โรงพยาบาลค่ายธนรัชต์
เอกสารเลขที่: SRS-1.2.13-SITEMAP
วันที่อนุมัติ: 30 ตุลาคม 2568