ข้ามไปที่เนื้อหา

Test Cases

ระบบการเงิน (Financial Management System)

โรงพยาบาลค่ายธนรัชน์


เอกสารเลขที่: SRS-1.2.14-TESTCASES
เวอร์ชัน: 1.0
วันที่: 8 ตุลาคม 2568
ผู้จัดทำ: ทีมพัฒนาระบบ
ผู้อนุมัติ: ผู้อำนวยการโรงพยาบาลค่ายธนรัชน์
การปรับปรุง: ใหม่ - ครอบคลุมการทดสอบระบบการเงินและการชำระเงินครบวงจร


📝 ประกอบการทดสอบ

🎯 Scope ของการทดสอบ

ระบบการเงินจะครอบคลุมการทดสอบ: - การจัดการข้อมูลสิทธิการรักษาทางการเงิน - กำหนดสิทธิและผังการคิดค่าบริการ - การรับชำระเงินครบวงจร - รองรับหลายสิทธิและหลายรูปแบบการชำระ - การออกใบเสร็จและเอกสารทางการเงิน - ครบถ้วนตามมาตรฐาน - การจัดการการยกเว้นและลดหย่อน - ค่ารักษาพยาบาล - การจัดการค้างชำระและเงินรับฝาก - แบบครบวงจร - การยกเลิกและแก้ไขใบเสร็จ - พร้อม Audit Trail - การปิดรอบการเงินและรายงานสรุป - ตามช่วงเวลาต่างๆ - API Integration - เชื่อมต่อกับระบบอื่นๆ ใน HIS

🔗 Integration with Other Systems

Test Cases สำหรับการเชื่อมต่อระบบ: - ระบบเวชระเบียน (1.2.1): การดึงข้อมูลผู้ป่วยและการเข้ารับบริการ - ระบบตรวจสอบสิทธิ (1.2.15): การตรวจสอบและยืนยันสิทธิการรักษา - ระบบห้องตรวจแพทย์ (1.2.3): การรับค่าบริการจากการตรวจรักษา - ระบบเภสัชกรรม (1.2.13): การคิดค่ายาและเวชภัณฑ์ - ระบบผู้ป่วยใน (1.2.17): การคิดค่าห้องและค่ารักษาผู้ป่วยใน - ระบบห้องฉุกเฉิน (1.2.4): การรับชำระค่าบริการฉุกเฉิน

รายการ Test Cases

📊 TG-001: การจัดการข้อมูลสิทธิการรักษาพยาบาล

Test Case: การกำหนดข้อมูลสิทธิพื้นฐาน

Test ID: TC-001-001
Description: ทดสอบการกำหนดข้อมูลสิทธิการรักษาพยาบาลใหม่
Pre-condition: ระบบพร้อมใช้งาน, ผู้ใช้มีสิทธิ์จัดการข้อมูลสิทธิ
Test Steps:
1. เข้าสู่หน้าจัดการข้อมูลสิทธิการรักษา
2. คลิกปุ่มเพิ่มสิทธิใหม่
3. กรอกข้อมูลสิทธิ (ชื่อสิทธิ, รหัสสิทธิ, ประเภทการชำระ)
4. กรอกรหัสสิทธิ สนย. (43 แฟ้ม)
5. กรอกชื่อสิทธิมาตรฐาน สปสช.
6. กำหนดค่าธรรมเนียมสิทธิที่ต้องชำระเอง
7. บันทึกข้อมูล
Expected Result: 
- บันทึกข้อมูลสิทธิสำเร็จ
- แสดงข้อความยืนยันการบันทึก
- ข้อมูลสิทธิปรากฏในรายการ
- บันทึกผู้สร้างและเวลาที่สร้าง

Test Case: การตรวจสอบข้อมูลซ้ำซ้อนของสิทธิ

Test ID: TC-001-002
Description: ทดสอบการตรวจสอบรหัสสิทธิซ้ำ
Pre-condition: มีข้อมูลสิทธิในระบบแล้ว
Test Steps:
1. เข้าสู่หน้าจัดการข้อมูลสิทธิการรักษา
2. คลิกปุ่มเพิ่มสิทธิใหม่
3. กรอกรหัสสิทธิที่มีอยู่ในระบบแล้ว
4. พยายามบันทึกข้อมูล
Expected Result: 
- แสดงข้อความเตือนรหัสสิทธิซ้ำ
- ไม่อนุญาตให้บันทึกข้อมูลซ้ำ
- แสดงข้อมูลสิทธิที่มีรหัสนี้แล้ว

Test Case: การกำหนดวันที่หมดอายุสิทธิ

Test ID: TC-001-003
Description: ทดสอบการกำหนดวันที่หมดอายุของสิทธิบัตร
Pre-condition: มีข้อมูลสิทธิในระบบ
Test Steps:
1. เข้าสู่หน้าแก้ไขข้อมูลสิทธิ
2. เลือกสิทธิที่ต้องการแก้ไข
3. กำหนดวันที่เริ่มใช้ (EffectiveDate)
4. กำหนดวันที่หมดอายุ (ExpiryDate)
5. บันทึกข้อมูล
Expected Result: 
- บันทึกวันที่หมดอายุสำเร็จ
- ระบบตรวจสอบวันที่หมดอายุเมื่อใช้งาน
- แสดงสถานะ Active/Inactive ตามวันที่

Test Case: การกำหนดผังการคิดค่าบริการ

Test ID: TC-001-004
Description: ทดสอบการกำหนดผังการคิดค่าบริการสำหรับแต่ละสิทธิ
Pre-condition: มีข้อมูลสิทธิและหมวดค่ารักษาในระบบ
Test Steps:
1. เข้าสู่หน้าจัดการผังการคิดค่าบริการ
2. เลือกสิทธิการรักษา
3. เลือกหมวดค่ารักษา
4. กำหนดวิธีการคำนวณ (เปอร์เซ็นต์/จำนวนเงินคงที่/ยกเว้น)
5. กรอกค่าเปอร์เซ็นต์ส่วนลดหรือจำนวนเงิน
6. กำหนดจำนวนเงินขั้นต่ำและสูงสุด
7. บันทึกข้อมูล
Expected Result: 
- บันทึกผังการคิดสำเร็จ
- สามารถคำนวณค่าบริการได้ถูกต้อง
- รองรับวิธีการคำนวณหลายแบบ

Test Case: การกำหนดส่วนลดตามหมวดค่ารักษา

Test ID: TC-001-005
Description: ทดสอบการกำหนดส่วนลดเป็น % ในหมวดค่ารักษาพยาบาลต่างๆ ทั้ง OPD และ IPD
Pre-condition: มีข้อมูลหมวดค่ารักษาในระบบ
Test Steps:
1. เข้าสู่หน้าจัดการส่วนลดตามหมวด
2. เลือกหมวดค่ารักษา (OPD/IPD)
3. กำหนดเปอร์เซ็นต์ส่วนลด (0-100%)
4. กำหนดเงื่อนไขการให้ส่วนลด
5. กำหนดวันที่เริ่มใช้และสิ้นสุด
6. บันทึกข้อมูล
Expected Result: 
- บันทึกส่วนลดสำเร็จ
- คำนวณส่วนลดได้ถูกต้องทั้ง OPD และ IPD
- ส่วนลดมีผลตามช่วงเวลาที่กำหนด

💰 TG-002: การยกเว้นหรืออนุมัติลดหย่อนค่ารักษาพยาบาล

Test Case: การยกเว้นค่ารักษาพยาบาล

Test ID: TC-002-001
Description: ทดสอบการยกเว้นค่ารักษาพยาบาลทั้งจำนวนและตามประเภท
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วยและรายการค่ารักษา
Test Steps:
1. เข้าสู่หน้ารับชำระเงิน
2. ค้นหาและเลือกผู้ป่วย
3. แสดงรายการค่ารักษาพยาบาล
4. เลือกรายการที่ต้องการยกเว้น
5. เลือกประเภทการยกเว้น (ยกเว้นทั้งหมด/ยกเว้นบางส่วน)
6. ระบุเหตุผลการยกเว้น
7. ขออนุมัติจากผู้มีอำนาจ
8. บันทึกการยกเว้น
Expected Result: 
- บันทึกการยกเว้นสำเร็จ
- คำนวณยอดเงินใหม่ถูกต้อง
- บันทึกผู้อนุมัติและเหตุผล
- มี Audit Trail การยกเว้น

Test Case: การลดหย่อนค่ารักษาที่ได้รับอนุมัติ

