Entity Relationship Diagram (ERD)
ระบบห้องตรวจแพทย์ (Examination Room System)
โรงพยาบาลค่ายธนรัชน์
เอกสารเลขที่: SRS-1.2.3-ERD
เวอร์ชัน: 1.0
วันที่: 5 ตุลาคม 2568
ผู้จัดทำ: ทีมพัฒนาระบบ
ผู้อนุมัติ: ผู้อำนวยการโรงพยาบาลค่ายธนรัชน์
ภาพรวม Entity Relationship Diagram
เอกสารนี้แสดง ERD สำหรับระบบห้องตรวจแพทย์ที่ปรับปรุงใหม่ โดยใช้ Shared Tables ร่วมกับระบบซักประวัติ (1.2.2) เพื่อลดความซ้ำซ้อนของข้อมูลและเพิ่มประสิทธิภาพในการจัดการข้อมูล ระบบนี้เป็นส่วนสำคัญในการบันทึกและจัดการข้อมูลการตรวจรักษาผู้ป่วยในห้องตรวจ การบันทึกผลการตรวจ การสั่งยา การสั่งตรวจ Lab/X-Ray และการนัดหมาย โดยเชื่อมโยงกับระบบอื่นๆ ผ่าน API Integration
การจัดกลุ่มตาราง (Table Categories)
🎨 คำอธิบายสีในแผนภาพ:
- 🟢 สีเขียว (Core Tables): ตารางหลักเฉพาะระบบห้องตรวจแพทย์
EXAMINATION_SESSION- ข้อมูลเซสชันการตรวจรักษาหลัก-
PHYSICAL_EXAMINATION- ข้อมูลการตรวจร่างกาย -
🔵 สีน้ำเงิน (Shared Tables): ตารางที่ใช้ร่วมกันระหว่างระบบ
MEDICAL_DIAGNOSIS- การวินิจฉัยโรค (ร่วมกับ 1.2.2)MEDICAL_PROCEDURE- หัตถการทางการแพทย์ (ร่วมกับ 1.2.2)MEDICATION_ORDER- การสั่งจ่ายยา (ร่วมกับ 1.2.2)LAB_ORDER- การสั่งตรวจทางห้องปฏิบัติการ (ร่วมกับ 1.2.2)RADIOLOGY_ORDER- การสั่งตรวจรังสี (ร่วมกับ 1.2.2)PATIENT_REFERRAL- การส่งต่อผู้ป่วย (ร่วมกับ 1.2.2)PATIENT_CONSULTATION- การขอปรึกษา (ร่วมกับ 1.2.2)-
PATIENT_APPOINTMENT- การนัดหมาย (ร่วมกับ 1.2.2) -
🟠 สีส้ม (System Tables): ตารางจัดการระบบและการตรวจสอบ
DRUG_ALLERGY_ALERT- การเตือนการแพ้ยาDRUG_INTERACTION_CHECK- ตรวจสอบอันตกริยาของยาLAB_RESULT_VIEW- การแสดงผล LabXRAY_RESULT_VIEW- การแสดงผล X-RayEXAMINATION_NOTES- หมายเหตุผู้ป่วยEXAMINATION_CERTIFICATE- ใบรับรองแพทย์SYSTEM_INTEGRATION_LOG- บันทึกการเชื่อมโยงระบบ-
AUDIT_LOG- บันทึกการเปลี่ยนแปลง -
🟡 สีเหลือง (Master Data - Medical): ข้อมูลพื้นฐานทางการแพทย์
ICD_CODES- รหัส ICDTREATMENT_GROUP- กลุ่มค่ารักษาพยาบาลMEDICATION_TEMPLATES- Template การสั่งยา-
EXAMINATION_ROOM- ข้อมูลห้องตรวจ -
🟣 สีม่วง (Master Data - Reference): ข้อมูลอ้างอิงจากระบบอื่น
DOCTORS- ข้อมูลแพทย์DEPARTMENTS- ข้อมูลแผนกLAB_ITEMS- รายการ Lab-
XRAY_ITEMS- รายการ X-Ray -
🔴 สีแดง (Integration Points): จุดเชื่อมโยงกับระบบอื่น
- การเชื่อมโยงกับระบบเวชระเบียน (1.2.1)
- การเชื่อมโยงกับระบบซักประวัติ (1.2.2)
- การเชื่อมโยงกับระบบเภสัชกรรม (1.2.13)
- การเชื่อมโยงกับระบบตรวจสอบสิทธิ (1.2.15)
- การเชื่อมโยงกับระบบงานชันสูตร (1.2.7)
- การเชื่อมโยงกับระบบรังสีวิทยา (1.2.8)
- การเชื่อมโยงกับระบบการเงิน (1.2.14)
🔑 ประโยชน์ของ Shared Tables
- ลดความซ้ำซ้อน: ไม่ต้องมีตารางเหมือนกันในหลายระบบ
- Data Consistency: ข้อมูลมีความสอดคล้องกัน
- Easy Integration: ง่ายต่อการรวมข้อมูลระหว่างระบบ
- Reduced Maintenance: ลดการบำรุงรักษาโครงสร้างข้อมูล
- Better Performance: ประสิทธิภาพในการค้นหาและรายงาน
📝 กลไกการระบุแหล่งที่มา
ทุก Shared Table จะมี field สำคัญ:
- SourceSystem: ระบุว่าข้อมูลมาจากระบบไหน ('HISTORY_TAKING' หรือ 'EXAMINATION')
- SourceID: รหัสอ้างอิงไปยัง HistoryID หรือ ExaminationID ตามแหล่งที่มา
1. แผนภาพแบบง่าย (Simplified Diagram)
แผนภาพนี้แสดงความสัมพันธ์ระหว่างกลุ่มตารางหลักๆ ที่ปรับปรุงใหม่ด้วย Shared Tables และการเชื่อมโยงกับระบบอื่น
graph TB
subgraph "🔴 External Systems"
PATIENT_SYS["📋 ระบบเวชระเบียน<br/>(1.2.1)"]
HISTORY_SYS["📝 ระบบซักประวัติ<br/>(1.2.2)"]
PHARMACY_SYS["💊 ระบบเภสัชกรรม<br/>(1.2.13)"]
RIGHT_SYS["🎫 ระบบตรวจสอบสิทธิ<br/>(1.2.15)"]
LAB_SYS["🔬 ระบบงานชันสูตร<br/>(1.2.7)"]
XRAY_SYS["📡 ระบบรังสีวิทยา<br/>(1.2.8)"]
FINANCE_SYS["💰 ระบบการเงิน<br/>(1.2.14)"]
end
subgraph "🟢 Core Examination System"
EXAM_SESSION["🏥 เซสชันการตรวจรักษา<br/>EXAMINATION_SESSION"]
PHYSICAL_EXAM["� การตรวจร่างกาย<br/>PHYSICAL_EXAMINATION"]
end
subgraph "🔵 Shared Tables (ใช้ร่วมกับ 1.2.2)"
DIAGNOSIS["🩺 การวินิจฉัย<br/>MEDICAL_DIAGNOSIS"]
PROCEDURES["⚕️ หัตถการ<br/>MEDICAL_PROCEDURE"]
MEDICATION["💊 การสั่งยา<br/>MEDICATION_ORDER"]
LAB_ORDER["🔬 การสั่ง Lab<br/>LAB_ORDER"]
XRAY_ORDER["📡 การสั่ง X-Ray<br/>RADIOLOGY_ORDER"]
REFER["🏥 การส่งต่อ<br/>PATIENT_REFERRAL"]
CONSULT["�⚕️ การปรึกษา<br/>PATIENT_CONSULTATION"]
APPOINTMENT["📅 การนัดหมาย<br/>PATIENT_APPOINTMENT"]
end
subgraph "🟠 System Controls"
ALLERGY_ALERT["⚠️ เตือนการแพ้ยา<br/>DRUG_ALLERGY_ALERT"]
DRUG_CHECK["�️ ตรวจสอบ Drug<br/>DRUG_INTERACTION_CHECK"]
LAB_RESULT["📊 ผล Lab<br/>LAB_RESULT_VIEW"]
XRAY_RESULT["�️ ผล X-Ray<br/>XRAY_RESULT_VIEW"]
NOTES["📝 หมายเหตุ<br/>EXAMINATION_NOTES"]
CERTIFICATE["� ใบรับรอง<br/>EXAMINATION_CERTIFICATE"]
end
%% External connections
PATIENT_SYS -->|HN, VisitID| EXAM_SESSION
HISTORY_SYS -.->|SourceSystem='HISTORY_TAKING'| DIAGNOSIS
HISTORY_SYS -.->|SourceSystem='HISTORY_TAKING'| PROCEDURES
HISTORY_SYS -.->|SourceSystem='HISTORY_TAKING'| MEDICATION
HISTORY_SYS -.->|SourceSystem='HISTORY_TAKING'| LAB_ORDER
%% Examination system connections with SourceSystem='EXAMINATION'
EXAM_SESSION -->|SourceSystem='EXAMINATION'| DIAGNOSIS
EXAM_SESSION -->|SourceSystem='EXAMINATION'| PROCEDURES
EXAM_SESSION -->|SourceSystem='EXAMINATION'| MEDICATION
EXAM_SESSION -->|SourceSystem='EXAMINATION'| LAB_ORDER
EXAM_SESSION -->|SourceSystem='EXAMINATION'| XRAY_ORDER
EXAM_SESSION -->|SourceSystem='EXAMINATION'| REFER
EXAM_SESSION -->|SourceSystem='EXAMINATION'| CONSULT
EXAM_SESSION -->|SourceSystem='EXAMINATION'| APPOINTMENT
%% Core relationships
EXAM_SESSION --> PHYSICAL_EXAM
%% System controls
MEDICATION --> ALLERGY_ALERT
MEDICATION --> DRUG_CHECK
LAB_ORDER --> LAB_RESULT
XRAY_ORDER --> XRAY_RESULT
EXAM_SESSION --> NOTES
EXAM_SESSION --> CERTIFICATE
%% External integrations
MEDICATION -->|DrugCode| PHARMACY_SYS
LAB_ORDER -->|LabCode| LAB_SYS
XRAY_ORDER -->|XRayCode| XRAY_SYS
EXAM_SESSION -->|RightsVerificationID| RIGHT_SYS
DIAGNOSIS -->|FinanceServiceCode| FINANCE_SYS
%% Styling
classDef external fill:#ffebee,stroke:#c62828,stroke-width:2px
classDef core fill:#e8f5e8,stroke:#2e7d32,stroke-width:3px
classDef shared fill:#e3f2fd,stroke:#1565c0,stroke-width:3px
classDef system fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
class PATIENT_SYS,HISTORY_SYS,PHARMACY_SYS,RIGHT_SYS,LAB_SYS,XRAY_SYS,FINANCE_SYS external
class EXAM_SESSION,PHYSICAL_EXAM core
class DIAGNOSIS,PROCEDURES,MEDICATION,LAB_ORDER,XRAY_ORDER,REFER,CONSULT,APPOINTMENT shared
class ALLERGY_ALERT,DRUG_CHECK,LAB_RESULT,XRAY_RESULT,NOTES,CERTIFICATE system
2. แผนภาพรายละเอียด (Detailed ERD)
2.1 ตารางหลัก (Core Tables)
erDiagram
EXAMINATION_SESSION {
varchar ExaminationID PK "รหัสการตรวจรักษา"
varchar VisitID FK "รหัส Visit (อ้างอิงจาก 1.2.1)"
varchar HN FK "Hospital Number"
varchar HistoryID FK "รหัสการซักประวัติ (อ้างอิงจาก 1.2.2)"
varchar ExaminationRoomCode FK "รหัสห้องตรวจ"
varchar DoctorID FK "รหัสแพทย์ผู้ตรวจ"
datetime StartTime "เวลาเริ่มตรวจ"
datetime EndTime "เวลาสิ้นสุดตรวจ"
varchar ExaminationStatus "สถานะการตรวจ"
ntext ChiefComplaint "อาการสำคัญ (CC)"
varchar IllnessDuration "เป็นมากี่วันแล้ว"
bit IsPregnant "กำลังตั้งครรภ์"
bit IsBreastfeeding "กำลังให้นมบุตร"
varchar RightsVerificationID FK "รหัสการยืนยันสิทธิ (อ้างอิงจาก 1.2.15)"
varchar FinanceReferenceID FK "รหัสอ้างอิงระบบการเงิน (1.2.14)"
datetime CreatedDate "วันที่บันทึก"
varchar CreatedBy "ผู้บันทึก"
datetime CompletedDate "วันที่เสร็จสิ้นการตรวจ"
ntext Notes "หมายเหตุเพิ่มเติม"
}
PHYSICAL_EXAMINATION {
varchar PhysicalExamID PK "รหัสการตรวจร่างกาย"
varchar ExaminationID FK "รหัสการตรวจรักษา"
ntext GeneralAppearance "ลักษณะทั่วไป/ความรู้สึกตัว (GA)"
ntext HEENT "การตรวจศีรษะ ตา หู คอ จมูก"
ntext ChestHeart "การตรวจหัวใจและทรวงอก"
ntext Abdomen "การตรวจช่องท้อง"
ntext PelvicExam "การตรวจภายใน (PV)"
ntext RectalExam "การตรวจทางทวารหนัก (PR)"
ntext Genitalia "การตรวจอวัยวะสืบพันธุ์"
ntext Neurological "การตรวจระบบประสาท"
ntext Extremities "การเคลื่อนไหวร่างกาย/การตรวจประเมินรยางค์"
ntext PhysicalExamText "บันทึกการตรวจร่างกาย (PE Text)"
varchar DrawingImagePath "path รูปวาด"
varchar PhotoImagePath "path รูปถ่าย"
datetime ExaminationDate "วันที่ตรวจ"
varchar ExaminedBy "ผู้ตรวจ"
}
MEDICAL_DIAGNOSIS {
varchar DiagnosisID PK "รหัสการวินิจฉัย"
varchar SourceSystem "ระบบที่สร้าง (HISTORY_TAKING/EXAMINATION)"
varchar SourceID FK "รหัสอ้างอิงต้นทาง (HistoryID หรือ ExaminationID)"
varchar VisitID FK "รหัส Visit"
varchar HN FK "Hospital Number"
varchar ICDCode "รหัส ICD (WHO)"
varchar ICDCodeThai "รหัส ICD ไทย"
nvarchar DiseaseName "ชื่อโรค"
nvarchar DiseaseNameEng "ชื่อโรค (อังกฤษ)"
varchar DiagnosisType "ประเภทการวินิจฉัย (PRIMARY/SECONDARY/PROVISIONAL)"
varchar CertaintyLevel "ระดับความแน่นอน (CONFIRMED/SUSPECTED/RULE_OUT)"
varchar OnsetType "ลักษณะการเกิด (ACUTE/CHRONIC/SUBACUTE)"
ntext DiagnosisText "การวินิจฉัยแบบข้อความ (Diag Text)"
varchar TreatmentGroupCode FK "รหัสกลุ่มค่ารักษาพยาบาล"
varchar DRGCode "รหัส DRG"
decimal DRGWeight "น้ำหนัก DRG"
varchar ComplicationCode "รหัสภาวะแทรกซ้อน"
bit IsFromTemplate "มาจาก Template"
bit IsFromReDiag "มาจาก Re-diag"
varchar TemplateID "รหัส Template"
varchar OriginalDiagnosisID "รหัสการวินิจฉัยต้นฉบับ (สำหรับ Re-diag)"
datetime DiagnosisDate "วันที่วินิจฉัย"
varchar DiagnosedBy "แพทย์ผู้วินิจฉัย"
datetime CreatedDate "วันที่บันทึก"
varchar CreatedBy "ผู้บันทึก"
varchar FinanceServiceCode "รหัสบริการสำหรับการคิดเงิน"
}
MEDICAL_PROCEDURE {
varchar ProcedureID PK "รหัสหัตถการ"
varchar SourceSystem "ระบบที่สร้าง (HISTORY_TAKING/EXAMINATION)"
varchar SourceID FK "รหัสอ้างอิงต้นทาง (HistoryID หรือ ExaminationID)"
varchar VisitID FK "รหัส Visit"
varchar HN FK "Hospital Number"
varchar ICDProcedureCode "รหัสหัตถการ ICD (WHO)"
nvarchar ProcedureName "ชื่อหัตถการ"
nvarchar ProcedureNameEng "ชื่อหัตถการ (อังกฤษ)"
varchar TreatmentGroupCode FK "รหัสกลุ่มค่ารักษาพยาบาล"
varchar PerformerID FK "รหัสแพทย์/เจ้าหน้าที่ผู้ทำ"
nvarchar PerformerName "ชื่อผู้ทำหัตถการ"
datetime StartTime "เวลาเริ่ม"
datetime EndTime "เวลาสิ้นสุด"
int Duration "ระยะเวลา (นาที)"
nvarchar ProcedureLocation "สถานที่ทำหัตถการ"
ntext ProcedureNotes "หมายเหตุหัตถการ"
ntext Complications "ภาวะแทรกซ้อน"
datetime ProcedureDate "วันที่ทำหัตถการ"
datetime CreatedDate "วันที่บันทึก"
varchar CreatedBy "ผู้บันทึก"
varchar FinanceServiceCode "รหัสบริการสำหรับการคิดเงิน"
}
%% Relationships
EXAMINATION_SESSION ||--o{ PHYSICAL_EXAMINATION : "has"
EXAMINATION_SESSION ||--o{ MEDICAL_DIAGNOSIS : "SourceSystem='EXAMINATION'"
EXAMINATION_SESSION ||--o{ MEDICAL_PROCEDURE : "SourceSystem='EXAMINATION'"
2.2 ตารางการสั่งยาและตรวจสอบ (Medication & Drug Check Tables)
erDiagram
MEDICATION_ORDER {
varchar MedicationOrderID PK "รหัสการสั่งยา"
varchar SourceSystem "ระบบที่สร้าง (HISTORY_TAKING/EXAMINATION)"
varchar SourceID FK "รหัสอ้างอิงต้นทาง (HistoryID หรือ ExaminationID)"
varchar VisitID FK "รหัส Visit"
varchar HN FK "Hospital Number"
varchar DrugCode FK "รหัสยา (อ้างอิงจาก ระบบเภสัชกรรม 1.2.13)"
nvarchar DrugName "ชื่อยา"
nvarchar GenericName "ชื่อสามัญยา"
varchar Strength "ความแรง"
varchar DosageForm "รูปแบบยา"
decimal Quantity "จำนวน"
varchar Unit "หน่วย"
varchar Frequency "ความถี่การใช้"
int Duration "จำนวนวันใช้ยา"
ntext Instructions "วิธีการใช้"
varchar Route "วิธีให้ยา"
bit IsFromTemplate "มาจาก Template"
varchar TemplateID "รหัส Template"
bit IsFromReMed "มาจาก RE-MED"
varchar OriginalMedicationID "รหัสการสั่งยาต้นฉบับ (สำหรับ RE-MED)"
bit IsChronicDisease "ยาโรคเรื้อรัง"
decimal TotalAmount "จำนวนรวม (คำนวณจากวันใช้)"
datetime OrderDate "วันที่สั่งยา"
varchar OrderedBy "แพทย์ผู้สั่งยา"
varchar PharmacyStatus "สถานะเภสัชกรรม (ORDERED/DISPENSED/CANCELLED)"
bit AllergyChecked "ตรวจสอบการแพ้ยาแล้ว"
bit DrugInteractionChecked "ตรวจสอบ Drug Interaction แล้ว"
varchar FinanceReferenceID FK "รหัสอ้างอิงระบบการเงิน (1.2.14)"
varchar FinanceServiceCode "รหัสบริการสำหรับการคิดเงิน"
}
DRUG_ALLERGY_ALERT {
varchar AllergyAlertID PK "รหัสการเตือนการแพ้ยา"
varchar MedicationOrderID FK "รหัสการสั่งยา"
varchar HN FK "รหัสผู้ป่วย"
varchar DrugCode "รหัสยาที่แพ้"
nvarchar DrugName "ชื่อยาที่แพ้"
varchar AllergyType "ประเภทการแพ้ (DRUG/FOOD/G6PD)"
ntext AllergySymptoms "อาการที่แพ้"
varchar SeverityLevel "ระดับความรุนแรง (MILD/MODERATE/SEVERE)"
varchar AlertStatus "สถานะการเตือน"
ntext OverrideReason "เหตุผลการข้ามการเตือน"
varchar OverriddenBy "ผู้ข้ามการเตือน"
datetime AlertDate "วันที่เตือน"
bit IsG6PDRelated "เกี่ยวข้องกับ G-6-PD"
}
DRUG_INTERACTION_CHECK {
varchar InteractionCheckID PK "รหัสการตรวจสอบอันตกริยา"
varchar ExaminationID FK "รหัสการตรวจรักษา"
varchar DrugCode1 "รหัสยาที่ 1"
varchar DrugCode2 "รหัสยาที่ 2"
nvarchar DrugName1 "ชื่อยาที่ 1"
nvarchar DrugName2 "ชื่อยาที่ 2"
varchar InteractionLevel "ระดับอันตกริยา"
ntext InteractionDescription "รายละเอียดอันตกริยา"
ntext ClinicalEffect "ผลทางคลินิก"
ntext RecommendedAction "คำแนะนำ"
datetime CheckDate "วันที่ตรวจสอบ"
varchar CheckedBy "ผู้ตรวจสอบ"
bit IsOverridden "ข้ามการเตือน"
ntext OverrideReason "เหตุผลการข้าม"
varchar OverriddenBy "ผู้ข้ามการเตือน"
}
%% Relationships
EXAMINATION_SESSION ||--o{ MEDICATION_ORDER : "SourceSystem='EXAMINATION'"
MEDICATION_ORDER ||--o{ DRUG_ALLERGY_ALERT : "checks"
EXAMINATION_SESSION ||--o{ DRUG_INTERACTION_CHECK : "validates"
2.3 ตารางการสั่งตรวจ Lab และ X-Ray (Laboratory & Radiology Orders)
erDiagram
LAB_ORDER {
varchar LabOrderID PK "รหัสการสั่ง Lab"
varchar SourceSystem "ระบบที่สร้าง (HISTORY_TAKING/EXAMINATION)"
varchar SourceID FK "รหัสอ้างอิงต้นทาง (HistoryID หรือ ExaminationID)"
varchar VisitID FK "รหัส Visit"
varchar HN FK "Hospital Number"
varchar LabCode FK "รหัสรายการ Lab (อ้างอิงจาก ระบบงานชันสูตร 1.2.7)"
nvarchar LabName "ชื่อรายการตรวจ"
varchar LabGroupCode "รหัสกลุ่มการตรวจ"
varchar OrderingDoctorID FK "รหัสแพทย์ผู้สั่ง"
varchar LabRoomCode FK "รหัสห้อง Lab"
varchar ResultNotifyRoom FK "ห้องที่ต้องการให้เตือนผล"
varchar UrgencyLevel "ความเร่งด่วน (ROUTINE/URGENT/STAT)"
varchar SpecimenType "ประเภทสิ่งส่งตรวจ"
ntext ClinicalInfo "ข้อมูลทางคลินิก"
bit IsAdvanceOrder "การสั่งล่วงหน้า"
datetime AdvanceOrderDate "วันที่สั่งล่วงหน้า"
datetime ExpectedCollectionDate "วันที่คาดว่าจะเก็บสิ่งส่งตรวจ"
datetime CollectionDate "วันที่เก็บสิ่งส่งตรวจ"
varchar CollectedBy "ผู้เก็บสิ่งส่งตรวจ"
datetime OrderDate "วันที่สั่ง"
varchar OrderedBy "ผู้สั่ง"
varchar LabStatus "สถานะ Lab (ORDERED/COLLECTED/COMPLETED/CANCELLED)"
datetime ResultAvailableDate "วันที่มีผลตรวจ"
bit NotificationSent "ส่งการแจ้งเตือนแล้ว"
varchar FinanceServiceCode "รหัสบริการสำหรับการคิดเงิน"
}
RADIOLOGY_ORDER {
varchar RadiologyOrderID PK "รหัสการสั่ง X-Ray"
varchar SourceSystem "ระบบที่สร้าง (HISTORY_TAKING/EXAMINATION)"
varchar SourceID FK "รหัสอ้างอิงต้นทาง (HistoryID หรือ ExaminationID)"
varchar VisitID FK "รหัส Visit"
varchar HN FK "Hospital Number"
varchar XRayCode FK "รหัสรายการ X-Ray (อ้างอิงจาก ระบบรังสีวิทยา 1.2.8)"
nvarchar XRayName "ชื่อรายการตรวจ"
varchar XRayGroupCode "รหัสกลุ่มการตรวจ"
varchar OrderingDoctorID FK "รหัสแพทย์ผู้สั่ง"
varchar BodyPart "ส่วนของร่างกายที่ตรวจ"
varchar Position "ท่า"
varchar Side "ด้าน"
varchar XRayRoomCode FK "ห้องตรวจ (กรณีมีหลายห้อง)"
varchar PatientCondition "สภาพผู้ป่วย"
varchar UrgencyLevel "ความเร่งด่วน (ROUTINE/URGENT/STAT)"
ntext ClinicalInfo "ข้อมูลทางคลินิก (Clinical Information)"
ntext ClinicalDiagnosis "การวินิจฉัยทางคลินิก (Clinical Diagnosis)"
bit IsAdvanceOrder "การสั่งล่วงหน้า"
datetime AdvanceOrderDate "วันที่สั่งล่วงหน้า"
datetime ExpectedExamDate "วันที่คาดว่าจะตรวจ"
datetime OrderDate "วันที่สั่ง"
varchar OrderedBy "ผู้สั่ง"
varchar RadiologyStatus "สถานะ X-Ray (ORDERED/COMPLETED/CANCELLED)"
datetime ResultAvailableDate "วันที่มีผลตรวจ"
bit NotificationSent "ส่งการแจ้งเตือนแล้ว"
ntext OrderNotes "หมายเหตุ"
varchar FinanceServiceCode "รหัสบริการสำหรับการคิดเงิน"
}
%% Relationships
EXAMINATION_SESSION ||--o{ LAB_ORDER : "SourceSystem='EXAMINATION'"
EXAMINATION_SESSION ||--o{ RADIOLOGY_ORDER : "SourceSystem='EXAMINATION'"
2.4 ตารางการส่งต่อ การปรึกษา และการนัดหมาย (Referral, Consultation & Appointment Tables)
erDiagram
PATIENT_REFERRAL {
varchar ReferralID PK "รหัสการส่งต่อ"
varchar SourceSystem "ระบบที่สร้าง (HISTORY_TAKING/EXAMINATION)"
varchar SourceID FK "รหัสอ้างอิงต้นทาง (HistoryID หรือ ExaminationID)"
varchar VisitID FK "รหัส Visit"
varchar HN FK "Hospital Number"
varchar ReferToHospital "โรงพยาบาลปลายทาง"
varchar ReferToDepartment "แผนกปลายทาง"
varchar ReferToDoctor "แพทย์ปลายทาง"
ntext ReferReason "เหตุผลการส่งต่อ"
ntext ClinicalSummary "สรุปทางคลินิก"
varchar UrgencyLevel "ความเร่งด่วน (ROUTINE/URGENT/EMERGENCY)"
datetime ReferDate "วันที่ส่งต่อ"
varchar ReferredBy "แพทย์ผู้ส่งต่อ"
varchar ReferStatus "สถานะการส่งต่อ (PENDING/ACCEPTED/REJECTED/COMPLETED)"
datetime ExpectedAppointmentDate "วันนัดคาดหมาย"
varchar TransportMethod "วิธีการเดินทาง"
bit RequiresAmbulance "ต้องการรถพยาบาล"
datetime CreatedDate "วันที่สร้าง"
varchar CreatedBy "ผู้สร้าง"
varchar FinanceServiceCode "รหัสบริการสำหรับการคิดเงิน"
}
PATIENT_CONSULTATION {
varchar ConsultationID PK "รหัสการปรึกษา"
varchar SourceSystem "ระบบที่สร้าง (HISTORY_TAKING/EXAMINATION)"
varchar SourceID FK "รหัสอ้างอิงต้นทาง (HistoryID หรือ ExaminationID)"
varchar VisitID FK "รหัส Visit"
varchar HN FK "Hospital Number"
varchar ConsultToDepartment "แผนกที่ปรึกษา"
varchar ConsultToDoctor "แพทย์ที่ปรึกษา"
ntext ConsultQuestion "คำถามการปรึกษา"
varchar UrgencyLevel "ความเร่งด่วน (ROUTINE/URGENT/EMERGENCY)"
datetime RequestDate "วันที่ขอปรึกษา"
varchar RequestedBy "แพทย์ผู้ขอปรึกษา"
varchar ConsultStatus "สถานะการปรึกษา (PENDING/ANSWERED/COMPLETED)"
ntext ConsultAnswer "คำตอบจากผู้ให้คำปรึกษา"
datetime AnswerDate "วันที่ตอบ"
varchar AnsweredBy "ผู้ให้คำปรึกษา"
bit IsCompleted "เสร็จสิ้นการปรึกษา"
datetime CreatedDate "วันที่สร้าง"
varchar CreatedBy "ผู้สร้าง"
}
PATIENT_APPOINTMENT {
varchar AppointmentID PK "รหัสการนัดหมาย"
varchar SourceSystem "ระบบที่สร้าง (HISTORY_TAKING/EXAMINATION)"
varchar SourceID FK "รหัสอ้างอิงต้นทาง (HistoryID หรือ ExaminationID)"
varchar VisitID FK "รหัส Visit"
varchar HN FK "Hospital Number"
varchar AppointmentType "ประเภทการนัด (FOLLOW_UP/CHECK_UP/TREATMENT)"
datetime AppointmentDate "วันที่นัด"
varchar AppointmentTime "เวลานัด"
varchar DepartmentCode FK "รหัสแผนกที่นัด"
varchar DoctorID FK "รหัสแพทย์ที่นัด"
varchar RoomCode "ห้องที่นัด"
ntext AppointmentReason "เหตุผลการนัด"
ntext PatientInstructions "การปฏิบัติตัวสำหรับผู้ป่วย"
ntext SpecialInstructions "คำแนะนำพิเศษ"
varchar AppointmentMethod "วิธีการนัด (วัน/สัปดาห์/เดือน)"
int AppointmentInterval "ช่วงการนัด"
varchar AppointmentStatus "สถานะการนัด (SCHEDULED/CONFIRMED/CANCELLED/COMPLETED)"
bit IsHolidayWarning "เตือนวันหยุด"
bit IsMultipleDepartment "นัดหลายแผนก"
bit IsAdvanceLabOrder "สั่ง Lab ล่วงหน้า"
bit IsAdvanceXrayOrder "สั่ง X-Ray ล่วงหน้า"
bit IsTemplate "เป็น Template (เช่น นัดรับยา/ฉีดยา)"
varchar TemplateID "รหัส Template"
datetime CreatedDate "วันที่สร้างนัด"
varchar CreatedBy "ผู้สร้างนัด"
varchar Language "ภาษาใบนัด (TH/EN)"
}
%% Relationships
EXAMINATION_SESSION ||--o{ PATIENT_REFERRAL : "SourceSystem='EXAMINATION'"
EXAMINATION_SESSION ||--o{ PATIENT_CONSULTATION : "SourceSystem='EXAMINATION'"
EXAMINATION_SESSION ||--o{ PATIENT_APPOINTMENT : "SourceSystem='EXAMINATION'"
2.5 ตารางจัดการระบบและใบรับรอง (System Management & Certificate Tables)
erDiagram
EXAMINATION_NOTES {
varchar ExamNoteID PK "รหัสหมายเหตุการตรวจ"
varchar ExaminationID FK "รหัสการตรวจรักษา"
varchar NoteType "ประเภทหมายเหตุ"
ntext NoteContent "เนื้อหาหมายเหตุ"
varchar CreatedBy "ผู้สร้างหมายเหตุ"
datetime CreatedDate "วันที่สร้าง"
varchar UpdatedBy "ผู้แก้ไขล่าสุด"
datetime UpdatedDate "วันที่แก้ไขล่าสุด"
bit IsPrivate "หมายเหตุส่วนตัว"
bit IsActive "ใช้งานอยู่"
}
EXAMINATION_CERTIFICATE {
varchar CertificateID PK "รหัสใบรับรองแพทย์"
varchar ExaminationID FK "รหัสการตรวจรักษา"
varchar CertificateType "ประเภทใบรับรอง"
ntext CertificateContent "เนื้อหาใบรับรอง"
varchar Language "ภาษา (TH/EN)"
datetime IssueDate "วันที่ออกใบรับรอง"
varchar IssuedBy "แพทย์ผู้ออกใบรับรอง"
int ValidDays "จำนวนวันที่ใช้ได้"
datetime ExpiryDate "วันหมดอายุ"
varchar SerialNumber "เลขที่ใบรับรอง"
bit IsPrinted "พิมพ์แล้ว"
datetime PrintedDate "วันที่พิมพ์"
varchar PrintedBy "ผู้พิมพ์"
varchar TemplateUsed "Template ที่ใช้"
}
SYSTEM_INTEGRATION_LOG {
varchar LogID PK "รหัส Log"
varchar ExaminationID FK "รหัสการตรวจรักษา"
varchar IntegrationType "ประเภทการเชื่อมโยง"
varchar ExternalSystem "ระบบภายนอก"
varchar OperationType "ประเภทการดำเนินการ"
ntext RequestData "ข้อมูลที่ส่งไป"
ntext ResponseData "ข้อมูลที่ได้รับกลับ"
varchar ResponseStatus "สถานะการตอบกลับ"
datetime RequestTime "เวลาที่ส่งคำขอ"
datetime ResponseTime "เวลาที่ได้รับตอบกลับ"
int ResponseTimeMs "เวลาตอบสนอง (มิลลิวินาที)"
ntext ErrorMessage "ข้อความข้อผิดพลาด"
}
AUDIT_LOG {
varchar AuditID PK "รหัส Audit"
varchar ExaminationID FK "รหัสการตรวจรักษา"
varchar TableName "ชื่อตาราง"
varchar OperationType "ประเภทการดำเนินการ"
ntext OldValue "ค่าเดิม"
ntext NewValue "ค่าใหม่"
varchar ChangedBy "ผู้เปลี่ยนแปลง"
datetime ChangedDate "วันที่เปลี่ยนแปลง"
varchar IPAddress "IP Address"
varchar UserAgent "User Agent"
ntext ChangeReason "เหตุผลการเปลี่ยนแปลง"
}
%% Relationships
EXAMINATION_SESSION ||--o{ EXAMINATION_NOTES : "has notes"
EXAMINATION_SESSION ||--o{ EXAMINATION_CERTIFICATE : "generates"
EXAMINATION_SESSION ||--o{ SYSTEM_INTEGRATION_LOG : "logs"
EXAMINATION_SESSION ||--o{ AUDIT_LOG : "audits"
3. ตาราง Master Data และการเชื่อมโยง
3.1 ตาราง Master Data ทางการแพทย์
erDiagram
ICD_CODES {
varchar ICDCode PK "รหัส ICD"
varchar ICDVersion "เวอร์ชัน ICD (ICD-10, ICD-11)"
nvarchar DiseaseName "ชื่อโรค"
nvarchar DiseaseNameEng "ชื่อโรค (อังกฤษ)"
nvarchar DiseaseNameThai "ชื่อโรค (ไทย)"
varchar CategoryCode "รหัสหมวด"
nvarchar CategoryName "ชื่อหมวด"
varchar DiagnosisType "ประเภทการวินิจฉัย"
bit IsActive "ใช้งานอยู่"
datetime EffectiveDate "วันที่มีผล"
datetime ExpiryDate "วันหมดอายุ"
bit IsFrequentlyUsed "ใช้บ่อย"
varchar CreatedBy "ผู้สร้าง"
datetime CreatedDate "วันที่สร้าง"
}
TREATMENT_GROUP {
varchar TreatmentGroupCode PK "รหัสกลุ่มค่ารักษาพยาบาล"
nvarchar TreatmentGroupName "ชื่อกลุ่มค่ารักษาพยาบาล"
nvarchar Description "คำอธิบาย"
decimal ServiceCharge "ค่าบริการ"
varchar ChargeType "ประเภทการคิดค่าบริการ"
bit IncludesConsultation "รวมค่าตรวจ"
bit IncludesProcedure "รวมค่าหัตถการ"
bit IsActive "ใช้งานอยู่"
datetime EffectiveDate "วันที่มีผล"
varchar CreatedBy "ผู้สร้าง"
datetime CreatedDate "วันที่สร้าง"
}
MEDICATION_TEMPLATES {
varchar TemplateID PK "รหัส Template"
nvarchar TemplateName "ชื่อ Template"
varchar TemplateType "ประเภท Template"
varchar DiagnosisCode "รหัสการวินิจฉัยที่เกี่ยวข้อง"
varchar DoctorID "แพทย์เจ้าของ Template"
varchar DepartmentCode "แผนกที่ใช้"
ntext TemplateData "ข้อมูล Template (JSON)"
bit IsPublic "ใช้ร่วมกันได้"
bit IsActive "ใช้งานอยู่"
int UsageCount "จำนวนครั้งที่ใช้"
datetime LastUsedDate "วันที่ใช้ล่าสุด"
varchar CreatedBy "ผู้สร้าง"
datetime CreatedDate "วันที่สร้าง"
}
EXAMINATION_ROOM {
varchar RoomCode PK "รหัสห้องตรวจ"
nvarchar RoomName "ชื่อห้องตรวจ"
varchar RoomType "ประเภทห้องตรวจ"
varchar DepartmentCode FK "รหัสแผนก"
varchar BuildingCode "รหัสอาคาร"
varchar FloorNumber "ชั้น"
int Capacity "ความจุ"
ntext Equipment "อุปกรณ์ในห้อง"
bit IsActive "ใช้งานอยู่"
bit IsAvailable "พร้อมใช้งาน"
varchar Status "สถานะห้อง"
ntext Remarks "หมายเหตุ"
}
3.2 ตารางข้อมูลอ้างอิงจากระบบอื่น
erDiagram
DOCTORS {
varchar DoctorID PK "รหัสแพทย์ (อ้างอิงจากระบบ HRM)"
nvarchar DoctorName "ชื่อแพทย์"
varchar LicenseNumber "ใบอนุญาตประกอบวิชาชีพ"
varchar Specialty "ความเชี่ยวชาญ"
varchar DepartmentCode FK "รหัสแผนก"
varchar Position "ตำแหน่ง"
bit IsActive "ปฏิบัติงานอยู่"
varchar Status "สถานะการทำงาน"
ntext Qualifications "คุณวุฒิ"
}
DEPARTMENTS {
varchar DepartmentCode PK "รหัสแผนก (อ้างอิงจากระบบ Organization)"
nvarchar DepartmentName "ชื่อแผนก"
varchar DepartmentType "ประเภทแผนก"
varchar ParentDepartmentCode "แผนกแม่"
varchar HeadDoctorID "หัวหน้าแผนก"
varchar Location "ที่ตั้ง"
bit IsActive "ใช้งานอยู่"
ntext Services "บริการที่ให้"
}
LAB_ITEMS {
varchar LabCode PK "รหัสรายการ Lab (อ้างอิงจาก 1.2.7)"
nvarchar LabName "ชื่อรายการตรวจ"
varchar LabGroupCode "รหัสกลุ่มการตรวจ"
varchar SpecimenType "ประเภทสิ่งส่งตรวจ"
varchar Method "วิธีการตรวจ"
decimal NormalRangeMin "ค่าปกติต่ำสุด"
decimal NormalRangeMax "ค่าปกติสูงสุด"
varchar Unit "หน่วย"
decimal Price "ราคา"
int ReportDays "จำนวนวันที่มีผล"
bit IsActive "ใช้งานอยู่"
}
XRAY_ITEMS {
varchar XrayCode PK "รหัสรายการ X-Ray (อ้างอิงจาก 1.2.8)"
nvarchar XrayName "ชื่อรายการตรวจ"
varchar XrayGroupCode "รหัสกลุ่มการตรวจ"
varchar BodyPart "ส่วนของร่างกาย"
varchar Technique "เทคนิคการตรวจ"
decimal Price "ราคา"
int ReportDays "จำนวนวันที่มีผล"
bit RequiresContrast "ต้องใช้สารทึบแสง"
ntext PreparationInstructions "คำแนะนำการเตรียมตัว"
bit IsActive "ใช้งานอยู่"
}
4. การเชื่อมโยงกับระบบอื่น (System Integration)
4.1 แผนภาพการเชื่อมโยงระบบ
graph TB
subgraph "🟢 ระบบห้องตรวจแพทย์ (1.2.3)"
EXAM[EXAMINATION_SESSION]
PHYS[PHYSICAL_EXAMINATION]
DIAG[EXAMINATION_DIAGNOSIS]
PROC[EXAMINATION_PROCEDURE]
MED[EXAMINATION_MEDICATION]
LAB[EXAMINATION_LAB_ORDER]
XRAY[EXAMINATION_XRAY_ORDER]
REF[EXAMINATION_REFER]
CONS[EXAMINATION_CONSULT]
APPT[EXAMINATION_APPOINTMENT]
end
subgraph "🔴 ระบบเวชระเบียน (1.2.1)"
PATIENT_EXT[PATIENT]
VISIT_EXT[VISIT]
end
subgraph "🔴 ระบบซักประวัติ (1.2.2)"
HISTORY_EXT[HISTORY_TAKING]
VITAL_EXT[VITAL_SIGNS]
end
subgraph "🔴 ระบบเภสัชกรรม (1.2.13)"
PHARMACY_EXT[DRUG_MASTER]
DRUG_INT_EXT[DRUG_INTERACTION]
end
subgraph "🔴 ระบบตรวจสอบสิทธิ (1.2.15)"
RIGHT_CHECK[RIGHTSVERIFICATION]
end
subgraph "🔴 ระบบงานชันสูตร (1.2.7)"
LAB_EXT[LAB_MASTER]
LAB_RESULT[LAB_RESULTS]
end
subgraph "🔴 ระบบรังสีวิทยา (1.2.8)"
XRAY_EXT[XRAY_MASTER]
XRAY_RESULT[XRAY_RESULTS]
end
subgraph "🔴 ระบบการเงิน (1.2.14)"
FINANCE_EXT[BILLING_TRANSACTION]
end
%% API Integration Lines
PATIENT_EXT -->|HN| EXAM
VISIT_EXT -->|VisitID| EXAM
HISTORY_EXT -->|HistoryID| EXAM
VITAL_EXT -->|VitalSignsID| PHYS
RIGHT_CHECK -->|RightsVerificationID| EXAM
MED -->|DrugCode| PHARMACY_EXT
MED -->|Drug Interaction Check| DRUG_INT_EXT
LAB -->|LabCode| LAB_EXT
LAB_RESULT -->|Lab Results| LAB
XRAY -->|XrayCode| XRAY_EXT
XRAY_RESULT -->|X-Ray Results| XRAY
EXAM -->|FinanceReferenceID| FINANCE_EXT
DIAG -->|FinanceServiceCode| FINANCE_EXT
PROC -->|FinanceServiceCode| FINANCE_EXT
MED -->|FinanceServiceCode| FINANCE_EXT
LAB -->|FinanceServiceCode| FINANCE_EXT
XRAY -->|FinanceServiceCode| FINANCE_EXT
%% Internal Relationships
EXAM --> PHYS
EXAM --> DIAG
EXAM --> PROC
EXAM --> MED
EXAM --> LAB
EXAM --> XRAY
EXAM --> REF
EXAM --> CONS
EXAM --> APPT
%% Styling
classDef core fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef externalSystem fill:#ffebee,stroke:#c62828,stroke-width:2px
class EXAM,PHYS,DIAG,PROC,MED,LAB,XRAY,REF,CONS,APPT core
class PATIENT_EXT,VISIT_EXT,HISTORY_EXT,VITAL_EXT,PHARMACY_EXT,DRUG_INT_EXT,RIGHT_CHECK,LAB_EXT,LAB_RESULT,XRAY_EXT,XRAY_RESULT,FINANCE_EXT externalSystem
4.2 API Integration Points
🔗 การเชื่อมโยงข้อมูลเข้า (Input Integration):
- HN และ VisitID จากระบบเวชระเบียน (1.2.1)
- HistoryID และ VitalSignsID จากระบบซักประวัติ (1.2.2)
- RightsVerificationID จากระบบตรวจสอบสิทธิ (1.2.15)
- ข้อมูล Master Data ยาจากระบบเภสัชกรรม (1.2.13)
- ข้อมูล Master Data Lab จากระบบงานชันสูตร (1.2.7)
- ข้อมูล Master Data X-Ray จากระบบรังสีวิทยา (1.2.8)
🔗 การเชื่อมโยงข้อมูลออก (Output Integration): - การสั่งยาไปยังระบบเภสัชกรรม (1.2.13) - การสั่ง Lab ไปยังระบบงานชันสูตร (1.2.7) - การสั่ง X-Ray ไปยังระบบรังสีวิทยา (1.2.8) - ข้อมูลค่าบริการไปยังระบบการเงิน (1.2.14)
🔗 การเชื่อมโยงสองทาง (Bidirectional Integration): - ผล Lab จากระบบงานชันสูตร (1.2.7) - ผล X-Ray จากระบบรังสีวิทยา (1.2.8) - การตรวจสอบ Drug Interaction กับระบบเภสัชกรรม (1.2.13)
5. Database Relationships Summary
Primary Relationships (ความสัมพันธ์หลัก)
- EXAMINATION_SESSION เป็นศูนย์กลางของระบบ เชื่อมโยงกับ:
- PHYSICAL_EXAMINATION (1:1)
- EXAMINATION_DIAGNOSIS (1:N)
- EXAMINATION_PROCEDURE (1:N)
- EXAMINATION_MEDICATION (1:N)
- EXAMINATION_LAB_ORDER (1:N)
- EXAMINATION_XRAY_ORDER (1:N)
- EXAMINATION_REFER (1:N)
- EXAMINATION_CONSULT (1:N)
- EXAMINATION_APPOINTMENT (1:N)
- EXAMINATION_NOTES (1:N)
-
EXAMINATION_CERTIFICATE (1:N)
-
การสั่งยา (EXAMINATION_MEDICATION) เชื่อมโยงกับ:
- DRUG_ALLERGY_ALERT (1:N)
-
DRUG_INTERACTION_CHECK (1:N)
-
Master Data ให้ข้อมูลอ้างอิง:
- Medical: ICD_CODES, TREATMENT_GROUP, MEDICATION_TEMPLATES
- Reference: DOCTORS, DEPARTMENTS, LAB_ITEMS, XRAY_ITEMS
- Room: EXAMINATION_ROOM
Integration Points (จุดเชื่อมโยง)
- SYSTEM_INTEGRATION_LOG: บันทึกการติดต่อกับระบบอื่น
- HN, VisitID, HistoryID: เป็น Foreign Key หลักที่อ้างอิงจากระบบอื่น
- FinanceReferenceID, FinanceServiceCode: เชื่อมโยงการเงิน
6. ข้อมูลสำคัญและข้อจำกัด
6.1 ข้อมูลสำคัญ
- ✅ การบันทึกการตรวจรักษา: รองรับการตรวจรักษาครบถ้วนตาม TOR ข้อ 1.2.3.2
- ✅ การตรวจสอบ Drug Interaction: ตาม TOR ข้อ 1.2.3.2.6
- ✅ การจัดการ Template: รองรับ Template การสั่งยาและ Re-diag ตาม TOR ข้อ 1.2.3.2.5 และ 1.2.3.2.7
- ✅ การเชื่อมโยงระบบ: API Integration กับระบบอื่นๆ ครบถ้วน
- ✅ การ Audit และ Log: บันทึกการเปลี่ยนแปลงและการใช้งานระบบ
- ✅ การออกใบรับรองแพทย์: รองรับใบรับรองหลายประเภทและหลายภาษา ตาม TOR ข้อ 1.2.3.5
- ✅ การนัดหมาย: รองรับการนัดหลายรูปแบบและหลายแผนก ตาม TOR ข้อ 1.2.3.3
6.2 ข้อจำกัดและหมายเหตุ
- 🔸 Foreign Key Constraints: ตาราง Master Data จากระบบอื่นเป็น Reference เท่านั้น
- 🔸 Data Synchronization: ต้องมีกลไกซิงค์ข้อมูลกับระบบอื่นๆ เป็นระยะ
- 🔸 Template Management: Template ต้องได้รับการอนุมัติก่อนนำไปใช้งาน
- 🔸 Drug Interaction Database: ต้องมีการอัปเดตฐานข้อมูล Drug Interaction สม่ำเสมอ
- 🔸 Image Storage: รูปภาพการตรวจและรูปวาดต้องมีระบบจัดเก็บและ Backup ที่เหมาะสม
- 🔸 Certificate Management: ใบรับรองแพทย์ต้องมีระบบ Security และ Digital Signature
6.3 Performance Considerations
- สร้าง Index บน ExaminationID, HN, VisitID, DoctorID
- Partition ตาราง EXAMINATION_SESSION และ AUDIT_LOG ตามวันที่
- Archive ข้อมูลเก่าเป็น periodic
- Cache Master Data ที่ใช้บ่อย เช่น ICD_CODES, MEDICATION_TEMPLATES
6.4 Security Considerations
- Encrypt ข้อมูลที่ละเอียดอ่อน เช่น การตรวจร่างกาย, การวินิจฉัย
- Audit Log ทุกการเข้าถึงข้อมูลผู้ป่วย
- API Authentication ด้วย JWT Tokens
- Role-based Access Control สำหรับแพทย์และเจ้าหน้าที่
6.5 Integration Best Practices
- ใช้ Asynchronous API calls สำหรับ non-critical operations
- Implement Circuit Breaker pattern
- Monitor API performance ผ่าน SYSTEM_INTEGRATION_LOG
- Retry mechanism สำหรับ failed API calls
7. สรุปความสอดคล้องกับ TOR และ SRS
7.1 ความสอดคล้องกับ TOR
| TOR ข้อ | คำอธิบาย | ตารางที่รองรับ |
|---|---|---|
| 1.2.3.1.1 | การเชื่อมโยงข้อมูลการรักษากับรหัสหัตถการ ICD | EXAMINATION_PROCEDURE |
| 1.2.3.1.2 | การเชื่อมโยงข้อมูลการรักษากับรหัสโรค ICD | EXAMINATION_DIAGNOSIS |
| 1.2.3.1.3 | การกำหนดข้อมูลการรักษาตามกลุ่มค่ารักษาพยาบาล | TREATMENT_GROUP |
| 1.2.3.2.1 | การบันทึกข้อมูล Screen และ Chief Complaint | EXAMINATION_SESSION, PHYSICAL_EXAMINATION |
| 1.2.3.2.2 | การบันทึกข้อมูลการตรวจร่างกาย | PHYSICAL_EXAMINATION |
| 1.2.3.2.3 | การเรียกดูข้อมูลประวัติการตรวจย้อนหลัง | Integration กับระบบอื่น |
| 1.2.3.2.4 | การบันทึกข้อมูลการแพ้ยา | DRUG_ALLERGY_ALERT |
| 1.2.3.2.5 | การสั่งจ่ายยาด้วย RE-MED หรือ Template | EXAMINATION_MEDICATION, MEDICATION_TEMPLATES |
| 1.2.3.2.6 | การตรวจสอบรายการยาและ Drug Interaction | DRUG_INTERACTION_CHECK |
| 1.2.3.2.7 | การบันทึกรหัสโรค ICD และ Re-diag | EXAMINATION_DIAGNOSIS |
| 1.2.3.2.8 | การบันทึกรหัสหัตถการ ICD | EXAMINATION_PROCEDURE |
| 1.2.3.2.9-12 | การสั่งและแสดงผล Lab/X-Ray | EXAMINATION_LAB_ORDER, EXAMINATION_XRAY_ORDER |
| 1.2.3.2.13-15 | การ Refer และส่งต่อผู้ป่วย | EXAMINATION_REFER |
| 1.2.3.2.16-19 | การถ่ายภาพ, Note, นัดหมาย | PHYSICAL_EXAMINATION, EXAMINATION_NOTES, EXAMINATION_APPOINTMENT |
| 1.2.3.3 | การนัดหมาย | EXAMINATION_APPOINTMENT |
| 1.2.3.4 | การขอ Consult | EXAMINATION_CONSULT |
| 1.2.3.5 | การพิมพ์ใบรับรองแพทย์ | EXAMINATION_CERTIFICATE |
7.2 การครอบคลุม SRS
- ✅ Functional Requirements: ครอบคลุมทุกฟีเจอร์ที่ระบุใน SRS
- ✅ Non-Functional Requirements: รองรับ Performance, Security, Integration
- ✅ Data Requirements: ครอบคลุมข้อมูลที่จำเป็นทั้งหมด
- ✅ Interface Requirements: รองรับ API Integration ครบถ้วน
เอกสารนี้จัดทำขึ้นเพื่อใช้ในการพัฒนาระบบห้องตรวจแพทย์สำหรับโรงพยาบาลค่ายธนรัชน์ และต้องได้รับการอนุมัติจากผู้มีอำนาจก่อนนำไปใช้ในการพัฒนาระบบ