Database Schema Design
ระบบห้องฉุกเฉิน (Emergency Department System)
โรงพยาบาลค่ายธนรัชน์
เอกสารเลขที่: SRS-1.2.4-SCHEMA
เวอร์ชัน: 1.0
วันที่: 10 ตุลาคม 2568
ผู้จัดทำ: ทีมพัฒนาระบบ
ผู้อนุมัติ: ผู้อำนวยการโรงพยาบาลค่ายธนรัชน์
การปรับปรุง: Shared Tables กับระบบซักประวัติ (1.2.2) และห้องตรวจ (1.2.3) เพื่อลดความซ้ำซ้อน
Database Schema Design
ระบบห้องฉุกเฉินเป็นระบบศูนย์กลางการดูแลผู้ป่วยฉุกเฉินและอุบัติเหตุ รองรับการทำงาน 24/7 และเชื่อมโยงกับระบบ EMS (Emergency Medical Services) โดยใช้ Shared Tables ร่วมกับระบบซักประวัติ (1.2.2) และระบบห้องตรวจแพทย์ (1.2.3) เพื่อลดความซ้ำซ้อนและเพิ่มประสิทธิภาพ:
- ระบบเวชระเบียน (1.2.1): ข้อมูลผู้ป่วยหลักและการเข้ารับบริการ
- ระบบซักประวัติ (1.2.2): การรับประวัติรายละเอียดก่อนการรักษา (ถ้ามี)
- ระบบห้องตรวจ (1.2.3): การส่งต่อและการรักษาต่อเนื่อง
- ระบบตรวจสอบสิทธิ (1.2.15): การตรวจสอบสิทธิการรักษาฉุกเฉิน
- ระบบการเงิน (1.2.14): การคำนวณค่าบริการฉุกเฉิน
- ระบบเภสัชกรรม (1.2.13): การสั่งยาฉุกเฉิน (STAT/ASAP)
- ระบบงานชันสูตร (1.2.7): การสั่ง Lab แบบเร่งด่วน (STAT)
- ระบบรังสีวิทยา (1.2.8): การสั่ง X-Ray แบบเร่งด่วน (STAT)
- ระบบห้องผ่าตัด (1.2.18): การสั่งผ่าตัดฉุกเฉิน
- ระบบผู้ป่วยใน (1.2.17): การ Admit ผู้ป่วยฉุกเฉิน
🔑 Shared Tables Architecture
การจัดการ Shared Tables:
MEDICAL_DIAGNOSIS- การวินิจฉัยโรค (ร่วมกับ 1.2.2, 1.2.3)MEDICAL_PROCEDURE- หัตถการทางการแพทย์ (ร่วมกับ 1.2.2, 1.2.3)MEDICATION_ORDER- การสั่งยา (ร่วมกับ 1.2.2, 1.2.3)LAB_ORDER- การสั่งตรวจ Lab (ร่วมกับ 1.2.2, 1.2.3)RADIOLOGY_ORDER- การสั่งตรวจ X-Ray (ร่วมกับ 1.2.2, 1.2.3)PATIENT_REFERRAL- การส่งต่อผู้ป่วย (ร่วมกับ 1.2.2, 1.2.3)CONSULTATION_REQUEST- การขอปรึกษา (ร่วมกับ 1.2.2, 1.2.3)PATIENT_APPOINTMENT- การนัดหมาย (ร่วมกับ 1.2.2, 1.2.3)
การระบุแหล่งที่มา:
SourceSystem: 'EMERGENCY' สำหรับระบบห้องฉุกเฉินSourceID: อ้างอิงEmergencyCaseID
8.2.4 ตารางหลัก (Core Tables)
8.2.4.1 ข้อมูลเคสฉุกเฉินหลัก
Table: EMERGENCY_CASE (ข้อมูลเคสฉุกเฉินหลัก)
วัตถุประสงค์: เก็บข้อมูลเคสฉุกเฉินหลัก เป็นตารางศูนย์กลางที่เชื่อมโยงข้อมูลการรักษาฉุกเฉินทั้งหมด รองรับการจัดการผู้ป่วยฉุกเฉิน อุบัติเหตุ และการตรวจโรคทั่วไปที่เข้ามาในห้องฉุกเฉิน
| Field | Type | Key | Description |
|---|---|---|---|
| EmergencyCaseID | VARCHAR(20) | PK | รหัสเคสฉุกเฉิน (EMG-XXXXXXXXXXX) |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย (อ้างอิง PATIENT จากระบบเวชระเบียน) |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ (อ้างอิง VISIT จากระบบเวชระเบียน) |
| HistoryID | VARCHAR(20) | FK | รหัสประวัติ (อ้างอิงจากระบบซักประวัติ ถ้ามี) |
| EmergencyDateTime | DATETIME | วันเวลาที่เข้ารับการรักษาฉุกเฉิน | |
| EmergencyType | VARCHAR(20) | ประเภทเคสฉุกเฉิน (ACCIDENT/EMERGENCY/GENERAL) | |
| PatientCategory | VARCHAR(20) | หมวดผู้ป่วย (TRAUMA/MEDICAL/PEDIATRIC/OB_GYN) | |
| ArrivalMethod | VARCHAR(20) | วิธีการมา (WALK_IN/AMBULANCE/REFER/OTHER) | |
| TriageLevel | VARCHAR(10) | FK | ระดับความเร่งด่วน (อ้างอิง TRIAGE_CATEGORIES) |
| ChiefComplaint | NTEXT | อาการสำคัญ (CC) | |
| DepartmentCode | VARCHAR(10) | FK | รหัสแผนก (อ้างอิง DEPARTMENT) |
| RoomCode | VARCHAR(10) | FK | รหัสห้องฉุกเฉิน (อ้างอิง EMERGENCY_ROOMS) |
| AttendingDoctorID | VARCHAR(20) | FK | แพทย์ผู้รับผิดชอบหลัก (อ้างอิง DOCTORS) |
| ShiftID | VARCHAR(20) | FK | รหัสเวร (อ้างอิง EMERGENCY_SHIFTS) |
| CaseStatus | VARCHAR(20) | สถานะเคส (WAITING/TREATING/OBSERVING/COMPLETED/TRANSFERRED) | |
| AdmissionDateTime | DATETIME | เวลาเข้าห้อง | |
| TreatmentStartTime | DATETIME | เวลาเริ่มรักษา | |
| TreatmentEndTime | DATETIME | เวลาเสร็จสิ้นการรักษา | |
| DischargeDateTime | DATETIME | เวลาจำหน่าย | |
| DischargeType | VARCHAR(20) | ประเภทการจำหน่าย (HOME/ADMIT/TRANSFER/DEATH) | |
| DischargeDestination | NVARCHAR(200) | สถานที่ปลายทาง (กรณีส่งต่อ) | |
| IsPregnant | BIT | สถานะตั้งครรภ์ | |
| IsBreastfeeding | BIT | สถานะให้นมบุตร | |
| TotalCost | DECIMAL(10,2) | ค่าใช้จ่ายรวม | |
| CreatedDate | DATETIME | วันที่สร้าง | |
| CreatedBy | VARCHAR(50) | ผู้สร้าง | |
| LastModified | DATETIME | วันที่แก้ไขล่าสุด | |
| ModifiedBy | VARCHAR(50) | ผู้แก้ไขล่าสุด | |
| IsActive | BIT | ใช้งานได้ |
Table: TRIAGE_ASSESSMENT (การประเมินคัดกรอง)
วัตถุประสงค์: เก็บข้อมูลการประเมินและคัดกรองผู้ป่วยตามระดับความเร่งด่วน เป็นระบบการจัดลำดับความสำคัญสำหรับการรักษาฉุกเฉิน
| Field | Type | Key | Description |
|---|---|---|---|
| TriageID | VARCHAR(20) | PK | รหัสการคัดกรอง (TRI-XXXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| TriageDateTime | DATETIME | เวลาทำการคัดกรอง | |
| TriageNurseID | VARCHAR(20) | FK | พยาบาลผู้คัดกรอง (อ้างอิง NURSES) |
| TriageLevelID | VARCHAR(10) | FK | ระดับความเร่งด่วน (อ้างอิง TRIAGE_CATEGORIES) |
| VitalSigns | NTEXT | สัญญาณชีพ (JSON Format) | |
| PainScore | INT | คะแนนความเจ็บปวด (0-10) | |
| ConsciousnessLevel | VARCHAR(20) | ระดับความรู้สึกตัว (ALERT/DROWSY/UNCONSCIOUS) | |
| TriageNotes | NTEXT | หมายเหตุการคัดกรอง | |
| ReTriageRequired | BIT | ต้องคัดกรองซ้ำ | |
| ReTriageDateTime | DATETIME | เวลาคัดกรองซ้ำ | |
| PriorityScore | INT | คะแนนลำดับความสำคัญ |
Table: EMERGENCY_VITAL_SIGNS (สัญญาณชีพฉุกเฉิน)
วัตถุประสงค์: เก็บข้อมูลสัญญาณชีพที่วัดได้ในห้องฉุกเฉิน รองรับการติดตามแบบต่อเนื่องและการเตือนค่าผิดปกติ
| Field | Type | Key | Description |
|---|---|---|---|
| VitalSignID | VARCHAR(20) | PK | รหัสสัญญาณชีพ (VS-XXXXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| MeasurementDateTime | DATETIME | เวลาวัด | |
| Weight | DECIMAL(5,2) | น้ำหนัก (kg) | |
| Height | DECIMAL(5,2) | ส่วนสูง (cm) | |
| BMI | DECIMAL(4,2) | ดัชนีมวลกาย (คำนวณอัตโนมัติ) | |
| WaistCircumference | DECIMAL(5,2) | รอบเอว (cm) | |
| Temperature | DECIMAL(4,2) | อุณหภูมิ (°C) | |
| SystolicBP | INT | ความดันโลหิตตัวบน (mmHg) | |
| DiastolicBP | INT | ความดันโลหิตตัวล่าง (mmHg) | |
| HeartRate | INT | อัตราการเต้นของหัวใจ (bpm) | |
| RespiratoryRate | INT | อัตราการหายใจ (rpm) | |
| OxygenSaturation | DECIMAL(5,2) | ระดับออกซิเจนในเลือด (%) | |
| GlasgowComaScale | INT | คะแนน Glasgow Coma Scale | |
| BloodGlucose | DECIMAL(5,2) | ระดับน้ำตาลในเลือด (mg/dL) | |
| IsAbnormal | BIT | ค่าผิดปกติ | |
| AlertGenerated | BIT | ส่งสัญญาณเตือนแล้ว | |
| MeasuredBy | VARCHAR(50) | ผู้วัด | |
| Notes | NTEXT | หมายเหตุ |
Table: EMERGENCY_SHIFTS (ข้อมูลเวรฉุกเฉิน)
วัตถุประสงค์: เก็บข้อมูลการจัดเวรและเจ้าหน้าที่ในห้องฉุกเฉิน รองรับการทำงาน 24/7 และการติดตามผู้รับผิดชอบในแต่ละช่วงเวลา
| Field | Type | Key | Description |
|---|---|---|---|
| ShiftID | VARCHAR(20) | PK | รหัสเวร (SHT-XXXXXXXXXXX) |
| ShiftDate | DATE | วันที่เวร | |
| ShiftType | VARCHAR(20) | ประเภทเวร (MORNING/AFTERNOON/NIGHT) | |
| ShiftStart | TIME | เวลาเริ่มเวร | |
| ShiftEnd | TIME | เวลาสิ้นสุดเวร | |
| DoctorOnDutyID | VARCHAR(20) | FK | แพทย์เวร (อ้างอิง DOCTORS) |
| NurseInChargeID | VARCHAR(20) | FK | พยาบาลหัวหน้าเวร (อ้างอิง NURSES) |
| TotalStaff | INT | จำนวนเจ้าหน้าที่ทั้งหมด | |
| PatientCount | INT | จำนวนผู้ป่วยในเวร | |
| CriticalCases | INT | จำนวนเคสวิกฤต | |
| ShiftNotes | NTEXT | หมายเหตุการส่งมอบเวร | |
| HandoverTo | VARCHAR(20) | FK | ส่งมอบให้ (รหัสเวรถัดไป) |
| HandoverNotes | NTEXT | หมายเหตุการส่งมอบ | |
| IsActive | BIT | เวรปัจจุบัน |
8.2.4.2 ข้อมูลอุบัติเหตุและ EMS
Table: ACCIDENT_RECORDS (ข้อมูลอุบัติเหตุ)
วัตถุประสงค์: เก็บข้อมูลรายละเอียดอุบัติเหตุสำหรับผู้ป่วยที่เข้ารับการรักษาจากอุบัติเหตุ รองรับการบันทึกข้อมูลตามมาตรฐานการรายงานอุบัติเหตุ
| Field | Type | Key | Description |
|---|---|---|---|
| AccidentID | VARCHAR(20) | PK | รหัสอุบัติเหตุ (ACC-XXXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| AccidentDateTime | DATETIME | วันเวลาเกิดอุบัติเหตุ | |
| AccidentTypeID | VARCHAR(10) | FK | รหัสประเภทอุบัติเหตุ (อ้างอิง ACCIDENT_TYPES) |
| AccidentLocation | NVARCHAR(200) | สถานที่เกิดอุบัติเหตุ | |
| AccidentDescription | NTEXT | รายละเอียดอุบัติเหตุ | |
| CauseOfAccident | NVARCHAR(200) | สาเหตุอุบัติเหตุ | |
| InjurySeverityID | VARCHAR(10) | FK | ระดับความรุนแรง (อ้างอิง INJURY_SEVERITY) |
| InjuryType | NVARCHAR(200) | ประเภทการบาดเจ็บ | |
| BodyPartAffected | NVARCHAR(200) | ส่วนของร่างกายที่ได้รับบาดเจ็บ | |
| MechanismOfInjury | NVARCHAR(200) | กลไกการเกิดการบาดเจ็บ | |
| FirstAidGiven | NTEXT | การปฐมพยาบาลที่ให้ | |
| FirstAidBy | NVARCHAR(100) | ผู้ให้การปฐมพยาบาล | |
| TransportMethod | VARCHAR(50) | วิธีการนำส่ง (AMBULANCE/PRIVATE_CAR/WALK_IN) | |
| TransportTime | INT | เวลาในการนำส่ง (นาที) | |
| WitnessName | NVARCHAR(100) | ชื่อพยาน | |
| WitnessContact | VARCHAR(50) | ข้อมูลติดต่อพยาน | |
| PoliceReportNumber | VARCHAR(50) | เลขที่รายงานตำรวจ | |
| InsuranceInvolved | BIT | เกี่ยวข้องกับประกันภัย | |
| InsuranceCompany | NVARCHAR(100) | บริษัทประกันภัย | |
| PolicyNumber | VARCHAR(50) | เลขที่กรมธรรม์ | |
| WorkRelated | BIT | เกี่ยวข้องกับการทำงาน | |
| RecordedBy | VARCHAR(50) | ผู้บันทึก | |
| RecordedDate | DATETIME | วันที่บันทึก |
Table: EMS_RECORDS (ข้อมูล EMS)
วัตถุประสงค์: เก็บข้อมูลการรักษาและการดำเนินการจากหน่วย EMS (Emergency Medical Services) เพื่อเป็นข้อมูลต่อเนื่องสำหรับการรักษาในห้องฉุกเฉิน
| Field | Type | Key | Description |
|---|---|---|---|
| EMSRecordID | VARCHAR(20) | PK | รหัสบันทึก EMS (EMS-XXXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| EMSUnitID | VARCHAR(20) | FK | รหัสหน่วย EMS (อ้างอิง EMS_UNITS) |
| IncidentNumber | VARCHAR(50) | เลขที่เหตุการณ์ | |
| CallReceived | DATETIME | เวลารับแจ้งเหตุ | |
| DispatchTime | DATETIME | เวลาส่งทีม | |
| ArrivalOnScene | DATETIME | เวลาถึงที่เกิดเหตุ | |
| DepartureFromScene | DATETIME | เวลาออกจากที่เกิดเหตุ | |
| HospitalArrival | DATETIME | เวลาถึงโรงพยาบาล | |
| ResponseTime | INT | เวลาตอบสนอง (นาที) | |
| SceneLocation | NVARCHAR(200) | สถานที่เกิดเหตุ | |
| PatientConditionOnScene | NTEXT | สภาพผู้ป่วยณ ที่เกิดเหตุ | |
| VitalSignsOnScene | NTEXT | สัญญาณชีพณ ที่เกิดเหตุ (JSON Format) | |
| TreatmentGiven | NTEXT | การรักษาที่ให้ | |
| MedicationAdministered | NTEXT | ยาที่ให้ | |
| ProceduresPerformed | NTEXT | หัตถการที่ทำ | |
| IVAccess | BIT | เจาะเข็มเลือด | |
| OxygenGiven | BIT | ให้ออกซิเจน | |
| CPRPerformed | BIT | ทำ CPR | |
| DefibrillationUsed | BIT | ใช้เครื่องกระตุกหัวใจ | |
| TransportPriority | VARCHAR(20) | ลำดับความสำคัญการขนส่ง (RED/YELLOW/GREEN) | |
| PatientDisposition | VARCHAR(50) | ผลการดำเนินการ (TRANSPORTED/REFUSED/DECEASED) | |
| HandoverReport | NTEXT | รายงานส่งมอบผู้ป่วย | |
| EMSStaffID | VARCHAR(20) | FK | รหัสเจ้าหน้าที่ EMS หลัก |
| EMSTeamMembers | NTEXT | สมาชิกทีม EMS (JSON Format) | |
| VehicleID | VARCHAR(20) | FK | รหัสรถพยาบาล |
| EquipmentUsed | NTEXT | อุปกรณ์ที่ใช้ | |
| Complications | NTEXT | ภาวะแทรกซ้อน | |
| SpecialCircumstances | NTEXT | สถานการณ์พิเศษ | |
| EMSReportBy | VARCHAR(50) | ผู้รายงาน EMS | |
| EMSReportDate | DATETIME | วันที่รายงาน |
Table: OBSERVATION_RECORDS (ข้อมูลการ Observe)
วัตถุประสงค์: เก็บข้อมูลการสังเกตและติดตามผู้ป่วยในระหว่างการรักษา รองรับการบันทึกกิจกรรม การให้ยา และการสั่งตรวจเพิ่มเติมระหว่างการ Observe
| Field | Type | Key | Description |
|---|---|---|---|
| ObservationID | VARCHAR(20) | PK | รหัสการ Observe (OBS-XXXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| ObservationStart | DATETIME | เวลาเริ่ม Observe | |
| ObservationEnd | DATETIME | เวลาสิ้นสุด Observe | |
| ObservationDuration | INT | ระยะเวลา Observe (นาที) | |
| ObservationReason | NVARCHAR(200) | เหตุผลการ Observe | |
| PatientStatusChange | NTEXT | การเปลี่ยนแปลงสถานะผู้ป่วย | |
| VitalSignsMonitoring | NTEXT | การติดตามสัญญาณชีพ (JSON Format) | |
| SymptomsProgression | NTEXT | การเปลี่ยนแปลงอาการ | |
| ActivityGiven | NTEXT | กิจกรรมที่ให้ผู้ป่วย | |
| MedicationDuringObservation | NTEXT | ยาที่ให้ระหว่าง Observe | |
| LabOrdersDuringObservation | NTEXT | การสั่ง Lab ระหว่าง Observe | |
| XRayOrdersDuringObservation | NTEXT | การสั่ง X-Ray ระหว่าง Observe | |
| NursingInterventions | NTEXT | การพยาบาลที่ให้ | |
| PatientResponse | NTEXT | การตอบสนองของผู้ป่วย | |
| ComplicationsNoted | NTEXT | ภาวะแทรกซ้อนที่พบ | |
| ObservationOutcome | VARCHAR(50) | ผลการ Observe (IMPROVED/STABLE/DETERIORATED) | |
| DischargeRecommendation | NTEXT | คำแนะนำการจำหน่าย | |
| ObservingNurseID | VARCHAR(20) | FK | พยาบาลผู้ดูแล (อ้างอิง NURSES) |
| SupervisingDoctorID | VARCHAR(20) | FK | แพทย์ผู้ควบคุม (อ้างอิง DOCTORS) |
| ObservationNotes | NTEXT | หมายเหตุการ Observe |
8.2.5 ตาราง Shared Tables (ใช้ร่วมกับระบบอื่น)
8.2.5.1 การวินิจฉัยและหัตถการ
Table: MEDICAL_DIAGNOSIS (การวินิจฉัยโรค - Shared Table)
วัตถุประสงค์: เก็บข้อมูลการวินิจฉัยโรคที่ใช้ร่วมกันระหว่างระบบซักประวัติ (1.2.2), ระบบห้องตรวจ (1.2.3) และระบบห้องฉุกเฉิน (1.2.4) เพื่อความสอดคล้องของข้อมูล
| Field | Type | Key | Description |
|---|---|---|---|
| DiagnosisID | VARCHAR(20) | PK | รหัสการวินิจฉัย (DX-XXXXXXXXXXXX) |
| SourceSystem | VARCHAR(20) | ระบบต้นทาง ('HISTORY_TAKING', 'EXAMINATION', 'EMERGENCY') | |
| SourceID | VARCHAR(20) | รหัสอ้างอิง (HistoryID/ExaminationID/EmergencyCaseID) | |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| DiagnosisType | VARCHAR(20) | ประเภทการวินิจฉัย (PRIMARY/SECONDARY/DIFFERENTIAL) | |
| ICDCode | VARCHAR(10) | FK | รหัส ICD (อ้างอิง ICD_CODES) |
| ICDVersion | VARCHAR(10) | เวอร์ชัน ICD (ICD-10/ICD-11/THAI) | |
| DiagnosisText | NVARCHAR(500) | ข้อความวินิจฉัย | |
| DiagnosisNotes | NTEXT | หมายเหตุการวินิจฉัย | |
| Certainty | VARCHAR(20) | ระดับความแน่นอน (CONFIRMED/SUSPECTED/RULED_OUT) | |
| DiagnosedBy | VARCHAR(20) | FK | แพทย์ผู้วินิจฉัย (อ้างอิง DOCTORS) |
| DiagnosedDate | DATETIME | วันที่วินิจฉัย | |
| IsActive | BIT | ใช้งานได้ | |
| Priority | INT | ลำดับความสำคัญ (สำหรับ Emergency: 1=Critical, 2=Urgent, 3=Standard) |
Table: MEDICAL_PROCEDURE (หัตถการทางการแพทย์ - Shared Table)
วัตถุประสงค์: เก็บข้อมูลหัตถการทางการแพทย์ที่ใช้ร่วมกันระหว่างระบบต่างๆ รองรับการบันทึกหัตถการฉุกเฉินและหัตถการทั่วไป
| Field | Type | Key | Description |
|---|---|---|---|
| ProcedureID | VARCHAR(20) | PK | รหัสหัตถการ (PRO-XXXXXXXXXXX) |
| SourceSystem | VARCHAR(20) | ระบบต้นทาง ('HISTORY_TAKING', 'EXAMINATION', 'EMERGENCY') | |
| SourceID | VARCHAR(20) | รหัสอ้างอิง (HistoryID/ExaminationID/EmergencyCaseID) | |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| ProcedureCode | VARCHAR(20) | FK | รหัสหัตถการ (อ้างอิง PROCEDURE_CODES) |
| ProcedureName | NVARCHAR(200) | ชื่อหัตถการ | |
| ProcedureGroupID | VARCHAR(10) | FK | กลุ่มหัตถการ (อ้างอิง PROCEDURE_GROUPS) |
| EmergencyProcedureID | VARCHAR(10) | FK | หัตถการฉุกเฉิน (อ้างอิง EMERGENCY_PROCEDURES) |
| ProcedureStartTime | DATETIME | เวลาเริ่มหัตถการ | |
| ProcedureEndTime | DATETIME | เวลาเสร็จสิ้นหัตถการ | |
| Duration | INT | ระยะเวลา (นาที) | |
| PerformedBy | VARCHAR(20) | FK | ผู้ทำหัตถการหลัก (อ้างอิง DOCTORS) |
| AssistantStaff | NTEXT | เจ้าหน้าที่ช่วย (JSON Format) | |
| ProcedureLocation | VARCHAR(20) | FK | สถานที่ทำหัตถการ (อ้างอิง ROOMS) |
| Anesthesia | VARCHAR(50) | การชาเฉพาะที่ | |
| ProcedureNotes | NTEXT | หมายเหตุหัตถการ | |
| Complications | NTEXT | ภาวะแทรกซ้อน | |
| ProcedureResult | NTEXT | ผลการทำหัตถการ | |
| Cost | DECIMAL(10,2) | ค่าหัตถการ | |
| IsEmergencyProcedure | BIT | เป็นหัตถการฉุกเฉิน | |
| UrgencyLevel | VARCHAR(20) | ระดับความเร่งด่วน (STAT/URGENT/ROUTINE) |
8.2.5.2 การสั่งยาและการตรวจ
Table: MEDICATION_ORDER (การสั่งยา - Shared Table)
วัตถุประสงค์: เก็บข้อมูลการสั่งยาที่ใช้ร่วมกันระหว่างระบบต่างๆ รองรับการสั่งยาฉุกเฉิน RE-MED และ Template
| Field | Type | Key | Description |
|---|---|---|---|
| MedicationOrderID | VARCHAR(20) | PK | รหัสการสั่งยา (MED-XXXXXXXXXXX) |
| SourceSystem | VARCHAR(20) | ระบบต้นทาง ('HISTORY_TAKING', 'EXAMINATION', 'EMERGENCY') | |
| SourceID | VARCHAR(20) | รหัสอ้างอิง (HistoryID/ExaminationID/EmergencyCaseID) | |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| OrderDateTime | DATETIME | เวลาสั่งยา | |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิงจากระบบเภสัชกรรม) |
| DrugName | NVARCHAR(200) | ชื่อยา | |
| Strength | VARCHAR(50) | ความแรง | |
| Dosage | VARCHAR(100) | ขนาดยา | |
| Route | VARCHAR(50) | วิธีการให้ยา (PO/IV/IM/SC/TOPICAL) | |
| Frequency | VARCHAR(50) | ความถี่ | |
| Duration | VARCHAR(50) | ระยะเวลา | |
| Quantity | DECIMAL(10,2) | จำนวน | |
| Unit | VARCHAR(20) | หน่วย | |
| Instructions | NTEXT | คำแนะนำการใช้ยา | |
| PrescribedBy | VARCHAR(20) | FK | แพทย์ผู้สั่ง (อ้างอิง DOCTORS) |
| Priority | VARCHAR(20) | ลำดับความสำคัญ (STAT/ASAP/URGENT/ROUTINE) | |
| IsEmergencyMedication | BIT | ยาฉุกเฉิน | |
| IsREMED | BIT | การสั่งยาซ้ำ | |
| TemplateID | VARCHAR(20) | FK | รหัส Template (อ้างอิง MEDICATION_TEMPLATES) |
| OrderStatus | VARCHAR(20) | สถานะ (ORDERED/DISPENSED/ADMINISTERED/CANCELLED) | |
| Cost | DECIMAL(10,2) | ราคายา | |
| SpecialInstructions | NTEXT | คำแนะนำพิเศษ |
Table: LAB_ORDER (การสั่งตรวจ Lab - Shared Table)
วัตถุประสงค์: เก็บข้อมูลการสั่งตรวจทางห้องปฏิบัติการที่ใช้ร่วมกันระหว่างระบบต่างๆ รองรับการสั่งตรวจแบบเร่งด่วน (STAT)
| Field | Type | Key | Description |
|---|---|---|---|
| LabOrderID | VARCHAR(20) | PK | รหัสการสั่ง Lab (LAB-XXXXXXXXXXX) |
| SourceSystem | VARCHAR(20) | ระบบต้นทาง ('HISTORY_TAKING', 'EXAMINATION', 'EMERGENCY') | |
| SourceID | VARCHAR(20) | รหัสอ้างอิง (HistoryID/ExaminationID/EmergencyCaseID) | |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| OrderDateTime | DATETIME | เวลาสั่งตรวจ | |
| LabItemCode | VARCHAR(20) | FK | รหัสรายการตรวจ (อ้างอิงจากระบบงานชันสูตร) |
| LabItemName | NVARCHAR(200) | ชื่อรายการตรวจ | |
| LabGroupID | VARCHAR(10) | FK | กลุ่มการตรวจ (อ้างอิง LAB_GROUPS) |
| SpecimenType | VARCHAR(50) | ประเภทตัวอย่าง (BLOOD/URINE/STOOL) | |
| Priority | VARCHAR(20) | ลำดับความสำคัญ (STAT/URGENT/ROUTINE) | |
| ClinicalIndication | NTEXT | ข้อบ่งชี้ทางคลินิก | |
| OrderedBy | VARCHAR(20) | FK | แพทย์ผู้สั่ง (อ้างอิง DOCTORS) |
| CollectionDateTime | DATETIME | เวลาเก็บตัวอย่าง | |
| CollectedBy | VARCHAR(50) | ผู้เก็บตัวอย่าง | |
| OrderStatus | VARCHAR(20) | สถานะ (ORDERED/COLLECTED/PROCESSED/COMPLETED) | |
| ResultDateTime | DATETIME | เวลาออกผล | |
| CriticalValues | BIT | ผลวิกฤต | |
| IsEmergencyLab | BIT | การตรวจฉุกเฉิน | |
| Cost | DECIMAL(10,2) | ค่าตรวจ | |
| Notes | NTEXT | หมายเหตุ |
Table: RADIOLOGY_ORDER (การสั่งตรวจ X-Ray - Shared Table)
วัตถุประสงค์: เก็บข้อมูลการสั่งตรวจทางรังสีวิทยาที่ใช้ร่วมกันระหว่างระบบต่างๆ รองรับการสั่งตรวจแบบเร่งด่วน (STAT)
| Field | Type | Key | Description |
|---|---|---|---|
| RadiologyOrderID | VARCHAR(20) | PK | รหัสการสั่ง X-Ray (RAD-XXXXXXXXXXX) |
| SourceSystem | VARCHAR(20) | ระบบต้นทาง ('HISTORY_TAKING', 'EXAMINATION', 'EMERGENCY') | |
| SourceID | VARCHAR(20) | รหัสอ้างอิง (HistoryID/ExaminationID/EmergencyCaseID) | |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| OrderDateTime | DATETIME | เวลาสั่งตรวจ | |
| XRayItemCode | VARCHAR(20) | FK | รหัสรายการตรวจ (อ้างอิงจากระบบรังสีวิทยา) |
| XRayItemName | NVARCHAR(200) | ชื่อรายการตรวจ | |
| BodyPart | VARCHAR(100) | ส่วนของร่างกาย | |
| XRayType | VARCHAR(50) | ประเภทการตรวจ (PLAIN/CONTRAST/CT/MRI) | |
| Priority | VARCHAR(20) | ลำดับความสำคัญ (STAT/URGENT/ROUTINE) | |
| ClinicalIndication | NTEXT | ข้อบ่งชี้ทางคลินิก | |
| OrderedBy | VARCHAR(20) | FK | แพทย์ผู้สั่ง (อ้างอิง DOCTORS) |
| ExamDateTime | DATETIME | เวลาตรวจ | |
| ExaminedBy | VARCHAR(20) | FK | ผู้ตรวจ |
| OrderStatus | VARCHAR(20) | สถานะ (ORDERED/SCHEDULED/COMPLETED/REPORTED) | |
| ResultDateTime | DATETIME | เวลาออกผล | |
| IsEmergencyXRay | BIT | การตรวจฉุกเฉิน | |
| ContrastUsed | BIT | ใช้สารทึบแสง | |
| Preparation | NTEXT | การเตรียมตัว | |
| Cost | DECIMAL(10,2) | ค่าตรวจ | |
| Notes | NTEXT | หมายเหตุ |
8.2.5.3 การส่งต่อ การปรึกษา และการนัดหมาย
Table: PATIENT_REFERRAL (การส่งต่อผู้ป่วย - Shared Table)
วัตถุประสงค์: เก็บข้อมูลการส่งต่อผู้ป่วยที่ใช้ร่วมกันระหว่างระบบต่างๆ รองรับการส่งต่อหลายรูปแบบตามที่ระบุใน TOR
| Field | Type | Key | Description |
|---|---|---|---|
| ReferralID | VARCHAR(20) | PK | รหัสการส่งต่อ (REF-XXXXXXXXXXX) |
| SourceSystem | VARCHAR(20) | ระบบต้นทาง ('HISTORY_TAKING', 'EXAMINATION', 'EMERGENCY') | |
| SourceID | VARCHAR(20) | รหัสอ้างอิง (HistoryID/ExaminationID/EmergencyCaseID) | |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| ReferralDateTime | DATETIME | วันเวลาส่งต่อ | |
| ReferralType | VARCHAR(20) | ประเภทการส่งต่อ (EXTERNAL/INTERNAL/ADMISSION/SURGERY) | |
| ReferralDestination | VARCHAR(20) | FK | ปลายทางการส่งต่อ (อ้างอิง HOSPITALS/DEPARTMENTS) |
| DestinationDepartment | VARCHAR(20) | FK | แผนกปลายทาง (อ้างอิง DEPARTMENTS) |
| SpecialistRequired | VARCHAR(20) | FK | ผู้เชี่ยวชาญที่ต้องการ (อ้างอิง DOCTORS) |
| UrgencyLevel | VARCHAR(20) | ระดับความเร่งด่วน (IMMEDIATE/URGENT/ROUTINE) | |
| ReferralReason | NTEXT | เหตุผลการส่งต่อ | |
| ClinicalSummary | NTEXT | สรุปทางคลินิก | |
| CurrentDiagnosis | NTEXT | การวินิจฉัยปัจจุบัน | |
| TreatmentGiven | NTEXT | การรักษาที่ให้แล้ว | |
| SpecialRequirements | NTEXT | ความต้องการพิเศษ | |
| TransportMethod | VARCHAR(50) | วิธีการขนส่ง (AMBULANCE/PRIVATE/WALKING) | |
| AccompaniedBy | NVARCHAR(100) | ผู้ติดตาม | |
| ReferredBy | VARCHAR(20) | FK | แพทย์ผู้ส่งต่อ (อ้างอิง DOCTORS) |
| ReferralStatus | VARCHAR(20) | สถานะ (PENDING/ACCEPTED/REJECTED/COMPLETED) | |
| AcceptedBy | VARCHAR(20) | FK | ผู้รับการส่งต่อ |
| AcceptanceDateTime | DATETIME | เวลารับการส่งต่อ | |
| RejectionReason | NTEXT | เหตุผลปฏิเสธ | |
| FollowUpRequired | BIT | ต้องติดตาม | |
| FollowUpInstructions | NTEXT | คำแนะนำการติดตาม | |
| DocumentsSent | NTEXT | เอกสารที่ส่ง | |
| IsEmergencyReferral | BIT | การส่งต่อฉุกเฉิน |
Table: CONSULTATION_REQUEST (การขอปรึกษา - Shared Table)
วัตถุประสงค์: เก็บข้อมูลการขอปรึกษาแพทย์เฉพาะทางที่ใช้ร่วมกันระหว่างระบบต่างๆ รองรับการระบุความเร่งด่วนและการติดตาม
| Field | Type | Key | Description |
|---|---|---|---|
| ConsultationID | VARCHAR(20) | PK | รหัสการปรึกษา (CON-XXXXXXXXXXX) |
| SourceSystem | VARCHAR(20) | ระบบต้นทาง ('HISTORY_TAKING', 'EXAMINATION', 'EMERGENCY') | |
| SourceID | VARCHAR(20) | รหัสอ้างอิง (HistoryID/ExaminationID/EmergencyCaseID) | |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| RequestDateTime | DATETIME | วันเวลาขอปรึกษา | |
| ConsultationType | VARCHAR(20) | ประเภทการปรึกษา (URGENT/ROUTINE/STAT) | |
| SpecialtyRequired | VARCHAR(20) | FK | ความเชี่ยวชาญที่ต้องการ (อ้างอิง SPECIALTIES) |
| ConsultantDoctorID | VARCHAR(20) | FK | แพทย์ที่ขอปรึกษา (อ้างอิง DOCTORS) |
| ConsultingDepartment | VARCHAR(20) | FK | แผนกที่ปรึกษา (อ้างอิง DEPARTMENTS) |
| UrgencyLevel | VARCHAR(20) | ระดับความเร่งด่วน (IMMEDIATE/URGENT/ROUTINE) | |
| ClinicalQuestion | NTEXT | คำถามทางคลินิก | |
| PatientHistory | NTEXT | ประวัติผู้ป่วย | |
| CurrentFindings | NTEXT | ผลการตรวจปัจจุบัน | |
| SpecificConcerns | NTEXT | ข้อกังวลเฉพาะ | |
| RequestedBy | VARCHAR(20) | FK | แพทย์ผู้ขอปรึกษา (อ้างอิง DOCTORS) |
| ConsultationResponse | NTEXT | คำตอบการปรึกษา | |
| Recommendations | NTEXT | คำแนะนำ | |
| FollowUpPlan | NTEXT | แผนการติดตาม | |
| RespondedBy | VARCHAR(20) | FK | แพทย์ผู้ตอบ (อ้างอิง DOCTORS) |
| ResponseDateTime | DATETIME | เวลาตอบ | |
| ConsultationStatus | VARCHAR(20) | สถานะ (PENDING/RESPONDED/COMPLETED/CANCELLED) | |
| RequiresFaceToFace | BIT | ต้องพบผู้ป่วย | |
| ScheduledMeeting | DATETIME | เวลานัดพบ | |
| IsEmergencyConsult | BIT | การปรึกษาฉุกเฉิน | |
| Priority | INT | ลำดับความสำคัญ |
Table: PATIENT_APPOINTMENT (การนัดหมาย - Shared Table)
วัตถุประสงค์: เก็บข้อมูลการนัดหมายผู้ป่วยที่ใช้ร่วมกันระหว่างระบบต่างๆ รองรับการนัดหลายรูปแบบและการเตือนวันหยุด
| Field | Type | Key | Description |
|---|---|---|---|
| AppointmentID | VARCHAR(20) | PK | รหัสการนัดหมาย (APT-XXXXXXXXXXX) |
| SourceSystem | VARCHAR(20) | ระบบต้นทาง ('HISTORY_TAKING', 'EXAMINATION', 'EMERGENCY') | |
| SourceID | VARCHAR(20) | รหัสอ้างอิง (HistoryID/ExaminationID/EmergencyCaseID) | |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| AppointmentDateTime | DATETIME | วันเวลานัดหมาย | |
| AppointmentType | VARCHAR(20) | ประเภทการนัด (FOLLOW_UP/NEW_CASE/EMERGENCY_FOLLOW) | |
| SchedulingMethod | VARCHAR(20) | วิธีการนัด (SPECIFIC_DATE/WEEKS/MONTHS) | |
| WeeksFromNow | INT | จำนวนสัปดาห์ (ถ้าระบุเป็นสัปดาห์) | |
| MonthsFromNow | INT | จำนวนเดือน (ถ้าระบุเป็นเดือน) | |
| DepartmentCode | VARCHAR(10) | FK | รหัสแผนกที่นัด (อ้างอิง DEPARTMENTS) |
| DoctorID | VARCHAR(20) | FK | แพทย์ที่นัด (อ้างอิง DOCTORS) |
| ClinicCode | VARCHAR(10) | FK | รหัสคลินิก (อ้างอิง CLINICS) |
| AppointmentReason | NTEXT | สาเหตุการนัดหมาย | |
| SpecialInstructions | NTEXT | คำแนะนำการปฏิบัติตัว | |
| PreparationRequired | NTEXT | การเตรียมตัวที่ต้องการ | |
| AdvanceLabOrders | NTEXT | การสั่ง Lab ล่วงหน้า (JSON Format) | |
| AdvanceXRayOrders | NTEXT | การสั่ง X-Ray ล่วงหน้า (JSON Format) | |
| EstimatedDuration | INT | เวลาโดยประมาณ (นาที) | |
| AppointmentStatus | VARCHAR(20) | สถานะ (SCHEDULED/CONFIRMED/COMPLETED/CANCELLED/NO_SHOW) | |
| IsMultipleDepartment | BIT | นัดหลายแผนก | |
| MultipleAppointments | NTEXT | แผนกที่นัดเพิ่ม (JSON Format) | |
| HolidayConflict | BIT | ตรงกับวันหยุด | |
| HolidayWarning | NVARCHAR(200) | การเตือนวันหยุด | |
| ScheduledBy | VARCHAR(50) | ผู้นัดหมาย | |
| ScheduledDate | DATETIME | วันที่นัดหมาย | |
| ReminderSent | BIT | ส่งการเตือนแล้ว | |
| ConfirmationRequired | BIT | ต้องยืนยันการนัด | |
| Notes | NTEXT | หมายเหตุ |
8.2.6 ตารางการจัดการระบบและการตรวจสอบ
8.2.6.1 การตรวจสอบยาและการเตือน
Table: DRUG_ALLERGY_ALERT (การเตือนการแพ้ยา)
วัตถุประสงค์: เก็บข้อมูลการเตือนการแพ้ยาเฉพาะสำหรับการรักษาฉุกเฉิน รองรับการ Override ในสถานการณ์ฉุกเฉิน
| Field | Type | Key | Description |
|---|---|---|---|
| AllergyAlertID | VARCHAR(20) | PK | รหัสการเตือนแพ้ยา (AA-XXXXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| DrugCode | VARCHAR(20) | FK | รหัสยา |
| AllergyType | VARCHAR(50) | ประเภทการแพ้ (DRUG/FOOD/ENVIRONMENTAL) | |
| AllergyDescription | NTEXT | รายละเอียดการแพ้ | |
| SeverityLevel | VARCHAR(20) | ระดับความรุนแรง (MILD/MODERATE/SEVERE/CRITICAL) | |
| AlertTriggered | DATETIME | เวลาที่เตือน | |
| AlertMessage | NTEXT | ข้อความเตือน | |
| ActionTaken | VARCHAR(50) | การดำเนินการ (STOPPED/MODIFIED/OVERRIDE) | |
| OverrideReason | NTEXT | เหตุผล Override | |
| OverrideBy | VARCHAR(20) | FK | ผู้ Override (อ้างอิง DOCTORS) |
| IsEmergencyOverride | BIT | Override ฉุกเฉิน | |
| AlternativeDrug | VARCHAR(20) | FK | ยาทดแทน |
| Notes | NTEXT | หมายเหตุ |
Table: DRUG_INTERACTION_CHECK (การตรวจสอบปฏิสัมพันธ์ยา)
วัตถุประสงค์: เก็บข้อมูลการตรวจสอบปฏิสัมพันธ์ระหว่างยาในการรักษาฉุกเฉิน
| Field | Type | Key | Description |
|---|---|---|---|
| InteractionCheckID | VARCHAR(20) | PK | รหัสการตรวจสอบ (IC-XXXXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| Drug1Code | VARCHAR(20) | FK | รหัสยาตัวที่ 1 |
| Drug2Code | VARCHAR(20) | FK | รหัสยาตัวที่ 2 |
| InteractionType | VARCHAR(50) | ประเภทปฏิสัมพันธ์ | |
| SeverityLevel | VARCHAR(20) | ระดับความรุนแรง (MINOR/MODERATE/MAJOR/CONTRAINDICATED) | |
| InteractionDescription | NTEXT | รายละเอียดปฏิสัมพันธ์ | |
| ClinicalEffect | NTEXT | ผลทางคลินิก | |
| RecommendedAction | NTEXT | การดำเนินการที่แนะนำ | |
| CheckDateTime | DATETIME | เวลาตรวจสอบ | |
| AlertGenerated | BIT | ส่งสัญญาณเตือนแล้ว | |
| ActionTaken | VARCHAR(50) | การดำเนินการ | |
| OverrideReason | NTEXT | เหตุผล Override | |
| CheckedBy | VARCHAR(20) | FK | ผู้ตรวจสอบ |
8.2.6.2 การสั่งผ่าตัดและการจัดการค่าใช้จ่าย
Table: EMERGENCY_SURGERY_REQUEST (การสั่งผ่าตัดฉุกเฉิน)
วัตถุประสงค์: เก็บข้อมูลการสั่งผ่าตัดฉุกเฉินและการประสานงานกับระบบห้องผ่าตัด
| Field | Type | Key | Description |
|---|---|---|---|
| SurgeryRequestID | VARCHAR(20) | PK | รหัสการสั่งผ่าตัด (SR-XXXXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| RequestDateTime | DATETIME | เวลาสั่งผ่าตัด | |
| SurgeryType | VARCHAR(50) | ประเภทการผ่าตัด | |
| UrgencyLevel | VARCHAR(20) | ระดับความเร่งด่วน (IMMEDIATE/URGENT/WITHIN_24HR) | |
| SurgeonRequired | VARCHAR(20) | FK | ศัลยแพทย์ที่ต้องการ (อ้างอิง DOCTORS) |
| AnesthesiologistRequired | VARCHAR(20) | FK | วิสัญญีแพทย์ (อ้างอิง DOCTORS) |
| OperatingRoomRequired | VARCHAR(20) | FK | ห้องผ่าตัดที่ต้องการ |
| EstimatedDuration | INT | เวลาโดยประมาณ (นาที) | |
| SurgicalIndication | NTEXT | ข้อบ่งชี้การผ่าตัด | |
| PreOpDiagnosis | NTEXT | การวินิจฉัยก่อนผ่าตัด | |
| PlannedProcedure | NTEXT | หัตถการที่วางแผน | |
| SpecialEquipment | NTEXT | อุปกรณ์พิเศษที่ต้องการ | |
| BloodProductsNeeded | NTEXT | ผลิตภัณฑ์เลือดที่ต้องการ | |
| SpecialConsiderations | NTEXT | ข้อพิจารณาพิเศษ | |
| RequestedBy | VARCHAR(20) | FK | แพทย์ผู้สั่ง (อ้างอิง DOCTORS) |
| SurgeryStatus | VARCHAR(20) | สถานะ (REQUESTED/SCHEDULED/IN_PROGRESS/COMPLETED/CANCELLED) | |
| ScheduledDateTime | DATETIME | เวลาที่จัดการผ่าตัด | |
| ActualStartTime | DATETIME | เวลาเริ่มผ่าตัดจริง | |
| ActualEndTime | DATETIME | เวลาเสร็จสิ้นจริง | |
| SurgeryOutcome | NTEXT | ผลการผ่าตัด | |
| PostOpInstructions | NTEXT | คำแนะนำหลังผ่าตัด | |
| ComplicationsNoted | NTEXT | ภาวะแทรกซ้อน |
Table: COST_SUMMARY (สรุปค่าใช้จ่าย)
วัตถุประสงค์: เก็บข้อมูลสรุปค่าใช้จ่ายการรักษาฉุกเฉินเพื่อเชื่อมโยงกับระบบการเงิน
| Field | Type | Key | Description |
|---|---|---|---|
| CostSummaryID | VARCHAR(20) | PK | รหัสสรุปค่าใช้จ่าย (CS-XXXXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| CalculationDateTime | DATETIME | เวลาคำนวณ | |
| ConsultationFee | DECIMAL(10,2) | ค่าตรวจรักษา | |
| EmergencyFee | DECIMAL(10,2) | ค่าบริการฉุกเฉิน | |
| ProcedureCost | DECIMAL(10,2) | ค่าหัตถการ | |
| MedicationCost | DECIMAL(10,2) | ค่ายา | |
| LabCost | DECIMAL(10,2) | ค่าตรวจ Lab | |
| RadiologyCost | DECIMAL(10,2) | ค่าตรวจ X-Ray | |
| RoomCharge | DECIMAL(10,2) | ค่าห้อง | |
| EquipmentCost | DECIMAL(10,2) | ค่าอุปกรณ์ | |
| EMSCost | DECIMAL(10,2) | ค่าบริการ EMS | |
| SuppliesCost | DECIMAL(10,2) | ค่าวัสดุการแพทย์ | |
| OtherCharges | DECIMAL(10,2) | ค่าใช้จ่ายอื่นๆ | |
| SubTotal | DECIMAL(10,2) | ยอดรวมย่อย | |
| Tax | DECIMAL(10,2) | ภาษี | |
| TotalCost | DECIMAL(10,2) | ยอดรวมทั้งสิ้น | |
| InsuranceCoverage | DECIMAL(10,2) | จำนวนที่ประกันคุ้มครอง | |
| GovernmentScheme | DECIMAL(10,2) | สิทธิรัฐ | |
| PatientPayment | DECIMAL(10,2) | จำนวนที่ผู้ป่วยชำระ | |
| Discount | DECIMAL(10,2) | ส่วนลด | |
| PaymentStatus | VARCHAR(20) | สถานะการชำระ (PENDING/PARTIAL/PAID/WAIVED) | |
| BillingNotes | NTEXT | หมายเหตุการเรียกเก็บ | |
| FinanceReferenceID | VARCHAR(20) | รหัสอ้างอิงระบบการเงิน |
8.2.6.3 ใบรับรองและเอกสาร
Table: EMERGENCY_CERTIFICATE (ใบรับรองแพทย์ฉุกเฉิน)
วัตถุประสงค์: เก็บข้อมูลใบรับรองแพทย์และเอกสารต่างๆ ที่ออกจากห้องฉุกเฉิน รองรับหลายภาษา
| Field | Type | Key | Description |
|---|---|---|---|
| CertificateID | VARCHAR(20) | PK | รหัสใบรับรอง (CERT-XXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| CertificateType | VARCHAR(50) | ประเภทใบรับรอง (MEDICAL/SICK_LEAVE/WORK/DISABILITY) | |
| Language | VARCHAR(10) | ภาษา (THAI/ENGLISH) | |
| IssueDateTime | DATETIME | วันเวลาออกใบรับรอง | |
| CertificateNumber | VARCHAR(50) | เลขที่ใบรับรอง | |
| PatientCondition | NTEXT | สภาพผู้ป่วย | |
| Diagnosis | NTEXT | การวินิจฉัย | |
| TreatmentSummary | NTEXT | สรุปการรักษา | |
| RecommendedRest | INT | วันพักที่แนะนำ | |
| WorkRestrictions | NTEXT | ข้อจำกัดในการทำงาน | |
| FollowUpRequired | BIT | ต้องติดตาม | |
| FollowUpInstructions | NTEXT | คำแนะนำการติดตาม | |
| SpecialNotes | NTEXT | หมายเหตุพิเศษ | |
| IssuedBy | VARCHAR(20) | FK | แพทย์ผู้ออก (อ้างอิง DOCTORS) |
| CertificateStatus | VARCHAR(20) | สถานะ (ISSUED/REVISED/CANCELLED) | |
| PrintedDateTime | DATETIME | เวลาพิมพ์ | |
| PrintedBy | VARCHAR(50) | ผู้พิมพ์ | |
| DocumentPath | VARCHAR(255) | Path เอกสาร | |
| DigitalSignature | VARBINARY(MAX) | ลายเซ็นดิจิทัล |
8.2.6.4 บันทึกการเปลี่ยนแปลงและการบูรณาการ
Table: AUDIT_LOG (บันทึกการเปลี่ยนแปลง)
วัตถุประสงค์: เก็บประวัติการเปลี่ยนแปลงข้อมูลในระบบห้องฉุกเฉินเพื่อการตรวจสอบและการติดตาม
| Field | Type | Key | Description |
|---|---|---|---|
| AuditID | VARCHAR(20) | PK | รหัสการตรวจสอบ (AUD-XXXXXXXXXXX) |
| TableName | VARCHAR(50) | ชื่อตาราง | |
| RecordID | VARCHAR(20) | รหัสเรคอร์ด | |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| ActionType | VARCHAR(20) | ประเภทการทำงาน (INSERT/UPDATE/DELETE) | |
| FieldName | VARCHAR(50) | ชื่อฟิลด์ | |
| OldValue | NTEXT | ค่าเดิม | |
| NewValue | NTEXT | ค่าใหม่ | |
| ChangeDateTime | DATETIME | เวลาเปลี่ยนแปลง | |
| ChangedBy | VARCHAR(50) | ผู้เปลี่ยนแปลง | |
| UserRole | VARCHAR(50) | บทบาทผู้ใช้ | |
| IPAddress | VARCHAR(50) | IP Address | |
| Reason | NTEXT | เหตุผลการเปลี่ยนแปลง | |
| IsEmergencyAction | BIT | การดำเนินการฉุกเฉิน |
Table: SYSTEM_INTEGRATION_LOG (บันทึกการเชื่อมโยงระบบ)
วัตถุประสงค์: เก็บบันทึกการติดต่อและแลกเปลี่ยนข้อมูลกับระบบอื่นๆ ในโรงพยาบาล
| Field | Type | Key | Description |
|---|---|---|---|
| IntegrationLogID | VARCHAR(20) | PK | รหัสบันทึกการเชื่อมโยง (INT-XXXXXXXXXX) |
| EmergencyCaseID | VARCHAR(20) | FK | รหัสเคสฉุกเฉิน |
| TargetSystem | VARCHAR(50) | ระบบปลายทาง | |
| IntegrationType | VARCHAR(50) | ประเภทการเชื่อมโยง (API/DATABASE/FILE) | |
| RequestDateTime | DATETIME | เวลาส่งคำร้อง | |
| ResponseDateTime | DATETIME | เวลาได้รับตอบกลับ | |
| RequestData | NTEXT | ข้อมูลที่ส่ง | |
| ResponseData | NTEXT | ข้อมูลที่ได้รับ | |
| Status | VARCHAR(20) | สถานะ (SUCCESS/FAILED/TIMEOUT) | |
| ErrorMessage | NTEXT | ข้อความข้อผิดพลาด | |
| RetryCount | INT | จำนวนครั้งที่ลองใหม่ | |
| ProcessingTime | INT | เวลาประมวลผล (ms) |
8.2.7 ตาราง Master Data และข้อมูลอ้างอิง
8.2.7.1 ข้อมูลพื้นฐานทางการแพทย์ฉุกเฉิน
Table: ICD_CODES (รหัส ICD)
วัตถุประสงค์: เก็บรหัสการจำแนกโรคและหัตถการตามมาตรฐาน ICD ของ WHO และประเทศไทย
| Field | Type | Key | Description |
|---|---|---|---|
| ICDCode | VARCHAR(10) | PK | รหัส ICD |
| ICDVersion | VARCHAR(10) | เวอร์ชัน (ICD-10/ICD-11/THAI) | |
| ICDType | VARCHAR(20) | ประเภท (DISEASE/PROCEDURE) | |
| ShortDescription | NVARCHAR(100) | คำอธิบายสั้น | |
| LongDescription | NTEXT | คำอธิบายยาว | |
| ThaiDescription | NTEXT | คำอธิบายภาษาไทย | |
| Category | VARCHAR(50) | หมวดหมู่ | |
| IsEmergencyCode | BIT | รหัสฉุกเฉิน | |
| UsageFrequency | INT | ความถี่การใช้ | |
| IsActive | BIT | ใช้งานได้ |
Table: TRIAGE_CATEGORIES (หมวดการคัดกรอง)
วัตถุประสงค์: เก็บข้อมูลหมวดหมู่การคัดกรองผู้ป่วยตามระดับความเร่งด่วน
| Field | Type | Key | Description |
|---|---|---|---|
| TriageLevelID | VARCHAR(10) | PK | รหัสระดับ Triage |
| LevelName | NVARCHAR(50) | ชื่อระดับ | |
| LevelDescription | NTEXT | คำอธิบายระดับ | |
| ColorCode | VARCHAR(10) | รหัสสี | |
| Priority | INT | ลำดับความสำคัญ (1=สูงสุด) | |
| MaxWaitTime | INT | เวลารอสูงสุด (นาที) | |
| TargetResponseTime | INT | เวลาตอบสนองเป้าหมาย (นาที) | |
| ClinicalCriteria | NTEXT | เกณฑ์ทางคลินิก | |
| Examples | NTEXT | ตัวอย่าง | |
| IsActive | BIT | ใช้งานได้ |
Table: TREATMENT_GROUPS (กลุ่มการรักษา)
วัตถุประสงค์: เก็บข้อมูลกลุ่มการรักษาตามค่ารักษาพยาบาลพร้อมค่าบริการ
| Field | Type | Key | Description |
|---|---|---|---|
| TreatmentGroupID | VARCHAR(10) | PK | รหัสกลุ่มการรักษา |
| GroupName | NVARCHAR(100) | ชื่อกลุ่มการรักษา | |
| GroupDescription | NTEXT | คำอธิบายกลุ่ม | |
| BaseFee | DECIMAL(10,2) | ค่าบริการพื้นฐาน | |
| EmergencyMultiplier | DECIMAL(4,2) | ตัวคูณสำหรับฉุกเฉิน | |
| IsEmergencyGroup | BIT | กลุ่มฉุกเฉิน | |
| IncludedServices | NTEXT | บริการที่รวม (JSON Format) | |
| ExcludedServices | NTEXT | บริการที่ไม่รวม | |
| ValidFrom | DATE | ใช้ได้ตั้งแต่ | |
| ValidTo | DATE | ใช้ได้ถึง | |
| IsActive | BIT | ใช้งานได้ |
Table: MEDICATION_TEMPLATES (Template การใช้ยา)
วัตถุประสงค์: เก็บ Template การสั่งยาที่ใช้บ่อยในการรักษาฉุกเฉิน รองรับการใช้ RE-MED
| Field | Type | Key | Description |
|---|---|---|---|
| TemplateID | VARCHAR(20) | PK | รหัส Template |
| TemplateName | NVARCHAR(100) | ชื่อ Template | |
| TemplateDescription | NTEXT | คำอธิบาย Template | |
| ConditionCode | VARCHAR(10) | FK | รหัสภาวะ (อ้างอิง ICD_CODES) |
| IsEmergencyTemplate | BIT | Template ฉุกเฉิน | |
| MedicationList | NTEXT | รายการยา (JSON Format) | |
| Instructions | NTEXT | คำแนะนำการใช้ | |
| Precautions | NTEXT | ข้อควรระวัง | |
| ContraIndications | NTEXT | ข้อห้าม | |
| CreatedBy | VARCHAR(20) | FK | ผู้สร้าง (อ้างอิง DOCTORS) |
| UsageCount | INT | จำนวนครั้งที่ใช้ | |
| LastUsed | DATETIME | ใช้ครั้งล่าสุด | |
| IsActive | BIT | ใช้งานได้ |
Table: ACCIDENT_TYPES (ประเภทอุบัติเหตุ)
วัตถุประสงค์: เก็บข้อมูลประเภทอุบัติเหตุต่างๆ สำหรับการจำแนกและรายงาน
| Field | Type | Key | Description |
|---|---|---|---|
| AccidentTypeID | VARCHAR(10) | PK | รหัสประเภทอุบัติเหตุ |
| TypeName | NVARCHAR(100) | ชื่อประเภท | |
| TypeDescription | NTEXT | คำอธิบายประเภท | |
| Category | VARCHAR(50) | หมวดหมู่ (TRANSPORT/WORK/HOME/SPORT/VIOLENCE) | |
| ReportingRequired | BIT | ต้องรายงาน | |
| LegalImplications | BIT | มีนัยทางกฎหมาย | |
| InsuranceCoverage | BIT | คุ้มครองประกัน | |
| CommonInjuries | NTEXT | การบาดเจ็บที่พบบ่อย | |
| PreventionTips | NTEXT | คำแนะนำการป้องกัน | |
| IsActive | BIT | ใช้งานได้ |
Table: EMERGENCY_PROCEDURES (หัตถการฉุกเฉิน)
วัตถุประสงค์: เก็บข้อมูลหัตถการฉุกเฉินเฉพาะที่ทำในห้องฉุกเฉิน
| Field | Type | Key | Description |
|---|---|---|---|
| EmergencyProcedureID | VARCHAR(10) | PK | รหัสหัตถการฉุกเฉิน |
| ProcedureName | NVARCHAR(200) | ชื่อหัตถการ | |
| ProcedureCode | VARCHAR(20) | FK | รหัสหัตถการ (อ้างอิง ICD_CODES) |
| Category | VARCHAR(50) | หมวดหมู่ (RESUSCITATION/TRAUMA/CARDIAC/SURGICAL) | |
| UrgencyLevel | VARCHAR(20) | ระดับความเร่งด่วน | |
| RequiredSkillLevel | VARCHAR(20) | ระดับทักษะที่ต้องการ | |
| EstimatedDuration | INT | เวลาโดยประมาณ (นาที) | |
| RequiredEquipment | NTEXT | อุปกรณ์ที่ต้องการ | |
| StepByStepGuide | NTEXT | คู่มือทำหัตถการ | |
| Complications | NTEXT | ภาวะแทรกซ้อนที่อาจเกิด | |
| ContraIndications | NTEXT | ข้อห้าม | |
| Fee | DECIMAL(10,2) | ค่าหัตถการ | |
| IsActive | BIT | ใช้งานได้ |
8.2.7.2 ข้อมูลอ้างอิงและบุคลากร
Table: DOCTORS (ข้อมูลแพทย์)
วัตถุประสงค์: เก็บข้อมูลแพทย์ที่ปฏิบัติงานในห้องฉุกเฉิน (อ้างอิงจากระบบบุคลากร)
| Field | Type | Key | Description |
|---|---|---|---|
| DoctorID | VARCHAR(20) | PK | รหัสแพทย์ |
| LicenseNumber | VARCHAR(20) | UK | เลขที่ใบอนุญาต |
| TitleID | VARCHAR(10) | FK | คำนำหน้านาม |
| FirstName | NVARCHAR(50) | ชื่อ | |
| LastName | NVARCHAR(50) | นามสกุล | |
| SpecialtyID | VARCHAR(10) | FK | ความเชี่ยวชาญ (อ้างอิง SPECIALTIES) |
| DepartmentCode | VARCHAR(10) | FK | แผนกสังกัด |
| EmergencyQualified | BIT | มีคุณสมบัติปฏิบัติงานฉุกเฉิน | |
| EmergencyCertifications | NTEXT | ใบรับรองฉุกเฉิน (JSON Format) | |
| ContactNumber | VARCHAR(20) | หมายเลขติดต่อ | |
| VARCHAR(100) | อีเมล | ||
| IsActive | BIT | ปฏิบัติงานอยู่ |
Table: NURSES (ข้อมูลพยาบาล)
วัตถุประสงค์: เก็บข้อมูลพยาบาลที่ปฏิบัติงานในห้องฉุกเฉิน
| Field | Type | Key | Description |
|---|---|---|---|
| NurseID | VARCHAR(20) | PK | รหัสพยาบาล |
| LicenseNumber | VARCHAR(20) | UK | เลขที่ใบอนุญาต |
| FirstName | NVARCHAR(50) | ชื่อ | |
| LastName | NVARCHAR(50) | นามสกุล | |
| NursingLevel | VARCHAR(20) | ระดับพยาบาล | |
| DepartmentCode | VARCHAR(10) | FK | แผนกสังกัด |
| EmergencyTrained | BIT | ผ่านการอบรมฉุกเฉิน | |
| TriageQualified | BIT | มีคุณสมบัติคัดกรอง | |
| Certifications | NTEXT | ใบรับรอง (JSON Format) | |
| ContactNumber | VARCHAR(20) | หมายเลขติดต่อ | |
| IsActive | BIT | ปฏิบัติงานอยู่ |
Table: DEPARTMENTS (แผนก)
วัตถุประสงค์: เก็บข้อมูลแผนกต่างๆ ในโรงพยาบาล (อ้างอิงจากระบบหลัก)
| Field | Type | Key | Description |
|---|---|---|---|
| DepartmentCode | VARCHAR(10) | PK | รหัสแผนก |
| DepartmentName | NVARCHAR(100) | ชื่อแผนก | |
| DepartmentType | VARCHAR(50) | ประเภทแผนก | |
| ParentDepartment | VARCHAR(10) | FK | แผนกแม่ |
| HeadOfDepartment | VARCHAR(20) | FK | หัวหน้าแผนก |
| ContactNumber | VARCHAR(20) | หมายเลขติดต่อ | |
| Location | NVARCHAR(100) | ที่ตั้ง | |
| AcceptsEmergencyReferral | BIT | รับส่งต่อฉุกเฉิน | |
| OperatingHours | NTEXT | เวลาทำการ (JSON Format) | |
| IsActive | BIT | เปิดใช้งาน |
Table: EMERGENCY_ROOMS (ห้องฉุกเฉิน)
วัตถุประสงค์: เก็บข้อมูลห้องต่างๆ ในแผนกฉุกเฉิน
| Field | Type | Key | Description |
|---|---|---|---|
| RoomCode | VARCHAR(10) | PK | รหัสห้อง |
| RoomName | NVARCHAR(50) | ชื่อห้อง | |
| RoomType | VARCHAR(20) | ประเภทห้อง (TRAUMA/RESUSCITATION/OBSERVATION/ISOLATION) | |
| Capacity | INT | ความจุ (เตียง) | |
| SpecialEquipment | NTEXT | อุปกรณ์พิเศษ | |
| Status | VARCHAR(20) | สถานะ (AVAILABLE/OCCUPIED/MAINTENANCE/CLOSED) | |
| CurrentPatient | VARCHAR(10) | FK | ผู้ป่วยปัจจุบัน |
| AssignedNurse | VARCHAR(20) | FK | พยาบาลประจำห้อง |
| IsIsolationRoom | BIT | ห้องแยกโรค | |
| IsActive | BIT | ใช้งานได้ |
Table: EMS_UNITS (หน่วย EMS)
วัตถุประสงค์: เก็บข้อมูลหน่วย EMS และรถพยาบาล
| Field | Type | Key | Description |
|---|---|---|---|
| EMSUnitID | VARCHAR(20) | PK | รหัสหน่วย EMS |
| UnitName | NVARCHAR(100) | ชื่อหน่วย | |
| UnitType | VARCHAR(50) | ประเภทหน่วย (AMBULANCE/RESCUE/AIR_RESCUE) | |
| VehicleID | VARCHAR(20) | รหัสรถ | |
| CallSign | VARCHAR(20) | เครื่องหมายเรียกขาน | |
| BaseLocation | NVARCHAR(200) | ฐานที่ตั้ง | |
| ServiceArea | NTEXT | พื้นที่ให้บริการ | |
| EquipmentLevel | VARCHAR(20) | ระดับอุปกรณ์ (BLS/ALS/CRITICAL_CARE) | |
| StaffCapacity | INT | จำนวนเจ้าหน้าที่ | |
| PatientCapacity | INT | จำนวนผู้ป่วยที่รับได้ | |
| ContactFrequency | VARCHAR(20) | ความถี่วิทยุติดต่อ | |
| Status | VARCHAR(20) | สถานะ (AVAILABLE/BUSY/MAINTENANCE/OUT_OF_SERVICE) | |
| IsActive | BIT | ปฏิบัติการอยู่ |
9. การเชื่อมโยงระบบและ API Integration
9.1 การเชื่อมโยงข้อมูลเข้า (Input Integration)
🔗 ระบบเวชระเบียน (1.2.1):
- HN และ VisitID - ข้อมูลผู้ป่วยหลักและการเข้ารับบริการ
- ข้อมูลสิทธิการรักษาเบื้องต้น
- ประวัติการมารับบริการก่อนหน้า
🔗 ระบบซักประวัติ (1.2.2):
- HistoryID และ VitalSignsID - กรณีมีการซักประวัติก่อนเข้าห้องฉุกเฉิน
- ข้อมูลประวัติโรคและการแพ้ยา
- ข้อมูลสัญญาณชีพเบื้องต้น
🔗 ระบบห้องตรวจแพทย์ (1.2.3): - ข้อมูลการตรวจก่อนหน้า (ถ้ามี) - ผลการวินิจฉัยเบื้องต้น
🔗 ระบบตรวจสอบสิทธิ (1.2.15):
- RightsVerificationID - การตรวจสอบสิทธิการรักษาฉุกเฉิน
- ข้อมูลความคุ้มครองของประกัน
🔗 ระบบเภสัชกรรม (1.2.13): - Master Data ยาและการตรวจสอบ Drug Interaction - ข้อมูลการแพ้ยาของผู้ป่วย
🔗 ระบบงานชันสูตร (1.2.7): - Master Data รายการตรวจ Lab - ราคาและข้อกำหนดการเก็บตัวอย่าง
🔗 ระบบรังสีวิทยา (1.2.8): - Master Data รายการตรวจ X-Ray - ราคาและข้อกำหนดการตรวจ
🔗 หน่วย EMS ภายนอก: - ข้อมูลการรักษาเบื้องต้นจาก EMS - ประวัติการปฐมพยาบาลและการนำส่ง
9.2 การเชื่อมโยงข้อมูลออก (Output Integration)
🔗 ระบบเภสัชกรรม (1.2.13): - การสั่งยาฉุกเฉิน Priority STAT/ASAP - การใช้ RE-MED และ Template การสั่งยา - การตรวจสอบ Drug Interaction แบบ Real-time
🔗 ระบบงานชันสูตร (1.2.7): - การสั่ง Lab แบบเร่งด่วน (STAT) - การรับผลแบบ Real-time Critical Values - การเตือนผลค่าวิกฤต
🔗 ระบบรังสีวิทยา (1.2.8): - การสั่ง X-Ray แบบเร่งด่วน (STAT) - การรับผลและรูปภาพแบบ Real-time - การปรึกษา Radiologist ด่วน
🔗 ระบบห้องผ่าตัด (1.2.18): - การสั่งผ่าตัดฉุกเฉิน - การจองห้องผ่าตัดด่วน - การประสานงานทีมผ่าตัด
🔗 ระบบผู้ป่วยใน (1.2.17): - การขอรับเข้าผู้ป่วยในจากฉุกเฉิน - การจองเตียงด่วน - การส่งมอบข้อมูลผู้ป่วย
🔗 ระบบการเงิน (1.2.14): - ข้อมูลค่าบริการฉุกเฉิน - การคำนวณค่าใช้จ่ายแบบ Real-time - การเรียกเก็บเงินจากประกัน
9.3 Emergency-Specific Features
🚨 Real-time Critical Alerts: - การเตือนค่า Lab/X-Ray วิกฤตแบบทันที - การแจ้งเตือนการแพ้ยารุนแรง - การเตือน Drug Interaction อันตราย
⚡ STAT Priority Handling: - การจัดลำดับความสำคัญสูงสุดสำหรับคำสั่งฉุกเฉิน - การข้ามคิวสำหรับการตรวจ STAT - การประมวลผลก่อนคำสั่งปกติ
🔴 Emergency Override: - การข้ามการเตือน Drug Interaction ในสถานการณ์ฉุกเฉิน - การ Override ข้อจำกัดการสั่งยา - การบันทึกเหตุผลและผู้อนุมัติ
💰 Automatic Cost Calculation: - การคำนวณค่าใช้จ่ายฉุกเฉินแบบอัตโนมัติ - ตัวคูณพิเศษสำหรับบริการฉุกเฉิน - การจัดการค่าบริการนอกเวลา
🚑 EMS Data Integration: - การรับข้อมูลจากหน่วย EMS โดยตรง - การติดตามสถานะรถพยาบาล - การประสานงานการรับส่งผู้ป่วย
🏥 Mass Casualty Support: - การรองรับผู้ป่วยฉุกเฉินหมู่ - การจัดลำดับความสำคัญแบบ Triage - การประสานงานทรัพยากรในสถานการณ์วิกฤต
10. Database Relationships และ Constraints
10.1 Primary Key Constraints
- EMERGENCY_CASE.EmergencyCaseID - PK หลักของระบบ
- TRIAGE_ASSESSMENT.TriageID - เชื่อมกับ EMERGENCY_CASE (1:1)
- ACCIDENT_RECORDS.AccidentID - เชื่อมกับ EMERGENCY_CASE (1:0..1)
- EMS_RECORDS.EMSRecordID - เชื่อมกับ EMERGENCY_CASE (1:0..1)
- OBSERVATION_RECORDS.ObservationID - เชื่อมกับ EMERGENCY_CASE (1:0..N)
10.2 Foreign Key Relationships
การเชื่อมโยงหลัก:
EMERGENCY_CASE.HN → PATIENT.HN (ระบบเวชระเบียน)
EMERGENCY_CASE.VisitID → VISIT.VisitID (ระบบเวชระเบียน)
EMERGENCY_CASE.HistoryID → PATIENT_HISTORY.HistoryID (ระบบซักประวัติ)
EMERGENCY_CASE.AttendingDoctorID → DOCTORS.DoctorID
EMERGENCY_CASE.ShiftID → EMERGENCY_SHIFTS.ShiftID
การเชื่อมโยง Shared Tables:
MEDICAL_DIAGNOSIS.SourceID → EMERGENCY_CASE.EmergencyCaseID (WHERE SourceSystem='EMERGENCY')
MEDICAL_PROCEDURE.SourceID → EMERGENCY_CASE.EmergencyCaseID (WHERE SourceSystem='EMERGENCY')
MEDICATION_ORDER.SourceID → EMERGENCY_CASE.EmergencyCaseID (WHERE SourceSystem='EMERGENCY')
LAB_ORDER.SourceID → EMERGENCY_CASE.EmergencyCaseID (WHERE SourceSystem='EMERGENCY')
RADIOLOGY_ORDER.SourceID → EMERGENCY_CASE.EmergencyCaseID (WHERE SourceSystem='EMERGENCY')
10.3 Check Constraints
ข้อจำกัดทางธุรกิจ:
-- เวลาเสร็จสิ้นต้องมากกว่าเวลาเริ่ม
CHECK (TreatmentEndTime > TreatmentStartTime)
-- ระดับ Triage ต้องอยู่ในช่วง 1-5
CHECK (TriageLevel BETWEEN 1 AND 5)
-- ค่าใช้จ่ายต้องเป็นบวก
CHECK (TotalCost >= 0)
-- Priority Score ต้องอยู่ในช่วง 1-10
CHECK (PriorityScore BETWEEN 1 AND 10)
10.4 Index Recommendations
Performance Indexes:
-- หาข้อมูลเคสตาม HN รวดเร็ว
CREATE INDEX IX_EMERGENCY_CASE_HN ON EMERGENCY_CASE(HN)
-- หาข้อมูลตาม VisitID
CREATE INDEX IX_EMERGENCY_CASE_VISIT ON EMERGENCY_CASE(VisitID)
-- หาข้อมูลตามวันที่
CREATE INDEX IX_EMERGENCY_CASE_DATE ON EMERGENCY_CASE(EmergencyDateTime)
-- หาข้อมูลตามสถานะ
CREATE INDEX IX_EMERGENCY_CASE_STATUS ON EMERGENCY_CASE(CaseStatus)
-- Shared Tables Indexes
CREATE INDEX IX_MEDICAL_DIAGNOSIS_SOURCE ON MEDICAL_DIAGNOSIS(SourceSystem, SourceID)
CREATE INDEX IX_MEDICATION_ORDER_SOURCE ON MEDICATION_ORDER(SourceSystem, SourceID)
CREATE INDEX IX_LAB_ORDER_SOURCE ON LAB_ORDER(SourceSystem, SourceID)
11. ข้อมูลสำคัญและข้อจำกัด
11.1 ข้อมูลสำคัญ
✅ ครอบคลุม TOR ครบถ้วน: - การจัดการข้อมูลพื้นฐานและรหัส ICD (TOR 1.2.4.1) - การตรวจรักษาฉุกเฉินและอุบัติเหตุ (TOR 1.2.4.2) - การนัดหมายหลายรูปแบบ (TOR 1.2.4.3) - การขอปรึกษาแพทย์ (TOR 1.2.4.4) - การพิมพ์เอกสารหลายภาษา (TOR 1.2.4.5)
✅ Shared Tables Architecture: - ลดความซ้ำซ้อนกับระบบซักประวัติ (1.2.2) และห้องตรวจ (1.2.3) - Data Consistency ระหว่างระบบ - Easy Integration และ Maintenance
✅ Emergency-Specific Features: - การคัดกรอง (Triage) มาตรฐานสากล - การจัดการ EMS และ Observation - การสั่งยา/Lab/X-Ray แบบเร่งด่วน (STAT) - การส่งต่อและการผ่าตัดฉุกเฉิน - การจัดการเวร 24/7
✅ Integration Points: - เชื่อมโยงกับ 8+ ระบบหลัก - Real-time Critical Alerts - API-based Communication - Emergency Override Mechanisms
11.2 ข้อจำกัดและข้อควรระวัง
⚠️ Performance Considerations: - ระบบต้องรองรับการใช้งานหนักในเวลาเร่งด่วน - การ Query Shared Tables ต้องใช้ Index อย่างเหมาะสม - การ Backup และ Recovery ต้องรวดเร็ว
⚠️ Data Integrity: - การ Synchronization ระหว่าง Shared Tables - การจัดการ Transaction ข้ามระบบ - การ Rollback ในกรณีข้อผิดพลาด
⚠️ Security Requirements: - การเข้าถึงข้อมูลผู้ป่วยต้องมีการควบคุม - การ Audit Log ต้องครบถ้วน - การ Encryption สำหรับข้อมูลสำคัญ
⚠️ Compliance: - ต้องสอดคล้องกับมาตรฐานสากล - การรายงานต่อหน่วยงานราชการ - การเก็บข้อมูลตามกฎหมาย
11.3 การขยายระบบในอนาคต
🚀 Future Enhancements: - ระบบ AI สำหรับ Triage อัตโนมัติ - การเชื่อมต่อกับ Telemedicine - การ Integration กับ IoT Medical Devices - Mobile App สำหรับ EMS - การ Analytics แบบ Real-time
12. สรุป
เอกสาร Schema นี้ออกแบบมาเพื่อรองรับการดำเนินงานของระบบห้องฉุกเฉินที่มีประสิทธิภาพและสอดคล้องกับมาตรฐานสากล โดยมีจุดเด่นคือ:
- การใช้ Shared Tables ที่ลดความซ้ำซ้อนและเพิ่มความสอดคล้องของข้อมูล
- การรองรับ Emergency-Specific Requirements อย่างครบถ้วน
- การ Integration ที่แน่นแฟ้นกับระบบอื่นๆ ในโรงพยาบาล
- ความยืดหยุ่น ในการขยายและปรับปรุงระบบ
- ประสิทธิภาพ ในการทำงานแบบ 24/7
ระบบนี้จะช่วยให้การดูแลผู้ป่วยฉุกเฉินมีประสิทธิภาพมากขึ้น ลดเวลาการรอคอย และเพิ่มความปลอดภัยของผู้ป่วยในสถานการณ์วิกฤต
เอกสารนี้จัดทำขึ้นเพื่อใช้ในการพัฒนาระบบห้องฉุกเฉินสำหรับโรงพยาบาลค่ายธนรัชน์ และต้องได้รับการอนุมัติจากผู้มีอำนาจก่อนนำไปใช้ในการพัฒนาระบบจริง