Test ID: TC-002-002
Description: ทดสอบการลดหย่อนค่ารักษาพยาบาลที่ได้รับอนุมัติ
Pre-condition: มีรายการค่ารักษาและผู้มีอำนาจอนุมัติ
Test Steps:
1. เข้าสู่หน้ารับชำระเงิน
2. ค้นหาและเลือกผู้ป่วย
3. แสดงรายการค่ารักษาพยาบาล
4. เลือกรายการที่ต้องการลดหย่อน
5. เลือกประเภทการลดหย่อน
6. กรอกจำนวนเงินหรือเปอร์เซ็นต์ที่ลด
7. ระบุเหตุผลการลดหย่อน
8. ส่งขออนุมัติ
9. อนุมัติโดยผู้มีอำนาจ
10. บันทึกการลดหย่อน
Expected Result: 
- บันทึกการลดหย่อนสำเร็จ
- คำนวณยอดเงินหลังลดหย่อนถูกต้อง
- บันทึก Workflow การอนุมัติ
- แสดงประวัติการลดหย่อน

Test Case: การรับชำระเงินหลังได้รับอนุมัติยกเว้นหรือลดหย่อน

Test ID: TC-002-003
Description: ทดสอบการรับชำระเงินหลังจากที่ได้รับอนุมัติยกเว้นหรือลดหย่อน
Pre-condition: มีการอนุมัติยกเว้นหรือลดหย่อนแล้ว
Test Steps:
1. เข้าสู่หน้ารับชำระเงิน
2. ค้นหาผู้ป่วยที่ได้รับอนุมัติ
3. ตรวจสอบยอดเงินหลังการยกเว้น/ลดหย่อน
4. เลือกวิธีการชำระเงิน
5. ทำการรับชำระเงิน
6. ออกใบเสร็จ
Expected Result: 
- แสดงยอดเงินที่ถูกต้องหลังยกเว้น/ลดหย่อน
- รับชำระเงินสำเร็จ
- ใบเสร็จแสดงรายละเอียดการยกเว้น/ลดหย่อน
- บันทึกการรับชำระในระบบ

Test Case: การบันทึกค้างชำระและแจ้งเตือน

Test ID: TC-002-004
Description: ทดสอบการบันทึกค้างชำระและแจ้งเตือนเมื่อผู้ป่วยมารับบริการครั้งต่อไป
Pre-condition: ผู้ป่วยมีค่ารักษาที่ยังไม่ได้ชำระ
Test Steps:
1. เข้าสู่หน้ารับชำระเงิน
2. ค้นหาผู้ป่วยที่มีค่ารักษา
3. เลือกบันทึกค้างชำระ
4. ระบุเหตุผลการค้างชำระ
5. บันทึกข้อมูล
6. ผู้ป่วยมารับบริการครั้งต่อไป
7. ระบบแจ้งเตือนรายการค้างชำระ
Expected Result: 
- บันทึกค้างชำระสำเร็จ
- แสดงสถานะค้างชำระในข้อมูลผู้ป่วย
- แจ้งเตือนเมื่อผู้ป่วยมารับบริการใหม่
- สามารถเรียกเก็บเงินค้างชำระได้

💳 TG-003: การรับชำระเงิน

Test Case: การรับชำระเงินหลายสิทธิ

Test ID: TC-003-001
Description: ทดสอบการรองรับผู้ป่วย 1 รายใช้สิทธิการรักษาหลายสิทธิต่อการ visit 1 ครั้ง
Pre-condition: ผู้ป่วยมีสิทธิการรักษาหลายประเภท, มีรายการค่ารักษา
Test Steps:
1. เข้าสู่หน้ารับชำระเงิน
2. ค้นหาและเลือกผู้ป่วย
3. แสดงรายการค่ารักษาพยาบาล
4. เลือกสิทธิการรักษาหลายประเภท (เช่น UC + เบิกตัว)
5. กำหนดการแบ่งค่ารักษาตามสิทธิ
6. คำนวณค่าใช้จ่ายตามสิทธิแต่ละประเภท
7. ทำการรับชำระเงิน
8. ออกใบเสร็จ
Expected Result: 
- สามารถเลือกสิทธิหลายประเภทได้
- คำนวณค่าใช้จ่ายตามสิทธิแต่ละประเภทถูกต้อง
- แสดงยอดเงินที่ผู้ป่วยต้องจ่ายเอง
- ใบเสร็จแสดงรายละเอียดตามสิทธิ

Test Case: การรับชำระเงินโดยไม่มีสิทธิการรักษา (Error Case)

Test ID: TC-003-001-E1
Description: ทดสอบการแจ้งเตือนเมื่อผู้ป่วยไม่มีสิทธิการรักษาที่ใช้ได้
Test Type: ❌ Error Case
Pre-condition: ผู้ป่วยไม่มีสิทธิการรักษาหรือสิทธิหมดอายุ
Test Steps:
1. พยายามรับชำระเงินสำหรับผู้ป่วยที่ไม่มีสิทธิ
2. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ ผู้ป่วยไม่มีสิทธิการรักษาที่ใช้ได้"
- แจ้งว่า "สิทธิหมดอายุ" (ถ้ามีแต่หมดอายุ)
- เสนอทางเลือก: ชำระเงินสดเต็มจำนวน
- บันทึก Warning log
- ไม่อนุญาตให้ใช้สิทธิที่หมดอายุ
Test Data: Rights Status: Expired/None

Test Case: การรับชำระเงินทุกประเภทในจุดเดียว

Test ID: TC-003-002
Description: ทดสอบการรับชำระเงินรายการค่ารักษาพยาบาลทุกประเภทในแต่ละจุดรับชำระเงิน
Pre-condition: มีจุดรับชำระเงินที่ตั้งค่าให้รองรับทุกประเภท
Test Steps:
1. เข้าสู่หน้ารับชำระเงิน
2. ทดสอบรับชำระค่ารักษา OPD
3. ทดสอบรับชำระค่ารักษา IPD
4. ทดสอบรับชำระค่ารักษา ER
5. ทดสอบรับชำระค่ายา
6. ทดสอบรับชำระค่าตรวจทางห้องปฏิบัติการ
7. ทดสอบรับชำระค่าตรวจรังสี
Expected Result: 
- สามารถรับชำระค่ารักษาทุกประเภทได้
- แสดงรายการค่ารักษาตามประเภทถูกต้อง
- คำนวณยอดเงินถูกต้องทุกประเภท
- ออกใบเสร็จได้ทุกประเภท

Test Case: การออกใบเสร็จและใบแจ้งหนี้

Test ID: TC-003-003
Description: ทดสอบการออกใบเสร็จรับเงิน (Receipt) และใบแจ้งค่ารักษาพยาบาล (Invoice)
Pre-condition: มี Template ใบเสร็จและใบแจ้งหนี้ตามที่สถานพยาบาลกำหนด
Test Steps:
1. ทำการรับชำระเงินสำเร็จ
2. เลือกออกใบเสร็จรับเงิน
3. ตรวจสอบข้อมูลในใบเสร็จ
4. พิมพ์ใบเสร็จ
5. เลือกออกใบแจ้งหนี้
6. ตรวจสอบข้อมูลในใบแจ้งหนี้
7. พิมพ์ใบแจ้งหนี้
Expected Result: 
- ใบเสร็จแสดงข้อมูลถูกต้องครบถ้วน
- ใบแจ้งหนี้แสดงรายละเอียดค่ารักษา
- รูปแบบตาม Template ที่กำหนด
- สามารถพิมพ์ได้ทั้งสองแบบ

Test Case: เครื่องพิมพ์ใบเสร็จไม่พร้อมใช้งาน (Fail Case)

Test ID: TC-003-003-F1
Description: ทดสอบกรณีเครื่องพิมพ์ใบเสร็จออฟไลน์
Test Type: ⚠️ Fail Case
Pre-condition: เครื่องพิมพ์ออฟไลน์หรือขัดข้อง
Test Steps:
1. พยายามพิมพ์ใบเสร็จ
2. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ เครื่องพิมพ์ไม่พร้อมใช้งาน"
- เก็บงานพิมพ์ไว้ใน Queue
- อนุญาตให้เลือกเครื่องพิมพ์อื่น
- อนุญาตให้ส่งออกเป็น PDF
- บันทึกข้อมูลการรับชำระสำเร็จ (แยกจากการพิมพ์)
- แจ้งเตือนเจ้าหน้าที่
Test Data: Printer: Offline

Test Case: การควบคุมเลขที่ใบเสร็จอัตโนมัติ

