Software Requirements Specification (SRS)
ระบบงาน Admission ผู้ป่วยใน (Inpatient Admission System) - โรงพยาบาลจังหวัด
Document Version: 1.0 (Complete TOR-Based Edition)
Date: 28 สิงหาคม 2568
Project: Hospital Information System - Inpatient Admission Module
System Code: IPD_ADMISSION
Target Hospital: โรงพยาบาลระดับจังหวัด (500+ เตียง, 100+ ผู้ใช้พร้อมกัน)
Technology Stack: Next.js 14, TypeScript, Nest.js, PostgreSQL 15+, Prisma ORM
Based on: TOR ระบบงาน Admission ผู้ป่วยใน และ Master Database Schema Integration
📋 Table of Contents
- บทนำและขอบเขตโครงการ
- ความต้องการเชิงหน้าที่ (Functional Requirements)
- ความต้องการด้านประสิทธิภาพ (Performance Requirements)
- ความต้องการด้านความปลอดภัย (Security Requirements)
- ความต้องการด้านการเชื่อมต่อ (Integration Requirements)
- ความต้องการด้านการใช้งาน (Usability Requirements)
- ความต้องการด้านการปฏิบัติตามกฎระเบียบ (Compliance Requirements)
- ข้อกำหนดทางเทคนิค (Technical Specifications)
- การทดสอบและประกันคุณภาพ (Testing & Quality Assurance)
- เอกสารและรายงาน (Documentation & Reporting)
1. บทนำและขอบเขตโครงการ
1.1 วัตถุประสงค์ของเอกสาร
เอกสารนี้กำหนดความต้องการทางซอฟต์แวร์สำหรับระบบงาน Admission ผู้ป่วยใน ตาม TOR ที่ครอบคลุม:
- การลงทะเบียนรับผู้ป่วยใน (Inpatient Admission)
- การจัดการข้อมูลสถานะผู้ป่วย
- การจัดการเตียง (Bed Management)
- การย้ายเตียง/ย้ายหอผู้ป่วย (Transfer Management)
- การจัดการการจองเตียง (Bed Reservation Management)
- การเชื่อมต่อกับระบบ OPD, ER, นัดหมาย และ IPD-CPOE
1.2 ขอบเขตของระบบ
ระบบที่รวมอยู่ใน Scope:
- ระบบลงทะเบียน Admission จากหลายช่องทาง (OPD, ER, นัดหมาย)
- ระบบจัดการเตียงแบบ real-time และการจองเตียงล่วงหน้า
- ระบบการย้ายเตียงและการติดตามประวัติการย้าย
- การสร้างเตียงชั่วคราวและการจัดการเตียงฉุกเฉิน
- การเชื่อมต่อกับระบบการเงินและระบบ DRG
- การรองรับภาษาไทยและอังกฤษ
ระบบที่อยู่นอก Scope:
- ระบบการรักษาผู้ป่วยใน (อยู่ใน IPD-CPOE)
- ระบบการพยาบาลผู้ป่วยใน (อยู่ใน IPD Nursing)
- ระบบการเงินผู้ป่วยใน (อยู่ในระบบการเงิน)
1.3 คำจำกัดความและคำย่อ
| คำศัพท์ | คำจำกัดความ |
|---|---|
| AN | Admission Number - หมายเลขการรับไว้รักษา |
| HN | Hospital Number - หมายเลขประจำตัวผู้ป่วย |
| ADT | Admission, Discharge, Transfer - ระบบรับ-จำหน่าย-ย้าย |
| Ward | หอผู้ป่วย/แผนกผู้ป่วยใน |
| Bed Occupancy Rate | อัตราการครองเตียง |
| LOS | Length of Stay - จำนวนวันนอนโรงพยาบาล |
| Census | จำนวนผู้ป่วยในหอพัก ณ เวลาใดเวลาหนึ่ง |
| Discharge | การจำหน่ายผู้ป่วย |
| Transfer | การย้ายเตียง/ย้ายหอผู้ป่วย |
| LAMA | Leave Against Medical Advice - กลับโดยไม่ฟังคำแนะนำแพทย์ |
| AMA | Against Medical Advice - ขัดคำแนะนำแพทย์ |
1.4 การอ้างอิง
- TOR ระบบงาน Admission ผู้ป่วยใน (Inpatient Admission System).md
- MediTech Master Database Schema
- ระบบงานเวชระเบียนและเวชสถิติ (EMR Core)
- ระบบห้องตรวจแพทย์ผู้ป่วยนอก (OPD-CPOE)
- ระบบงานห้องฉุกเฉิน (Emergency Room System)
- ระบบนัดหมายผู้ป่วยและระบบบริหารจัดการคิว
- ระบบงานแพทย์และการให้คำสั่งผู้ป่วยใน (IPD-CPOE)
- ระบบ DRG System
2. ความต้องการเชิงหน้าที่ (Functional Requirements)
2.1 การลงทะเบียนรับผู้ป่วยใน (Inpatient Admission)
FR-001: การ Admit จากแหล่งต่าง ๆ
Priority: High
Source: TOR Section 1
Dependencies: EMR_CORE, OPD_SYSTEM, ER_SYSTEM, APPOINTMENT_SYSTEM
Description: ระบบต้องรองรับการ Admit ผู้ป่วยจากแหล่งต่าง ๆ โดยเชื่อมโยงข้อมูลผู้ป่วยจากระบบเวชระเบียน
Acceptance Criteria:
AC-001.1: การ Admit จาก OPD
- รับข้อมูลการ Admit จากคำสั่งแพทย์ใน OPD-CPOE
- ดึงข้อมูลผู้ป่วย (HN, ประวัติแพ้ยา, ผลตรวจเดิม) จากระบบเวชระเบียน
- แสดงเหตุผลการ Admit และ Working Diagnosis
AC-001.2: การ Admit จาก ER
- รองรับการ Admit ฉุกเฉินจากห้องฉุกเฉิน
- ดึงข้อมูล Triage และผลการตรวจเบื้องต้น
- รองรับการ Admit แบบ STAT (ด่วนที่สุด)
AC-001.3: การ Admit จากนัดหมาย
- รับข้อมูลการนัดหมาย Admit ล่วงหน้า
- ตรวจสอบการเตรียมตัวของผู้ป่วยตามคำแนะนำ
- เชื่อมโยงกับการจองเตียงที่ทำไว้ล่วงหน้า
Test Scenarios:
- Scenario 1: Admit ผู้ป่วย Appendicitis จาก OPD
- Scenario 2: Admit ผู้ป่วย MI จาก ER
- Scenario 3: Admit ผู้ป่วยนัดผ่าตัด
FR-002: การออก AN และเอกสารประกอบ
Priority: High
Source: TOR Section 1
Dependencies: PATIENT_MANAGEMENT
Description: ระบบต้องสร้าง Admission Number (AN) อัตโนมัติและพิมพ์เอกสารประกอบ
Acceptance Criteria:
AC-002.1: การสร้าง AN
- สร้าง AN ตามรูปแบบที่กำหนด (เช่น 2568001234)
- ป้องกัน AN ซ้ำ
- เชื่อมโยงกับ HN และ Visit ID
AC-002.2: การพิมพ์เอกสาร
- พิมพ์สติกเกอร์ AN สำหรับติดเวชระเบียน
- สร้าง Patient Summary พร้อมข้อมูลสำคัญ
- พิมพ์ Wristband หรือสติกเกอร์ผู้ป่วย
Test Scenarios:
- Scenario 1: สร้าง AN สำหรับผู้ป่วยใหม่
- Scenario 2: จัดการกรณี AN ซ้ำ (error handling)
2.2 การจัดการข้อมูลสถานะผู้ป่วย
FR-003: การแสดงรายการผู้ป่วยใน
Priority: Medium
Source: TOR Section 2
Dependencies: BED_MANAGEMENT
Description: ระบบต้องแสดงรายการผู้ป่วยในที่ Admit อยู่ในแต่ละวัน/ช่วงเวลา
Acceptance Criteria:
AC-003.1: การแสดงข้อมูลผู้ป่วย
- แสดง AN, HN, ชื่อผู้ป่วย, แผนก, ห้อง, เตียง
- แสดงวัน Admit และแพทย์เจ้าของไข้
- แสดงสถานะ (Admitted, Discharged, Transferred)
AC-003.2: การค้นหาผู้ป่วย
- ค้นหาด้วย HN, AN, ชื่อ-สกุล, หมายเลขบัตรประชาชน
- กรองตามแผนก, วันที่ Admit, สถานะ
- แสดงผลแบบ real-time
Test Scenarios:
- Scenario 1: ค้นหาผู้ป่วยด้วย HN
- Scenario 2: กรองผู้ป่วยตามแผนก
2.3 การจัดการเตียง (Bed Management)
FR-004: การแสดงผังเตียง
Priority: High
Source: TOR Section 3
Dependencies: WARD_CONFIGURATION
Description: ระบบต้องแสดงผังเตียงของแต่ละ Ward พร้อมสถานะ real-time
Acceptance Criteria:
AC-004.1: ผังเตียงแบบภาพ
- แสดงผังเตียงแบบ Floor Plan
- สีแสดงสถานะ: เขียว (ว่าง), แดง (ไม่ว่าง), เหลือง (จองไว้), เทา (ปรับสภาพ)
- คลิกที่เตียงเพื่อดูรายละเอียดผู้ป่วย
AC-004.2: ข้อมูลสถิติเตียง
- จำนวนเตียงทั้งหมด, เตียงที่ถูกใช้, เตียงว่าง
- อัตราการครองเตียง (Occupancy Rate)
- จำนวนเตียงที่ถูกจองไว้
AC-004.3: การวางแผนเตียง
- แสดงการวางแผนเตียงล่วงหน้า (7-30 วัน)
- แจ้งเตือนเตียงที่จะเต็มในอนาคต
- คาดการณ์ Discharge และเตียงที่จะว่าง
Test Scenarios:
- Scenario 1: แสดงผังเตียงหอผู้ป่วยชาย
- Scenario 2: คำนวณ Occupancy Rate
FR-005: การจัดการการจองเตียง
Priority: High
Source: TOR Section 6
Dependencies: APPOINTMENT_SYSTEM
Description: ระบบต้องรองรับการจองเตียงล่วงหน้าและการบริหารตารางเตียง
Acceptance Criteria:
AC-005.1: การจองเตียงล่วงหน้า
- จองเตียงตามวันและเวลา Admit ที่กำหนด
- เลือกประเภทเตียงและ Ward
- เชื่อมโยงกับระบบนัดหมายแพทย์
AC-005.2: การจัดการตารางเตียง
- แสดงตารางการจองแบบรายวัน/สัปดาห์
- กรองตามประเภทเตียง, Ward, ชั้น
- รองรับการวางแผนทรัพยากรล่วงหน้า
AC-005.3: การปลดจองอัตโนมัติ
- ปลดจองหากเลยเวลากำหนดไม่ Admit
- แจ้งเตือนการจองที่ใกล้หมดเวลา
- บันทึก Log การจองและการปลดจอง
Test Scenarios:
- Scenario 1: จองเตียงสำหรับผ่าตัดนัดหมาย
- Scenario 2: ปลดจองเมื่อผู้ป่วยไม่มา
2.4 การย้ายเตียง/ย้ายหอผู้ป่วย (Transfer Management)
FR-006: การย้ายเตียง/หอผู้ป่วย
Priority: Medium
Source: TOR Section 4
Dependencies: IPD_CPOE
Description: ระบบต้องรองรับการย้ายเตียงหรือย้าย Ward พร้อมการบันทึกประวัติ
Acceptance Criteria:
AC-006.1: การดำเนินการย้าย
- ย้ายเตียงหรือย้าย Ward ได้
- บันทึกเหตุผลการย้ายและผู้ดำเนินการ
- อัปเดตสถานะเตียงเดิมและเตียงใหม่ทันที
AC-006.2: การแสดงประวัติการย้าย
- แสดงประวัติการย้ายเตียงย้อนหลังตาม AN
- แสดงวันที่/เวลา, เหตุผล, ผู้ดำเนินการ
- รองรับการ Export ประวัติเป็น PDF
AC-006.3: การอนุมัติการย้าย
- รองรับคำสั่งเปลี่ยนเตียงจากแพทย์หรือหัวหน้าหอผู้ป่วย
- ระบบอนุมัติตามสิทธิ์ผู้ใช้งาน
- แจ้งเตือนผู้เกี่ยวข้องเมื่อมีการย้าย
Test Scenarios:
- Scenario 1: ย้ายผู้ป่วยจากห้องธรรมดาไป ICU
- Scenario 2: ย้ายเตียงภายในหอผู้ป่วยเดียวกัน
2.5 การสร้างเตียงชั่วคราวและเตียงฉุกเฉิน
FR-007: การจัดการเตียงพิเศษ
Priority: Medium
Source: TOR Section 6.7
Dependencies: SYSTEM_ADMIN
Description: ระบบต้องรองรับการสร้างเตียงชั่วคราวและการกันเตียงฉุกเฉิน
Acceptance Criteria:
AC-007.1: การสร้างเตียงชั่วคราว
- เพิ่มเตียงชั่วคราว (เตียงสนาม, เตียงเสริม)
- ตั้งชื่อหอพักเฉพาะกิจ
- กำหนดราคาค่าบริการและสิทธิ์การใช้
AC-007.2: การกันเตียงฉุกเฉิน
- กันเตียงสำหรับเหตุฉุกเฉินไม่ให้จองใช้งานปกติ
- อนุมัติใช้เตียงฉุกเฉินโดยผู้มีสิทธิ์ระดับสูง
- บันทึกเหตุผลการใช้เตียงฉุกเฉิน
AC-007.3: การจัดการเตียงชั่วคราว
- Activate/Deactivate เตียงชั่วคราวตามต้องการ
- ไม่กระทบโครงสร้างเตียงถาวร
- รายงานการใช้งานเตียงชั่วคราว
Test Scenarios:
- Scenario 1: สร้างเตียงเสริมในหอ ICU
- Scenario 2: กันเตียงสำหรับเหตุฉุกเฉิน
2.6 การจำหน่ายผู้ป่วย (Discharge Management)
FR-008: การจำหน่ายผู้ป่วย
Priority: High
Source: TOR Implied Requirements
Dependencies: IPD_CPOE, FINANCIAL_SYSTEM
Description: ระบบต้องรองรับการจำหน่ายผู้ป่วยและการอัปเดตสถานะเตียง
Acceptance Criteria:
AC-008.1: การบันทึกข้อมูล Discharge
- บันทึกวันที่-เวลา Discharge
- เลือกประเภทการจำหน่าย (Home, Transfer, LAMA, Expire)
- บันทึกสภาพผู้ป่วยเมื่อจำหน่าย
AC-008.2: การอัปเดตสถานะเตียง
- อัปเดตสถานะเตียงเป็น "ว่าง" ทันทีหลัง Discharge
- คำนวณ LOS อัตโนมัติ
- ส่งข้อมูลไปยัง DRG System และ Financial System
Test Scenarios:
- Scenario 1: Discharge ผู้ป่วยกลับบ้าน
- Scenario 2: Transfer ผู้ป่วยไปโรงพยาบาลอื่น
3. ความต้องการด้านประสิทธิภาพ (Performance Requirements)
3.1 เวลาตอบสนอง (Response Time)
| การดำเนินการ | เป้าหมาย | หมายเหตุ |
|---|---|---|
| การแสดงผังเตียง | < 500ms | 95th percentile |
| การ Admit ผู้ป่วย | < 2s | 95th percentile |
| การค้นหาผู้ป่วย | < 300ms | 95th percentile |
| การย้ายเตียง | < 1s | 95th percentile |
| การจองเตียง | < 800ms | 95th percentile |
3.2 ปริมาณงาน (Throughput)
- Concurrent Admissions: 20+ การ Admit พร้อมกัน
- Bed Updates: 1,000+ การเปลี่ยนแปลงสถานะเตียง/ชั่วโมง
- ผู้ใช้พร้อมกัน: 100+ ผู้ใช้ในเวลาเดียวกัน
3.3 การใช้ทรัพยากร (Resource Usage)
- Database Performance: Optimized indexing สำหรับ bed status queries
- Real-time Updates: WebSocket connections สำหรับ bed status
- Memory Usage: < 2GB RAM สำหรับ bed management cache
4. ความต้องการด้านความปลอดภัย (Security Requirements)
4.1 การควบคุมการเข้าถึง (Access Control)
- Role-based Permissions: แยกสิทธิ์ตาม พยาบาล/แพทย์/เจ้าหน้าที่ Admission
- Bed Assignment Rights: การควบคุมสิทธิ์การจัดเตียง
- Transfer Approval: การอนุมัติการย้ายเตียงตามระดับผู้ใช้
4.2 การป้องกันข้อมูล (Data Protection)
- Patient Privacy: การป้องกันข้อมูลผู้ป่วยตาม PDPA
- Audit Trail: บันทึกการเข้าถึงและแก้ไขข้อมูล Admission
- Data Integrity: การป้องกันข้อมูลเตียงและ AN ซ้ำ
5. ความต้องการด้านการเชื่อมต่อ (Integration Requirements)
5.1 การเชื่อมต่อกับระบบพื้นฐาน
5.1.1 ระบบเวชระเบียน (EMR Core)
- Patient Data Integration
- Patient Demographics:
GET /api/v1/patients/{hn} - Medical History:
GET /api/v1/patients/{hn}/history - Allergy Information:
GET /api/v1/patients/{hn}/allergies
5.1.2 ระบบผู้ดูแลระบบ (System Administration)
- User Authentication & Authorization
- Permission:
admission.create,admission.edit,bed.manage - Audit Logging: ทุกการ Admit, Discharge, Transfer
5.2 การเชื่อมต่อกับระบบคลินิก
5.2.1 ระบบ OPD-CPOE
- Admission Orders Integration
- Admission Orders:
GET /api/v1/opd-cpoe/admission-orders/{visit_id} - Diagnosis:
GET /api/v1/opd-cpoe/diagnoses/{visit_id} - Doctor's Instructions:
GET /api/v1/opd-cpoe/instructions/{visit_id}
5.2.2 ระบบห้องฉุกเฉิน (ER)
- Emergency Admission Integration
- ER Cases:
GET /api/v1/er/cases/{case_id} - Triage Information:
GET /api/v1/er/triage/{case_id} - Emergency Orders:
GET /api/v1/er/orders/{case_id}
5.2.3 ระบบนัดหมาย (Appointment)
- Scheduled Admission Integration
- Scheduled Admissions:
GET /api/v1/appointments/admissions/{date} - Pre-admission Data:
GET /api/v1/appointments/pre-admission/{appointment_id}
5.3 การเชื่อมต่อกับระบบสนับสนุน
5.3.1 ระบบ IPD-CPOE
- Post-Admission Integration
- Send Admission Data:
POST /api/v1/ipd-cpoe/new-admission - Receive Orders:
GET /api/v1/ipd-cpoe/orders/{an}
5.3.2 ระบบ DRG
- DRG Data Integration
- Send Admission Info:
POST /api/v1/drg/new-case - Receive DRG Updates:
GET /api/v1/drg/case/{an}
5.3.3 ระบบการเงิน
- Billing Integration
- Send Admission Charges:
POST /api/v1/billing/admission-charges - Bed Charges:
POST /api/v1/billing/bed-charges
5.4 Real-time Data Exchange
// Admission Event Format
{
"event": "patient_admitted",
"data": {
"an": "2568001234",
"hn": "12345678",
"patient_name": "นายสมชาย ใจดี",
"admission_date": "2025-08-28T08:30:00Z",
"ward_id": "ward_001",
"bed_id": "bed_101A",
"doctor_id": "doctor_123",
"diagnosis": "Acute appendicitis",
"source": "OPD"
},
"timestamp": "2025-08-28T08:30:00Z"
}
// Bed Status Update Format
{
"event": "bed_status_changed",
"data": {
"bed_id": "bed_101A",
"previous_status": "available",
"current_status": "occupied",
"patient_an": "2568001234",
"ward_id": "ward_001",
"changed_by": "user_456"
},
"timestamp": "2025-08-28T08:30:00Z"
}
6. ความต้องการด้านการใช้งาน (Usability Requirements)
6.1 อินเทอร์เฟซผู้ใช้
6.1.1 หน้าจอหลัก Admission Dashboard
- Bed Status Overview: แสดงภาพรวมเตียงทั้งโรงพยาบาล
- Pending Admissions: รายการผู้ป่วยที่รอ Admit
- Today's Census: สถิติผู้ป่วยใน ณ วันที่
- Quick Actions: ปุ่มลัดสำหรับงานที่ทำบ่อย
6.1.2 หน้าจอจัดการเตียง
- Interactive Floor Plan: ผังเตียงแบบคลิกได้
- Bed Search & Filter: ค้นหาและกรองเตียงตามเงื่อนไข
- Drag & Drop Assignment: ลากผู้ป่วยไปยังเตียงที่ต้องการ
- Color-coded Status: สีแสดงสถานะเตียงชัดเจน
6.2 ประสบการณ์ผู้ใช้
6.2.1 Workflow ที่ราบรื่น
- One-click Admission: การ Admit ด้วยคลิกเดียว
- Smart Bed Suggestion: แนะนำเตียงที่เหมาะสม
- Quick Transfer: การย้ายเตียงแบบรวดเร็ว
6.2.2 การแจ้งเตือนอัจฉริยะ
- Bed Availability Alerts: แจ้งเตือนเตียงว่าง/เต็ม
- Pending Discharge Alerts: แจ้งผู้ป่วยที่ควรจำหน่าย
- Emergency Bed Alerts: แจ้งเตือนเตียงฉุกเฉิน
7. ความต้องการด้านการปฏิบัติตามกฎระเบียบ (Compliance Requirements)
7.1 มาตรฐานโรงพยาบาล
7.1.1 Joint Commission Standards
- Patient Identification: การระบุตัวผู้ป่วยที่ถูกต้อง
- Medication Safety: การป้องกันยาผิดคน
- Patient Safety Goals: เป้าหมายความปลอดภัยผู้ป่วย
7.1.2 กระทรวงสาธารณสุข
- Admission Standards: มาตรฐานการรับผู้ป่วยใน
- Bed Management: มาตรฐานการจัดการเตียง
- Data Reporting: การรายงานข้อมูลตามที่กำหนด
7.2 การป้องกันข้อผิดพลาด
7.2.1 Patient Safety
- Wrong Patient Prevention: ป้องกันการ Admit ผิดคน
- Allergy Alerts: แจ้งเตือนการแพ้ยา
- Critical Values: แจ้งค่าผิดปกติสำคัญ
8. ข้อกำหนดทางเทคนิค (Technical Specifications)
8.1 Architecture Components
8.1.1 Bed Management Engine
- Real-time Bed Status: WebSocket-based updates
- Bed Allocation Algorithm: การจัดสรรเตียงอัจฉริยะ
- Occupancy Prediction: การคาดการณ์การใช้เตียง
8.1.2 Admission Processing Engine
- Multi-source Integration: รับข้อมูลจากหลายระบบ
- Validation Engine: ตรวจสอบความถูกต้องของข้อมูล
- Workflow Engine: จัดการขั้นตอนการ Admit
8.2 Database Requirements
8.2.1 Core Tables Structure
-- Admission Records
CREATE TABLE admissions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
an VARCHAR(20) UNIQUE NOT NULL,
hn VARCHAR(20) NOT NULL REFERENCES patients(hn),
patient_id UUID NOT NULL REFERENCES patients(id),
-- Admission Details
admission_date TIMESTAMP WITH TIME ZONE NOT NULL,
admission_type VARCHAR(20) NOT NULL, -- 'emergency', 'elective', 'observation'
admission_source VARCHAR(50) NOT NULL, -- 'OPD', 'ER', 'transfer', 'direct'
-- Medical Information
primary_diagnosis VARCHAR(200),
admitting_doctor_id UUID REFERENCES users(id),
referring_doctor_id UUID REFERENCES users(id),
-- Bed Assignment
current_ward_id UUID REFERENCES wards(id),
current_bed_id UUID REFERENCES beds(id),
-- Status
status VARCHAR(20) DEFAULT 'admitted', -- 'admitted', 'discharged', 'transferred'
-- Discharge Information
discharge_date TIMESTAMP WITH TIME ZONE,
discharge_type VARCHAR(20),
discharge_diagnosis VARCHAR(200),
los_days INTEGER,
-- Financial
insurance_type VARCHAR(50),
insurance_number VARCHAR(100),
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
created_by UUID REFERENCES users(id),
updated_by UUID REFERENCES users(id)
);
-- Bed Management
CREATE TABLE beds (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
bed_code VARCHAR(20) UNIQUE NOT NULL,
bed_name VARCHAR(100) NOT NULL,
ward_id UUID NOT NULL REFERENCES wards(id),
room_number VARCHAR(20),
bed_type VARCHAR(30), -- 'standard', 'private', 'icu', 'isolation'
-- Status
status VARCHAR(20) DEFAULT 'available', -- 'available', 'occupied', 'reserved', 'maintenance'
-- Current Patient
current_patient_id UUID REFERENCES patients(id),
current_an VARCHAR(20) REFERENCES admissions(an),
occupied_since TIMESTAMP WITH TIME ZONE,
-- Capabilities
has_oxygen BOOLEAN DEFAULT FALSE,
has_suction BOOLEAN DEFAULT FALSE,
has_monitor BOOLEAN DEFAULT FALSE,
is_isolation BOOLEAN DEFAULT FALSE,
-- Pricing
base_rate DECIMAL(10,2) DEFAULT 0.00,
is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
9. การทดสอบและประกันคุณภาพ (Testing & Quality Assurance)
9.1 Unit Testing
9.1.1 Bed Management Functions
- Bed Allocation Testing: ทดสอบการจัดสรรเตียง
- Status Update Testing: ทดสอบการอัปเดตสถานะ
- Occupancy Calculation: ทดสอบการคำนวณอัตราการครองเตียง
9.1.2 Admission Process Testing
- AN Generation: ทดสอบการสร้าง AN ไม่ซ้ำ
- Multi-source Integration: ทดสอบการรับข้อมูลจากหลายระบบ
- Validation Rules: ทดสอบการตรวจสอบข้อมูล
9.2 Integration Testing
# Admission Integration Test
- Test OPD admission orders
- Test ER emergency admissions
- Test scheduled admissions
- Test bed assignment workflow
- Duration: 4 hours
- Target: 100% success rate
9.3 Performance Testing
# Bed Management Load Test
- 100 concurrent bed status updates
- 50 concurrent bed searches
- Real-time WebSocket connections
- Duration: 2 hours
- Target: < 500ms response time
10. เอกสารและรายงาน (Documentation & Reporting)
10.1 รายงานสำหรับผู้บริหาร
10.1.1 รายงานสถิติเตียง
- Daily Census Report: รายงานจำนวนผู้ป่วยในรายวัน
- Bed Occupancy Report: รายงานอัตราการครองเตียง
- Average Length of Stay: ค่าเฉลี่ยจำนวนวันนอนโรงพยาบาล
- Bed Turnover Rate: อัตราการหมุนเวียนเตียง
10.1.2 รายงานการดำเนินงาน
- Admission Volume Report: รายงานปริมาณการ Admit
- Discharge Summary Report: รายงานสรุปการจำหน่าย
- Transfer Activity Report: รายงานกิจกรรมการย้ายเตียง
- Revenue per Bed Report: รายงานรายได้ต่อเตียง
10.2 รายงานสำหรับเจ้าหน้าที่
10.2.1 รายงานการทำงาน
- Daily Admission List: รายชื่อผู้ป่วยที่ Admit วันนั้น
- Pending Discharge List: รายชื่อผู้ป่วยที่ควรจำหน่าย
- Bed Assignment History: ประวัติการจัดเตียง
- Exception Report: รายงานข้อผิดพลาดหรือข้อมูลผิดปกติ
10.3 Dashboard และ Analytics
10.3.1 Real-time Dashboard
- Current Bed Status: สถานะเตียงปัจจุบัน
- Today's Admissions: การ Admit วันนี้
- Pending Discharges: การจำหน่ายที่ค้างอยู่
- Ward Occupancy: การครองเตียงตามหอผู้ป่วย
สรุป
ระบบงาน Admission ผู้ป่วยใน เป็นระบบสำคัญที่เชื่อมโยงระหว่างระบบ OPD/ER กับระบบ IPD โดยมีฟังก์ชันหลักในการจัดการการรับผู้ป่วยใน การจัดการเตียง และการประสานงานระหว่างแผนกต่าง ๆ ระบบนี้ต้องมีประสิทธิภาพสูงและความแม่นยำในการจัดการข้อมูล เพื่อสนับสนุนการดูแลผู้ป่วยที่ดีและการบริหารจัดการโรงพยาบาลที่มีประสิทธิภาพ
ผู้จัดทำ: Claude Code - Senior Medical Technology Systems Analyst
วันที่: 28 สิงหาคม 2568
เวอร์ชัน: 1.0