Test Cases
ระบบเวชระเบียน (Core Medical Record System)
โรงพยาบาลค่ายธนรัชน์
เอกสารเลขที่: SRS-1.2.1-TESTCASES
เวอร์ชัน: 2.0
วันที่: 4 ตุลาคม 2568
ผู้จัดทำ: ทีมพัฒนาระบบ
ผู้อนุมัติ: ผู้อำนวยการโรงพยาบาลค่ายธนรัชน์
การปรับปรุง: ลดการทดสอบฟีเจอร์ที่ย้ายไประบบอื่น เพิ่ม API Integration Tests
📝 ประกอบการทดสอบ
🎯 Scope ของการทดสอบ
ระบบเวชระเบียนหลังการปรับปรุงจะครอบคลุมเฉพาะ: - การลงทะเบียนผู้ป่วยใหม่ - จัดการข้อมูลผู้ป่วยหลัก - การส่งตรวจผู้ป่วย - ส่งข้อมูลผู้ป่วยไปยังระบบที่เกี่ยวข้อง - การจัดการแฟ้มเวชระเบียน - ยืม-คืนแฟ้มทั้ง OPD และ IPD - การนัดหมายผู้ป่วย - จัดการและติดตามการนัด - API Integration - เชื่อมต่อกับระบบอื่นๆ
🚫 Out of Scope (ย้ายไประบบอื่น)
Test Cases สำหรับฟีเจอร์ที่ย้ายไประบบเฉพาะ: - การจัดการประวัติการแพ้ยา → ทดสอบในระบบซักประวัติ (1.2.2) - การสั่งจ่ายยาและ Drug Interaction → ทดสอบในระบบเภสัชกรรม (1.2.13) - การตรวจสอบสิทธิออนไลน์ → ทดสอบในระบบตรวจสอบสิทธิ (1.2.15) - การจัดการคิวและเรียกผู้ป่วย → ทดสอบในระบบห้องตรวจ (1.2.3)
รายการ Test Cases
Test Case: การลงทะเบียนผู้ป่วยใหม่
Test ID: TC-001
Description: ทดสอบการลงทะเบียนผู้ป่วยใหม่พร้อมข้อมูลครบถ้วน
Pre-condition: ระบบพร้อมใช้งาน, ผู้ใช้มีสิทธิ์ลงทะเบียน
Test Steps:
1. เข้าสู่หน้าลงทะเบียนผู้ป่วยใหม่
2. กรอกข้อมูลส่วนตัวครบถ้วน (ชื่อ, นามสกุล, เลขบัตรประชาชน, วันเกิด, เพศ, ฯลฯ)
3. กรอกข้อมูลที่อยู่ปัจจุบันและตามทะเบียนบ้าน
4. กรอกข้อมูลผู้ติดต่อฉุกเฉิน
5. บันทึกข้อมูล
Expected Result:
- ระบบสร้าง HN ใหม่อัตโนมัติ
- คำนวณอายุจากวันเกิดถูกต้อง
- แสดงข้อความยืนยันการบันทึกสำเร็จ
- บันทึกข้อมูลผู้สร้างและเวลา
Test Case: การลงทะเบียนโดยไม่กรอกข้อมูลบังคับ (Error Case)
Test ID: TC-001-E1
Description: ทดสอบการลงทะเบียนโดยข้อมูลบังคับไม่ครบถ้วน
Pre-condition: ระบบพร้อมใช้งาน, ผู้ใช้มีสิทธิ์ลงทะเบียน
Test Steps:
1. เข้าสู่หน้าลงทะเบียนผู้ป่วยใหม่
2. ไม่กรอกข้อมูลบังคับ เช่น ชื่อ, นามสกุล, วันเกิด
3. พยายามบันทึกข้อมูล
Expected Result:
- แสดงข้อความแจ้งเตือนฟิลด์ที่จำเป็น
- ไฮไลท์ฟิลด์ที่ต้องกรอก
- ไม่บันทึกข้อมูลลงฐานข้อมูล
- ไม่สร้าง HN ใหม่
Test Case: การกรอกเลขบัตรประชาชนไม่ถูกต้อง (Error Case)
Test ID: TC-001-E2
Description: ทดสอบการกรอกเลขบัตรประชาชนที่ไม่ถูกต้อง
Pre-condition: ระบบพร้อมใช้งาน, ผู้ใช้มีสิทธิ์ลงทะเบียน
Test Steps:
1. เข้าสู่หน้าลงทะเบียนผู้ป่วยใหม่
2. กรอกเลขบัตรประชาชนไม่ครบ 13 หลัก หรือมีตัวอักษร
3. พยายามบันทึกข้อมูล
Expected Result:
- แสดงข้อความแจ้งเตือน "เลขบัตรประชาชนไม่ถูกต้อง"
- ตรวจสอบ Checksum ของเลขบัตรประชาชน
- ไม่บันทึกข้อมูล
Test Case: การกรอกวันเกิดในอนาคต (Error Case)
Test ID: TC-001-E3
Description: ทดสอบการกรอกวันเกิดที่เป็นอนาคต
Pre-condition: ระบบพร้อมใช้งาน
Test Steps:
1. เข้าสู่หน้าลงทะเบียนผู้ป่วยใหม่
2. กรอกวันเกิดที่มากกว่าวันปัจจุบัน
3. พยายามบันทึกข้อมูล
Expected Result:
- แสดงข้อความแจ้งเตือน "วันเกิดไม่สามารถเป็นวันในอนาคต"
- ไม่บันทึกข้อมูล
Test Case: การตรวจสอบข้อมูลซ้ำซ้อน
Test ID: TC-002
Description: ทดสอบการตรวจสอบข้อมูลซ้ำซ้อนของเลขบัตรประชาชน
Pre-condition: มีข้อมูลผู้ป่วยในระบบแล้ว
Test Steps:
1. เข้าสู่หน้าลงทะเบียนผู้ป่วยใหม่
2. กรอกเลขบัตรประชาชนที่มีอยู่ในระบบแล้ว
3. พยายามบันทึกข้อมูล
Expected Result:
- แสดงข้อความเตือนเลขบัตรประชาชนซ้ำ
- แสดงข้อมูลผู้ป่วยที่มีเลขบัตรประชาชนนี้
- ไม่อนุญาตให้บันทึกข้อมูลซ้ำ
Test Case: การค้นหาผู้ป่วยด้วย HN
Test ID: TC-003
Description: ทดสอบการค้นหาผู้ป่วยด้วยหมายเลข HN
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วยในระบบ
Test Steps:
1. เข้าสู่หน้าค้นหาผู้ป่วย
2. ใส่ HN ที่ถูกต้อง
3. กดปุ่มค้นหา
Expected Result: แสดงข้อมูลผู้ป่วยที่ตรงกันพร้อมข้อมูลประวัติ
Test Case: การค้นหา HN ที่ไม่มีในระบบ (Fail Case)
Test ID: TC-003-F1
Description: ทดสอบการค้นหาผู้ป่วยด้วย HN ที่ไม่มีในระบบ
Pre-condition: ระบบพร้อมใช้งาน
Test Steps:
1. เข้าสู่หน้าค้นหาผู้ป่วย
2. ใส่ HN ที่ไม่มีในระบบ
3. กดปุ่มค้นหา
Expected Result:
- แสดงข้อความ "ไม่พบข้อมูลผู้ป่วย"
- แสดงตัวเลือกสำหรับลงทะเบียนผู้ป่วยใหม่
Test Case: การค้นหาโดยไม่ใส่ข้อมูล (Error Case)
Test ID: TC-003-E1
Description: ทดสอบการค้นหาโดยไม่ใส่ข้อมูลค้นหา
Pre-condition: ระบบพร้อมใช้งาน
Test Steps:
1. เข้าสู่หน้าค้นหาผู้ป่วย
2. ไม่ใส่ข้อมูลใดๆ
3. กดปุ่มค้นหา
Expected Result:
- แสดงข้อความ "กรุณาใส่ข้อมูลสำหรับค้นหา"
- ไม่ทำการค้นหา
Test Case: การค้นหาผู้ป่วยด้วยเลขบัตรประชาชน
Test ID: TC-004
Description: ทดสอบการค้นหาผู้ป่วยด้วยเลขบัตรประจำตัวประชาชน
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วยในระบบ
Test Steps:
1. เข้าสู่หน้าค้นหาผู้ป่วย
2. ใส่เลขบัตรประชาชน 13 หลักที่ถูกต้อง
3. กดปุ่มค้นหา
Expected Result: แสดงข้อมูลผู้ป่วยที่ตรงกันพร้อมข้อมูลประวัติ
Test Case: การค้นหาผู้ป่วยด้วยชื่อ-นามสกุล
Test ID: TC-005
Description: ทดสอบการค้นหาผู้ป่วยด้วยชื่อและ/หรือนามสกุล
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วยในระบบ
Test Steps:
1. เข้าสู่หน้าค้นหาผู้ป่วย
2. ใส่ชื่อและ/หรือนามสกุล
3. กดปุ่มค้นหา
Expected Result:
- แสดงรายการผู้ป่วยที่ชื่อตรงกัน
- สามารถค้นหาด้วยชื่อ หรือนามสกุล หรือทั้งคู่
- แสดงผลลัพธ์หลายรายการได้
Test Case: การบันทึกส่งตรวจผู้ป่วย
Test ID: TC-006
Description: ทดสอบการบันทึกส่งตรวจผู้ป่วยไปยังแผนกต่างๆ
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วยในระบบ
Test Steps:
1. ค้นหาและเลือกผู้ป่วย
2. เลือกสิทธิการรักษา
3. กรอกอาการสำคัญ
4. เลือกแผนกและห้องที่ต้องการส่งตรวจ
5. บันทึกการส่งตรวจ
Expected Result:
- บันทึกข้อมูลการส่งตรวจสำเร็จ
- สร้างหมายเลขคิวอัตโนมัติ
- ยืมแฟ้มเวชระเบียนอัตโนมัติ
- ส่งข้อมูลไปยังห้องตรวจ
Test Case: การส่งตรวจโดยไม่เลือกสิทธิ (Error Case)
Test ID: TC-006-E1
Description: ทดสอบการส่งตรวจโดยไม่เลือกสิทธิการรักษา
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วยในระบบ
Test Steps:
1. ค้นหาและเลือกผู้ป่วย
2. ไม่เลือกสิทธิการรักษา
3. พยายามบันทึกการส่งตรวจ
Expected Result:
- แสดงข้อความ "กรุณาเลือกสิทธิการรักษา"
- ไม่บันทึกข้อมูล
- ไม่สร้างคิว
Test Case: การส่งตรวจโดยไม่เลือกแผนก (Error Case)
Test ID: TC-006-E2
Description: ทดสอบการส่งตรวจโดยไม่เลือกแผนก/ห้องตรวจ
Pre-condition: ระบบพร้อมใช้งาน
Test Steps:
1. ค้นหาและเลือกผู้ป่วย
2. เลือกสิทธิการรักษา
3. ไม่เลือกแผนก/ห้องตรวจ
4. พยายามบันทึกการส่งตรวจ
Expected Result:
- แสดงข้อความ "กรุณาเลือกแผนก/ห้องตรวจ"
- ไม่บันทึกข้อมูล
Test Case: การส่งตรวจซ้ำในวันเดียวกัน (Fail Case)
Test ID: TC-006-F1
Description: ทดสอบการป้องกันการส่งตรวจซ้ำในแผนกเดียวกันภายในวันเดียวกัน
Pre-condition: ผู้ป่วยส่งตรวจแผนกนี้ไปแล้ววันนี้
Test Steps:
1. ค้นหาและเลือกผู้ป่วยที่ส่งตรวจไปแล้ว
2. พยายามส่งตรวจแผนกเดียวกันอีกครั้ง
3. บันทึกการส่งตรวจ
Expected Result:
- แสดงข้อความเตือน "ผู้ป่วยส่งตรวจแผนกนี้ไปแล้วในวันนี้"
- แสดงตัวเลือกยืนยันการส่งตรวจซ้ำ
- บันทึก Log การส่งตรวจซ้ำ
Test Case: การใช้สิทธิหลายประเภท
Test ID: TC-007
Description: ทดสอบการเลือกสิทธิการรักษาหลายประเภทในการส่งตรวจ
Pre-condition: ผู้ป่วยมีสิทธิหลายประเภท
Test Steps:
1. ค้นหาและเลือกผู้ป่วยที่มีสิทธิหลายประเภท
2. เลือกสิทธิหลายประเภทพร้อมกัน
3. บันทึกการส่งตรวจ
Expected Result:
- สามารถเลือกสิทธิได้มากกว่า 1 สิทธิ
- บันทึกข้อมูลสิทธิที่เลือกทั้งหมด
- ส่งข้อมูลสิทธิไปยังระบบการเงิน
Test Case: การส่งตรวจหลายแผนก
Test ID: TC-008
Description: ทดสอบการส่งตรวจผู้ป่วยไปหลายแผนกในครั้งเดียว
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วยในระบบ
Test Steps:
1. ค้นหาและเลือกผู้ป่วย
2. เลือกสิทธิการรักษา
3. เลือกแผนกหลายแผนกที่ต้องการส่งตรวจ
4. บันทึกการส่งตรวจ
Expected Result:
- สร้างคิวสำหรับทุกแผนกที่เลือก
- ส่งข้อมูลไปยังทุกห้องตรวจ
- ยืมแฟ้มเวชระเบียนครั้งเดียว
Test Case: การส่งตรวจล่วงหน้า
Test ID: TC-009
Description: ทดสอบการบันทึกส่งตรวจผู้ป่วยล่วงหน้า (นัดหมาย)
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วยในระบบ
Test Steps:
1. ค้นหาและเลือกผู้ป่วย
2. เลือกการส่งตรวจล่วงหน้า
3. กำหนดวันที่และเวลานัด
4. เลือกแผนกและแพทย์
5. บันทึกการนัดหมาย
Expected Result:
- บันทึกข้อมูลการนัดหมายสำเร็จ
- แสดงในรายการนัดหมาย
- สามารถเตรียมแฟ้มล่วงหน้าได้
Test Case: การจัดการแฟ้มเวชระเบียนผู้ป่วยนอก
Test ID: TC-010
Description: ทดสอบการยืม-คืนแฟ้มเวชระเบียนผู้ป่วยนอก
Pre-condition: ระบบพร้อมใช้งาน, มีแฟ้มเวชระเบียนในระบบ
Test Steps:
1. เข้าสู่หน้าจัดการแฟ้มเวชระเบียน
2. ค้นหาผู้ป่วยที่ต้องการยืมแฟ้ม
3. บันทึกการยืมแฟ้ม (ระบุผู้ยืม, แผนก, เหตุผล)
4. ทดสอบการคืนแฟ้ม
Expected Result:
- บันทึกข้อมูลการยืมสำเร็จ
- แสดงสถานะแฟ้มว่ากำลังถูกยืม
- บันทึกการคืนสำเร็จ
- อัปเดตสถานะแฟ้มเป็นพร้อมใช้
Test Case: การยืมแฟ้มที่ถูกยืมไปแล้ว (Error Case)
Test ID: TC-010-E1
Description: ทดสอบการยืมแฟ้มที่ถูกยืมโดยผู้อื่นอยู่แล้ว
Pre-condition: แฟ้มถูกยืมโดยผู้อื่นอยู่
Test Steps:
1. เข้าสู่หน้าจัดการแฟ้มเวชระเบียน
2. พยายามยืมแฟ้มที่ถูกยืมไปแล้ว
3. พยายามบันทึกการยืม
Expected Result:
- แสดงข้อความ "แฟ้มกำลังถูกยืมโดย [ชื่อผู้ยืม] แผนก [ชื่อแผนก]"
- แสดงวันที่-เวลาที่ยืม
- ไม่อนุญาตให้ยืมซ้ำ
Test Case: การคืนแฟ้มที่ไม่ได้ยืม (Error Case)
Test ID: TC-010-E2
Description: ทดสอบการคืนแฟ้มที่ไม่ได้ถูกยืมออกไป
Pre-condition: แฟ้มไม่ได้ถูกยืม
Test Steps:
1. เข้าสู่หน้าจัดการแฟ้มเวชระเบียน
2. พยายามคืนแฟ้มที่ไม่ได้ยืมออกไป
Expected Result:
- แสดงข้อความ "แฟ้มนี้ไม่ได้ถูกยืมออกไป"
- ไม่บันทึกข้อมูลการคืน
Test Case: การยืมแฟ้มที่ไม่มีในระบบ (Fail Case)
Test ID: TC-010-F1
Description: ทดสอบการยืมแฟ้มของผู้ป่วยที่ไม่มี HN ในระบบ
Pre-condition: ระบบพร้อมใช้งาน
Test Steps:
1. เข้าสู่หน้าจัดการแฟ้มเวชระเบียน
2. ค้นหาด้วย HN ที่ไม่มีในระบบ
3. พยายามยืมแฟ้ม
Expected Result:
- แสดงข้อความ "ไม่พบข้อมูลผู้ป่วย"
- ไม่บันทึกข้อมูลการยืม
Test Case: การใช้ Barcode ในการจัดการแฟ้ม
Test ID: TC-011
Description: ทดสอบการยืม-คืนแฟ้มด้วย Barcode
Pre-condition: แฟ้มมี Barcode, มีเครื่องอ่าน Barcode
Test Steps:
1. เข้าสู่หน้าจัดการแฟ้มเวชระเบียน
2. สแกน Barcode ของแฟ้มที่ต้องการยืม
3. ระบุข้อมูลการยืม
4. สแกน Barcode เพื่อคืนแฟ้ม
Expected Result:
- ระบบแสดงข้อมูลผู้ป่วยจาก Barcode
- บันทึกการยืม-คืนด้วย Barcode สำเร็จ
- ลดเวลาในการทำงาน
Test Case: การจัดการแฟ้มผู้ป่วยใน
Test ID: TC-012
Description: ทดสอบการจัดการ Chart ผู้ป่วยใน
Pre-condition: มีผู้ป่วยใน (Admission) ในระบบ
Test Steps:
1. เข้าสู่หน้าจัดการ Chart ผู้ป่วยใน
2. ค้นหาผู้ป่วยใน (AN)
3. บันทึกการยืม Chart
4. ตรวจสอบ Chart ค้างส่งจาก Ward
5. บันทึกการรับคืน Chart
Expected Result:
- แสดงข้อมูลผู้ป่วยใน (AN, วันที่ Admit)
- บันทึกการยืม-คืน Chart สำเร็จ
- แสดงรายงาน Chart ค้างส่ง
- ติดตามสถานะ Chart แบบ Real-time
Test Case: การพิมพ์บัตรประจำตัวผู้ป่วย
Test ID: TC-013
Description: ทดสอบการพิมพ์บัตรประจำตัวผู้ป่วย
Pre-condition: ผู้ป่วยลงทะเบียนเรียบร้อยแล้ว
Test Steps:
1. ค้นหาและเลือกผู้ป่วย
2. คลิกปุ่มพิมพ์บัตรประจำตัวผู้ป่วย
3. ตรวจสอบข้อมูลในบัตร
4. พิมพ์เอกสาร
Expected Result:
- บัตรแสดงข้อมูลผู้ป่วยถูกต้องครบถ้วน
- มี HN, ชื่อ-นามสกุล, วันเกิด, เพศ
- สามารถพิมพ์ได้
- รูปแบบตาม Template ที่กำหนด
Test Case: การพิมพ์ OPD CARD
Test ID: TC-014
Description: ทดสอบการพิมพ์ใบ ร.บ.1 ต. 02 (OPD CARD)
Pre-condition: ผู้ป่วยลงทะเบียนและส่งตรวจเรียบร้อยแล้ว
Test Steps:
1. ค้นหาและเลือกผู้ป่วย
2. คลิกปุ่มพิมพ์ OPD CARD
3. ตรวจสอบข้อมูลในใบ ร.บ.1 ต. 02
4. พิมพ์เอกสาร
Expected Result:
- OPD CARD แสดงข้อมูลถูกต้องตามมาตรฐาน
- มีข้อมูลการส่งตรวจและสิทธิ
- รูปแบบตามที่กระทรวงสาธารณสุขกำหนด
Test Case: การพิมพ์บัตรคิว
Test ID: TC-015
Description: ทดสอบการพิมพ์บัตรคิวผู้ป่วย
Pre-condition: ผู้ป่วยส่งตรวจเรียบร้อยแล้ว
Test Steps:
1. ค้นหาและเลือกผู้ป่วยที่ส่งตรวจแล้ว
2. คลิกปุ่มพิมพ์บัตรคิว
3. ตรวจสอบข้อมูลในบัตรคิว
4. พิมพ์เอกสาร
Expected Result:
- บัตรคิวแสดงหมายเลขคิวถูกต้อง
- แสดงชื่อผู้ป่วย, แผนก, ห้องตรวจ
- แสดงเวลาที่ส่งตรวจ
Test Case: การรวม HN (Merge HN)
Test ID: TC-016
Description: ทดสอบการรวมหมายเลข HN ของผู้ป่วยคนเดียวกัน
Pre-condition: ผู้ป่วยมี HN มากกว่า 1 หมายเลข
Test Steps:
1. เข้าสู่หน้าจัดการ HN
2. ค้นหาผู้ป่วยที่มี HN หลายหมายเลข
3. เลือก HN ที่ต้องการรวม
4. เลือก HN หลักที่จะใช้
5. ยืนยันการรวม HN
Expected Result:
- รวม HN สำเร็จ
- ประวัติการรักษาทั้งหมดรวมเข้า HN หลัก
- บันทึกประวัติการรวม HN
- HN เก่าถูกปิดใช้งาน
Test Case: การรวม HN ที่มีข้อมูลขัดแย้ง (Error Case)
Test ID: TC-016-E1
Description: ทดสอบการรวม HN ที่มีข้อมูลส่วนตัวไม่ตรงกัน
Pre-condition: มี HN 2 หมายเลขที่มีข้อมูลส่วนตัวต่างกัน
Test Steps:
1. เข้าสู่หน้าจัดการ HN
2. เลือก HN ที่มีข้อมูลขัดแย้ง (เช่น วันเกิดไม่ตรงกัน)
3. พยายามรวม HN
Expected Result:
- แสดงข้อความเตือน "พบความไม่สอดคล้องของข้อมูล"
- แสดงรายละเอียดข้อมูลที่ขัดแย้ง
- ขอยืนยันการรวมพร้อมเลือกข้อมูลที่ถูกต้อง
Test Case: การรวม HN ของคนคนละคน (Error Case)
Test ID: TC-016-E2
Description: ทดสอบป้องกันการรวม HN ที่เป็นคนละคน
Pre-condition: มี HN 2 หมายเลขของผู้ป่วยคนละคน
Test Steps:
1. เข้าสู่หน้าจัดการ HN
2. เลือก HN ของผู้ป่วย 2 คนที่แตกต่างกัน
3. พยายามรวม HN
Expected Result:
- แสดงข้อความเตือน "ไม่สามารถรวม HN ของผู้ป่วยคนละคนได้"
- แสดงข้อมูลเปรียบเทียบทั้ง 2 HN
- ไม่อนุญาตให้รวม HN
Test Case: การรวม HN ที่มี Visit ล่าสุด (Fail Case)
Test ID: TC-016-F1
Description: ทดสอบการรวม HN ที่มีการใช้งานล่าสุด
Pre-condition: HN มีการส่งตรวจหรือ Admit ในวันนี้
Test Steps:
1. เข้าสู่หน้าจัดการ HN
2. เลือก HN ที่มีการใช้งานในวันนี้
3. พยายามรวม HN
Expected Result:
- แสดงข้อความเตือน "HN นี้มีการใช้งานในวันนี้"
- แสดงรายละเอียด Visit ล่าสุด
- ขอยืนยันก่อนดำเนินการรวม
Test Case: การเปลี่ยน HN
Test ID: TC-017
Description: ทดสอบการเปลี่ยนหมายเลข HN ของผู้ป่วย
Pre-condition: ผู้ป่วยมี HN เดิมในระบบ
Test Steps:
1. เข้าสู่หน้าจัดการ HN
2. ค้นหาผู้ป่วยที่ต้องการเปลี่ยน HN
3. ระบุ HN ใหม่
4. ระบุเหตุผลการเปลี่ยน
5. ยืนยันการเปลี่ยน HN
Expected Result:
- เปลี่ยน HN สำเร็จ
- บันทึกประวัติการเปลี่ยน HN
- HN เก่าถูกบันทึกไว้เพื่ออ้างอิง
- ประวัติการรักษาคงอยู่
Test Case: การจัดการ Note เตือน
Test ID: TC-018
Description: ทดสอบการบันทึกและแสดง Note เตือนของผู้ป่วย
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วย
Test Steps:
1. เข้าสู่หน้าจัดการ Note ผู้ป่วย
2. เลือกผู้ป่วยที่ต้องการเพิ่ม Note
3. กรอกข้อความ Note และกำหนดระยะเวลาแสดง
4. บันทึก Note
5. ทดสอบการแสดง Popup เมื่อคลิกชื่อผู้ป่วย
Expected Result:
- บันทึก Note สำเร็จ
- แสดง Popup เตือนเมื่อเปิดข้อมูลผู้ป่วย
- Note แสดงตามระยะเวลาที่กำหนด
- สามารถแก้ไขหรือลบ Note ได้
Test Case: การบันทึกโรคเรื้อรัง
Test ID: TC-019
Description: ทดสอบการบันทึกโรคเรื้อรังและเพิ่มเข้าคลินิกพิเศษ
Pre-condition: ระบบพร้อมใช้งาน, มีข้อมูลผู้ป่วย
Test Steps:
1. เข้าสู่หน้าแก้ไขข้อมูลผู้ป่วย
2. เพิ่มข้อมูลโรคเรื้อรัง
3. ระบุปีที่เริ่มเป็นโรค
4. บันทึกข้อมูล
5. ตรวจสอบการเพิ่มเข้าทะเบียนคลินิกพิเศษ
Expected Result:
- บันทึกข้อมูลโรคเรื้อรังสำเร็จ
- ผู้ป่วยถูกเพิ่มเข้าทะเบียนคลินิกพิเศษอัตโนมัติ
- แสดงข้อมูลโรคเรื้อรังในประวัติผู้ป่วย
Test Case: การคำนวณอายุทารก
Test ID: TC-020
Description: ทดสอบการแสดงอายุทารกแรกเกิดเป็นวัน
Pre-condition: ระบบพร้อมใช้งาน
Test Steps:
1. ลงทะเบียนทารกแรกเกิด (อายุ < 1 เดือน)
2. ระบุวันเกิดที่ผ่านมาไม่เกิน 30 วัน
3. บันทึกข้อมูล
4. ตรวจสอบการแสดงอายุ
Expected Result:
- แสดงอายุเป็นจำนวนวันแทนปี
- คำนวณจำนวนวันถูกต้อง
- แสดงรูปแบบ "x วัน" แทน "0 ปี"
Test Case: การป้องกันแก้ไขข้อมูลผู้เสียชีวิต
Test ID: TC-021
Description: ทดสอบการป้องกันการแก้ไขข้อมูลผู้ป่วยที่เสียชีวิต
Pre-condition: มีข้อมูลผู้ป่วยที่เสียชีวิตในระบบ
Test Steps:
1. ค้นหาผู้ป่วยที่มีสถานะเสียชีวิต
2. พยายามแก้ไขข้อมูลผู้ป่วย
3. พยายามส่งตรวจผู้ป่วย
Expected Result:
- แสดงข้อความเตือนว่าผู้ป่วยเสียชีวิตแล้ว
- ไม่อนุญาตให้แก้ไขข้อมูล
- ไม่อนุญาตให้ส่งตรวจ
- สามารถดูข้อมูลได้เท่านั้น
Test Case: การลงทะเบียนภาวะประสบภัยหมู่
Test ID: TC-022
Description: ทดสอบระบบลงทะเบียนแบบเร่งด่วนสำหรับ Mass Casualty
Pre-condition: ระบบพร้อมใช้งาน, เปิดโหมด Mass Casualty
Test Steps:
1. เปิดโหมด Mass Casualty
2. ลงทะเบียนผู้ป่วยแบบเร่งด่วน
3. กำหนดระดับความเร่งด่วน
4. ส่งตรวจด่วน
Expected Result:
- ลงทะเบียนได้อย่างรวดเร็ว
- จัดลำดับความสำคัญอัตโนมัติ
- ส่งตรวจตามความเร่งด่วน
- รายงานสถานการณ์ Real-time
Test Case: การค้นหาด้วยลายนิ้วมือ
Test ID: TC-023
Description: ทดสอบการค้นหาผู้ป่วยด้วยลายนิ้วมือ
Pre-condition: มีเครื่องสแกนลายนิ้วมือ, ผู้ป่วยมีลายนิ้วมือในระบบ
Test Steps:
1. เข้าสู่หน้าค้นหาผู้ป่วย
2. เลือกการค้นหาด้วยลายนิ้วมือ
3. สแกนลายนิ้วมือผู้ป่วย
4. รอผลการค้นหา
Expected Result:
- ระบบจับคู่ลายนิ้วมือได้ถูกต้อง
- แสดงข้อมูลผู้ป่วยที่ตรงกัน
- เวลาในการค้นหาไม่เกิน 5 วินาที
Test Case: การเตือนเปลี่ยนคำนำหน้าชื่อ
Test ID: TC-024
Description: ทดสอบการแจ้งเตือนเปลี่ยนคำนำหน้าชื่อสำหรับผู้ป่วยอายุ ≥ 15 ปี
Pre-condition: ผู้ป่วยอายุ ≥ 15 ปี ยังใช้คำนำหน้าชื่อ "เด็กชาย" หรือ "เด็กหญิง"
Test Steps:
1. ค้นหาผู้ป่วยที่อายุ ≥ 15 ปี และใช้คำนำหน้า "เด็กชาย/เด็กหญิง"
2. พยายามส่งตรวจหรือแก้ไขข้อมูล
3. ตรวจสอบการแจ้งเตือน
Expected Result:
- แสดงข้อความเตือนให้เปลี่ยนคำนำหน้าชื่อ
- เสนอคำนำหน้าชื่อที่เหมาะสม
- สามารถเปลี่ยนคำนำหน้าได้ทันที
Test Case: การพิมพ์รายชื่อผู้ป่วยนัด
Test ID: TC-025
Description: ทดสอบการพิมพ์รายชื่อผู้ป่วยนัดล่วงหน้า
Pre-condition: มีการนัดหมายผู้ป่วยในวันถัดไป
Test Steps:
1. เข้าสู่หน้าจัดการการนัดหมาย
2. เลือกวันที่ที่ต้องการพิมพ์รายชื่อ
3. คลิกปุ่มพิมพ์รายชื่อผู้ป่วยนัด
4. ตรวจสอบข้อมูลในรายงาน
Expected Result:
- แสดงรายชื่อผู้ป่วยนัดครบถ้วน
- มีข้อมูล HN, ชื่อ-นามสกุล, เวลานัด, แผนก
- จัดเรียงตามเวลานัด
- สามารถใช้เตรียมแฟ้มล่วงหน้าได้
Test Case: การตรวจสอบประวัติการรักษา
Test ID: TC-026
Description: ทดสอบการแสดงประวัติการรักษาย้อนหลัง
Pre-condition: ผู้ป่วยมีประวัติการรักษาในระบบ
Test Steps:
1. ค้นหาและเลือกผู้ป่วย
2. คลิกดูประวัติการรักษา
3. ตรวจสอบข้อมูลที่แสดง
Expected Result:
- แสดงประวัติการมารับบริการ
- แสดงการวินิจฉัย, การสั่งจ่ายยา
- แสดงการสั่ง Lab/X-Ray
- แสดงการตรวจร่างกาย, การนัดหมาย
- แสดงการ Admit (ถ้ามี)
Test Case: การ Integration กับระบบการเงิน
Test ID: TC-027
Description: ทดสอบการส่งข้อมูลการส่งตรวจไปยังระบบการเงิน (1.2.14)
Pre-condition: ระบบการเงินพร้อมใช้งาน, ผู้ป่วยส่งตรวจแล้ว
Test Steps:
1. ส่งตรวจผู้ป่วยพร้อมเลือกสิทธิ
2. ตรวจสอบการส่งข้อมูลไปยังระบบการเงิน
3. ตรวจสอบการคิดค่าบริการ
Expected Result:
- ข้อมูลการส่งตรวจถูกส่งไปยังระบบการเงิน
- ระบบการเงินรับข้อมูลสิทธิถูกต้อง
- คิดค่าบริการตามสิทธิที่เลือก
- บันทึก API Log ในตาราง SYSTEM_INTEGRATION_LOG
Test Case: API Integration Timeout (Error Case)
Test ID: TC-027-E1
Description: ทดสอบการจัดการเมื่อ API ระบบการเงินไม่ตอบสนอง (Timeout)
Pre-condition: จำลอง API Timeout
Test Steps:
1. ส่งตรวจผู้ป่วย
2. API ระบบการเงินไม่ตอบสนองภายใน 30 วินาที
3. ตรวจสอบการจัดการ Error
Expected Result:
- แสดงข้อความ "ระบบการเงินไม่ตอบสนอง กรุณาลองใหม่อีกครั้ง"
- บันทึก Error Log พร้อม Status: TIMEOUT
- สามารถ Retry ส่งข้อมูลได้
- ข้อมูลการส่งตรวจยังถูกบันทึกในระบบเวชระเบียน
Test Case: API Integration Network Error (Error Case)
Test ID: TC-027-E2
Description: ทดสอบการจัดการเมื่อเกิด Network Error ระหว่างเชื่อมต่อ API
Pre-condition: จำลอง Network Error
Test Steps:
1. ส่งตรวจผู้ป่วย
2. เกิด Network Error ระหว่างการเชื่อมต่อ
3. ตรวจสอบการจัดการ Error
Expected Result:
- แสดงข้อความ "เกิดข้อผิดพลาดในการเชื่อมต่อ"
- บันทึก Error Log พร้อม Status: NETWORK_ERROR
- ระบบพยายาม Retry อัตโนมัติ 3 ครั้ง
- แจ้งเตือน Admin หาก Retry ครบ 3 ครั้งแล้วยังล้มเหลว
Test Case: API Integration Invalid Response (Error Case)
Test ID: TC-027-E3
Description: ทดสอบการจัดการเมื่อ API ส่งข้อมูลกลับมาไม่ถูกต้อง
Pre-condition: API ส่ง Response ไม่ตรงตาม Schema
Test Steps:
1. ส่งตรวจผู้ป่วย
2. API ส่งข้อมูลกลับมาไม่ตรง Format
3. ตรวจสอบการจัดการ Error
Expected Result:
- แสดงข้อความ "ข้อมูลจากระบบการเงินไม่ถูกต้อง"
- บันทึก Error Log พร้อม Response ที่ได้รับ
- แจ้งเตือน Admin
- ไม่ทำการอัปเดตข้อมูลที่ไม่ถูกต้อง
Test Case: API Integration Duplicate Request (Fail Case)
Test ID: TC-027-F1
Description: ทดสอบการป้องกันการส่งข้อมูลซ้ำไปยังระบบการเงิน
Pre-condition: ข้อมูลถูกส่งไปแล้ว
Test Steps:
1. ส่งตรวจผู้ป่วยและส่งข้อมูลไประบบการเงิน
2. พยายามส่งข้อมูลเดิมไปอีกครั้ง
3. ตรวจสอบการจัดการ
Expected Result:
- ตรวจสอบ Duplicate Request ด้วย Transaction ID
- แสดงข้อความ "ข้อมูลนี้ถูกส่งไปแล้ว"
- ไม่ส่งข้อมูลซ้ำ
- บันทึก Log การพยายามส่งซ้ำ
Test Case: การ Modal Integration กับระบบตรวจสอบสิทธิ
Test ID: TC-028
Description: ทดสอบการเรียกใช้ Modal ระบบตรวจสอบสิทธิ (1.2.15)
Pre-condition: ระบบตรวจสอบสิทธิพร้อมใช้งาน, มีข้อมูลผู้ป่วย
Test Steps:
1. เข้าสู่หน้าส่งตรวจผู้ป่วย
2. เลือกผู้ป่วย
3. คลิกปุ่ม "เลือกสิทธิ"
4. ใช้งาน Modal ระบบตรวจสอบสิทธิ
5. เลือกสิทธิและยืนยัน
Expected Result:
- Modal เปิดขึ้นแสดงสิทธิของผู้ป่วย
- สามารถตรวจสอบสิทธิออนไลน์ได้
- เลือกสิทธิและส่งกลับมาได้
- ข้อมูลสิทธิถูกบันทึกในการส่งตรวจ
- Modal ปิดหลังการเลือก
Test Case: การส่งข้อมูลไประบบเภสัชกรรม
Test ID: TC-029
Description: ทดสอบการส่งข้อมูลการส่งตรวจไปยังระบบเภสัชกรรม (1.2.13)
Pre-condition: ระบบเภสัชกรรมพร้อมใช้งาน
Test Steps:
1. ส่งตรวจผู้ป่วยเสร็จสิ้น
2. ตรวจสอบการส่งข้อมูลไปยังระบบเภสัชกรรม
3. ตรวจสอบ Status การสั่งยา
Expected Result:
- ข้อมูล Visit และ Prescription ถูกส่งไปยังระบบเภสัชกรรม
- ระบบเภสัชกรรมรับข้อมูลและสร้าง Order
- Status การสั่งยาถูก Update กลับมา
- บันทึก API Log ในตาราง SYSTEM_INTEGRATION_LOG
Test Case: การส่งข้อมูลไประบบห้องตรวจ
Test ID: TC-030
Description: ทดสอบการส่งข้อมูลคิวผู้ป่วยไปยังระบบห้องตรวจ (1.2.3)
Pre-condition: ระบบห้องตรวจพร้อมใช้งาน, ผู้ป่วยส่งตรวจแล้ว
Test Steps:
1. ส่งตรวจผู้ป่วยไปห้องตรวจ
2. ตรวจสอบการส่งข้อมูลคิวไปยังระบบห้องตรวจ
3. ตรวจสอบการสร้างคิวและการเรียกผู้ป่วย
Expected Result:
- ข้อมูลคิวและข้อมูลผู้ป่วยถูกส่งไปยังระบบห้องตรวจ
- คิวถูกสร้างในระบบห้องตรวจ
- ผู้ป่วยได้รับการเรียกเข้าตรวจ
- บันทึก API Log ในตาราง SYSTEM_INTEGRATION_LOG
Test Case: การทดสอบ API Error Handling
Test ID: TC-031
Description: ทดสอบการจัดการข้อผิดพลาดของ API Integration
Pre-condition: ระบบเป้าหมายไม่พร้อมใช้งาน หรือ Network Error
Test Steps:
1. พยายามส่งข้อมูลไปยังระบบที่ไม่พร้อมใช้งาน
2. ตรวจสอบการจัดการ Error
3. ตรวจสอบ Retry Mechanism
4. ตรวจสอบ Error Log
Expected Result:
- แสดงข้อความ Error ที่เหมาะสม
- ระบบพยายาม Retry ตามจำนวนที่กำหนด
- บันทึก Error Log ในตาราง SYSTEM_INTEGRATION_LOG
- ระบบยังคงทำงานได้ปกติ
Test Case: การ Performance กับผู้ใช้หลายคน
Test ID: TC-032
Description: ทดสอบประสิทธิภาพระบบเมื่อมีผู้ใช้หลายคนพร้อมกัน
Pre-condition: ระบบพร้อมใช้งาน, จำลองผู้ใช้ 100 คน
Test Steps:
1. จำลองการลงทะเบียนผู้ป่วยใหม่พร้อมกัน
2. จำลองการส่งตรวจพร้อมกัน
3. จำลองการค้นหาผู้ป่วยพร้อมกัน
4. วัดเวลาตอบสนองระบบ
Expected Result:
- เวลาตอบสนองไม่เกิน 3 วินาที
- ระบบไม่หลุดหรือขัดข้อง
- ข้อมูลถูกบันทึกถูกต้อง
- รองรับผู้ใช้ 100 คนพร้อมกัน
Test Case: Performance Degradation (Fail Case)
Test ID: TC-032-F1
Description: ทดสอบพฤติกรรมระบบเมื่อมีผู้ใช้เกินกำลังรองรับ
Pre-condition: จำลองผู้ใช้ 200-500 คน
Test Steps:
1. จำลองการใช้งานพร้อมกันจำนวนมาก
2. วัดเวลาตอบสนอง
3. ตรวจสอบ CPU และ Memory Usage
4. ตรวจสอบการ Queue Request
Expected Result:
- แสดงข้อความเตือนเมื่อระบบใกล้เต็ม
- จัดการ Request ด้วย Queue System
- เวลาตอบสนองเพิ่มขึ้นแต่ไม่เกิน 10 วินาที
- ระบบไม่ Crash หรือ Freeze
- บันทึก Performance Log
Test Case: Database Connection Pool Exhaustion (Error Case)
Test ID: TC-032-E1
Description: ทดสอบการจัดการเมื่อ Database Connection Pool เต็ม
Pre-condition: Connection Pool มีจำนวนจำกัด
Test Steps:
1. จำลองการใช้งานที่ใช้ Connection พร้อมกัน
2. ทำให้ Connection Pool เต็ม
3. มีการ Request ใหม่เข้ามา
Expected Result:
- Request ใหม่รอในคิว
- แสดงข้อความ "ระบบกำลังประมวลผล กรุณารอสักครู่"
- ไม่เกิด Error หรือ Connection Refused
- Release Connection ที่ไม่ใช้งานอัตโนมัติ
Test Case: Concurrent HN Generation (Error Case)
Test ID: TC-032-E2
Description: ทดสอบการสร้าง HN พร้อมกันโดยไม่ให้ซ้ำ
Pre-condition: ลงทะเบียนผู้ป่วยพร้อมกัน
Test Steps:
1. จำลองการลงทะเบียนผู้ป่วย 10 คนในเวลาเดียวกัน
2. ตรวจสอบ HN ที่ถูกสร้าง
3. ตรวจสอบความซ้ำซ้อน
Expected Result:
- HN ทุกหมายเลขไม่ซ้ำกัน
- ใช้ Transaction Lock หรือ Sequence
- บันทึกข้อมูลทุกรายการสำเร็จ
- ไม่เกิด Race Condition
Test Case: การทดสอบ Audit Log
Test ID: TC-033
Description: ทดสอบการบันทึกและตรวจสอบ Audit Log
Pre-condition: มีการทำกิจกรรมต่างๆ ในระบบ
Test Steps:
1. ทำกิจกรรมต่างๆ เช่น เพิ่ม แก้ไข ลบข้อมูล
2. เข้าสู่หน้า Audit Log
3. ค้นหาข้อมูล Log ตามช่วงเวลา
4. ตรวจสอบรายละเอียด Log
Expected Result:
- แสดงรายการ Log ครบถ้วน
- บันทึกข้อมูลผู้ใช้, เวลา, การกระทำ
- บันทึกค่าเก่าและค่าใหม่
- สามารถค้นหาและกรองข้อมูลได้
Test Case: Audit Log สำหรับการเข้าถึงข้อมูลผู้ป่วย VIP (Security Case)
Test ID: TC-033-S1
Description: ทดสอบการบันทึก Log เมื่อเข้าถึงข้อมูลผู้ป่วย VIP หรือ Sensitive
Pre-condition: มีผู้ป่วย VIP หรือมีข้อมูล Sensitive Flag
Test Steps:
1. ค้นหาและเปิดดูข้อมูลผู้ป่วย VIP
2. ตรวจสอบ Audit Log
3. ตรวจสอบการแจ้งเตือน
Expected Result:
- บันทึก Log ทุกครั้งที่เข้าถึงข้อมูล
- บันทึก IP Address และ Device
- ส่งการแจ้งเตือนไปยัง Security Team
- Log ไม่สามารถลบหรือแก้ไขได้
Test Case: Audit Log สำหรับการแก้ไขข้อมูลสำคัญ (Security Case)
Test ID: TC-033-S2
Description: ทดสอบการบันทึก Log เมื่อแก้ไขข้อมูลสำคัญ (HN, เลขบัตรประชาชน)
Pre-condition: มีสิทธิ์แก้ไขข้อมูล
Test Steps:
1. แก้ไขข้อมูลสำคัญ เช่น HN, เลขบัตรประชาชน, วันเกิด
2. ตรวจสอบ Audit Log
Expected Result:
- บันทึกค่าเก่าและค่าใหม่ทั้งหมด
- บันทึกเหตุผลการแก้ไข
- ต้องมีการอนุมัติจากผู้มีอำนาจ
- ส่งการแจ้งเตือนไปยังผู้ดูแลระบบ
📊 สรุป Test Cases เพิ่มเติม
จำนวน Test Cases แบ่งตามประเภท
| ประเภท | จำนวน | คำอธิบาย |
|---|---|---|
| Happy Path | 33 | กรณีการทำงานปกติ |
| Error Cases (E) | 15 | กรณีข้อมูลผิดพลาด/ไม่ถูกต้อง |
| Fail Cases (F) | 8 | กรณีเงื่อนไขทางธุรกิจไม่ผ่าน |
| Security Cases (S) | 2 | กรณีเกี่ยวกับความปลอดภัย |
| รวมทั้งหมด | 58 | Test Cases ทั้งหมด |
หมวดหมู่ของ Error/Fail Cases
1. Data Validation Errors
- TC-001-E1: ข้อมูลบังคับไม่ครบ
- TC-001-E2: เลขบัตรประชาชนไม่ถูกต้อง
- TC-001-E3: วันเกิดในอนาคต
- TC-003-E1: ไม่ใส่ข้อมูลค้นหา
- TC-006-E1: ไม่เลือกสิทธิ
- TC-006-E2: ไม่เลือกแผนก
2. Business Logic Failures
- TC-003-F1: HN ไม่พบในระบบ
- TC-006-F1: ส่งตรวจซ้ำในวันเดียวกัน
- TC-010-F1: ยืมแฟ้มที่ไม่มีในระบบ
- TC-016-F1: รวม HN ที่มี Visit ล่าสุด
3. State/Concurrency Errors
- TC-010-E1: ยืมแฟ้มที่ถูกยืมแล้ว
- TC-010-E2: คืนแฟ้มที่ไม่ได้ยืม
- TC-032-E2: Concurrent HN Generation
4. Data Integrity Errors
- TC-016-E1: รวม HN ที่มีข้อมูลขัดแย้ง
- TC-016-E2: รวม HN ของคนละคน
5. Integration/API Errors
- TC-027-E1: API Timeout
- TC-027-E2: Network Error
- TC-027-E3: Invalid Response
- TC-027-F1: Duplicate Request
6. Performance/Resource Errors
- TC-032-F1: Performance Degradation
- TC-032-E1: Connection Pool Exhaustion
7. Security/Audit Cases
- TC-033-S1: การเข้าถึงข้อมูล VIP
- TC-033-S2: การแก้ไขข้อมูลสำคัญ
แนวทางการทดสอบ
- ทดสอบ Happy Path ก่อน - ให้แน่ใจว่าฟังก์ชันพื้นฐานทำงานได้
- ทดสอบ Error Cases - ตรวจสอบการจัดการข้อผิดพลาด
- ทดสอบ Fail Cases - ตรวจสอบเงื่อนไขทางธุรกิจ
- ทดสอบ Security Cases - ตรวจสอบความปลอดภัยและ Audit Trail
- ทดสอบ Performance - ทดสอบภาระงานสูงและขีดจำกัดระบบ
🚫 Test Cases ที่ถูกย้ายไประบบอื่น
การทดสอบที่ย้ายไประบบซักประวัติ (1.2.2)
- การจัดการประวัติการแพ้ยา (Drug Allergy Management)
- การบันทึก Chief Complaint และ History Taking
- การบันทึกการสั่ง Lab/X-Ray รายละเอียด
- การตรวจสอบ Drug Interaction
การทดสอบที่ย้ายไประบบเภสัชกรรม (1.2.13)
- การสั่งจ่ายยาและเวชภัณฑ์
- การพิมพ์ใบสั่งยา
- การจัดการ Prescription Template
การทดสอบที่ย้ายไประบบตรวจสอบสิทธิ (1.2.15)
- การตรวจสอบสิทธิออนไลน์
- การยืนยันสิทธิกับหน่วยงานภายนอก
การทดสอบที่ย้ายไประบบห้องตรวจ (1.2.3)
- การจัดการคิวผู้ป่วยรายละเอียด
- การเรียกผู้ป่วยเข้าตรวจ
- การบันทึกผลการตรวจ
เอกสารนี้จัดทำขึ้นเพื่อใช้ในการทดสอบระบบเวชระเบียนหลัก (Core Medical Record System) สำหรับโรงพยาบาลค่ายธนรัชน์ และต้องได้รับการอนุมัติจากผู้มีอำนาจก่อนนำไปใช้ในการทดสอบระบบ