Test ID: TC-003-004
Description: ทดสอบการกำหนดและควบคุมรูปแบบการออกเลขที่ใบเสร็จรับเงินอัตโนมัติ
Pre-condition: ระบบพร้อมใช้งาน, ตั้งค่ารูปแบบเลขที่ใบเสร็จ
Test Steps:
1. เข้าสู่หน้าตั้งค่าเลขที่ใบเสร็จ
2. กำหนดรูปแบบเลขที่ (เช่น RC-YYYYMMDD-XXXX)
3. กำหนดเลขที่เริ่มต้น
4. บันทึกการตั้งค่า
5. ทำการรับชำระเงินและออกใบเสร็จ
6. ตรวจสอบเลขที่ใบเสร็จที่สร้างอัตโนมัติ
Expected Result: 
- ระบบสร้างเลขที่ใบเสร็จตามรูปแบบที่กำหนด
- เลขที่เรียงลำดับต่อเนื่องไม่ซ้ำ
- รีเซ็ตเลขที่ตามรอบที่กำหนด (รายวัน/รายเดือน/รายปี)
- เก็บประวัติเลขที่ใบเสร็จทั้งหมด

Test Case: เลขที่ใบเสร็จซ้ำซ้อน (Error Case)

Test ID: TC-003-004-E1
Description: ทดสอบการป้องกันการสร้างเลขที่ใบเสร็จซ้ำ
Test Type: ❌ Error Case
Pre-condition: ระบบมีเลขที่ใบเสร็จในฐานข้อมูล
Test Steps:
1. พยายามบันทึกใบเสร็จด้วย Manual Entry
2. ใช้เลขที่ซ้ำกับที่มีอยู่แล้ว
3. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ เลขที่ใบเสร็จซ้ำกับเลขที่ RC-20251028-0123"
- ไม่อนุญาตให้บันทึกเลขที่ซ้ำ
- แนะนำเลขที่ถัดไปที่ใช้ได้
- บันทึก Log การพยายามใช้เลขที่ซ้ำ
Test Data: Receipt No: RC-20251028-0123 (Duplicate)

Test Case: การบันทึกค่ารักษาตามหมวด

Test ID: TC-003-005
Description: ทดสอบการบันทึกข้อมูลค่ารักษาพยาบาลตามหมวดค่ารักษาทางการแพทย์
Pre-condition: มีข้อมูลหมวดค่ารักษาในระบบ
Test Steps:
1. เข้าสู่หน้าบันทึกค่ารักษา
2. เลือกผู้ป่วย
3. เลือกหมวดค่ารักษา (ค่าตรวจรักษา, ค่ายา, ค่าห้อง, ฯลฯ)
4. กรอกรายการค่ารักษาและจำนวนเงิน
5. เพิ่มค่าใช้จ่ายอื่นๆ เพิ่มเติม
6. บันทึกข้อมูล
Expected Result: 
- บันทึกค่ารักษาตามหมวดสำเร็จ
- แสดงรายการค่ารักษาแยกตามหมวด
- คำนวณยอดรวมถูกต้อง
- สามารถเพิ่มค่าใช้จ่ายอื่นๆ ได้

Test Case: การแสดงรายการค่ารักษาแบบ Online

Test ID: TC-003-006
Description: ทดสอบการแสดงข้อมูลรายการค่ารักษาพยาบาลจากหน่วยงานให้บริการแบบ Online
Pre-condition: มีการเชื่อมต่อระบบระหว่างหน่วยงาน
Test Steps:
1. หน่วยงานให้บริการบันทึกค่ารักษา
2. เข้าสู่หน้ารับชำระเงิน
3. ค้นหาผู้ป่วย
4. ตรวจสอบรายการค่ารักษาที่ปรากฏ
5. ยืนยันความถูกต้องของข้อมูล
Expected Result: 
- แสดงรายการค่ารักษาจากหน่วยงานให้บริการ
- ข้อมูลอัปเดต Real-time
- แสดงหน่วยงานที่บันทึกข้อมูล
- สามารถตรวจสอบรายละเอียดได้

Test Case: การแสดงสรุปยอดเงินทั้งหมด

Test ID: TC-003-007
Description: ทดสอบการแสดงรายการค่ารักษาพยาบาลตามหมวดค่ารักษาทางการแพทย์ทั้งหมดของผู้ป่วย
Pre-condition: ผู้ป่วยมีรายการค่ารักษาหลายหมวด
Test Steps:
1. เข้าสู่หน้ารับชำระเงิน
2. ค้นหาและเลือกผู้ป่วย
3. แสดงสรุปรายการค่ารักษาทั้งหมด
4. ตรวจสอบการแบ่งยอดเงิน:
   - ยอดที่ต้องชำระเอง (เบิกได้)
   - ยอดที่ต้องชำระเอง (เบิกไม่ได้)
   - ยอดลูกหนี้สิทธิ
   - ยอดส่วนลด
   - ยอดค้างชำระ
   - ยอดรวมที่ต้องชำระทั้งสิ้น
5. ทดสอบการคำนวณเงินทอน
Expected Result: 
- แสดงสรุปยอดเงินแยกตามประเภทถุกต้อง
- คำนวณยอดรวมถูกต้อง
- คำนวณเงินทอนถูกต้อง
- แสดงรายละเอียดชัดเจน

Test Case: การรับชำระเงินโดยยอดเงินไม่ตรงกัน (Error Case)

Test ID: TC-003-007-E1
Description: ทดสอบการแจ้งเตือนเมื่อยอดเงินที่รับไม่ตรงกับยอดที่ต้องชำระ
Test Type: ❌ Error Case
Pre-condition: ยอดเงินที่ต้องชำระคือ 500 บาท
Test Steps:
1. พยายามบันทึกการรับเงิน 400 บาท (ไม่ครบ)
2. ไม่ระบุว่าเป็นการผ่อนชำระ
3. พยายามบันทึก
Expected Result:
- แสดง "⚠️ ยอดเงินที่รับไม่ตรงกับยอดที่ต้องชำระ"
- แสดง "ยอดขาด: 100 บาท"
- เสนอทางเลือก:
  - บันทึกเป็นค้างชำระ
  - บันทึกเป็นผ่อนชำระ
  - ยกเลิกและแก้ไขยอดเงิน
- ไม่อนุญาตให้บันทึกแบบไม่สมบูรณ์
Test Data: Should Pay: 500, Paid: 400, Short: 100

Test Case: การรับชำระเงินหลายรูปแบบ

Test ID: TC-003-008
Description: ทดสอบการระบุการรับชำระเงินได้หลายรูปแบบ (Payment Method)
Pre-condition: ระบบรองรับการชำระเงินหลายรูปแบบ
Test Steps:
1. เข้าสู่หน้ารับชำระเงิน
2. ค้นหาและเลือกผู้ป่วย
3. ทดสอบการชำระด้วยเงินสด
4. ทดสอบการชำระด้วยบัตรเครดิต
5. ทดสอบการชำระด้วยเงินโอน
6. ทดสอบการชำระแบบผสมผสาน (เงินสด + บัตร)
7. บันทึกการรับชำระ
Expected Result: 
- รองรับการชำระเงินหลายรูปแบบ
- บันทึกรายละเอียดการชำระแต่ละประเภท
- คำนวณยอดเงินแต่ละประเภทถูกต้อง
- ออกใบเสร็จแสดงรายละเอียดการชำระ

Test Case: การชำระเงินด้วยบัตรเครดิตไม่สำเร็จ (Fail Case)

Test ID: TC-003-008-F1
Description: ทดสอบกรณี Payment Gateway ปฏิเสธการทำธุรกรรม
Test Type: ⚠️ Fail Case
Pre-condition: การเชื่อมต่อ Payment Gateway สำเร็จ
Test Steps:
1. พยายามชำระเงินด้วยบัตรเครดิต
2. Payment Gateway ตอบกลับว่าบัตรไม่ผ่าน
3. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ การชำระเงินด้วยบัตรไม่สำเร็จ"
- แสดงสาเหตุ: "บัตรไม่ผ่านการอนุมัติ" / "ยอดเงินไม่พอ" / "บัตรหมดอายุ"
- ไม่บันทึกการรับชำระ
- เสนอทางเลือกชำระด้วยวิธีอื่น
- บันทึก Transaction log
Test Data: Card Payment: Declined

Test Case: Payment Gateway ไม่ตอบสนอง (Fail Case)

Test ID: TC-003-008-F2
Description: ทดสอบกรณี Payment Gateway ออฟไลน์หรือ Timeout
Test Type: ⚠️ Fail Case
Pre-condition: Payment Gateway ออฟไลน์
Test Steps:
1. พยายามชำระเงินด้วยบัตรเครดิต
2. ระบบไม่ได้รับการตอบกลับ (Timeout)
3. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ ไม่สามารถเชื่อมต่อระบบชำระเงินได้"
- แนะนำ "กรุณาชำระด้วยวิธีอื่นหรือลองใหม่อีกครั้ง"
- ไม่บันทึกการรับชำระที่ไม่แน่นอน
- เก็บ Transaction ไว้ตรวจสอบ
- แจ้งเตือนเจ้าหน้าที่
Test Data: Payment Gateway: Offline/Timeout

