Software Requirements Specification (SRS)
ระบบเวชระเบียนหลัก (Core Medical Record System)
เวอร์ชัน: 2.0
วันที่: 4 ตุลาคม 2568
การปรับปรุง: แยกฟีเจอร์เฉพาะทางไประบบที่เหมาะสม เพิ่ม API Integration
สารบัญ
- บทนำ
- คำอธิบายโดยรวม
- ความต้องการเฉพาะ
- ความต้องการภายนอก
- คุณลักษณะของระบบ
- ความต้องการที่ไม่ใช่ฟังก์ชัน
- การเชื่อมโยงกับระบบอื่น
1. บทนำ
1.1 วัตถุประสงค์
เอกสารนี้มีวัตถุประสงค์เพื่อกำหนดความต้องการซอฟต์แวร์สำหรับระบบเวชระเบียนหลัก (Core Medical Record System) ของโรงพยาบาลค่ายธนรัชน์ ซึ่งหลังจากการวิเคราะห์และปรับปรุงแล้ว จะครอบคลุมเฉพาะฟีเจอร์หลักของการจัดการเวชระเบียน และเชื่อมโยงกับระบบเฉพาะทางอื่นๆ ผ่าน API Integration
1.2 ขอบเขต (Scope)
ระบบเวชระเบียนหลักจะดำเนินการ: - ✅ การลงทะเบียนผู้ป่วยใหม่ และการจัดการข้อมูลผู้ป่วยหลัก - ✅ การบันทึกการส่งตรวจผู้ป่วย พื้นฐาน - ✅ การพิมพ์เอกสารหลัก ที่เกี่ยวข้องกับเวชระเบียน - ✅ การจัดการแฟ้มเวชระเบียน ทั้งผู้ป่วยนอกและผู้ป่วยใน - ✅ การจัดการระบบนัดหมาย พื้นฐาน - ✅ การรวมหมายเลข HN และการเปลี่ยนแปลงข้อมูลผู้ป่วย - ✅ API Integration กับระบบเฉพาะทางอื่นๆ
1.2.1 🚫 Out of Scope (ย้ายไประบบอื่น)
- ❌ การจัดการประวัติการแพ้ยารายละเอียด → ระบบซักประวัติ (1.2.2)
- ❌ การสั่งจ่ายยาและ Drug Interaction → ระบบเภสัชกรรม (1.2.13)
- ❌ การตรวจสอบสิทธิออนไลน์ → ระบบตรวจสอบสิทธิ (1.2.15)
- ❌ การจัดการคิวรายละเอียด → ระบบห้องตรวจ (1.2.3)
1.3 คำจำกัดความ และตัวย่อ
| คำศัพท์ | คำอธิบาย |
|---|---|
| HN | Hospital Number - หมายเลขประจำตัวผู้ป่วย |
| OPD | Out Patient Department - แผนกผู้ป่วยนอก |
| AN | Admission Number - หมายเลขการรับเข้าผู้ป่วยใน |
| PCU | Progressive Care Unit - หน่วยดูแลผู้ป่วยระดับกลาง |
| Chart | แฟ้มเวชระเบียนผู้ป่วย |
| Ward | หอผู้ป่วย |
| API | Application Programming Interface - ส่วนติดต่อโปรแกรมประยุกต์ |
| JSON | JavaScript Object Notation - รูปแบบการแลกเปลี่ยนข้อมูล |
| REST | Representational State Transfer - สถาปัตยกรรม API |
1.4 เอกสารอ้างอิง
- TOR ระบบเวชระเบียน โรงพยาบาลค่ายธนรัชน์
- TOR ฉบับเต็ม (ระบบทั้งหมด 24 ระบบ)
- มาตรฐานการจัดการเวชระเบียนของกระทรวงสาธารณสุข
- System Separation Recommendations (เอกสารแนะนำการแยกระบบ)
1.5 ภาพรวมของเอกสาร
เอกสารนี้แบ่งออกเป็น 6 ส่วนหลัก โดยครอบคลุมตั้งแต่บทนำ คำอธิบายโดยรวมของระบบ ความต้องการเฉพาะของแต่ละฟังก์ชัน ความต้องการภายนอก คุณลักษณะของระบบ และความต้องการที่ไม่ใช่ฟังก์ชัน
2. คำอธิบายโดยรวม
2.1 มุมมองของผลิตภัณฑ์
ระบบเวชระเบียนเป็นส่วนหนึ่งของระบบสารสนเทศโรงพยาบาล (HIS) ที่ทำหน้าที่เป็นระบบหลักในการจัดการข้อมูลผู้ป่วยและเวชระเบียน โดยจะเชื่อมโยงกับระบบอื่นๆ ดังนี้: - ระบบการเงิน (สำหรับการคิดค่าบริการ) - ระบบตรวจสอบสิทธิ (สำหรับการตรวจสอบสิทธิการรักษา) - ระบบห้องตรวจ (สำหรับการส่งตรวจ) - ระบบเภสัชกรรม (สำหรับการจ่ายยา) - ระบบรังสีวิทยาและชันสูตร (สำหรับการส่งตรวจ Lab/X-Ray)
2.2 ฟังก์ชันของผลิตภัณฑ์
ระบบจะประกอบด้วยฟังก์ชันหลักดังนี้: 1. การลงทะเบียนผู้ป่วยใหม่ - บันทึกข้อมูลประวัติผู้ป่วยครั้งแรก 2. การบันทึกส่งตรวจผู้ป่วย - จัดการการส่งตรวจและติดตามผู้ป่วย 3. การพิมพ์เอกสาร - พิมพ์เอกสารต่างๆ ที่เกี่ยวข้อง 4. การจัดการแฟ้มเวชระเบียน - ระบบยืม-คืนแฟ้มเวชระเบียน 5. การนัดหมาย - จัดการการนัดหมายผู้ป่วย 6. ระบบเวชระเบียนอื่นๆ - การรวม HN และการจัดการข้อมูลพิเศษ
2.3 คลาสผู้ใช้และลักษณะเฉพาะ
- เจ้าหน้าที่ลงทะเบียน: ทำหน้าที่ลงทะเบียนผู้ป่วยใหม่และส่งตรวจ
- เจ้าหน้าที่เวชระเบียน: จัดการแฟ้มเวชระเบียนและการยืม-คืน
- พยาบาล: ใช้ระบบในการรับส่งผู้ป่วยและดูข้อมูลประวัติ
- แพทย์: เข้าถึงข้อมูลประวัติผู้ป่วยเพื่อการรักษา
- ผู้ดูแลระบบ: จัดการการตั้งค่าระบบและสิทธิ์การใช้งาน
2.4 สภาพแวดล้อมการดำเนินงาน
- ระบบปฏิบัติการ: Windows Server
- ฐานข้อมูล: SQL Server หรือเทียบเท่า
- เว็บเบราว์เซอร์: Internet Explorer, Chrome, Firefox
- เครือข่าย: LAN/WAN ภายในโรงพยาบาล
- อุปกรณ์: เครื่องพิมพ์, เครื่องสแกนลายนิ้วมือ, เครื่องอ่าน Barcode, กล้องถ่ายรูป
2.5 ข้อจำกัดในการออกแบบและการดำเนินงาน
- ต้องสามารถทำงานได้ 24/7 เนื่องจากเป็นโรงพยาบาล
- ต้องรองรับผู้ใช้งานพร้อมกันได้มากกว่า 100 คน
- เวลาตอบสนองของระบบต้องไม่เกิน 3 วินาทีต่อการดำเนินการ
- ต้องปฏิบัติตามกฎหมายคุ้มครองข้อมูลส่วนบุคคล (PDPA)
- ต้องมีระบบสำรองข้อมูลและการกู้คืนข้อมูล
2.6 สมมติฐานและการพึ่งพาอาศัย
- ผู้ใช้งานมีความรู้พื้นฐานในการใช้คอมพิวเตอร์
- มีการฝึกอบรมผู้ใช้งานก่อนเริ่มใช้ระบบ
- มีทีมสนับสนุนทางเทคนิคสำหรับการบำรุงรักษาระบบ
- มีระบบสำรองไฟฟ้า (UPS) สำหรับการทำงานต่อเนื่อง
3. ความต้องการเฉพาะ
3.1 ฟังก์ชันการลงทะเบียนผู้ป่วยใหม่
3.1.1 ข้อมูลประวัติผู้ป่วย
คำอธิบาย: ระบบต้องสามารถบันทึกข้อมูลประวัติผู้ป่วยได้อย่างครบถ้วน
Input: - ข้อมูลส่วนตัว: HN, ชื่อ, นามสกุล, เพศ, คำนำหน้านาม, วันเดือนปีเกิด, หมู่เลือด, สถานภาพสมรส, เชื้อชาติ, สัญชาติ, อาชีพ, ศาสนา, เวลาเกิด - เอกสารประจำตัว: เลขบัตรประจำตัวประชาชน, เลขที่หนังสือเดินทาง, เลขที่บัตรแรงงานต่างด้าว, เลขที่บัตรข้าราชการ - ที่อยู่: ที่อยู่ปัจจุบันและตามทะเบียนบ้าน พร้อมรายละเอียดครบถ้วน - รูปพรรณสัณฐาน, รูปถ่าย, ลายนิ้วมือ
Process: - คำนวณอายุจากวันเดือนปีเกิดอัตโนมัติ - ตรวจสอบความซ้ำซ้อนของข้อมูล - สร้าง HN อัตโนมัติหากไม่ระบุ - บันทึก timestamp และ user ที่ทำรายการ
Output: - ข้อมูลผู้ป่วยที่บันทึกในระบบ - หมายเลข HN ที่ได้รับมอบหมาย - ข้อความยืนยันการบันทึกข้อมูล
ข้อกำหนดพิเศษ: - สำหรับข้าราชการต้องเก็บข้อมูลสังกัดหลักและสังกัดรอง - สำหรับต่างชาติต้องเก็บข้อมูลนายจ้างและหน่วยขึ้นทะเบียน - รองรับการแสดงอายุทารกแรกเกิดเป็นวัน (อายุ < 1 เดือน) - กรณีไม่ทราบวันเดือนปีเกิดสามารถคำนวณจากอายุได้
3.1.2 ข้อมูลครอบครัวและผู้ติดต่อ
คำอธิบาย: ระบบต้องสามารถบันทึกข้อมูลครอบครัวและผู้ติดต่อได้
Input: - ชื่อ-นามสกุลบิดา, มารดา, คู่สมรส - ข้อมูลผู้ติดต่อ: ชื่อ, ที่อยู่, เบอร์โทรศัพท์, ความสัมพันธ์ - ข้อมูลด้านครอบครัว: สถานะในครอบครัว, สถานะบุคคล, การศึกษา, ประเภทบุคคล, ตำแหน่งในชุมชน
Process: - ตรวจสอบความถูกต้องของข้อมูลที่กรอก - เก็บประวัติการแก้ไขข้อมูล
Output: - ข้อมูลครอบครัวและผู้ติดต่อที่บันทึกแล้ว
3.1.3 ข้อมูลทางการแพทย์
คำอธิบาย: ระบบต้องสามารถบันทึกข้อมูลประวัติทางการแพทย์ได้
Input: - โรคเรื้อรังของผู้ป่วยและปีที่เริ่มเป็น - โรคประจำตัว - ประวัติการเจ็บป่วยของญาติ: โรคประจำตัว, สถานภาพชีวิต, อายุ
Process: - เพิ่มผู้ป่วยเข้าทะเบียนคลินิกพิเศษตามโรคเรื้อรัง - ตรวจสอบความสัมพันธ์ของโรคกับประวัติครอบครัว
Output: - ข้อมูลประวัติทางการแพทย์ที่บันทึกแล้ว - การเพิ่มเข้าทะเบียนคลินิกพิเศษ (ถ้ามี)
3.2 ฟังก์ชันการบันทึกส่งตรวจผู้ป่วย
3.2.1 การค้นหาและเลือกผู้ป่วย
คำอธิบาย: ระบบต้องสามารถค้นหาผู้ป่วยได้หลายวิธี
Input: - หมายเลข HN - ชื่อและ/หรือนามสกุล - หมายเลขบัตรประจำตัวประชาชน - ลายนิ้วมือ - Barcode
Process: - ค้นหาข้อมูลจากฐานข้อมูล - แสดงรายการผู้ป่วยที่ตรงตามเกณฑ์ - ตรวจสอบสถานะผู้ป่วย (มีชีวิต/เสียชีวิต)
Output: - รายการผู้ป่วยที่พบ - ข้อมูลประวัติผู้ป่วยที่เลือก
3.2.2 การเลือกสิทธิและประเภทผู้ป่วย
คำอธิบาย: ระบบต้องสามารถจัดการสิทธิการรักษาและประเภทผู้ป่วยได้
Input: - สิทธิการรักษา (สามารถเลือกได้มากกว่า 1 สิทธิ) - ประเภทผู้ป่วย: ปกติ, PCU, ออกหน่วย - ความเร่งด่วน: มากที่สุด, มาก, ปกติ - สภาพผู้ป่วย: เดินมา, นั่งรถเข็น, รถนอน - อาการสำคัญ
Process: - ตรวจสอบความถูกต้องของสิทธิ - กำหนดลำดับความสำคัญตามความเร่งด่วน
Output: - ข้อมูลการส่งตรวจที่ระบุสิทธิและประเภท
3.2.3 การส่งตรวจและจัดการคิว
คำอธิบาย: ระบบต้องสามารถส่งตรวจและจัดการคิวได้
Input: - ห้องและแผนกที่ต้องการส่งตรวจ - การส่งตรวจหลายแผนก - การส่งตรวจล่วงหน้า
Process: - สร้างคิวผู้ป่วยตามลำดับและความเร่งด่วน - ส่งข้อมูลไปยังห้องตรวจที่เกี่ยวข้อง - ยืมแฟ้มเวชระเบียนอัตโนมัติ
Output: - หมายเลขคิวผู้ป่วย - รายการห้องตรวจที่ส่งตรวจ - สถานะการยืมแฟ้ม
4. ความต้องการภายนอก
4.1 ส่วนติดต่อผู้ใช้
4.1.1 ส่วนติดต่อกับผู้ใช้
- หน้าจอต้องมีการออกแบบที่ใช้งานง่าย และเข้าใจง่าย
- รองรับการใช้งานผ่านเว็บเบราว์เซอร์
- มีระบบแจ้งเตือนและป็อปอัพสำหรับข้อมูลสำคัญ
- รองรับการใช้งานด้วยแป้นพิมพ์และเมาส์
- หน้าจอต้องปรับขนาดได้ตามความละเอียดของจอภาพ
4.1.2 ส่วนติดต่อกับฮาร์ดแวร์
- เครื่องพิมพ์สำหรับพิมพ์เอกสารต่างๆ
- เครื่องสแกนลายนิ้วมือสำหรับระบุตัวตนผู้ป่วย
- เครื่องอ่าน Barcode สำหรับค้นหาและยืม-คืนแฟ้ม
- กล้องถ่ายรูปสำหรับบันทึกภาพผู้ป่วย
- เครื่องสำรองไฟฟ้า (UPS)
4.1.3 ส่วนติดต่อกับซอฟต์แวร์
- ระบบฐานข้อมูล SQL Server
- ระบบปฏิบัติการ Windows Server
- Web Server (IIS)
- ระบบสำรองข้อมูล
- Antivirus Software
4.1.4 ส่วนติดต่อการสื่อสาร
- เชื่อมต่อกับระบบ HIS อื่นๆ ผ่าน Web Services หรือ API
- การส่งข้อมูลไปยังหน่วยงานภายนอก (สปสช., กรมบัญชีกลาง)
- การแลกเปลี่ยนข้อมูลกับโรงพยาบาลอื่น
4.2 ข้อกำหนดด้านประสิทธิภาพ
4.2.1 เวลาตอบสนอง
- การค้นหาผู้ป่วย: ไม่เกิน 2 วินาที
- การบันทึกข้อมูลใหม่: ไม่เกิน 3 วินาที
- การพิมพ์เอกสาร: ไม่เกิน 5 วินาที
- การโหลดหน้าจอ: ไม่เกิน 3 วินาที
4.2.2 ความจุการใช้งาน
- รองรับผู้ใช้งานพร้อมกัน: อย่างน้อย 100 คน
- จำนวนผู้ป่วยในฐานข้อมูล: อย่างน้อย 500,000 ราย
- จำนวนการเข้ารับบริการต่อวัน: อย่างน้อย 1,000 ครั้ง
4.2.3 ความพร้อมใช้งาน
- ระบบต้องทำงานได้ 99.5% ของเวลา (24x7)
- เวลาหยุดทำงานสำหรับบำรุงรักษา: ไม่เกิน 4 ชั่วโมงต่อเดือน
- การกู้คืนระบบหลังจากขัดข้อง: ภายใน 30 นาที
4.3 ข้อกำหนดด้านความปลอดภัย
4.3.1 การควบคุมการเข้าถึง
- ระบบ Login ด้วย Username และ Password
- การกำหนดสิทธิ์การใช้งานตามตำแหน่งหน้าที่
- การล็อกออกอัตโนมัติเมื่อไม่ใช้งานเกิน 30 นาที
- การเข้ารหัสข้อมูลสำคัญ
4.3.2 การป้องกันข้อมูล
- สำรองข้อมูลอัตโนมัติทุกวัน
- การเก็บ Log การใช้งานและการแก้ไขข้อมูล
- การป้องกันการเข้าถึงจากภายนอกระบบ
- การตรวจสอบความครบถ้วนของข้อมูล
5. คุณลักษณะของระบบ
5.1 การจัดการข้อมูลผู้ป่วย
5.1.1 การป้องกันข้อมูลซ้ำซ้อน
- ตรวจสอบความซ้ำซ้อนของเลขบัตรประจำตัวประชาชน
- เตือนเมื่อพบชื่อ-นามสกุลที่คล้ายกัน
- ระบบรวม HN เมื่อพบผู้ป่วยรายเดียวกันมีหลาย HN
5.1.2 การจัดการข้อมูลเก่า
- เก็บประวัติการแก้ไขข้อมูลทั้งหมด
- ไม่อนุญาตให้แก้ไขข้อมูลผู้ป่วยที่เสียชีวิต
- การเก็บข้อมูลการเปลี่ยน HN พร้อมวันที่และผู้ทำรายการ
5.1.3 การแจ้งเตือนพิเศษ
- แสดง Note เตือนเมื่อเปิดข้อมูลผู้ป่วย
- เตือนการเปลี่ยนคำนำหน้าชื่อเมื่อผู้ป่วยอายุ ≥ 15 ปี
- แจ้งเตือนเมื่อเอกสารไม่ครบถ้วน
5.2 การจัดการแฟ้มเวชระเบียน
5.2.1 ระบบยืม-คืนแฟ้ม
- การยืมแฟ้มอัตโนมัติเมื่อส่งตรวจ
- การติดตามสถานะแฟ้มแบบ Real-time
- รองรับการใช้ Barcode ในการยืม-คืน
- การพิมพ์รายชื่อผู้ป่วยนัดล่วงหน้า
5.2.2 การจัดการแฟ้มผู้ป่วยใน
- ติดตามแฟ้มค้างส่งจาก Ward
- บันทึกการยืม-คืน Chart ผู้ป่วยใน
- รายงานสถานะแฟ้มแบบรายละเอียด
5.3 ระบบรายงานและพิมพ์
5.3.1 เอกสารการลงทะเบียน
- บัตรประจำตัวผู้ป่วย
- ใบ ร.บ.1 ต. 02 (OPD CARD)
- ใบแทน OPD CARD
5.3.2 เอกสารการส่งตรวจ
- ใบสั่งยา
- บัตรคิว
- ใบยืมแฟ้มเวชระเบียน
5.4 การรองรับสถานการณ์พิเศษ
5.4.1 ภาวะประสบภัยหมู่
- ระบบลงทะเบียนแบบเร่งด่วนสำหรับ Mass Casualty
- การจัดลำดับความสำคัญของผู้ป่วย
- การรายงานสถานการณ์แบบ Real-time
6.8 การปฏิบัติตามกฎหมาย (Legal Requirements)
- ปฏิบัติตามพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล (PDPA)
- ปฏิบัติตามมาตรฐานการจัดการเวชระเบียนของกระทรวงสาธารณสุข
- รองรับการตรวจสอบจากหน่วยงานราชการ
- การเก็บข้อมูลตามระยะเวลาที่กฎหมายกำหนด
7. การเชื่อมโยงกับระบบอื่น (System Integration)
7.1 ภาพรวมการเชื่อมโยง
ระบบเวชระเบียนหลักจะทำหน้าที่เป็น Hub System ที่เชื่อมโยงกับระบบเฉพาะทางอื่นๆ ผ่าน RESTful API
graph TD
A["ระบบเวชระเบียนหลัก<br/>(Core Medical Record System)<br/>1.2.1"] --> B["ระบบซักประวัติ<br/>1.2.2"]
A --> C["ระบบเภสัชกรรม<br/>1.2.13"]
A --> D["ระบบตรวจสอบสิทธิ<br/>1.2.15"]
A --> E["ระบบห้องตรวจ<br/>1.2.3"]
A --> F["ระบบการเงิน<br/>1.2.14"]
style A fill:#e1f5fe,stroke:#01579b,stroke-width:3px
style B fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
style C fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
style D fill:#fff3e0,stroke:#e65100,stroke-width:2px
style E fill:#fce4ec,stroke:#880e4f,stroke-width:2px
style F fill:#f1f8e9,stroke:#33691e,stroke-width:2px
7.2 API Integration Specifications
7.2.1 🔗 กับระบบตรวจสอบสิทธิ (1.2.15)
วิธีการเชื่อมต่อ: Modal Integration
// API Endpoints
POST /api/v1/insurance/modal/open
POST /api/v1/insurance/rights/validate
POST /api/v1/insurance/rights/select
ข้อมูลที่แลกเปลี่ยน: - ส่ง: HN, CitizenID, VisitDate - รับ: ValidatedRights[], CoverageDetails, BillingModifiers
7.2.2 💰 กับระบบการเงิน (1.2.14)
วิธีการเชื่อมต่อ: RESTful API
// API Endpoints
POST /api/v1/finance/visit/create
PUT /api/v1/finance/visit/update
GET /api/v1/finance/billing/calculate
ข้อมูลที่แลกเปลี่ยน: - ส่ง: VisitData, SelectedRights, ServiceCodes - รับ: BillingAmount, DiscountAmount, PaymentStatus
7.2.3 💊 กับระบบเภสัชกรรม (1.2.13)
วิธีการเชื่อมต่อ: Event-driven API
// API Endpoints
POST /api/v1/pharmacy/visit/notify
GET /api/v1/pharmacy/prescription/status
ข้อมูลที่แลกเปลี่ยน: - ส่ง: VisitCompleted, PatientData, AllergyWarnings - รับ: PrescriptionStatus, DrugOrderStatus
7.2.4 🏥 กับระบบห้องตรวจ (1.2.3)
วิธีการเชื่อมต่อ: Real-time API
// API Endpoints
POST /api/v1/examroom/queue/create
PUT /api/v1/examroom/queue/update
GET /api/v1/examroom/queue/status
ข้อมูลที่แลกเปลี่ยน: - ส่ง: QueueData, PatientInfo, UrgencyLevel - รับ: QueueStatus, CallStatus, ExamProgress
7.3 Error Handling และ Fallback
7.3.1 การจัดการข้อผิดพลาด
- Network Timeout: Retry mechanism with exponential backoff
- Service Unavailable: Graceful degradation โดยไม่หยุดการทำงาน
- Data Inconsistency: Auto-sync และ manual reconciliation
7.3.2 Fallback Strategies
{
"insurance_system_down": {
"action": "ใช้สิทธิ default หรือ cash payment",
"manual_process": "ตรวจสอบสิทธิทีหลัง"
},
"finance_system_down": {
"action": "บันทึกการส่งตรวจต่อไป คิดเงินทีหลัง",
"manual_process": "คำนวณค่าบริการ manual"
},
"pharmacy_system_down": {
"action": "ใช้ manual prescription จากระบบซักประวัติ",
"manual_process": "สั่งยาผ่านกระดาษ"
}
}
7.4 Data Synchronization
7.4.1 Real-time Sync
- ข้อมูลผู้ป่วยหลัก - sync ทันทีเมื่อมีการเปลี่ยนแปลง
- การส่งตรวจ - notify ระบบที่เกี่ยวข้องทันที
7.4.2 Batch Sync
- Master Data Updates - sync ทุกคืนเวลา 02:00
- Archive Data - ย้ายข้อมูลเก่าเป็น batch process
7.5 Security และ Authentication
7.5.1 API Security
- JWT Tokens สำหรับ authentication ระหว่างระบบ
- TLS 1.3 สำหรับการเข้ารหัสข้อมูล
- Rate Limiting ป้องกัน DoS attacks
- API Key Management สำหรับแต่ละระบบ
7.5.2 Data Privacy
- Field-level Encryption สำหรับข้อมูลส่วนตัว
- Audit Logging ทุกการเข้าถึงข้อมูลผู้ป่วย
- GDPR Compliance สำหรับสิทธิผู้ป่วย
ภาคผนวก
ภาคผนวก A: คำศัพท์และตัวย่อเพิ่มเติม
| คำศัพท์ | คำอธิบาย |
|---|---|
| API Gateway | ตัวกลางในการจัดการ API calls ระหว่างระบบ |
| JWT | JSON Web Token - มาตรฐานการ authentication |
| TLS | Transport Layer Security - การเข้ารหัสข้อมูล |
| Circuit Breaker | กลไกป้องกันระบบล่มเมื่อ dependency ไม่พร้อมใช้งาน |
| Event Sourcing | การเก็บประวัติการเปลี่ยนแปลงข้อมูลแบบ event-driven |
ภาคผนวก B: API Specifications
B.1 Request/Response Format
{
"standard_format": {
"timestamp": "ISO 8601 format",
"request_id": "UUID v4",
"api_version": "v1",
"data": "actual payload",
"metadata": "additional info"
},
"error_format": {
"error_code": "HTTP status code",
"error_message": "human readable message",
"error_details": "technical details",
"correlation_id": "for tracking"
}
}
B.2 Authentication Flow
sequenceDiagram
participant C as Client System
participant AS as Auth Server
participant API as API Gateway
participant DB as Database
Note over C,DB: Authentication Flow Process
C->>AS: 1. POST /auth/login<br/>{username, password}
AS->>DB: 2. Validate credentials
DB-->>AS: 3. User data & permissions
AS->>AS: 4. Generate JWT token
AS-->>C: 5. JWT token + refresh token
Note over C,API: API Request with Token
C->>API: 6. API request<br/>Authorization: Bearer {JWT}
API->>API: 7. Validate JWT token
API->>DB: 8. Execute business logic
DB-->>API: 9. Response data
API-->>C: 10. API response
Note over C,AS: Token Refresh Process
C->>AS: 11. POST /auth/refresh<br/>{refresh_token}
AS->>AS: 12. Validate refresh token
AS-->>C: 13. New JWT token
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor': '#e3f2fd', 'primaryTextColor': '#000', 'primaryBorderColor': '#1976d2', 'lineColor': '#1976d2'}}}%%
ภาคผนวก C: Deployment Architecture
graph TD
LB["Load Balancer<br/>🔄 การกระจายโหลด"]
LB --> WS["Web Server<br/>🌐 เว็บเซิร์ฟเวอร์"]
LB --> API["API Gateway<br/>🚪 ประตู API"]
LB --> CACHE["Cache Redis<br/>⚡ แคชข้อมูล"]
API --> MDB["Medical Record DB<br/>🏥 ฐานข้อมูลเวชระเบียน"]
API --> IDB["Insurance DB<br/>💳 ฐานข้อมูลสิทธิ"]
API --> PDB["Pharmacy DB<br/>💊 ฐานข้อมูลเภสัชกรรม"]
API --> FDB["Finance DB<br/>💰 ฐานข้อมูลการเงิน"]
CACHE -.->|"Cache Layer"| MDB
CACHE -.->|"Cache Layer"| IDB
CACHE -.->|"Cache Layer"| PDB
style LB fill:#ff9800,stroke:#e65100,stroke-width:3px
style WS fill:#2196f3,stroke:#0d47a1,stroke-width:2px
style API fill:#4caf50,stroke:#1b5e20,stroke-width:2px
style CACHE fill:#f44336,stroke:#b71c1c,stroke-width:2px
style MDB fill:#e1f5fe,stroke:#01579b,stroke-width:2px
style IDB fill:#fff3e0,stroke:#e65100,stroke-width:2px
style PDB fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
style FDB fill:#f1f8e9,stroke:#33691e,stroke-width:2px
เอกสารนี้จัดทำขึ้นเพื่อใช้ในการพัฒนาระบบเวชระเบียนหลัก (Core Medical Record System) สำหรับโรงพยาบาลค่ายธนรัชน์ ที่มีการแยกระบบและ Integration ที่เหมาะสม และต้องได้รับการอนุมัติจากผู้มีอำนาจก่อนนำไปใช้ในการพัฒนาระบบ |---------|-----------| | PDPA | Personal Data Protection Act - พระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล | | HL7 | Health Level Seven - มาตรฐานการแลกเปลี่ยนข้อมูลทางการแพทย์ | | API | Application Programming Interface - ส่วนติดต่อโปรแกรมประยุกต์ | | Failover | การสลับไปใช้ระบบสำรองเมื่อระบบหลักขัดข้อง |
ภาคผนวก B: การอ้างอิงมาตรฐาน
- ISO 27001 - Information Security Management
- ISO 13606 - Health informatics - Electronic health record communication
- มาตรฐาน HL7 FHIR สำหรับการแลกเปลี่ยนข้อมูลสุขภาพ
หมายเหตุ: เอกสารนี้จัดทำขึ้นสำหรับการพัฒนาระบบเวชระเบียนของโรงพยาบาลค่ายธนรัชน์ และจะมีการปรับปรุงเพิ่มเติมตามความต้องการที่เปลี่ยนแปลง