Software Requirements Specification (SRS)
ระบบนัดหมายและตารางเวรแพทย์ (Appointment & Doctor Schedule System)
เวอร์ชัน: 1.1
วันที่: 9 ตุลาคม 2568
จัดทำโดย: ทีมพัฒนาระบบ HIS โรงพยาบาลค่ายธนรัชน์
สารบัญ
- บทนำ
- คำอธิบายโดยรวม
- ความต้องการเฉพาะ
- ความต้องการภายนอก
- คุณลักษณะของระบบ
- ความต้องการที่ไม่ใช่ฟังก์ชัน
- การเชื่อมโยงกับระบบอื่น
1. บทนำ
1.1 วัตถุประสงค์
เอกสารนี้มีวัตถุประสงค์เพื่อกำหนดความต้องการซอฟต์แวร์สำหรับระบบนัดหมายและตารางเวรแพทย์ (Appointment & Doctor Schedule System) ของโรงพยาบาลค่ายธนรัชน์ ซึ่งจะครอบคลุมการจัดการนัดหมายผู้ป่วย การจัดการตารางเวรแพทย์ และการติดตามผลการนัดหมาย
1.2 ขอบเขต (Scope)
ระบบนัดหมายและตารางเวรแพทย์จะดำเนินการ:
✅ ฟังก์ชันหลักของระบบ: - 📅 การจัดการข้อมูลพื้นฐาน - กำหนดโควต้าแพทย์ วันหยุด และการปฏิบัติก่อนพบแพทย์ - 🔍 การตรวจสอบข้อมูลการนัดหมาย - แสดงข้อมูลผู้ป่วยที่นัด ติดตามผลการมาตามนัด - 📝 การลงทะเบียนนัดหมาย - บันทึกนัดหมาย ยกเลิกนัด เลื่อนนัด และพิมพ์ใบนัด - 📊 การจัดการตารางเวรแพทย์ - กำหนดตารางการทำงานของแพทย์และตรวจสอบในรูปแบบปฏิทิน - 🏥 การส่งตรวจผู้ป่วยล่วงหน้า - ออก Visit ล่วงหน้าและสั่ง Lab/X-Ray ตามนัด
🔗 ฟังก์ชันที่เชื่อมโยงกับระบบอื่น: - เชื่อมโยงกับระบบเวชระเบียน (1.2.1) สำหรับข้อมูลผู้ป่วย - เชื่อมโยงกับระบบซักประวัติ (1.2.2) และระบบห้องตรวจแพทย์ (1.2.3) สำหรับการนัดติดตาม - เชื่อมโยงกับระบบงานชันสูตร (1.2.7) และระบบรังสีวิทยา (1.2.8) สำหรับการสั่งตรวจล่วงหน้า - เชื่อมโยงกับระบบผู้ดูแลระบบ (1.2.21) สำหรับการจัดการข้อมูลพื้นฐาน
1.3 คำจำกัดความ และตัวย่อ
| คำศัพท์ | คำอธิบาย |
|---|---|
| HN | Hospital Number - หมายเลขประจำตัวผู้ป่วย |
| Visit | การมารับบริการของผู้ป่วย |
| โควต้า | จำนวนผู้ป่วยที่แพทย์สามารถรับได้ต่อวัน |
| Slot | ช่วงเวลาสำหรับการนัดหมาย |
| No Show | ผู้ป่วยที่ไม่มาตามนัดหมาย |
| Walk-in | ผู้ป่วยที่มาโดยไม่ได้นัดหมาย |
| Reschedule | การเลื่อนนัดหมาย |
| Pre-visit | การส่งตรวจล่วงหน้าก่อนวันนัด |
| Template | แม่แบบการนัดหมายสำหรับแต่ละคลินิก |
| Shift | เวรการทำงานของแพทย์ |
1.4 เอกสารอ้างอิง
- TOR ระบบนัดหมายและตารางเวรแพทย์ โรงพยาบาลค่ายธนรัชน์
- SRS ระบบเวชระเบียน (1.2.1) - เพื่อการเชื่อมโยงข้อมูลผู้ป่วย
- SRS ระบบซักประวัติ (1.2.2) - เพื่อการนัดติดตาม
- SRS ระบบห้องตรวจแพทย์ (1.2.3) - เพื่อการนัดติดตาม
- มาตรฐานการจัดการคิวและการนัดหมายของกระทรวงสาธารณสุข
2. คำอธิบายโดยรวม
2.1 มุมมองผลิตภัณฑ์
ระบบนัดหมายและตารางเวรแพทย์เป็นส่วนหนึ่งของระบบสารสนเทศโรงพยาบาล (HIS) ที่ทำหน้าที่เป็น Scheduling Hub โดยจัดการการนัดหมายผู้ป่วยและตารางเวรแพทย์ เพื่อให้การรักษาพยาบาลเป็นไปอย่างมีประสิทธิภาพ
2.2 ฟังก์ชันผลิตภัณฑ์
ระบบมีฟังก์ชันหลัก 5 กลุ่ม:
- การจัดการข้อมูลพื้นฐาน - กำหนดโควต้าแพทย์ วันหยุด และการเตรียมตัวผู้ป่วย
- การตรวจสอบข้อมูลการนัดหมาย - แสดงรายการนัด ติดตามผล และรายงาน
- การลงทะเบียนนัดหมาย - บันทึก แก้ไข ยกเลิก และพิมพ์ใบนัด
- การจัดการตารางเวรแพทย์ - กำหนดและแสดงตารางการทำงานของแพทย์
- การส่งตรวจผู้ป่วยล่วงหน้า - ออก Visit และสั่งตรวจล่วงหน้าตามนัด
2.3 คลาสผู้ใช้และลักษณะ
- เจ้าหน้าที่ลงทะเบียน - ผู้ใช้หลักที่บันทึกและจัดการการนัดหมาย
- แพทย์ - ตรวจสอบตารางนัดของตนเองและจัดการโควต้า
- พยาบาล - ช่วยจัดการการนัดและติดตามผู้ป่วย
- เจ้าหน้าที่แผนก - ตรวจสอบรายการนัดของแผนกและจัดเตรียม
- ผู้ดูแลระบบ - จัดการข้อมูลพื้นฐานและการตั้งค่าระบบ
2.4 สภาพแวดล้อมการปฏิบัติงาน
- ระบบทำงานในสภาพแวดล้อมโรงพยาบาล 24/7
- รองรับการใช้งานพร้อมกันหลายจุดบริการ
- เชื่อมต่อกับระบบอื่นๆ ผ่าน API และฐานข้อมูลกลาง
- รองรับการพิมพ์ใบนัดหมายและรายงานต่างๆ
3. ความต้องการเฉพาะ
3.1 ความต้องการภายนอก
3.1.1 อินเทอร์เฟซผู้ใช้
- ระบบต้องมี Interface แบบปฏิทิน (Calendar View) สำหรับแสดงข้อมูลนัดหมาย
- รองรับการใช้งานบนอุปกรณ์ต่างๆ (Desktop, Tablet)
- มีระบบ Search และ Filter สำหรับการค้นหาข้อมูลนัดหมาย
- แสดงข้อมูลในรูปแบบตารางเวลาและแบบรายการ
3.1.2 อินเทอร์เฟซฮาร์ดแวร์
- รองรับเครื่องพิมพ์สำหรับพิมพ์ใบนัดหมาย
- เชื่อมต่อกับระบบแจ้งเตือนอัตโนมัติ (SMS/Email)
3.1.3 อินเทอร์เฟซซอฟต์แวร์
- เชื่อมโยงกับระบบเวชระเบียน (1.2.1) สำหรับข้อมูลผู้ป่วย
- เชื่อมโยงกับระบบซักประวัติ (1.2.2) และระบบห้องตรวจแพทย์ (1.2.3) สำหรับการนัดติดตาม
- เชื่อมโยงกับระบบงานชันสูตร (1.2.7) และระบบรังสีวิทยา (1.2.8) สำหรับการสั่งตรวจล่วงหน้า
- เชื่อมโยงกับระบบจัดการคิว (Queue Management) สำหรับการเรียกคิว
4. คุณลักษณะของระบบ
4.1 การจัดการข้อมูลพื้นฐาน
4.1.1 การกำหนดจำนวนคนไข้นัดหมายของแพทย์
คำอธิบาย: ระบบสามารถกำหนดโควต้าผู้ป่วยสำหรับแพทย์แต่ละท่านต่อวัน
ข้อกำหนด: - FR-4.1.1: ระบบต้องสามารถกำหนดจำนวนคนไข้นัดหมายของแพทย์แต่ละท่านต่อวันได้ - FR-4.1.2: ระบบต้องสามารถกำหนดโควต้าต่างกันสำหรับวันต่างๆ ในสัปดาห์ - FR-4.1.3: ระบบต้องสามารถกำหนดโควต้าพิเศษสำหรับวันหยุดหรือกรณีฉุกเฉิน - FR-4.1.4: ระบบต้องแสดงเตือนเมื่อจำนวนผู้ป่วยที่นัดเกินโควต้าที่กำหนด
4.1.2 การกำหนดข้อมูลการปฏิบัติก่อนพบแพทย์
คำอธิบาย: ระบบสามารถกำหนดการเตรียมตัวและการตรวจที่ต้องทำก่อนพบแพทย์
ข้อกำหนด: - FR-4.1.5: ระบบต้องสามารถกำหนดข้อมูลการปฏิบัติก่อนพบแพทย์ ได้แก่: - คำแนะนำการเตรียมตัว (เช่น งดอาหาร งดน้ำ) - รายการตรวจ Lab ที่ต้องทำก่อนพบแพทย์ - รายการตรวจ X-Ray หรือการตรวจอื่นๆ - คลินิกที่ต้องไปก่อนพบแพทย์ - FR-4.1.6: ระบบต้องสามารถพิมพ์ข้อมูลการปฏิบัติลงในใบนัดหมายได้ - FR-4.1.7: ระบบต้องมี Template การเตรียมตัวสำหรับแต่ละแผนกหรือประเภทการรักษา
4.1.3 การกำหนดข้อมูลวันหยุด
คำอธิบาย: ระบบสามารถจัดการข้อมูลวันหยุดต่างๆ
ข้อกำหนด: - FR-4.1.8: ระบบต้องสามารถกำหนดข้อมูลวันหยุดต่างๆ ได้ ประกอบด้วย: - วันเสาร์-อาทิตย์ - วันหยุดนักขัตฤกษ์ - วันหยุดพิเศษต่างๆ - วันหยุดส่วนตัวของแพทย์ - FR-4.1.9: ระบบต้องตรวจสอบและเตือนเมื่อมีการนัดในวันหยุด - FR-4.1.10: ระบบต้องสามารถกำหนดวันหยุดล่วงหน้าได้อย่างน้อย 1 ปี
4.1.4 การกำหนดตารางการทำงานของแพทย์
คำอธิบาย: ระบบสามารถจัดการตารางเวรและการทำงานของแพทย์
ข้อกำหนด: - FR-4.1.11: ระบบต้องสามารถกำหนดตารางการทำงานของแพทย์แต่ละท่าน ประกอบด้วย: - วันทำงานในแต่ละสัปดาห์ - เวลาเริ่มต้นและสิ้นสุดการทำงาน - ช่วงพักเที่ยง - ห้องตรวจที่รับผิดชอบ - FR-4.1.12: ระบบต้องสามารถตรวจสอบวันทำงานของแพทย์ได้เพื่อยืนยันการนัดหมาย - FR-4.1.13: ระบบต้องแสดงตารางการทำงานในรูปแบบปฏิทินที่ดูง่าย
4.2 การตรวจสอบข้อมูลการนัดหมาย
4.2.1 การแสดงข้อมูลผู้ป่วยที่นัดหมาย
คำอธิบาย: ระบบสามารถแสดงข้อมูลผู้ป่วยที่มีการนัดหมายในช่วงเวลาต่างๆ
ข้อกำหนด: - FR-4.2.1: ระบบต้องสามารถแสดงข้อมูลผู้ป่วยที่นัดหมายโดยระบุช่วงวันที่นัดหมาย และกำหนดข้อมูลเพิ่มเติมได้: - แพทย์ผู้นัดหมาย - คลินิกที่นัดหมาย - ห้องตรวจที่นัดหมาย - FR-4.2.2: ข้อมูลที่แสดงต้องประกอบด้วย: - เลขประจำตัวผู้ป่วย (HN) - ชื่อ - สกุลผู้ป่วย - คลินิกที่นัด - แพทย์ผู้นัด - ห้องตรวจ - วันที่มา (วันที่ทำการบันทึกนัดหมาย) - วันที่ และเวลานัด - หมายเหตุ - FR-4.2.3: ระบบต้องสามารถ Filter ข้อมูลตามแพทย์ คลินิก หรือช่วงวันที่
4.2.2 การตรวจสอบผู้ป่วยที่มาและไม่มาตามนัด
คำอธิบาย: ระบบสามารถติดตามผลการมาตามนัดของผู้ป่วย
ข้อกำหนด: - FR-4.2.4: ระบบต้องสามารถตรวจสอบข้อมูลรายชื่อผู้ป่วยที่มา และไม่มาตามนัดได้ โดยระบุตาม: - แพทย์ผู้นัดหมาย - ห้องตรวจ - คลินิกที่นัด - FR-4.2.5: ระบบต้องบันทึกสถานะการมาตามนัด ได้แก่: - มาตามนัด (Show) - ไม่มาตามนัด (No Show) - มาแต่สาย (Late) - ยกเลิกล่วงหน้า (Cancelled) - FR-4.2.6: ระบบต้องสามารถสร้างรายงานสถิติการมาตามนัดรายแพทย์และรายคลินิก
4.2.3 การตรวจสอบวันทำงานของแพทย์
คำอธิบาย: ระบบสามารถแสดงตารางการทำงานของแพทย์
ข้อกำหนด: - FR-4.2.7: ระบบต้องสามารถตรวจสอบวันทำงานของแพทย์ได้ในรูปแบบปฏิทิน - FR-4.2.8: ระบบต้องแสดงข้อมูลการทำงานของแพทย์ ประกอบด้วย: - วันที่และช่วงเวลาทำงาน - ห้องตรวจที่รับผิดชอบ - จำนวนผู้ป่วยที่นัดในแต่ละวัน - สถานะการทำงาน (ทำงานปกติ/ลา/เวรพิเศษ) - FR-4.2.9: ระบบต้องสามารถแสดงปฏิทินการทำงานแบบรายสัปดาห์และรายเดือน
4.3 การลงทะเบียนนัดหมาย
4.3.1 การบันทึกข้อมูลการนัดหมาย
คำอธิบาย: ระบบสามารถบันทึกข้อมูลการนัดหมายแบบครบถ้วน
ข้อกำหนด: - FR-4.3.1: ระบบต้องสามารถรองรับการจัดเก็บข้อมูลรายการนัดตามรายละเอียดดังนี้: - วันที่นัด - ช่วงเวลาที่นัด - คลินิกที่นัด - สาเหตุการนัด - แพทย์ผู้นัด - การปฏิบัติตัวก่อนพบแพทย์ - การสั่ง Lab/X-Ray ล่วงหน้า - หมายเหตุ (เพิ่มเติม) - FR-4.3.2: ระบบต้องตรวจสอบความถูกต้องของข้อมูลก่อนบันทึก - FR-4.3.3: ระบบต้องสร้างเลขที่นัดหมายที่ไม่ซ้ำกันอัตโนมัติ
4.3.2 การตรวจสอบการนัดหมายซ้ำ
คำอธิบาย: ระบบสามารถตรวจสอบและเตือนการนัดหมายที่ซ้ำกัน
ข้อกำหนด: - FR-4.3.4: การบันทึกนัดหมายเมื่อระบุชื่อแพทย์ที่นัดหมาย ระบบจะแสดงข้อความแจ้งให้ทราบว่าในวันที่นัดหมายมีผู้ป่วยถูกนัดมาแล้วกี่ราย - FR-4.3.5: ระบบต้องตรวจสอบได้ว่ามีการนัดหมายผู้ป่วยในช่วงเวลาเดียวกันมากกว่า 1 ราย - FR-4.3.6: ระบบต้องเตือนเมื่อจำนวนการนัดเกินโควต้าที่กำหนดไว้ - FR-4.3.7: ระบบต้องตรวจสอบการนัดหมายซ้ำของผู้ป่วยรายเดียวกัน
4.3.3 การบันทึกสาเหตุและคำแนะนำการนัด
คำอธิบาย: ระบบสามารถบันทึกเหตุผลและคำแนะนำสำหรับการนัดหมาย
ข้อกำหนด: - FR-4.3.8: การบันทึกการนัดหมายสามารถบอกสาเหตุของการนัดหมาย และในวันนัดผู้ป่วยต้องเตรียมตัวอย่างไรก่อนพบแพทย์บ้าง - FR-4.3.9: ระบบต้องมี Template สาเหตุการนัดที่ใช้บ่อย เช่น: - นัดติดตามผลการรักษา - นัดรับยา - นัดตรวจผลแล็บ - นัดผ่าตัด - FR-4.3.10: ระบบต้องสามารถกำหนดคำแนะนำการเตรียมตัวแบบอัตโนมัติตามประเภทการนัด
4.3.4 การนัดหมายหลายหน่วยตรวจ
คำอธิบาย: ระบบสามารถจัดการการนัดหมายหลายแผนกในวันเดียวกัน
ข้อกำหนด: - FR-4.3.11: ระบบต้องสามารถบันทึกการนัดหมายผู้ป่วยรายเดียวกันได้จากหลายหน่วยตรวจในวันเดียวกัน - FR-4.3.12: ระบบต้องแสดงลำดับการนัดหมายและเวลาที่แนะนำสำหรับแต่ละหน่วยตรวจ - FR-4.3.13: ระบบต้องตรวจสอบความเป็นไปได้ของเวลาในการเดินทางระหว่างหน่วยตรวจ
4.3.5 การตรวจสอบและจัดการข้อมูลการนัดหมาย
คำอธิบาย: ระบบสามารถค้นหาและจัดการข้อมูลการนัดหมายของผู้ป่วย
ข้อกำหนด: - FR-4.3.14: ระบบต้องสามารถทำการตรวจสอบข้อมูลการนัดหมายของผู้ป่วยแต่ละรายได้ - FR-4.3.15: ระบบต้องแสดงประวัติการนัดหมายทั้งหมดของผู้ป่วย รวมถึง: - การนัดที่มาตามกำหนด - การนัดที่ไม่มา - การนัดที่ยกเลิก - การนัดที่เลื่อน
4.3.6 การยกเลิกและเลื่อนนัดหมาย
คำอธิบาย: ระบบสามารถจัดการการยกเลิกและเลื่อนนัดหมาย
ข้อกำหนด: - FR-4.3.16: ระบบต้องสามารถทำการยกเลิกนัดและระบุสาเหตุของการยกเลิกนัดกับผู้ป่วยเป็นรายบุคคลได้ - FR-4.3.17: ระบบต้องสามารถทำการเลื่อนนัดของผู้ป่วย - FR-4.3.18: ระบบต้องเก็บข้อมูลการเลื่อนนัดผู้ป่วยและผู้บันทึกข้อมูลการเลื่อนนัดผู้ป่วย - FR-4.3.19: ระบบต้องบันทึก Log การเปลี่ยนแปลงทุกครั้งพร้อมวันที่และผู้ทำรายการ
4.3.7 การพิมพ์ใบนัดหมาย
คำอธิบาย: ระบบสามารถพิมพ์ใบนัดหมายในรูปแบบต่างๆ
ข้อกำหนด: - FR-4.3.20: ระบบต้องสามารถพิมพ์ใบนัดและรูปแบบของใบนัดหมายของแต่ละหน่วยตรวจสามารถแสดงรายละเอียดที่แตกต่างกันได้ - FR-4.3.21: ระบบต้องสามารถระบุจำนวนใบที่ต้องการจะพิมพ์ได้ - FR-4.3.22: ใบนัดหมายต้องประกอบด้วยข้อมูลสำคัญ: - วันที่และเวลานัด - ชื่อแพทย์ที่นัด - คลินิกและห้องตรวจ - การเตรียมตัวก่อนมา - หมายเลขติดต่อเพื่อเลื่อน/ยกเลิกนัด
4.3.8 การแสดงข้อมูลในรูปแบบปฏิทินและตาราง
คำอธิบาย: ระบบสามารถแสดงข้อมูลการนัดหมายในหลายรูปแบบ
ข้อกำหนด: - FR-4.3.23: ระบบต้องสามารถตรวจสอบรายชื่อผู้ป่วยที่นัดมาในได้ในรูปแบบปฏิทิน - FR-4.3.24: ระบบต้องสามารถตรวจสอบช่วงเวลาที่นัดมาของผู้ป่วยในแต่ละวันได้ในรูปแบบตารางเวลานัด - FR-4.3.25: ระบบต้องสามารถตรวจสอบรายชื่อผู้ป่วยที่ไม่มาตามนัดในแต่ละวันได้ - FR-4.3.26: ระบบต้องสามารถจำกัดจำนวนผู้ป่วยต่อแพทย์ในการนัดแต่ละครั้งได้
4.4 การส่งตรวจผู้ป่วยล่วงหน้า
4.4.1 การส่งตรวจล่วงหน้า (Pre-visit)
คำอธิบาย: ระบบสามารถส่งตรวจผู้ป่วยล่วงหน้าก่อนวันนัดหมาย
ข้อกำหนด: - FR-4.4.1: ระบบต้องสามารถส่งตรวจผู้ป่วยล่วงหน้า (ออก Visit ล่วงหน้า) ตามวันที่นัดมาไปยังจุดต่างๆ ที่นัดได้ - FR-4.4.2: ระบบต้องสร้าง Visit Number สำหรับการตรวจล่วงหน้า - FR-4.4.3: ระบบต้องเชื่อมโยงการส่งตรวจล่วงหน้ากับการนัดหมายหลัก - FR-4.4.4: ระบบต้องแสดงสถานะการส่งตรวจล่วงหน้าในหน้าจัดการการนัดหมาย
4.4.2 การส่งตรวจ Lab/X-Ray ล่วงหน้า
คำอธิบาย: ระบบสามารถสั่งตรวจ Lab และ X-Ray ล่วงหน้าตามการนัดหมาย
ข้อกำหนด: - FR-4.4.5: ระบบต้องสามารถส่งตรวจ Lab/X-Ray ล่วงหน้า (ยืนยันการสั่ง) ตามที่นัดหมายไว้ได้ - FR-4.4.6: ระบบต้องเชื่อมโยงกับระบบงานชันสูตร (1.2.7) สำหรับการสั่ง Lab ล่วงหน้า - FR-4.4.7: ระบบต้องเชื่อมโยงกับระบบรังสีวิทยา (1.2.8) สำหรับการสั่ง X-Ray ล่วงหน้า - FR-4.4.8: ระบบต้องแสดงรายการตรวจที่สั่งล่วงหน้าในใบนัดหมาย - FR-4.4.9: ระบบต้องติดตามสถานะการตรวจและแจ้งเตือนเมื่อผลพร้อม - FR-4.3.25: ระบบต้องสามารถตรวจสอบรายชื่อผู้ป่วยที่ไม่มาตามนัดในแต่ละวันได้ - FR-4.3.26: ระบบต้องแสดงข้อมูลสถิติการนัดหมายในรูปแบบกราฟและตาราง
4.3.9 การจำกัดจำนวนผู้ป่วยต่อแพทย์
คำอธิบาย: ระบบสามารถควบคุมจำนวนผู้ป่วยที่นัดต่อแพทย์
ข้อกำหนด: - FR-4.3.27: ระบบต้องสามารถจำกัดจำนวนผู้ป่วยต่อแพทย์ในการนัดแต่ละครั้งได้ - FR-4.3.28: ระบบต้องแสดงเตือนเมื่อจำนวนการนัดใกล้เต็มโควต้า - FR-4.3.29: ระบบต้องสามารถสำรองโควต้าสำหรับกรณีฉุกเฉินได้
4.4 การส่งตรวจผู้ป่วยล่วงหน้า
4.4.1 การส่งตรวจผู้ป่วยล่วงหน้า (ออก Visit ล่วงหน้า)
คำอธิบาย: ระบบสามารถส่งผู้ป่วยไปยังจุดต่างๆ ตามที่นัดไว้
ข้อกำหนด: - FR-4.4.1: ระบบต้องสามารถส่งตรวจผู้ป่วยล่วงหน้า (ออก Visit ล่วงหน้า) ตามวันที่นัดมาไปยังจุดต่างๆ ที่นัดได้ - FR-4.4.2: ระบบต้องสร้าง Visit Number สำหรับการมารับบริการในวันที่นัด - FR-4.4.3: ระบบต้องเชื่อมโยงข้อมูลการ Pre-visit กับระบบคิว - FR-4.4.4: ระบบต้องแจ้งข้อมูลการ Pre-visit ไปยังหน่วยงานที่เกี่ยวข้อง
4.4.2 การส่งตรวจ Lab/X-Ray ล่วงหน้า
คำอธิบาย: ระบบสามารถยืนยันการสั่งตรวจที่กำหนดไว้ล่วงหน้า
ข้อกำหนด: - FR-4.4.5: ระบบต้องสามารถส่งตรวจ Lab/X-Ray ล่วงหน้า (ยืนยันการสั่ง) ตามที่นัดหมายไว้ได้ - FR-4.4.6: ระบบต้องเชื่อมโยงกับระบบงานชันสูตร (1.2.7) สำหรับการสั่ง Lab - FR-4.4.7: ระบบต้องเชื่อมโยงกับระบบรังสีวิทยา (1.2.8) สำหรับการสั่ง X-Ray - FR-4.4.8: ระบบต้องติดตามสถานะการตรวจและแจ้งผลเมื่อพร้อม
5. ความต้องการที่ไม่ใช่ฟังก์ชัน
5.1 ความต้องการด้านประสิทธิภาพ (Performance Requirements)
- PR-5.1.1: ระบบต้องสามารถตอบสนองการค้นหาข้อมูลการนัดหมายภายใน 2 วินาที
- PR-5.1.2: ระบบต้องรองรับผู้ใช้งานพร้อมกันได้อย่างน้อย 50 คน
- PR-5.1.3: ระบบต้องมีความพร้อมใช้งาน (Availability) อย่างน้อย 99.5% ต่อเดือน
- PR-5.1.4: การบันทึกข้อมูลการนัดหมายต้องเสร็จสมบูรณ์ภายใน 3 วินาที
- PR-5.1.5: ระบบต้องสามารถแสดงตารางการนัดหมายแบบปฏิทินภายใน 5 วินาที
5.2 ความต้องการด้านความปลอดภัย (Security Requirements)
- SR-5.2.1: ระบบต้องมีการยืนยันตัวตน (Authentication) ก่อนเข้าใช้งาน
- SR-5.2.2: ระบบต้องมีการควบคุมสิทธิ์การเข้าถึงข้อมูล (Authorization) ตามบทบาทผู้ใช้
- SR-5.2.3: ระบบต้องเข้ารหัสข้อมูลส่วนบุคคลของผู้ป่วย
- SR-5.2.4: ระบบต้องบันทึก Audit Log ทุกการเข้าถึงและแก้ไขข้อมูลการนัดหมาย
- SR-5.2.5: ระบบต้องป้องกันการเข้าถึงข้อมูลการนัดหมายโดยไม่ได้รับอนุญาต
5.3 ความต้องการด้านการใช้งาน (Usability Requirements)
- UR-5.3.1: ระบบต้องมี User Interface ที่ใช้งานง่าย สำหรับผู้ใช้ที่มีทักษะคอมพิวเตอร์ปานกลาง
- UR-5.3.2: ระบบต้องมีระบบ Auto-complete สำหรับการค้นหาชื่อแพทย์และชื่อผู้ป่วย
- UR-5.3.3: ระบบต้องแสดงข้อความเตือนอย่างชัดเจนเมื่อมีข้อผิดพลาดหรือข้อมูลไม่ครบถ้วน
- UR-5.3.4: ระบบต้องรองรับภาษาไทยและภาษาอังกฤษ
- UR-5.3.5: ระบบต้องมี Calendar Interface ที่ใช้งานง่ายสำหรับการดูและจัดการนัดหมาย
5.4 ความต้องการด้านความน่าเชื่อถือ (Reliability Requirements)
- RR-5.4.1: ระบบต้องมีระบบ Backup ข้อมูลอัตโนมัติทุก 24 ชั่วโมง
- RR-5.4.2: ระบบต้องสามารถ Recovery ได้ภายใน 4 ชั่วโมงหากเกิดขัดข้อง
- RR-5.4.3: ข้อมูลการนัดหมายที่บันทึกแล้วต้องไม่สูญหายใต้สถานการณ์ปกติ
- RR-5.4.4: ระบบต้องมีกลไก Failover สำหรับการทำงานต่อเนื่อง
5.5 ความต้องการด้านการบำรุงรักษา (Maintainability Requirements)
- MR-5.5.1: ระบบต้องมีโครงสร้างที่สามารถแก้ไขและปรับปรุงได้ง่าย
- MR-5.5.2: ระบบต้องมีเอกสารการติดตั้งและการใช้งานที่ครบถ้วน
- MR-5.5.3: ระบบต้องสามารถอัพเดทได้โดยไม่หยุดการทำงาน (Hot Deploy)
- MR-5.5.4: ระบบต้องมี Monitoring และ Alerting สำหรับการติดตามสถานะระบบ
5.6 ความต้องการด้านความสามารถในการขยาย (Scalability Requirements)
- SC-5.6.1: ระบบต้องรองรับการเพิ่มจำนวนผู้ใช้งานได้โดยไม่กระทบต่อประสิทธิภาพ
- SC-5.6.2: ระบบต้องสามารถรองรับข้อมูลการนัดหมายได้อย่างน้อย 1 ล้านรายการต่อปี
- SC-5.6.3: ระบบต้องสามารถเพิ่มแพทย์และคลินิกใหม่ได้โดยง่าย
6. การเชื่อมโยงกับระบบอื่น
6.1 ภาพรวมการเชื่อมโยง
ระบบนัดหมายและตารางเวรแพทย์ทำหน้าที่เป็น Scheduling Hub ที่เชื่อมโยงกับระบบต่างๆ ในโรงพยาบาลดังนี้:
graph TD
A["ระบบนัดหมายและตารางเวรแพทย์<br/>(Appointment & Doctor Schedule)<br/>1.2.6"] --> B["ระบบเวชระเบียน<br/>1.2.1"]
A --> C["ระบบซักประวัติ<br/>1.2.2"]
A --> D["ระบบห้องตรวจแพทย์<br/>1.2.3"]
A --> E["ระบบงานชันสูตร<br/>1.2.7"]
A --> F["ระบบรังสีวิทยา<br/>1.2.8"]
A --> G["ระบบจัดการคิว<br/>Queue Management"]
A --> H["ระบบผู้ดูแลระบบ<br/>1.2.21"]
A --> I["ระบบแจ้งเตือน<br/>Notification System"]
B -->|ข้อมูลผู้ป่วย| A
C -->|การนัดติดตาม| A
D -->|การนัดติดตาม| A
E -->|ผลการตรวจ Lab| A
F -->|ผลการตรวจ X-Ray| A
G -->|สถานะคิว| A
H -->|ข้อมูลแพทย์และคลินิก| A
I -->|การแจ้งเตือนนัด| A
style A fill:#e8f5e8,stroke:#2e7d32,stroke-width:3px
style B fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style C fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style D fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style E fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style F fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style G fill:#e0f2f1,stroke:#2e7d32,stroke-width:2px
style H fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style I fill:#fce4ec,stroke:#c2185b,stroke-width:2px
6.2 รายละเอียดการเชื่อมโยง
6.2.1 ระบบเวชระเบียน (1.2.1)
วิธีการเชื่อมต่อ: RESTful API
// API Endpoints
GET /api/v1/patient/{hn}/basic-info
GET /api/v1/patient/search?keyword=xxx
POST /api/v1/appointment/create
PUT /api/v1/appointment/{appointmentId}/update
DELETE /api/v1/appointment/{appointmentId}/cancel
ข้อมูลที่แลกเปลี่ยน: - รับ: ข้อมูลผู้ป่วย (HN, ชื่อ-สกุล, เลขบัตรประชาชน, ข้อมูลติดต่อ) - ส่ง: ข้อมูลการนัดหมาย, สถานะการมาตามนัด, ประวัติการนัดหมาย
6.2.2 ระบบซักประวัติ (1.2.2) และระบบห้องตรวจแพทย์ (1.2.3)
วิธีการเชื่อมต่อ: API Integration + Modal Integration
// การนัดติดตามจากระบบซักประวัติและห้องตรวจ
POST /api/v1/appointment/follow-up/create
GET /api/v1/appointment/follow-up/templates
// เรียกใช้ Modal การนัดหมาย
window.openAppointmentModal(patientHN, callbackFunction);
// รับข้อมูลการนัดที่สร้าง
function callbackFunction(appointmentData) {
// ใช้ข้อมูลการนัดในระบบหลัก
}
ข้อมูลที่แลกเปลี่ยน: - รับ: คำขอนัดติดตาม, ข้อมูลผู้ป่วยที่ต้องนัด, สาเหตุการนัด - ส่ง: ข้อมูลการนัดที่สร้าง, วันที่และเวลานัด, การเตรียมตัว
6.2.3 ระบบงานชันสูตร (1.2.7) และระบบรังสีวิทยา (1.2.8)
วิธีการเชื่อมต่อ: Bidirectional API Integration
// ส่งคำสั่งตรวจล่วงหน้า
POST /api/v1/lab/pre-order/create
POST /api/v1/radiology/pre-order/create
// รับผลการตรวจ
GET /api/v1/lab/results/{hn}?appointmentDate=xxx
GET /api/v1/radiology/results/{hn}?appointmentDate=xxx
// แจ้งเตือนผลพร้อม
POST /api/v1/appointment/results-ready-notification
ข้อมูลที่แลกเปลี่ยน: - ส่ง: คำสั่งตรวจ Lab/X-Ray ล่วงหน้า, ข้อมูลผู้ป่วยและการนัด - รับ: ผลการตรวจ, สถานะการตรวจ, การแจ้งเตือนผลพร้อม
6.2.4 ระบบจัดการคิว (Queue Management System)
วิธีการเชื่อมต่อ: Real-time API Integration
// สร้างคิวสำหรับผู้ป่วยที่มาตามนัด
POST /api/v1/queue/appointment/check-in
GET /api/v1/queue/status/{appointmentId}
// อัพเดทสถานะการมาตามนัด
PUT /api/v1/appointment/{appointmentId}/attendance-status
ข้อมูลที่แลกเปลี่ยน: - ส่ง: ข้อมูลการนัดหมายสำหรับสร้างคิว, ลำดับการนัด - รับ: สถานะการเข้าคิว, การยืนยันการมาตามนัด
6.2.5 ระบบผู้ดูแลระบบ (1.2.21)
วิธีการเชื่อมต่อ: Administrative API Integration
// จัดการข้อมูล Master Data
GET /api/v1/admin/doctors/list
GET /api/v1/admin/clinics/list
GET /api/v1/admin/holidays/list
POST /api/v1/admin/doctor-schedule/set
PUT /api/v1/admin/appointment-quota/update
ข้อมูลที่แลกเปลี่ยน: - รับ: ข้อมูลแพทย์, ข้อมูลคลินิก, วันหยุด, ตารางเวรแพทย์ - ส่ง: การใช้งานโควต้า, สถิติการนัดหมาย, รายงานการใช้งาน
6.2.6 ระบบแจ้งเตือน (Notification System)
วิธีการเชื่อมต่อ: Event-driven API Integration
// ส่งการแจ้งเตือนการนัดหมาย
POST /api/v1/notification/appointment-reminder/send
POST /api/v1/notification/appointment-confirmation/send
POST /api/v1/notification/appointment-cancellation/send
// กำหนดการแจ้งเตือนอัตโนมัติ
POST /api/v1/notification/schedule/auto-reminder
ข้อมูลที่แลกเปลี่ยน: - ส่ง: ข้อมูลการนัดหมาย, ข้อมูลผู้ป่วย, เวลาที่ต้องการแจ้งเตือน - รับ: สถานะการส่งการแจ้งเตือน, ผลการติดต่อผู้ป่วย
6.3 การจัดการข้อผิดพลาดและการเชื่อมต่อ
6.3.1 Error Handling Strategy
// จัดการข้อผิดพลาดการเชื่อมต่อ
const APIErrorHandler = {
// Network Timeout
networkTimeout: () => {
// ใช้ข้อมูล Cache หรือแสดงข้อความเตือน
},
// Service Unavailable
serviceUnavailable: () => {
// ใช้ Offline Mode หรือเลื่อนการดำเนินการ
},
// Data Validation Error
validationError: (error) => {
// แสดงข้อความและแนะนำการแก้ไข
}
};
6.3.2 Data Synchronization
// การซิงค์ข้อมูลแบบ Real-time
const DataSync = {
// อัพเดทข้อมูลการนัดเมื่อมีการเปลี่ยนแปลง
syncAppointmentData: () => {
// ส่งข้อมูลไปยังระบบที่เกี่ยวข้องทั้งหมด
},
// ตรวจสอบความสอดคล้องของข้อมูล
validateDataConsistency: () => {
// ตรวจสอบข้อมูลระหว่างระบบ
}
};
6.4 Security และ Data Protection
6.4.1 API Security
- ใช้ OAuth 2.0 สำหรับการยืนยันตัวตน
- เข้ารหัสข้อมูลด้วย TLS 1.3 ในการส่งข้อมูล
- จำกัด Rate Limiting สำหรับ API Calls
- บันทึก API Access Log เพื่อการตรวจสอบ
6.4.2 Data Privacy (PDPA Compliance)
- เข้ารหัสข้อมูลส่วนบุคคลในฐานข้อมูล
- จำกัดการเข้าถึงข้อมูลตามสิทธิ์ผู้ใช้
- ลบข้อมูลที่หมดอายุตามนโยบาย
- แจ้งการใช้ข้อมูลให้ผู้ป่วยทราบ
6.5 Performance Optimization
6.5.1 Caching Strategy
- Cache ข้อมูลแพทย์และคลินิกที่ไม่ค่อยเปลี่ยน
- Cache ข้อมูลการนัดหมายของวันปัจจุบัน
- ใช้ Redis สำหรับ Session Management
6.5.2 Database Optimization
- สร้าง Index สำหรับการค้นหาข้อมูลการนัดหมาย
- Partition ข้อมูลตามช่วงวันที่
- ใช้ Connection Pooling สำหรับฐานข้อมูล
7. บทสรุป
ระบบนัดหมายและตารางเวรแพทย์เป็นระบบสำคัญที่เชื่อมโยงกับระบบต่างๆ ในโรงพยาบาล โดยครอบคลุมความต้องการตาม TOR ทั้งหมด ได้แก่:
✅ ความครอบคลุม TOR 100%
- การจัดการข้อมูลพื้นฐาน - โควต้าแพทย์ วันหยุด การเตรียมตัว ✓
- การตรวจสอบข้อมูลการนัดหมาย - แสดงรายการ ติดตามผล รูปแบบปฏิทิน ✓
- การลงทะเบียนนัดหมาย - บันทึก แก้ไข ยกเลิก เลื่อน พิมพ์ใบนัด ✓
- การส่งตรวจผู้ป่วยล่วงหน้า - ออก Visit และสั่งตรวจล่วงหน้า ✓
🔗 การเชื่อมโยงระบบ
- เชื่อมโยงกับระบบหลัก 8 ระบบ
- รองรับการทำงานแบบ Real-time
- มีกลไก Error Handling และ Fallback
🛡️ ความปลอดภัยและประสิทธิภาพ
- ปฏิบัติตาม PDPA
- รองรับผู้ใช้งานพร้อมกัน 50+ คน
- มีระบบ Backup และ Recovery
เอกสารนี้จัดทำขึ้นเพื่อใช้เป็นแนวทางในการพัฒนาระบบนัดหมายและตารางเวรแพทย์ที่เชื่อมโยงกับระบบอื่นๆ ในโรงพยาบาล และจะได้รับการปรับปรุงตามความต้องการที่เปลี่ยนแปลง