Test Case: การแสดงรายละเอียดค่ารักษาตามวันที่

Test ID: TC-003-009
Description: ทดสอบการแสดงรายละเอียดค่ารักษาพยาบาลโดยละเอียดตามวันที่
Pre-condition: ผู้ป่วยมีประวัติการรักษาหลายวัน
Test Steps:
1. เข้าสู่หน้าดูรายละเอียดค่ารักษา
2. ค้นหาและเลือกผู้ป่วย
3. เลือกแสดงรายละเอียดตามวันที่เลือก
4. เลือกแสดงรายละเอียดรวมทั้งหมด
5. ตรวจสอบความถูกต้องของข้อมูล
Expected Result: 
- แสดงรายละเอียดค่ารักษาตามวันที่ที่เลือก
- แสดงรายละเอียดรวมทั้งหมดได้
- ข้อมูลถูกต้องและครบถ้วน
- สามารถเลือกช่วงวันที่ได้

Test Case: การจัดการเงินรับฝาก

Test ID: TC-003-010
Description: ทดสอบการรองรับเงินรับฝากจากผู้ป่วย
Pre-condition: ระบบพร้อมใช้งาน
Test Steps:
1. เข้าสู่หน้ารับฝากเงิน
2. ค้นหาและเลือกผู้ป่วย
3. กรอกข้อมูลการรับฝาก:
   - วันที่รับฝากเงิน
   - เวลาที่รับฝากเงิน
   - ชื่อผู้ฝากเงิน
   - จำนวนเงินที่ฝาก
   - หมายเหตุ
4. บันทึกการรับฝากเงิน
5. ออกใบรับฝากเงิน
Expected Result: 
- บันทึกข้อมูลการรับฝากเงินสำเร็จ
- ออกใบรับฝากเงินได้
- แสดงยอดเงินฝากในระบบ
- สามารถใช้เงินฝากชำระค่ารักษาได้

Test Case: การตรวจสอบประวัติการทำรายการ

Test ID: TC-003-011
Description: ทดสอบการสอบถามใบเสร็จรับเงินว่าถูกพิมพ์จากจุดไหนและใครทำรายการ
Pre-condition: มีการออกใบเสร็จแล้ว
Test Steps:
1. เข้าสู่หน้าตรวจสอบประวัติการทำรายการ
2. ค้นหาด้วยเลขที่ใบเสร็จ
3. แสดงข้อมูลรายละเอียด:
   - จุดรับชำระเงินที่ออกใบเสร็จ
   - ผู้ทำรายการรับชำระเงิน
   - วันเวลาที่ทำรายการ
   - รายละเอียดการชำระ
Expected Result: 
- แสดงข้อมูลจุดรับชำระเงินถูกต้อง
- แสดงข้อมูลผู้ทำรายการถูกต้อง
- แสดงประวัติการทำรายการครบถ้วน
- มี Audit Trail ที่สมบูรณ์

Test Case: การแสดงรายการตามสิทธิ

Test ID: TC-003-012
Description: ทดสอบการแสดงข้อมูลรายการค่ารักษาพยาบาลแยกตามสิทธิ
Pre-condition: ผู้ป่วยมีการใช้สิทธิหลายประเภท
Test Steps:
1. เข้าสู่หน้าดูรายการค่ารักษา
2. ค้นหาและเลือกผู้ป่วย
3. เลือกแสดงรายการแยกตามสิทธิ
4. ตรวจสอบการแบ่งรายการตามสิทธิแต่ละประเภท
Expected Result: 
- แสดงรายการค่ารักษาแยกตามสิทธิ
- คำนวณยอดเงินแต่ละสิทธิถูกต้อง
- แสดงส่วนที่สิทธิจ่ายและผู้ป่วยจ่าย
- ข้อมูลชัดเจนและเข้าใจง่าย

Test Case: การแก้ไขสิทธิการรักษา

Test ID: TC-003-013
Description: ทดสอบการแก้ไขหรือเพิ่มสิทธิการรักษาของผู้ป่วย
Pre-condition: ผู้ใช้มีสิทธิการใช้งานที่เหมาะสม
Test Steps:
1. เข้าสู่หน้าแก้ไขข้อมูลผู้ป่วย
2. ค้นหาและเลือกผู้ป่วย
3. เข้าสู่ส่วนแก้ไขสิทธิการรักษา
4. เพิ่มสิทธิใหม่หรือแก้ไขสิทธิเดิม
5. ระบุเหตุผลการแก้ไข
6. บันทึกการแก้ไข
Expected Result: 
- แก้ไขสิทธิสำเร็จ
- บันทึกประวัติการแก้ไข
- ตรวจสอบสิทธิการใช้งานก่อนอนุญาต
- สิทธิใหม่มีผลใช้ได้ทันทีหรือตามที่กำหนด

Test Case: การตรวจสอบยอดค่ารักษาผู้ป่วยใน

Test ID: TC-003-014
Description: ทดสอบการตรวจสอบยอดค่ารักษาพยาบาลของผู้ป่วยในเป็นรายวัน
Pre-condition: มีผู้ป่วยในระบบ
Test Steps:
1. เข้าสู่หน้าตรวจสอบยอดค่ารักษาผู้ป่วยใน
2. ค้นหาผู้ป่วยใน (AN)
3. เลือกวันที่ที่ต้องการตรวจสอบ
4. แสดงรายละเอียดค่ารักษาเป็นรายวัน
5. แสดงยอดสะสมตั้งแต่วันแรกที่เข้ารักษา
Expected Result: 
- แสดงยอดค่ารักษารายวันถูกต้อง
- แสดงยอดสะสมถูกต้อง
- แสดงรายละเอียดค่ารักษาแต่ละหมวด
- ข้อมูลอัปเดตตาม Real-time

📋 TG-004: การค้างชำระค่ารักษาพยาบาล

Test Case: การแจ้งเตือนผู้ป่วยค้างชำระ

Test ID: TC-004-001
Description: ทดสอบการแจ้งเตือนเมื่อผู้ป่วยที่ค้างชำระค่ารักษาพยาบาลมารับบริการในครั้งต่อๆ ไป
Pre-condition: ผู้ป่วยมีประวัติค้างชำระในระบบ
Test Steps:
1. ผู้ป่วยที่ค้างชำระมาลงทะเบียนรับบริการใหม่
2. เจ้าหน้าที่ค้นหาข้อมูลผู้ป่วย
3. ระบบแสดงการแจ้งเตือนค้างชำระ
4. แสดงรายละเอียดยอดค้างชำระ
5. เลือกดำเนินการ (ชำระเงิน/บันทึกค้างชำระต่อ)
Expected Result: 
- แสดงป๊อปอัพเตือนค้างชำระทันทีที่ค้นหาผู้ป่วย
- แสดงยอดเงินค้างชำระทั้งหมด
- แสดงรายละเอียดแต่ละรายการค้างชำระ
- แสดงวันที่และสาเหตุของการค้างชำระ
- สามารถเลือกดำเนินการได้หลายทาง

Test Case: การรวมยอดค้างชำระหลายครั้ง

Test ID: TC-004-002
Description: ทดสอบการแสดงและจัดการยอดค้างชำระที่สะสมจากหลายครั้งรับบริการ
Pre-condition: ผู้ป่วยมีประวัติค้างชำระหลายครั้ง
Test Steps:
1. เข้าสู่หน้าตรวจสอบยอดค้างชำระ
2. ค้นหาผู้ป่วยที่ค้างชำระ
3. แสดงรายการค้างชำระทั้งหมด
4. แสดงยอดรวมค้างชำระ
5. เลือกรายการที่ต้องการรับชำระ
6. ทำการรับชำระเงินค้างชำระ
Expected Result: 
- แสดงรายการค้างชำระแยกตามวันที่รับบริการ
- คำนวณยอดรวมค้างชำระถูกต้อง
- สามารถเลือกชำระทั้งหมดหรือบางรายการ
- บันทึกการชำระค้างชำระในระบบ

Test Case: การตั้งเงื่อนไขค้างชำระ

Test ID: TC-004-003
Description: ทดสอบการกำหนดเงื่อนไขและระยะเวลาการค้างชำระ
Pre-condition: ระบบมีการตั้งค่าเงื่อนไขค้างชำระ
Test Steps:
1. เข้าสู่หน้าตั้งค่าเงื่อนไขค้างชำระ
2. กำหนดยอดเงินสูงสุดที่อนุญาตให้ค้างชำระ
3. กำหนดระยะเวลาค้างชำระสูงสุด
4. กำหนดเงื่อนไขพิเศษตามประเภทผู้ป่วย
5. บันทึกการตั้งค่า
6. ทดสอบการทำงานของเงื่อนไข
Expected Result: 
- บันทึกเงื่อนไขค้างชำระสำเร็จ
- ระบบตรวจสอบเงื่อนไขเมื่อมีการค้างชำระ
- แจ้งเตือนเมื่อเกินเงื่อนไขที่กำหนด
- สามารถกำหนดเงื่อนไขพิเศษได้

