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

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

  1. บทนำและขอบเขตโครงการ
  2. ความต้องการเชิงหน้าที่ (Functional Requirements)
  3. ความต้องการด้านประสิทธิภาพ (Performance Requirements)
  4. ความต้องการด้านความปลอดภัย (Security Requirements)
  5. ความต้องการด้านการเชื่อมต่อ (Integration Requirements)
  6. ความต้องการด้านการใช้งาน (Usability Requirements)
  7. ความต้องการด้านการปฏิบัติตามกฎระเบียบ (Compliance Requirements)
  8. ข้อกำหนดทางเทคนิค (Technical Specifications)
  9. การทดสอบและประกันคุณภาพ (Testing & Quality Assurance)
  10. เอกสารและรายงาน (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