❌ TG-005: การยกเลิกการรับชำระเงิน

Test Case: การยกเลิกใบเสร็จรับเงิน

Test ID: TC-005-001
Description: ทดสอบการยกเลิกใบเสร็จรับเงินโดยระบุสาเหตุของการยกเลิก
Pre-condition: มีใบเสร็จที่ต้องการยกเลิก, ผู้ใช้มีสิทธิยกเลิก
Test Steps:
1. เข้าสู่หน้าจัดการใบเสร็จ
2. ค้นหาใบเสร็จที่ต้องการยกเลิก (เลขที่ใบเสร็จ)
3. คลิกปุ่มยกเลิกใบเสร็จ
4. ระบุสาเหตุของการยกเลิก
5. ยืนยันการยกเลิก
6. ระบบบันทึกข้อมูลการยกเลิก
Expected Result: 
- ยกเลิกใบเสร็จสำเร็จ
- บันทึกสาเหตุการยกเลิก
- อัปเดตสถานะใบเสร็จเป็น "ยกเลิก"
- บันทึกผู้ยกเลิกและเวลาที่ยกเลิก
- แสดงใบเสร็จยกเลิกในรายงาน

Test Case: การสร้างเลขที่เอกสารใหม่

Test ID: TC-005-002
Description: ทดสอบการสร้างเลขที่เอกสารใหม่เมื่อมีการยกเลิกใบเสร็จ
Pre-condition: มีการยกเลิกใบเสร็จที่ต้องออกใหม่
Test Steps:
1. ยกเลิกใบเสร็จเดิมตาม TC-005-001
2. เลือกออกใบเสร็จใหม่
3. ระบบสร้างเลขที่ใบเสร็จใหม่
4. เชื่อมโยงกับใบเสร็จเก่าที่ยกเลิก
5. ออกใบเสร็จใหม่
6. ตรวจสอบการเชื่อมโยงระหว่างเอกสาร
Expected Result: 
- สร้างเลขที่ใบเสร็จใหม่สำเร็จ
- เก็บความสัมพันธ์ระหว่างใบเสร็จเก่าและใหม่
- สามารถตรวจสอบประวัติการออกใบเสร็จได้
- ข้อมูลทางการเงินถูกต้อง

Test Case: การบันทึกประวัติการยกเลิก

Test ID: TC-005-003
Description: ทดสอบการบันทึกข้อมูลในการยกเลิกใบเสร็จ
Pre-condition: มีการยกเลิกใบเสร็จ
Test Steps:
1. ทำการยกเลิกใบเสร็จ
2. ตรวจสอบข้อมูลที่บันทึก:
   - วันที่ยกเลิก
   - เวลาที่ยกเลิก
   - HN (หมายเลขผู้ป่วยนอก)
   - ชื่อ-สกุลผู้ป่วย
   - เลขที่ใบเสร็จที่ยกเลิก
   - จำนวนเงินที่ยกเลิก
   - เจ้าหน้าที่ที่ทำการยกเลิก
   - สาเหตุของการยกเลิก
3. ตรวจสอบรายงานการยกเลิก
Expected Result: 
- บันทึกข้อมูลการยกเลิกครบถ้วนตาม TOR
- สามารถออกรายงานการยกเลิกได้
- ข้อมูลมีความถูกต้องและสมบูรณ์
- เก็บ Audit Trail ไว้ตรวจสอบได้

Test Case: การจำกัดสิทธิการยกเลิก

Test ID: TC-005-004
Description: ทดสอบการจำกัดสิทธิการยกเลิกใบเสร็จตามเงื่อนไขที่กำหนด
Pre-condition: ตั้งค่าสิทธิการยกเลิกในระบบ
Test Steps:
1. ผู้ใช้ที่ไม่มีสิทธิพยายามยกเลิกใบเสร็จ
2. ผู้ใช้มีสิทธิพยายามยกเลิกใบเสร็จเก่าเกินกำหนด
3. ผู้ใช้มีสิทธิยกเลิกใบเสร็จภายในกำหนด
4. ทดสอบการขออนุมัติสำหรับกรณีพิเศษ
Expected Result: 
- ปฏิเสธการยกเลิกสำหรับผู้ไม่มีสิทธิ
- ตรวจสอบเงื่อนไขเวลาในการยกเลิก
- อนุญาตการยกเลิกสำหรับผู้มีสิทธิ
- มีระบบขออนุมัติสำหรับกรณีพิเศษ

Test Case: การยกเลิกใบเสร็จโดยไม่ระบุสาเหตุ (Error Case)

Test ID: TC-005-001-E1
Description: ทดสอบการป้องกันการยกเลิกใบเสร็จโดยไม่ระบุสาเหตุ
Test Type: ❌ Error Case
Pre-condition: ผู้ใช้มีสิทธิยกเลิกใบเสร็จ
Test Steps:
1. พยายามยกเลิกใบเสร็จโดยไม่ระบุสาเหตุ
2. คลิกยืนยันการยกเลิก
Expected Result:
- แสดง "⚠️ กรุณาระบุสาเหตุการยกเลิกใบเสร็จ"
- ไม่อนุญาตให้ยกเลิกโดยไม่มีสาเหตุ
- ต้องระบุสาเหตุอย่างน้อย 1 รายการ
- บันทึก Log การพยายามยกเลิก
Test Data: Cancel Reason: Empty

Test Case: การยกเลิกใบเสร็จโดยผู้ไม่มีสิทธิ์ (Error Case)

Test ID: TC-005-004-E1
Description: ทดสอบการป้องกันการยกเลิกใบเสร็จโดยผู้ที่ไม่มีสิทธิ์
Test Type: ❌ Error Case
Pre-condition: ผู้ใช้ไม่มีสิทธิยกเลิกใบเสร็จ
Test Steps:
1. พยายามยกเลิกใบเสร็จด้วยผู้ใช้ที่ไม่มีสิทธิ์
2. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ คุณไม่มีสิทธิ์ยกเลิกใบเสร็จ"
- ไม่แสดงปุ่มยกเลิก
- บันทึก Unauthorized access log
- แนะนำติดต่อผู้มีสิทธิ์
Test Data: User Role: Cashier (No cancel permission)

Test Case: การยกเลิกใบเสร็จที่เกินกำหนดเวลา (Error Case)

Test ID: TC-005-004-E2
Description: ทดสอบการป้องกันการยกเลิกใบเสร็จที่เกินระยะเวลาที่อนุญาต
Test Type: ❌ Error Case
Pre-condition: ใบเสร็จออกมาแล้วเกิน 24 ชั่วโมง, กำหนดเวลายกเลิกคือ 24 ชม.
Test Steps:
1. พยายามยกเลิกใบเสร็จที่เกินกำหนด
2. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ ไม่สามารถยกเลิกใบเสร็จที่เกิน 24 ชั่วโมง"
- เสนอทางเลือก: "ขออนุมัติพิเศษจากผู้บริหาร"
- บันทึก Request log
- ส่งการแจ้งเตือนไปยังผู้อนุมัติ
Test Data: Receipt Date: 26 Oct, Current: 28 Oct (Over 24h)

📊 TG-006: การปิดรอบการเงิน

Test Case: การปิดยอดรายการและประมวลผล

Test ID: TC-006-001
Description: ทดสอบการปิดยอดรายการที่เกิดขึ้นและประมวลผลเพื่อสรุปยอดเงินตามช่วงเวลา
Pre-condition: มีรายการทางการเงินในระบบ
Test Steps:
1. เข้าสู่หน้าปิดรอบการเงิน
2. เลือกช่วงเวลาที่ต้องการปิดรอบ (รายวัน/รายเดือน/รายปี)
3. ระบุประเภทการปิดรอบ
4. คลิกปุ่มประมวลผล
5. ตรวจสอบรายงานสรุปการรับชำระเงิน
6. ยืนยันการปิดรอบ
Expected Result: 
- ประมวลผลข้อมูลสำเร็จ
- สรุปยอดเงินตามช่วงเวลาถูกต้อง
- แยกตามประเภทการรับชำระเงิน
- ออกรายงานสรุปได้
- บันทึกสถานะการปิดรอบ

Test Case: การสรุปยอดเงินสิ้นวันและพิมพ์ใบนำส่ง

Test ID: TC-006-002
Description: ทดสอบการสรุปยอดเงินที่รับชำระทุกสิ้นวันและพิมพ์ใบนำส่งเงินรายได้
Pre-condition: มีรายการรับชำระเงินประจำวัน
Test Steps:
1. เข้าสู่หน้าปิดรอบรายวัน
2. เลือกวันที่ที่ต้องการสรุป
3. คลิกสรุปยอดเงินสิ้นวัน
4. ตรวจสอบรายละเอียดยอดเงิน:
   - เงินสด
   - บัตรเครดิต
   - เงินโอน
   - รวมทั้งหมด
5. พิมพ์ใบนำส่งเงินรายได้
Expected Result: 
- สรุปยอดเงินสิ้นวันถูกต้อง
- แยกตามประเภทการชำระเงิน
- พิมพ์ใบนำส่งเงินได้
- ข้อมูลในใบนำส่งครบถ้วน

Test Case: การสอบถามสรุปยอดเงินแบบหลายเงื่อนไข

Test ID: TC-006-003
Description: ทดสอบการสอบถามสรุปยอดเงินตามรายการค่ารักษา, จุดรับชำระ, ประเภทสิทธิ และหน่วยงาน
Pre-condition: มีข้อมูลทางการเงินครบถ้วนในระบบ
Test Steps:
1. เข้าสู่หน้ารายงานสรุปยอดเงิน
2. ทดสอบการสอบถามตามรายการค่ารักษาพยาบาล
3. ทดสอบการสอบถามตามจุดรับชำระเงิน
4. ทดสอบการสอบถามตามประเภทสิทธิการรักษาพยาบาล
5. ทดสอบการสอบถามตามหน่วยงานที่ให้บริการ
6. ทดสอบการรวมเงื่อนไขหลายประเภท
Expected Result: 
- แสดงสรุปยอดเงินตามเงื่อนไขที่เลือก
- ข้อมูลถูกต้องและครบถ้วน
- สามารถรวมเงื่อนไขหลายประเภทได้
- ออกรายงานและส่งออกข้อมูลได้

Test Case: การสอบถามยอดค่ารักษารายบุคคล

Test ID: TC-006-004
Description: ทดสอบการสอบถามสรุปยอดค่ารักษาพยาบาลของผู้ป่วยเป็นรายบุคคลแยกตามประเภทการรับชำระ
Pre-condition: มีข้อมูลผู้ป่วยและรายการทางการเงิน
Test Steps:
1. เข้าสู่หน้ารายงานยอดค่ารักษารายบุคคล
2. ค้นหาและเลือกผู้ป่วย
3. เลือกช่วงเวลาที่ต้องการ
4. แสดงสรุปยอดค่ารักษาแยกตาม:
   - ประเภทการรับชำระเงิน
   - หมวดค่ารักษา
   - วันที่รับบริการ
5. ออกรายงานรายบุคคล
Expected Result: 
- แสดงข้อมูลรายบุคคลถูกต้อง
- แยกตามประเภทการรับชำระชัดเจน
- แสดงยอดเงินแต่ละหมวดค่ารักษา
- สามารถออกรายงานได้

Test Case: การตรวจสอบความถูกต้องของการปิดรอบ

Test ID: TC-006-005
Description: ทดสอบการตรวจสอบความถูกต้องของข้อมูลก่อนปิดรอบการเงิน
Pre-condition: มีรายการทางการเงินที่ต้องตรวจสอบ
Test Steps:
1. เข้าสู่หน้าตรวจสอบก่อนปิดรอบ
2. ตรวจสอบรายการที่ยังไม่สมบูรณ์
3. ตรวจสอบรายการค้างชำระ
4. ตรวจสอบรายการที่ยกเลิก
5. ตรวจสอบความสมดุลของยอดเงิน
6. แก้ไขข้อมูลที่ผิดพลาด (ถ้ามี)
7. ยืนยันการปิดรอบ
Expected Result: 
- ตรวจสอบความถูกต้องของข้อมูลได้
- แสดงรายการที่ต้องแก้ไข
- แก้ไขข้อมูลก่อนปิดรอบได้
- ปิดรอบเมื่อข้อมูลถูกต้องครบถ้วน

Test Case: การปิดรอบการเงินซ้ำ (Error Case)

Test ID: TC-006-001-E1
Description: ทดสอบการป้องกันการปิดรอบการเงินซ้ำในช่วงเวลาเดียวกัน
Test Type: ❌ Error Case
Pre-condition: ปิดรอบวันที่ 27 ตุลาคม 2568 แล้ว
Test Steps:
1. พยายามปิดรอบวันที่ 27 ตุลาคม 2568 อีกครั้ง
2. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ ปิดรอบวันที่ 27 ต.ค. 2568 แล้ว"
- แสดงผู้ปิดรอบและเวลาที่ปิด
- เสนอทางเลือก: "ดูรายงานที่ปิดแล้ว" หรือ "ขอเปิดรอบใหม่"
- ไม่อนุญาตให้ปิดรอบซ้ำ
Test Data: Period: 27 Oct 2568 (Already closed)

Test Case: การปิดรอบโดยมีรายการไม่สมบูรณ์ (Error Case)

Test ID: TC-006-005-E1
Description: ทดสอบการแจ้งเตือนเมื่อมีรายการที่ไม่สมบูรณ์ก่อนปิดรอบ
Test Type: ❌ Error Case
Pre-condition: มีรายการค้างชำระหรือข้อมูลไม่สมบูรณ์
Test Steps:
1. พยายามปิดรอบโดยมีรายการค้างชำระ 5 รายการ
2. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ พบรายการที่ยังไม่สมบูรณ์ 5 รายการ"
- แสดงรายละเอียดรายการที่ต้องแก้ไข
- เสนอทางเลือก:
  - ดูรายละเอียดรายการ
  - ปิดรอบโดยยกเว้นรายการนี้
  - ยกเลิกและแก้ไขก่อน
- บันทึก Warning log
Test Data: Incomplete Items: 5, Pending Payment: 3, Invalid: 2

🖨️ TG-007: การพิมพ์เอกสารทางการเงิน

Test Case: การพิมพ์ใบเสร็จรับเงินภาษาไทย

Test ID: TC-007-001
Description: ทดสอบการพิมพ์ใบเสร็จรับเงินในรูปแบบภาษาไทย
Pre-condition: มีการรับชำระเงินสำเร็จแล้ว
Test Steps:
1. เข้าสู่หน้าจัดการใบเสร็จ
2. ค้นหาใบเสร็จที่ต้องการพิมพ์
3. เลือกรูปแบบภาษาไทย
4. ตรวจสอบข้อมูลในใบเสร็จ:
   - ข้อมูลโรงพยาบาล
   - ข้อมูลผู้ป่วย
   - รายการค่ารักษา
   - ยอดเงินและการชำระ
5. พิมพ์ใบเสร็จ
Expected Result: 
- ใบเสร็จแสดงข้อมูลเป็นภาษาไทย
- ข้อมูลครบถ้วนและถูกต้อง
- รูปแบบตาม Template ที่กำหนด
- พิมพ์ออกมาชัดเจน อ่านง่าย

Test Case: การพิมพ์ใบเสร็จรับเงินภาษาอังกฤษ

Test ID: TC-007-002
Description: ทดสอบการพิมพ์ใบเสร็จรับเงินในรูปแบบภาษาอังกฤษ
Pre-condition: มีการรับชำระเงินสำเร็จแล้ว
Test Steps:
1. เข้าสู่หน้าจัดการใบเสร็จ
2. ค้นหาใบเสร็จที่ต้องการพิมพ์
3. เลือกรูปแบบภาษาอังกฤษ
4. ตรวจสอบข้อมูลในใบเสร็จ:
   - Hospital Information
   - Patient Information
   - Medical Service Details
   - Payment Information
5. พิมพ์ใบเสร็จ
Expected Result: 
- ใบเสร็จแสดงข้อมูลเป็นภาษาอังกฤษ
- การแปลศัพท์ทางการแพทย์ถูกต้อง
- รูปแบบมาตรฐานสากล
- เหมาะสำหรับผู้ป่วยต่างชาติ

Test Case: การพิมพ์ใบแจ้งหนี้

Test ID: TC-007-003
Description: ทดสอบการพิมพ์ใบแจ้งหนี้
Pre-condition: มีข้อมูลค่ารักษาที่ต้องการออกใบแจ้งหนี้
Test Steps:
1. เข้าสู่หน้าจัดการใบแจ้งหนี้
2. ค้นหาผู้ป่วยหรือรายการที่ต้องการ
3. สร้างใบแจ้งหนี้ใหม่
4. ตรวจสอบข้อมูลในใบแจ้งหนี้:
   - ข้อมูลผู้ป่วย
   - รายการค่ารักษาพยาบาล
   - ยอดเงินรวม
   - วันที่ครบกำหนดชำระ
5. พิมพ์ใบแจ้งหนี้
Expected Result: 
- ใบแจ้งหนี้แสดงข้อมูลถูกต้อง
- รายการค่ารักษาครบถ้วน
- คำนวณยอดเงินถูกต้อง
- รูปแบบเป็นมาตรฐาน

Test Case: การพิมพ์ใบสั่งยาภาษาไทยและอังกฤษ

Test ID: TC-007-004
Description: ทดสอบการพิมพ์ใบสั่งยาในรูปแบบภาษาไทยและภาษาอังกฤษ
Pre-condition: มีการสั่งยาและข้อมูลทางการเงินที่เกี่ยวข้อง
Test Steps:
1. เข้าสู่หน้าจัดการใบสั่งยา
2. ค้นหาใบสั่งยาที่ต้องการพิมพ์
3. ทดสอบพิมพ์ภาษาไทย:
   - ชื่อยาภาษาไทย
   - วิธีใช้ภาษาไทย
   - ข้อมูลราคาและการชำระ
4. ทดสอบพิมพ์ภาษาอังกฤษ:
   - Generic/Trade name
   - Instruction in English
   - Payment information
Expected Result: 
- ใบสั่งยาแสดงข้อมูลทางการเงินถูกต้อง
- รองรับทั้งภาษาไทยและอังกฤษ
- ข้อมูลยาและราคาถูกต้อง
- เชื่อมโยงกับระบบเภสัชกรรม

Test Case: การพิมพ์ใบรับฝากเงิน (มัดจำ)

Test ID: TC-007-005
Description: ทดสอบการพิมพ์ใบรับฝากเงิน (มัดจำ)
Pre-condition: มีการรับฝากเงินแล้ว
Test Steps:
1. เข้าสู่หน้าจัดการเงินรับฝาก
2. ค้นหารายการรับฝากเงิน
3. เลือกรายการที่ต้องการพิมพ์ใบรับฝาก
4. ตรวจสอบข้อมูลในใบรับฝาก:
   - ข้อมูลผู้ฝากเงิน
   - จำนวนเงินที่ฝาก
   - วัตถุประสงค์การฝาก
   - วันที่และเวลา
5. พิมพ์ใบรับฝากเงิน
Expected Result: 
- ใบรับฝากเงินแสดงข้อมูลครบถ้วน
- จำนวนเงินถูกต้อง
- มีเลขที่อ้างอิงสำหรับติดตาม
- ผู้ฝากสามารถใช้เป็นหลักฐานได้

Test Case: การพิมพ์ใบแจ้งเรียกเก็บเงินผู้ป่วยใน

Test ID: TC-007-006
Description: ทดสอบการพิมพ์ใบแจ้งเรียกเก็บเงิน (กรณีผู้ป่วยใน) ภาษาไทยและอังกฤษ
Pre-condition: มีผู้ป่วยในที่มีค่ารักษา
Test Steps:
1. เข้าสู่หน้าจัดการผู้ป่วยใน
2. ค้นหาผู้ป่วยใน (AN)
3. สร้างใบแจ้งเรียกเก็บเงิน
4. ทดสอบพิมพ์ภาษาไทย
5. ทดสอบพิมพ์ภาษาอังกฤษ
6. ตรวจสอบข้อมูล:
   - ค่าห้อง
   - ค่ารักษาพยาบาล
   - ค่ายา
   - ค่าตรวจต่างๆ
Expected Result: 
- ใบแจ้งเรียกเก็บแสดงรายละเอียดครบถ้วน
- คำนวณยอดเงินถูกต้อง
- รองรับทั้งภาษาไทยและอังกฤษ
- เหมาะสำหรับผู้ป่วยในต่างชาติ

Test Case: การพิมพ์ใบสรุปหน้างบผู้ป่วยใน

Test ID: TC-007-007
Description: ทดสอบการพิมพ์ใบสรุปหน้างบ (กรณีผู้ป่วยใน)
Pre-condition: ผู้ป่วยในพร้อม Discharge
Test Steps:
1. เข้าสู่หน้าสรุปหน้างบผู้ป่วยใน
2. ค้นหาผู้ป่วยใน (AN)
3. สร้างใบสรุปหน้างบ
4. ตรวจสอบข้อมูลสรุป:
   - ยอดรวมค่ารักษาทั้งหมด
   - แยกตามหมวดค่ารักษา
   - ส่วนลดและยกเว้น
   - ยอดสุทธิที่ต้องชำระ
5. พิมพ์ใบสรุปหน้างบ
Expected Result: 
- ใบสรุปแสดงยอดเงินรวมถูกต้อง
- แยกรายการตามหมวดชัดเจน
- คำนวณส่วนลดและยกเว้นถูกต้อง
- เหมาะสำหรับการ Discharge

Test Case: การพิมพ์ใบรายการค่าใช้จ่ายทั้งหมดผู้ป่วยใน

Test ID: TC-007-008
Description: ทดสอบการพิมพ์ใบรายการค่าใช้จ่ายทั้งหมด (กรณีผู้ป่วยใน)
Pre-condition: ผู้ป่วยในมีประวัติการรักษาครบถ้วน
Test Steps:
1. เข้าสู่หน้ารายละเอียดค่าใช้จ่ายผู้ป่วยใน
2. ค้นหาผู้ป่วยใน (AN)
3. แสดงรายการค่าใช้จ่ายทั้งหมด
4. ตรวจสอบรายละเอียด:
   - รายการตามวันที่
   - หมวดค่ารักษาแต่ละประเภท
   - ยอดเงินแต่ละรายการ
   - หน่วยงานที่ให้บริการ
5. พิมพ์รายการค่าใช้จ่ายทั้งหมด
Expected Result: 
- แสดงรายการค่าใช้จ่ายครบถ้วน
- เรียงตามวันที่และหมวดค่ารักษา
- ข้อมูลละเอียดและถูกต้อง
- เหมาะสำหรับการตรวจสอบและอ้างอิง

🔗 TG-008: API Integration และการเชื่อมต่อระบบ

Test Case: การเชื่อมต่อกับระบบเวชระเบียน

Test ID: TC-008-001
Description: ทดสอบการเชื่อมต่อกับระบบเวชระเบียน (1.2.1) เพื่อดึงข้อมูลผู้ป่วย
Pre-condition: ระบบเวชระเบียนพร้อมใช้งาน, API เชื่อมต่อได้
Test Steps:
1. ระบบการเงินส่งคำขอข้อมูลผู้ป่วย (HN)
2. ระบบเวชระเบียนส่งข้อมูลผู้ป่วยกลับมา
3. ตรวจสอบข้อมูลที่ได้รับ:
   - ข้อมูลส่วนตัวผู้ป่วย
   - ข้อมูลการติดต่อ
   - ประวัติการรักษา
4. แสดงข้อมูลในหน้าจอการเงิน
Expected Result: 
- ดึงข้อมูลผู้ป่วยสำเร็จ
- ข้อมูลถูกต้องและครบถ้วน
- เวลาตอบสนองไม่เกิน 3 วินาที
- ข้อมูลแสดงในรูปแบบที่เหมาะสม

Test Case: ระบบเวชระเบียนไม่ตอบสนอง (Fail Case)

Test ID: TC-008-001-F1
Description: ทดสอบกรณีระบบเวชระเบียนออฟไลน์หรือไม่ตอบสนอง
Test Type: ⚠️ Fail Case
Pre-condition: ระบบเวชระเบียน (1.2.1) ออฟไลน์
Test Steps:
1. พยายามดึงข้อมูลผู้ป่วยจากระบบเวชระเบียน
2. Timeout หลังจาก 5 วินาที
3. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ ไม่สามารถเชื่อมต่อระบบเวชระเบียนได้"
- อนุญาตให้กรอกข้อมูลผู้ป่วยด้วยตนเอง (Manual entry)
- เก็บข้อมูลไว้ Sync ภายหลัง
- แจ้งเตือนเจ้าหน้าที่ IT
- บันทึก Connection error log
Test Data: Medical Record System: Offline

Test Case: การเชื่อมต่อกับระบบตรวจสอบสิทธิ

Test ID: TC-008-002
Description: ทดสอบการเชื่อมต่อกับระบบตรวจสอบสิทธิ (1.2.15) เพื่อยืนยันสิทธิการรักษา
Pre-condition: ระบบตรวจสอบสิทธิพร้อมใช้งาน
Test Steps:
1. ระบบการเงินส่งคำขอตรวจสอบสิทธิ
2. ระบบตรวจสอบสิทธิดำเนินการตรวจสอบ
3. รับผลการตรวจสอบกลับมา:
   - สถานะสิทธิ
   - รายละเอียดสิทธิ
   - เงื่อนไขการใช้สิทธิ
4. อัปเดตข้อมูลสิทธิในระบบการเงิน
Expected Result: 
- ตรวจสอบสิทธิสำเร็จ
- ข้อมูลสิทธิถูกต้องและเป็นปัจจุบัน
- อัปเดตสถานะสิทธิในระบบ
- แสดงผลการตรวจสอบให้ผู้ใช้เห็น

Test Case: ระบบตรวจสอบสิทธิไม่ตอบสนอง (Fail Case)

Test ID: TC-008-002-F1
Description: ทดสอบกรณีระบบตรวจสอบสิทธิออฟไลน์
Test Type: ⚠️ Fail Case
Pre-condition: ระบบตรวจสอบสิทธิ (1.2.15) ออฟไลน์
Test Steps:
1. พยายามตรวจสอบสิทธิการรักษา
2. ไม่ได้รับการตอบกลับ (Timeout)
3. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดง "⚠️ ไม่สามารถเชื่อมต่อระบบตรวจสอบสิทธิได้"
- เสนอทางเลือก:
  - ใช้ข้อมูลสิทธิที่ Cache ไว้ (ถ้ามี)
  - ดำเนินการเป็นสิทธิเงินสดก่อน
  - รอระบบกลับมาออนไลน์
- บันทึก Pending verification
- แจ้งเตือนเจ้าหน้าที่
Test Data: Rights Verification System: Offline

Test Case: การรับข้อมูลค่าบริการจากห้องตรวจ

Test ID: TC-008-003
Description: ทดสอบการรับข้อมูลค่าบริการจากระบบห้องตรวจแพทย์ (1.2.3)
Pre-condition: ผู้ป่วยได้รับการตรวจรักษาแล้ว
Test Steps:
1. ระบบห้องตรวจส่งข้อมูลค่าบริการ
2. ระบบการเงินรับข้อมูลผ่าน API
3. ตรวจสอบข้อมูลที่ได้รับ:
   - รายการค่าตรวจรักษา
   - ค่าใช้จ่ายแต่ละรายการ
   - แพทย์ผู้ตรวจรักษา
   - วันเวลาที่ให้บริการ
4. บันทึกข้อมูลในระบบการเงิน
Expected Result: 
- รับข้อมูลค่าบริการสำเร็จ
- ข้อมูลถูกต้องและครบถ้วน
- บันทึกในระบบการเงินทันที
- พร้อมสำหรับการรับชำระเงิน

Test Case: การเชื่อมต่อกับระบบเภสัชกรรม

Test ID: TC-008-004
Description: ทดสอบการเชื่อมต่อกับระบบเภสัชกรรม (1.2.13) เพื่อรับข้อมูลค่ายา
Pre-condition: มีการสั่งจ่ายยาแล้ว
Test Steps:
1. ระบบเภสัชกรรมส่งข้อมูลค่ายา
2. ระบบการเงินรับข้อมูลผ่าน API
3. ตรวจสอบข้อมูลที่ได้รับ:
   - รายการยาที่จ่าย
   - ราคายาแต่ละรายการ
   - จำนวนที่จ่าย
   - เวชภัณฑ์ที่เกี่ยวข้อง
4. คำนวณค่ายารวม
Expected Result: 
- รับข้อมูลค่ายาสำเร็จ
- คำนวณราคาถูกต้อง
- แสดงรายการยาในระบบการเงิน
- เชื่อมโยงกับข้อมูลการสั่งจ่าย

Test Case: การส่งข้อมูลไปยังระบบผู้ป่วยใน

Test ID: TC-008-005
Description: ทดสอบการส่งข้อมูลการชำระเงินไปยังระบบผู้ป่วยใน (1.2.17)
Pre-condition: มีการรับชำระเงินผู้ป่วยในแล้ว
Test Steps:
1. ระบบการเงินส่งข้อมูลการชำระเงิน
2. ระบบผู้ป่วยในรับข้อมูลผ่าน API
3. ข้อมูลที่ส่ง:
   - สถานะการชำระเงิน
   - ยอดเงินที่ชำระแล้ว
   - ยอดเงินคงค้าง
   - วันเวลาที่ชำระ
4. อัปเดตสถานะในระบบผู้ป่วยใน
Expected Result: 
- ส่งข้อมูลสำเร็จ
- ระบบผู้ป่วยในได้รับข้อมูลถูกต้อง
- อัปเดตสถานะการชำระเงิน
- ข้อมูลซิงค์กันระหว่างระบบ

Test Case: การเชื่อมต่อกับระบบห้องฉุกเฉิน

Test ID: TC-008-006
Description: ทดสอบการเชื่อมต่อกับระบบห้องฉุกเฉิน (1.2.4) เพื่อรับชำระค่าบริการฉุกเฉิน
Pre-condition: มีผู้ป่วยฉุกเฉินที่ได้รับการรักษา
Test Steps:
1. ระบบห้องฉุกเฉินส่งข้อมูลค่าบริการ
2. ระบบการเงินรับข้อมูล Emergency charges
3. ตรวจสอบข้อมูลพิเศษ:
   - ค่าบริการฉุกเฉิน
   - ค่าใช้จ่ายนอกเวลา
   - ค่าบริการพิเศษ
4. คำนวณค่าใช้จ่ายรวม
5. รับชำระเงินตามขั้นตอนฉุกเฉิน
Expected Result: 
- รับข้อมูลค่าบริการฉุกเฉินสำเร็จ
- คำนวณค่าใช้จ่ายถูกต้อง
- รองรับการรับชำระเงินด่วน
- บันทึกข้อมูลครบถ้วน

Test Case: การจัดการ API Error และ Retry

Test ID: TC-008-007
Description: ทดสอบการจัดการข้อผิดพลาดและการลองใหม่เมื่อ API ล้มเหลว
Pre-condition: ระบบมีการตั้งค่า Error handling
Test Steps:
1. จำลองสถานการณ์ API ไม่ตอบสนอง
2. ระบบแสดงข้อความแจ้งเตือน
3. ระบบพยายามเชื่อมต่อใหม่อัตโนมัติ
4. จำลองสถานการณ์ข้อมูลผิดพลาด
5. ระบบตรวจสอบและแจ้งเตือน
6. ทดสอบการทำงานแบบ Offline mode
Expected Result: 
- แสดงข้อความแจ้งเตือนที่เหมาะสม
- ระบบลองเชื่อมต่อใหม่อัตโนมัติ
- สามารถทำงานแบบ Offline ได้บางส่วน
- บันทึก Error log สำหรับการแก้ไข

📊 สรุปการทดสอบ

จำนวน Test Cases ทั้งหมด

  • TG-001: การจัดการข้อมูลสิทธิการรักษาพยาบาล - 5 Test Cases
  • TG-002: การยกเว้นหรืออนุมัติลดหย่อนค่ารักษาพยาบาล - 4 Test Cases
  • TG-003: การรับชำระเงิน - 21 Test Cases (14 Normal + 7 Error/Fail)
  • TG-004: การค้างชำระค่ารักษาพยาบาล - 3 Test Cases
  • TG-005: การยกเลิกการรับชำระเงิน - 7 Test Cases (4 Normal + 3 Error)
  • TG-006: การปิดรอบการเงิน - 7 Test Cases (5 Normal + 2 Error)
  • TG-007: การพิมพ์เอกสารทางการเงิน - 8 Test Cases
  • TG-008: API Integration และการเชื่อมต่อระบบ - 9 Test Cases (7 Normal + 2 Fail)

รวมทั้งสิ้น: 64 Test Cases (50 Normal + 14 Error/Fail)

ความครอบคลุมตาม TOR

✅ ครอบคลุมทุกข้อใน TOR ระบบการเงิน (1.2.14.1 - 1.2.14.7)
✅ สอดคล้องกับ SRS, DFD, และ ERD
✅ รองรับการเชื่อมต่อกับระบบอื่นใน HIS
✅ ครอบคลุมการทดสอบ Performance และ Security

หมายเหตุสำคัญ

  • ควรทดสอบ Performance ภายใต้ Load จริง
  • ต้องทดสอบ Security และ Data Privacy
  • ควรทดสอบ Disaster Recovery และ Backup
  • ต้องมีการทดสอบ User Acceptance Test (UAT) จากผู้ใช้จริง

เอกสารนี้จัดทำขึ้นเพื่อใช้ในการทดสอบระบบการเงิน (Financial Management System) สำหรับโรงพยาบาลค่ายธนรัชน์ และต้องได้รับการอนุมัติจากผู้มีอำนาจก่อนนำไปใช้ในการทดสอบระบบ