Data Flow Diagram (DFD)
ระบบห้องตรวจแพทย์ (Examination Room System)
เวอร์ชัน: 1.0
วันที่: 7 ตุลาคม 2568
สอดคล้องกับ: SRS ระบบห้องตรวจแพทย์ v1.0, TOR ระบบห้องตรวจแพทย์, ERD v1.0, และ Schema v1.0
สารบัญ
- ภาพรวมระบบ
- Context Diagram
- Level 0 DFD
- Level 1 DFD - การตรวจร่างกายและการรักษา
- Level 1 DFD - การจัดการนัดหมาย
- Level 1 DFD - การขอปรึกษา
- Level 1 DFD - การพิมพ์เอกสาร
- Data Dictionary
- API Integration Flow
- API Technical Specifications
1. ภาพรวมระบบ
ระบบห้องตรวจแพทย์ทำหน้าที่เป็น Clinical Examination Hub ที่จัดการการตรวจรักษาผู้ป่วยแบบละเอียดหลังจากได้รับการส่งต่อจากระบบซักประวัติ โดยใช้โครงสร้าง Shared Tables ร่วมกับระบบซักประวัติ (1.2.2) เพื่อลดความซ้ำซ้อนและเพิ่มประสิทธิภาพ
การไหลของข้อมูลหลัก:
- Input: ข้อมูลผู้ป่วยจากระบบเวชระเบียน (1.2.1), ข้อมูลประวัติจากระบบซักประวัติ (1.2.2), สัญญาณชีพ, ข้อมูลการตรวจร่างกาย, ภาพถ่าย, แผนภาพ, ข้อมูลสิทธิจากระบบตรวจสอบสิทธิ (1.2.15)
- Processing: การตรวจร่างกายแบบละเอียด (PE), การวินิจฉัยด้วยรหัส ICD (WHO และไทย), การสั่งจ่ายยาด้วย RE-MED และ Template, การตรวจสอบ Drug Interaction และการแพ้ยา, การสั่ง Lab/X-Ray, การจัดการภาพและแผนภาพ, การตรวจสอบโรคพิเศษ (G-6-PD), การส่งต่อผู้ป่วยแบบหลายรูปแบบ
- Output: เอกสารทางการแพทย์ครบถ้วน, ใบส่งต่อ (Refer), ใบรับรองแพทย์ (ภาษาไทยและอังกฤษ), OPD CARD, ใบสั่งยา, ใบนัดหมาย, หนังสือรับรองยานอกบัญชี, ภาพผลการตรวจ
- Integration: เชื่อมต่อกับ 8 ระบบหลักผ่าน API สำหรับการสั่งจ่ายยา, ตรวจ Lab/X-Ray, การเงิน, การส่งต่อผู้ป่วย, และการนัดหมาย
ฟีเจอร์หลักที่แตกต่างจากระบบซักประวัติ (ตาม TOR):
- การตรวจร่างกาย (Physical Examination) - GA, HEENT, Chest/Heart, Abdomen, PV, PR, Genitalia, Neurological, Extremities, PE Text
- การจัดการภาพและการวาดรูป - การถ่ายภาพผู้ป่วย, การวาดแผนภาพทางการแพทย์, การจัดเก็บไฟล์ตาม PDPA
- การแสดงผล Lab/X-Ray แบบเปรียบเทียบ - การแสดงผลแบบ Trend Graph, การเปรียบเทียบย้อนหลัง, การดูประวัติ 5 ปี
- การส่งต่อผู้ป่วยแบบหลายรูปแบบ - Refer โรงพยาบาลอื่น, ส่งต่อแผนกต่างๆ, ส่งผ่าตัด (ฉุกเฉิน/นัดหมาย)
- การตรวจสอบโรคพิเศษและความปลอดภัย - G-6-PD, การแพ้อาหาร, ผลข้างเคียงจากยา, Drug Interaction
- การจัดการ Template และ Re-functions - Template การตรวจ, RE-MED, Re-diag
- การคำนวณกลุ่มค่ารักษาพยาบาล - DRG, Treatment Group, การเชื่อมโยงระบบการเงิน
- การบันทึก Note และการติดตาม - หมายเหตุผู้ป่วย, การติดตามการรักษา
2. Context Diagram
graph TD
%% External Entities
DOCTOR["👨⚕️<br/>แพทย์"]
NURSE["👩⚕️<br/>พยาบาล"]
PATIENT["👥<br/>ผู้ป่วย"]
SPECIALIST["🩺<br/>แพทย์เฉพาะทาง"]
PHARMACIST["💊<br/>เภสัชกร"]
ADMIN["👨💼<br/>เจ้าหน้าที่<br/>ผู้ดูแลระบบ"]
%% External Systems
MRH["🏨<br/>ระบบเวชระเบียน<br/>(1.2.1)"]
HISTORY["📝<br/>ระบบซักประวัติ<br/>(1.2.2)"]
PHARMACY["💊<br/>ระบบเภสัชกรรม<br/>(1.2.13)"]
FINANCE["💰<br/>ระบบการเงิน<br/>(1.2.14)"]
RIGHTS["🎫<br/>ระบบตรวจสอบสิทธิ<br/>(1.2.15)"]
LAB["🔬<br/>ระบบงานชันสูตร<br/>(1.2.7)"]
XRAY["📡<br/>ระบบรังสีวิทยา<br/>(1.2.8)"]
SCHEDULE["📅<br/>ระบบนัดหมายและ<br/>ตารางเวรแพทย์<br/>(1.2.6)"]
INPATIENT["🏨<br/>ระบบผู้ป่วยใน<br/>(1.2.17)"]
SURGERY["⚕️<br/>ระบบห้องผ่าตัด<br/>และวิสัญญี<br/>(1.2.18)"]
NUTRITION["🍎<br/>ระบบโภชนาการ<br/>(1.2.20)"]
%% Central System
EXAM_SYSTEM["🩺<br/>ระบบห้องตรวจแพทย์<br/>(1.2.3)"]
%% Human Interactions
DOCTOR -->|"ข้อมูลการตรวจร่างกาย (PE), การวินิจฉัย<br/>การสั่งยาด้วย RE-MED และ Template<br/>การส่งต่อแบบหลายรูปแบบ"| EXAM_SYSTEM
EXAM_SYSTEM -->|"ผลการตรวจ, ใบรับรองแพทย์ (ไทย/อังกฤษ)<br/>OPD CARD, ใบสั่งยา, ใบนัดหมาย<br/>หนังสือรับรองยานอกบัญชี"| DOCTOR
NURSE -->|"สัญญาณชีพ, ข้อมูลผู้ป่วย<br/>การช่วยการตรวจร่างกาย"| EXAM_SYSTEM
EXAM_SYSTEM -->|"รายการงานที่ต้องดำเนินการ<br/>ใบสั่งยา, ใบนัดหมาย, ใบส่งต่อ"| NURSE
PATIENT -->|"อาการ, ประวัติเพิ่มเติม<br/>การยินยอมการรักษา, การถ่ายภาพ"| EXAM_SYSTEM
EXAM_SYSTEM -->|"ใบรับรองแพทย์ (ไทย/อังกฤษ), ใบสั่งยา<br/>ใบนัดหมาย, คำแนะนำการรักษา"| PATIENT
SPECIALIST -->|"คำตอบการ Consult<br/>คำแนะนำเฉพาะทาง"| EXAM_SYSTEM
EXAM_SYSTEM -->|"การขอ Consult, ข้อมูลผู้ป่วย<br/>คำถามทางคลินิก, ความเร่งด่วน"| SPECIALIST
PHARMACIST -->|"การตรวจสอบ Drug Interaction<br/>ข้อมูลการแพ้ยา, โรค G-6-PD"| EXAM_SYSTEM
EXAM_SYSTEM -->|"ใบสั่งยา, ข้อมูลโรคพิเศษ<br/>การแพ้ยา, ยาโรคเรื้อรัง"| PHARMACIST
%% System Integrations (Input to Examination System)
MRH -->|"HN, VisitID, ข้อมูลผู้ป่วยหลัก<br/>ข้อมูลการ Refer ระหว่างโรงพยาบาล"| EXAM_SYSTEM
HISTORY -->|"HistoryID, ข้อมูลประวัติการรักษา<br/>Vital Signs, Chief Complaint<br/>การส่งต่อผู้ป่วยมาตรวจ"| EXAM_SYSTEM
RIGHTS -->|"สถานะสิทธิ, ข้อมูลการรักษาที่คุ้มครอง<br/>ข้อจำกัดการรักษา"| EXAM_SYSTEM
LAB -->|"ผล Lab ปัจจุบัน, ประวัติการตรวจ 5 ปี<br/>Lab Items, Normal Range, สถานะการตรวจ"| EXAM_SYSTEM
XRAY -->|"ผล X-Ray, รูปภาพ DICOM<br/>รายงานการอ่านฟิล์ม, ประวัติการตรวจ"| EXAM_SYSTEM
SCHEDULE -->|"ตารางเวรแพทย์, ช่วงเวลาว่าง<br/>ข้อมูลการนัดหมาย, วันหยุดต่างๆ"| EXAM_SYSTEM
%% System Integrations (Output from Examination System)
EXAM_SYSTEM -->|"ใบสั่งยาด้วย RE-MED, Template<br/>การตรวจสอบ Drug Interaction<br/>โรคพิเศษ (G-6-PD), ยาโรคเรื้อรัง"| PHARMACY
EXAM_SYSTEM -->|"การวินิจฉัยด้วยรหัส ICD (WHO และไทย)<br/>หัตถการ, กลุ่มค่ารักษาพยาบาล<br/>DRG Code, Treatment Group"| FINANCE
EXAM_SYSTEM -->|"คำสั่ง Lab, ข้อมูลผู้ป่วย<br/>ความเร่งด่วน, ข้อมูลคลินิก"| LAB
EXAM_SYSTEM -->|"คำสั่ง X-Ray, ข้อมูลคลินิก<br/>ประเภทการตรวจ, ความเร่งด่วน"| XRAY
EXAM_SYSTEM -->|"การนัดหมายแบบยืดหยุ่น (วัน/สัปดาห์/เดือน)<br/>การจองแพทย์, หลายแผนกในครั้งเดียว<br/>การสั่ง Lab/X-Ray ล่วงหน้า"| SCHEDULE
EXAM_SYSTEM -->|"การ Admit ผู้ป่วย, ข้อมูลการรักษา<br/>ข้อมูลการแพ้อาหารสำหรับอาหารผู้ป่วย"| INPATIENT
EXAM_SYSTEM -->|"การส่งผ่าตัด (ฉุกเฉิน/นัดหมาย)<br/>ข้อมูลความเสี่ยง, การแพ้ยา<br/>ประเภทการผ่าตัด"| SURGERY
EXAM_SYSTEM -->|"ข้อมูลการแพ้อาหาร, ข้อจำกัดอาหาร<br/>โรคเบาหวาน, ความดันสูง"| NUTRITION
%% Bidirectional Integrations
EXAM_SYSTEM <-->|"การ Refer โรงพยาบาลอื่น<br/>ข้อมูลส่งต่อ, การตอบรับ"| MRH
%% Admin Functions
ADMIN -->|"การตั้งค่าระบบ, จัดการผู้ใช้<br/>Template การตรวจ, Master Data ICD<br/>กลุ่มค่ารักษาพยาบาล"| EXAM_SYSTEM
EXAM_SYSTEM -->|"รายงานการใช้งาน, Audit Log<br/>สถิติการตรวจรักษา, การใช้ Template"| ADMIN
%% Styling
style EXAM_SYSTEM fill:#e8f5e8,stroke:#2e7d32,stroke-width:4px
style DOCTOR fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style NURSE fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style PATIENT fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style SPECIALIST fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style PHARMACIST fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style ADMIN fill:#fafafa,stroke:#424242,stroke-width:2px
style MRH fill:#ffebee,stroke:#c62828,stroke-width:2px
style HISTORY fill:#ffebee,stroke:#c62828,stroke-width:2px
style PHARMACY fill:#ffebee,stroke:#c62828,stroke-width:2px
style FINANCE fill:#ffebee,stroke:#c62828,stroke-width:2px
style RIGHTS fill:#ffebee,stroke:#c62828,stroke-width:2px
style LAB fill:#ffebee,stroke:#c62828,stroke-width:2px
style XRAY fill:#ffebee,stroke:#c62828,stroke-width:2px
style SCHEDULE fill:#ffebee,stroke:#c62828,stroke-width:2px
style INPATIENT fill:#ffebee,stroke:#c62828,stroke-width:2px
style SURGERY fill:#fafafa,stroke:#424242,stroke-width:2px
style NUTRITION fill:#fafafa,stroke:#424242,stroke-width:2px
3. Level 0 DFD
graph TD
%% External Entities
DOCTOR["👨⚕️<br/>แพทย์"]
NURSE["👩⚕️<br/>พยาบาล"]
SPECIALIST["🩺<br/>แพทย์เฉพาะทาง"]
PHARMACIST["💊<br/>เภสัชกร"]
PATIENT["👥<br/>ผู้ป่วย"]
ADMIN["👨💼<br/>ผู้ดูแลระบบ"]
%% External Systems
HISTORY_SYSTEM["📝<br/>ระบบซักประวัติ<br/>1.2.2"]
RIGHTS_SYSTEM["🎫<br/>ระบบตรวจสอบสิทธิ<br/>1.2.15"]
PHARMACY_SYSTEM["💊<br/>ระบบเภสัชกรรม<br/>1.2.13"]
FINANCE_SYSTEM["💰<br/>ระบบการเงิน<br/>1.2.14"]
LAB_SYSTEM["🔬<br/>ระบบงานชันสูตร<br/>1.2.7"]
XRAY_SYSTEM["📡<br/>ระบบรังสีวิทยา<br/>1.2.8"]
APPOINTMENT_SYSTEM["📅<br/>ระบบนัดหมายและ<br/>ตารางเวรแพทย์<br/>1.2.6"]
INPATIENT_SYSTEM["🏨<br/>ระบบผู้ป่วยใน<br/>1.2.17"]
SURGERY_SYSTEM["⚕️<br/>ระบบห้องผ่าตัด<br/>และวิสัญญี<br/>1.2.18"]
NUTRITION_SYSTEM["🍎<br/>ระบบโภชนาการ<br/>1.2.20"]
%% Main Processes (ตาม TOR)
P1["1.0<br/>การจัดการข้อมูลพื้นฐาน<br/>(Master Data Management)<br/>TOR 1.2.3.1"]
P2["2.0<br/>การตรวจรักษา<br/>(Examination & Treatment)<br/>TOR 1.2.3.2"]
P3["3.0<br/>การจัดการนัดหมาย<br/>(Appointment Management)<br/>TOR 1.2.3.3"]
P4["4.0<br/>การขอปรึกษา<br/>(Consultation Request)<br/>TOR 1.2.3.4"]
P5["5.0<br/>การพิมพ์เอกสาร<br/>(Document Printing)<br/>TOR 1.2.3.5"]
%% Data Stores (Shared Tables ตาม Schema)
DS1["D1<br/>EXAMINATION_SESSION<br/>(ข้อมูลเซสชันการตรวจรักษา)"]
DS2["D2<br/>PHYSICAL_EXAMINATION<br/>(ข้อมูลการตรวจร่างกาย)"]
DS3["D3<br/>MEDICAL_DIAGNOSIS<br/>(การวินิจฉัยโรค - Shared)"]
DS4["D4<br/>MEDICAL_PROCEDURE<br/>(หัตถการทางการแพทย์ - Shared)"]
DS5["D5<br/>MEDICATION_ORDER<br/>(การสั่งจ่ายยา - Shared)"]
DS6["D6<br/>LAB_ORDER<br/>(การสั่ง Lab - Shared)"]
DS7["D7<br/>RADIOLOGY_ORDER<br/>(การสั่ง X-Ray - Shared)"]
DS8["D8<br/>PATIENT_APPOINTMENT<br/>(การนัดหมาย - Shared)"]
DS9["D9<br/>PATIENT_CONSULTATION<br/>(การปรึกษา - Shared)"]
DS10["D10<br/>PATIENT_REFERRAL<br/>(การส่งต่อ - Shared)"]
DS11["D11<br/>DRUG_ALLERGY_ALERT<br/>(การเตือนการแพ้ยา)"]
DS12["D12<br/>EXAMINATION_IMAGES<br/>(ภาพการตรวจและการวาดรูป)"]
DS13["D13<br/>SPECIAL_DISEASE_CHECK<br/>(การตรวจสอบโรคพิเศษ)"]
DS14["D14<br/>ICD_CODES<br/>(รหัส ICD และ Treatment Group)"]
DS15["D15<br/>EXAMINATION_TEMPLATE<br/>(Template การตรวจและการรักษา)"]
DS16["D16<br/>LAB_RESULT_VIEW<br/>(การแสดงผล Lab แบบเปรียบเทียบ)"]
DS17["D17<br/>XRAY_RESULT_VIEW<br/>(การแสดงผล X-Ray)"]
DS18["D18<br/>EXAMINATION_NOTES<br/>(หมายเหตุผู้ป่วย)"]
DS19["D19<br/>EXAMINATION_CERTIFICATE<br/>(ใบรับรองแพทย์)"]
%% Input flows to processes
DOCTOR -->|"ข้อมูล ICD Code<br/>กลุ่มค่ารักษา"| P1
ADMIN -->|"การตั้งค่า Master Data<br/>Template การตรวจ"| P1
DOCTOR -->|"การตรวจร่างกาย (PE)<br/>การวินิจฉัย, การสั่งยา"| P2
NURSE -->|"ช่วยการตรวจ<br/>บันทึกข้อมูล"| P2
PATIENT -->|"อาการเพิ่มเติม<br/>การถ่ายภาพ"| P2
HISTORY_SYSTEM -->|"ข้อมูลการซักประวัติ<br/>HistoryID, Vital Signs"| P2
RIGHTS_SYSTEM -->|"สถานะสิทธิ<br/>การตรวจสอบสิทธิ์"| P2
LAB_SYSTEM -->|"ผล Lab ปัจจุบัน<br/>ประวัติการตรวจ 5 ปี"| P2
XRAY_SYSTEM -->|"ผล X-Ray<br/>ภาพรังสี"| P2
DOCTOR -->|"ข้อมูลการนัดหมาย<br/>การนัดหลายแผนก"| P3
APPOINTMENT_SYSTEM -->|"ตารางเวรแพทย์<br/>วันหยุดต่างๆ"| P3
DOCTOR -->|"คำขอ Consult<br/>ความเร่งด่วน"| P4
SPECIALIST -->|"คำตอบ Consult<br/>คำแนะนำ"| P4
DOCTOR -->|"คำสั่งพิมพ์เอกสาร<br/>ประเภทเอกสาร"| P5
PATIENT -->|"ข้อมูลสำหรับใบรับรอง<br/>ประเภทการขอ"| P5
%% Process to Data Store flows
P1 -->|"บันทึก ICD Codes"| DS14
P1 -->|"สร้าง Template"| DS15
P2 -->|"บันทึกการตรวจรักษา"| DS1
P2 -->|"บันทึก Physical Exam"| DS2
P2 -->|"SourceSystem='EXAMINATION'"| DS3
P2 -->|"SourceSystem='EXAMINATION'"| DS4
P2 -->|"SourceSystem='EXAMINATION'"| DS5
P2 -->|"SourceSystem='EXAMINATION'"| DS6
P2 -->|"SourceSystem='EXAMINATION'"| DS7
P2 -->|"การเตือนการแพ้ยา"| DS11
P2 -->|"ภาพถ่ายและการวาด"| DS12
P2 -->|"ตรวจสอบ G-6-PD"| DS13
P2 -->|"หมายเหตุผู้ป่วย"| DS18
P3 -->|"SourceSystem='EXAMINATION'"| DS8
P4 -->|"SourceSystem='EXAMINATION'"| DS9
P4 -->|"SourceSystem='EXAMINATION'"| DS10
P5 -->|"สร้างใบรับรอง"| DS19
%% Data Store to Process flows
DS14 -->|"ICD Codes<br/>Treatment Groups"| P2
DS15 -->|"Template การตรวจ<br/>RE-MED, Re-diag"| P2
DS16 -->|"ผล Lab แบบเปรียบเทียบ<br/>Trend Graph"| P2
DS17 -->|"ผล X-Ray"| P2
DS1 -->|"ข้อมูลการตรวจ"| P3
DS1 -->|"ข้อมูลการตรวจ"| P4
DS1 -->|"ข้อมูลการตรวจ"| P5
DS2 -->|"ผลการตรวจร่างกาย"| P5
DS3 -->|"การวินิจฉัย"| P5
DS5 -->|"ข้อมูลยา"| P5
DS8 -->|"ข้อมูลนัดหมาย"| P5
%% Output flows from processes
P2 -->|"ใบสั่งยาด้วย RE-MED<br/>Drug Interaction Check"| PHARMACY_SYSTEM
P2 -->|"กลุ่มค่ารักษา<br/>DRG, Treatment Group"| FINANCE_SYSTEM
P2 -->|"คำสั่ง Lab<br/>ข้อมูลคลินิก"| LAB_SYSTEM
P2 -->|"คำสั่ง X-Ray<br/>ข้อมูลคลินิก"| XRAY_SYSTEM
P2 -->|"การ Admit ผู้ป่วย<br/>ข้อมูลการแพ้อาหาร"| INPATIENT_SYSTEM
P2 -->|"การส่งผ่าตัด<br/>ฉุกเฉิน/นัดหมาย"| SURGERY_SYSTEM
P2 -->|"ข้อมูลการแพ้อาหาร<br/>ข้อจำกัดอาหาร"| NUTRITION_SYSTEM
P3 -->|"การนัดหมาย<br/>สั่ง Lab/X-Ray ล่วงหน้า"| APPOINTMENT_SYSTEM
P4 -->|"คำถาม Consult"| SPECIALIST
P5 -->|"ใบรับรองแพทย์ (ไทย/อังกฤษ)<br/>OPD CARD, ใบสั่งยา<br/>ใบนัดหมาย, ใบส่งต่อ<br/>หนังสือรับรองยานอกบัญชี"| DOCTOR
P5 -->|"ใบรับรองแพทย์<br/>ใบสั่งยา, ใบนัดหมาย"| PATIENT
P5 -->|"รายงานการใช้งาน<br/>Audit Log"| ADMIN
%% Pharmacist interactions
PHARMACIST -->|"ตรวจสอบ Drug Interaction<br/>โรคพิเศษ G-6-PD"| P2
P2 -->|"ข้อมูลยาที่สั่ง<br/>การแพ้ยา"| PHARMACIST
%% Styling
style P1 fill:#fff3e0,stroke:#ef6c00,stroke-width:3px
style P2 fill:#e8f5e8,stroke:#2e7d32,stroke-width:4px
style P3 fill:#e3f2fd,stroke:#1565c0,stroke-width:3px
style P4 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px
style P5 fill:#fce4ec,stroke:#c2185b,stroke-width:3px
style DOCTOR fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style NURSE fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style SPECIALIST fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style PHARMACIST fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style PATIENT fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style ADMIN fill:#fafafa,stroke:#424242,stroke-width:2px
style DS1 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS2 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS3 fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style DS4 fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style DS5 fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style DS6 fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style DS7 fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style DS8 fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style DS9 fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style DS10 fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style DS11 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style DS12 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style DS13 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style DS14 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style DS15 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style DS16 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style DS17 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style DS18 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style DS19 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
4. Level 1 DFD - การตรวจร่างกายและการรักษา
graph TD
%% External Entities
DOCTOR[("👨⚕️<br/>แพทย์")]
NURSE[("👩⚕️<br/>พยาบาล")]
SPECIALIST[("🩺<br/>แพทย์เฉพาะทาง")]
PHARMACIST[("💊<br/>เภสัชกร")]
PATIENT[("👥<br/>ผู้ป่วย")]
%% External Systems
HISTORY_SYSTEM[("📝<br/>ระบบซักประวัติ<br/>1.2.2")]
RIGHTS_SYSTEM[("🎫<br/>ระบบตรวจสอบสิทธิ<br/>1.2.15")]
PHARMACY_SYSTEM[("💊<br/>ระบบเภสัชกรรม<br/>1.2.13")]
FINANCE_SYSTEM[("💰<br/>ระบบการเงิน<br/>1.2.14")]
LAB_SYSTEM[("🔬<br/>ระบบงานชันสูตร<br/>1.2.7")]
XRAY_SYSTEM[("📡<br/>ระบบรังสีวิทยา<br/>1.2.8")]
APPOINTMENT_SYSTEM[("📅<br/>ระบบนัดหมายและ<br/>ตารางเวรแพทย์<br/>1.2.6")]
INPATIENT_SYSTEM[("🏨<br/>ระบบผู้ป่วยใน<br/>1.2.17")]
SURGERY_SYSTEM[("⚕️<br/>ระบบห้องผ่าตัด<br/>และวิสัญญี<br/>1.2.18")]
%% Main Processes
P1[("1.0<br/>การตรวจรักษา<br/>(Examination &<br/>Treatment)")]
P2[("2.0<br/>การจัดการนัดหมาย<br/>(Appointment<br/>Management)")]
P3[("3.0<br/>การขอปรึกษา<br/>(Consultation<br/>Request)")]
P4[("4.0<br/>การพิมพ์เอกสาร<br/>(Document<br/>Printing)")]
%% Data Stores
DS1[("D1<br/>EXAMINATION_SESSION")]
DS2[("D2<br/>PHYSICAL_EXAMINATION")]
DS3[("D3<br/>MEDICAL_DIAGNOSIS")]
DS4[("D4<br/>MEDICAL_PROCEDURE")]
DS5[("D5<br/>MEDICATION_ORDER")]
DS6[("D6<br/>LAB_ORDER")]
DS7[("D7<br/>RADIOLOGY_ORDER")]
DS8[("D8<br/>PATIENT_APPOINTMENT")]
DS9[("D9<br/>PATIENT_CONSULTATION")]
DS10[("D10<br/>PATIENT_REFERRAL")]
DS11[("D11<br/>DRUG_ALLERGY_ALERT")]
DS12[("D12<br/>EXAMINATION_IMAGES")]
DS13[("D13<br/>SPECIAL_DISEASE_CHECK")]
DS14[("D14<br/>EXAMINATION_TEMPLATE")]
%% Input flows to processes
HISTORY_SYSTEM -->|ข้อมูลการซักประวัติ<br/>สัญญาณชีพ| P1
RIGHTS_SYSTEM -->|สถานะสิทธิ<br/>การตรวจสอบสิทธิ์| P1
LAB_SYSTEM -->|ผล Lab ปัจจุบัน<br/>ประวัติการตรวจ| P1
XRAY_SYSTEM -->|ผล X-Ray<br/>ภาพรังสี| P1
DOCTOR -->|การตรวจร่างกาย<br/>การวินิจฉัย<br/>การสั่งยา| P1
NURSE -->|ช่วยการตรวจ<br/>บันทึกข้อมูล| P1
PATIENT -->|อาการเพิ่มเติม<br/>การถ่ายภาพ| P1
PHARMACIST -->|ข้อมูลการแพ้ยา<br/>Drug Interaction| P1
DOCTOR -->|ข้อมูลการนัดหมาย<br/>การนัดหลายแผนก| P2
APPOINTMENT_SYSTEM -->|ตารางเวรแพทย์<br/>วันหยุดต่างๆ| P2
DOCTOR -->|คำขอปรึกษา<br/>ความเร่งด่วน| P3
SPECIALIST -->|คำตอบการปรึกษา<br/>คำแนะนำ| P3
DOCTOR -->|คำขอพิมพ์เอกสาร<br/>ประเภทเอกสาร| P4
NURSE -->|คำขอพิมพ์เอกสาร| P4
%% Flows between processes and data stores
P1 -.->|บันทึกข้อมูลการตรวจ| DS1
P1 -.->|บันทึกการตรวจร่างกาย| DS2
P1 -.->|บันทึกการวินิจฉัย| DS3
P1 -.->|บันทึกหัตถการ| DS4
P1 -.->|บันทึกการสั่งยา| DS5
P1 -.->|บันทึกการสั่ง Lab| DS6
P1 -.->|บันทึกการสั่ง X-Ray| DS7
P1 -.->|บันทึกการส่งต่อ| DS10
P1 -.->|บันทึกการแพ้ยา| DS11
P1 -.->|บันทึกภาพการตรวจ| DS12
P1 -.->|บันทึกโรคพิเศษ| DS13
DS1 -.->|ข้อมูลการตรวจ| P1
DS2 -.->|ประวัติการตรวจร่างกาย| P1
DS3 -.->|ประวัติการวินิจฉัย| P1
DS4 -.->|ประวัติหัตถการ| P1
DS5 -.->|ประวัติการสั่งยา| P1
DS11 -.->|ข้อมูลการแพ้ยา| P1
DS12 -.->|ภาพประกอบการตรวจ| P1
DS13 -.->|ข้อมูลโรคพิเศษ| P1
DS14 -.->|Template การตรวจ| P1
P2 -.->|บันทึกการนัดหมาย| DS8
DS8 -.->|ข้อมูลการนัดหมาย| P2
DS1 -.->|ข้อมูลผู้ป่วย| P2
P3 -.->|บันทึกการปรึกษา| DS9
DS9 -.->|ข้อมูลการปรึกษา| P3
DS1 -.->|ข้อมูลผู้ป่วย| P3
DS3 -.->|ข้อมูลการวินิจฉัย| P3
DS1 -.->|ข้อมูลการตรวจ| P4
DS2 -.->|ข้อมูลการตรวจร่างกาย| P4
DS3 -.->|ข้อมูลการวินิจฉัย| P4
DS5 -.->|ข้อมูลการสั่งยา| P4
DS8 -.->|ข้อมูลการนัดหมาย| P4
DS10 -.->|ข้อมูลการส่งต่อ| P4
%% Output flows from processes
P1 -->|ใบสั่งยา<br/>ตรวจสอบ Drug Interaction| PHARMACY_SYSTEM
P1 -->|ข้อมูลค่าบริการ<br/>กลุ่มค่ารักษา| FINANCE_SYSTEM
P1 -->|คำสั่ง Lab<br/>ข้อมูลคลินิก| LAB_SYSTEM
P1 -->|คำสั่ง X-Ray<br/>ข้อมูลคลินิก| XRAY_SYSTEM
P1 -->|การ Admit<br/>ข้อมูลผู้ป่วย| INPATIENT_SYSTEM
P1 -->|การส่งผ่าตัด<br/>ข้อมูลการผ่าตัด| SURGERY_SYSTEM
P1 -->|ข้อมูลยาที่สั่ง<br/>การแพ้ยา| PHARMACIST
P2 -->|การนัดหมาย<br/>ตรวจสอบตาราง| APPOINTMENT_SYSTEM
P2 -->|ใบนัดหมาย| DOCTOR
P2 -->|ใบนัดหมาย| PATIENT
P3 -->|ข้อมูลการปรึกษา<br/>คำถาม-คำตอบ| SPECIALIST
P3 -->|ผลการปรึกษา| DOCTOR
P4 -->|เอกสารทางการแพทย์<br/>ใบรับรองแพทย์| DOCTOR
P4 -->|ใบสั่งยา<br/>OPD Card| PATIENT
P4 -->|ใบส่งต่อ| DOCTOR
%% Styling
style P1 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P2 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P3 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P4 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style DOCTOR fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style NURSE fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style SPECIALIST fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style PHARMACIST fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style PATIENT fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style HISTORY_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style RIGHTS_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style PHARMACY_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style FINANCE_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style LAB_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style XRAY_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style APPOINTMENT_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style INPATIENT_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style SURGERY_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style DS1 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS2 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS3 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS4 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS5 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS6 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS7 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS8 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS9 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS10 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS11 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS12 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS13 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS14 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
4. Level 1 DFD - การตรวจร่างกายและการรักษา
graph TD
%% External Entities
DOCTOR[("👨⚕️<br/>แพทย์")]
NURSE[("👩⚕️<br/>พยาบาล")]
PATIENT[("🧑🦱<br/>ผู้ป่วย")]
PHARMACIST[("💊<br/>เภสัชกร")]
%% External Systems
HISTORY_SYSTEM[("📝<br/>ระบบซักประวัติ<br/>1.2.2")]
RIGHTS_SYSTEM[("🎫<br/>ระบบตรวจสอบสิทธิ<br/>1.2.15")]
PHARMACY_SYSTEM[("💊<br/>ระบบเภสัชกรรม<br/>1.2.13")]
FINANCE_SYSTEM[("💰<br/>ระบบการเงิน<br/>1.2.14")]
LAB_SYSTEM[("🔬<br/>ระบบงานชันสูตร<br/>1.2.7")]
XRAY_SYSTEM[("📡<br/>ระบบรังสีวิทยา<br/>1.2.8")]
INPATIENT_SYSTEM[("🏨<br/>ระบบผู้ป่วยใน<br/>1.2.17")]
SURGERY_SYSTEM[("⚕️<br/>ระบบห้องผ่าตัด<br/>1.2.18")]
%% Sub-processes
P11[("1.1<br/>การรับข้อมูลผู้ป่วย<br/>และตรวจสอบสิทธิ<br/>(Patient Data<br/>& Rights Check)")]
P12[("1.2<br/>การบันทึกข้อมูล<br/>Screen และ CC<br/>(Screen Data<br/>& Chief Complaint)")]
P13[("1.3<br/>การตรวจร่างกาย<br/>(Physical<br/>Examination)")]
P14[("1.4<br/>การจัดการภาพ<br/>และการวาดรูป<br/>(Image & Drawing<br/>Management)")]
P15[("1.5<br/>การวินิจฉัยและ<br/>หัตถการ<br/>(Diagnosis &<br/>Procedures)")]
P16[("1.6<br/>การตรวจสอบ<br/>โรคพิเศษและการแพ้<br/>(Special Disease<br/>& Allergy Check)")]
P17[("1.7<br/>การสั่งยาและ<br/>ตรวจสอบ Drug Interaction<br/>(Medication Order<br/>& Drug Interaction)")]
P18[("1.8<br/>การสั่งและแสดงผล<br/>Lab/X-Ray<br/>(Lab/X-Ray Order<br/>& Results Display)")]
P19[("1.9<br/>การส่งต่อผู้ป่วย<br/>(Patient<br/>Referral)")]
%% Data Stores
DS1[("D1<br/>EXAMINATION_SESSION")]
DS2[("D2<br/>PHYSICAL_EXAMINATION")]
DS3[("D3<br/>MEDICAL_DIAGNOSIS")]
DS4[("D4<br/>MEDICAL_PROCEDURE")]
DS5[("D5<br/>MEDICATION_ORDER")]
DS6[("D6<br/>LAB_ORDER")]
DS7[("D7<br/>XRAY_ORDER")]
DS10[("D10<br/>PATIENT_REFERRAL")]
DS11[("D11<br/>DRUG_ALLERGY_ALERT")]
DS12[("D12<br/>EXAMINATION_IMAGES")]
DS13[("D13<br/>SPECIAL_DISEASE")]
DS14[("D14<br/>EXAMINATION_TEMPLATE")]
DS15[("D15<br/>LAB_RESULTS")]
DS16[("D16<br/>XRAY_RESULTS")]
%% Input flows
HISTORY_SYSTEM -->|ข้อมูลการซักประวัติ<br/>สัญญาณชีพ<br/>ส่งต่อผู้ป่วย| P11
RIGHTS_SYSTEM -->|สถานะสิทธิ<br/>ข้อมูลสิทธิการรักษา| P11
DOCTOR -->|ข้อมูล Screen<br/>Chief Complaint| P12
NURSE -->|ช่วยบันทึกข้อมูล| P12
DOCTOR -->|ข้อมูลการตรวจร่างกาย<br/>PE แต่ละระบบ| P13
DOCTOR -->|คำสั่งถ่ายภาพ<br/>การวาดรูป| P14
PATIENT -->|การถ่ายภาพ<br/>ข้อมูลเพิ่มเติม| P14
DOCTOR -->|การวินิจฉัย<br/>หัตถการ| P15
DOCTOR -->|ตรวจสอบโรคพิเศษ<br/>การแพ้| P16
PHARMACIST -->|ข้อมูลการแพ้ยา<br/>Drug Interaction| P16
DOCTOR -->|การสั่งยา<br/>RE-MED| P17
DOCTOR -->|การสั่ง Lab/X-Ray| P18
LAB_SYSTEM -->|ผลการตรวจ Lab| P18
XRAY_SYSTEM -->|ผลการตรวจ X-Ray<br/>ภาพรังสี| P18
DOCTOR -->|การส่งต่อ<br/>Refer/Admit/Surgery| P19
%% Process flows and data store interactions
P11 -.->|บันทึกข้อมูลเซสชัน| DS1
DS1 -.->|ข้อมูลการตรวจ| P12
P12 -.->|อัปเดตข้อมูล Screen| DS1
DS1 -.->|ข้อมูลผู้ป่วย| P13
DS14 -.->|Template การตรวจ| P13
P13 -.->|บันทึกการตรวจร่างกาย| DS2
DS2 -.->|ประวัติการตรวจร่างกาย| P13
DS1 -.->|ข้อมูลผู้ป่วย| P14
P14 -.->|บันทึกภาพการตรวจ| DS12
DS12 -.->|ภาพประกอบการตรวจ| P13
DS1 -.->|ข้อมูลผู้ป่วย| P15
DS2 -.->|ผลการตรวจร่างกาย| P15
P15 -.->|บันทึกการวินิจฉัย| DS3
P15 -.->|บันทึกหัตถการ| DS4
DS3 -.->|ประวัติการวินิจฉัย| P15
DS4 -.->|ประวัติหัตถการ| P15
DS1 -.->|ข้อมูลผู้ป่วย| P16
P16 -.->|บันทึกการแพ้ยา| DS11
P16 -.->|บันทึกโรคพิเศษ| DS13
DS11 -.->|ข้อมูลการแพ้ยา| P16
DS13 -.->|ข้อมูลโรคพิเศษ| P16
DS11 -.->|ข้อมูลการแพ้ยา| P17
DS13 -.->|ข้อมูลโรคพิเศษ| P17
DS1 -.->|ข้อมูลผู้ป่วย| P17
DS3 -.->|ข้อมูลการวินิจฉัย| P17
P17 -.->|บันทึกการสั่งยา| DS5
DS5 -.->|ประวัติการสั่งยา| P17
DS1 -.->|ข้อมูลผู้ป่วย| P18
DS3 -.->|ข้อมูลการวินิจฉัย| P18
P18 -.->|บันทึกการสั่ง Lab| DS6
P18 -.->|บันทึกการสั่ง X-Ray| DS7
P18 -.->|บันทึกผล Lab| DS15
P18 -.->|บันทึกผล X-Ray| DS16
DS15 -.->|ประวัติผล Lab| P18
DS16 -.->|ประวัติผล X-Ray| P18
DS1 -.->|ข้อมูลผู้ป่วย| P19
DS3 -.->|ข้อมูลการวินิจฉัย| P19
DS2 -.->|ข้อมูลการตรวจร่างกาย| P19
P19 -.->|บันทึกการส่งต่อ| DS10
%% Output flows
P11 -->|ยืนยันสิทธิ| RIGHTS_SYSTEM
P17 -->|ใบสั่งยา<br/>ตรวจสอบ Drug Interaction| PHARMACY_SYSTEM
P15 -->|ข้อมูลค่าบริการ<br/>กลุ่มค่ารักษา| FINANCE_SYSTEM
P18 -->|คำสั่ง Lab<br/>ข้อมูลคลินิก| LAB_SYSTEM
P18 -->|คำสั่ง X-Ray<br/>ข้อมูลคลินิก| XRAY_SYSTEM
P19 -->|การ Admit<br/>ข้อมูลผู้ป่วย| INPATIENT_SYSTEM
P19 -->|การส่งผ่าตัด<br/>ข้อมูลการผ่าตัด| SURGERY_SYSTEM
P17 -->|ข้อมูลยาที่สั่ง<br/>การแพ้ยา| PHARMACIST
%% Styling
style P11 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P12 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P13 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P14 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P15 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P16 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P17 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P18 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P19 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style DOCTOR fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style NURSE fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style PATIENT fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style PHARMACIST fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style HISTORY_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style RIGHTS_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style PHARMACY_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style FINANCE_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style LAB_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style XRAY_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style INPATIENT_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style SURGERY_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style DS1 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS2 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS3 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS4 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS5 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS6 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS7 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS10 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS11 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS12 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS13 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS14 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS15 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS16 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
5. Level 1 DFD - การจัดการนัดหมาย
graph TD
%% External Entities
DOCTOR[("👨⚕️<br/>แพทย์")]
PATIENT[("🧑🦱<br/>ผู้ป่วย")]
%% External Systems
APPOINTMENT_SYSTEM[("📅<br/>ระบบนัดหมาย<br/>และตารางเวรแพทย์<br/>1.2.6")]
LAB_SYSTEM[("🔬<br/>ระบบงานชันสูตร<br/>1.2.7")]
XRAY_SYSTEM[("📡<br/>ระบบรังสีวิทยา<br/>1.2.8")]
%% Sub-processes
P21[("2.1<br/>การบันทึกนัดหมาย<br/>แบบระบุวันที่<br/>(Specific Date<br/>Appointment)")]
P22[("2.2<br/>การบันทึกนัดหมาย<br/>แบบระบุสัปดาห์/เดือน<br/>(Week/Month<br/>Appointment)")]
P23[("2.3<br/>การนัดหลายแผนก<br/>ในการมา visit ครั้งเดียว<br/>(Multiple Department<br/>Appointment)")]
P24[("2.4<br/>การตรวจสอบ<br/>วันหยุดและเตือน<br/>(Holiday Check<br/>& Alert)")]
P25[("2.5<br/>การสั่ง Lab/X-Ray<br/>ล่วงหน้า<br/>(Pre-order<br/>Lab/X-Ray)")]
P26[("2.6<br/>การตรวจสอบ<br/>การนัดหมายของตนเอง<br/>(Self Appointment<br/>Check)")]
%% Data Stores
DS1[("D1<br/>EXAMINATION_SESSION")]
DS8[("D8<br/>APPOINTMENT")]
DS17[("D17<br/>APPOINTMENT_TEMPLATE")]
DS18[("D18<br/>MULTI_DEPARTMENT_APPOINTMENT")]
DS19[("D19<br/>HOLIDAY_CALENDAR")]
DS20[("D20<br/>PRE_ORDER_LAB")]
DS21[("D21<br/>PRE_ORDER_XRAY")]
%% Input flows
DOCTOR -->|ข้อมูลการนัดหมาย<br/>วันที่นัด| P21
DOCTOR -->|ระยะเวลานัด<br/>สัปดาห์/เดือน| P22
DOCTOR -->|รายการแผนกที่นัด<br/>การนัดหลายแผนก| P23
APPOINTMENT_SYSTEM -->|ตารางเวรแพทย์<br/>ข้อมูลวันหยุด| P24
DOCTOR -->|คำสั่ง Lab/X-Ray<br/>ล่วงหน้า| P25
DOCTOR -->|คำขอตรวจสอบ<br/>การนัดหมาย| P26
%% Process flows and data store interactions
DS1 -.->|ข้อมูลผู้ป่วย| P21
P21 -.->|บันทึกการนัดหมาย| DS8
DS8 -.->|ข้อมูลการนัดหมาย| P21
DS1 -.->|ข้อมูลผู้ป่วย| P22
DS17 -.->|Template การนัด| P22
P22 -.->|บันทึกการนัดหมาย| DS8
DS1 -.->|ข้อมูลผู้ป่วย| P23
P23 -.->|บันทึกการนัดหลายแผนก| DS18
DS18 -.->|ข้อมูลการนัดหลายแผนก| P23
P23 -.->|บันทึกการนัดหมาย| DS8
DS8 -.->|วันที่นัดหมาย| P24
DS19 -.->|ข้อมูลวันหยุด| P24
P24 -.->|อัปเดตสถานะการนัด| DS8
DS1 -.->|ข้อมูลผู้ป่วย| P25
DS8 -.->|ข้อมูลการนัดหมาย| P25
P25 -.->|บันทึกการสั่ง Lab ล่วงหน้า| DS20
P25 -.->|บันทึกการสั่ง X-Ray ล่วงหน้า| DS21
DS8 -.->|ข้อมูลการนัดหมาย| P26
%% Output flows
P21 -->|การนัดหมาย<br/>ข้อมูลการนัด| APPOINTMENT_SYSTEM
P22 -->|การนัดหมาย<br/>ข้อมูลการนัด| APPOINTMENT_SYSTEM
P23 -->|การนัดหลายแผนก| APPOINTMENT_SYSTEM
P24 -->|การเตือนวันหยุด| DOCTOR
P25 -->|คำสั่ง Lab ล่วงหน้า| LAB_SYSTEM
P25 -->|คำสั่ง X-Ray ล่วงหน้า| XRAY_SYSTEM
P26 -->|ข้อมูลการนัดหมาย<br/>ของแพทย์| DOCTOR
P21 -->|ใบนัดหมาย| PATIENT
P22 -->|ใบนัดหมาย| PATIENT
P23 -->|ใบนัดหลายแผนก| PATIENT
%% Styling
style P21 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P22 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P23 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P24 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P25 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P26 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style DOCTOR fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style PATIENT fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style APPOINTMENT_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style LAB_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style XRAY_SYSTEM fill:#fafafa,stroke:#424242,stroke-width:2px
style DS1 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS8 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS17 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS18 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS19 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS20 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS21 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
6. Level 1 DFD - การขอปรึกษา
graph TD
%% External Entities
DOCTOR[("👨⚕️<br/>แพทย์")]
SPECIALIST[("🩺<br/>แพทย์เฉพาะทาง")]
%% Sub-processes
P31[("3.1<br/>การระบุแพทย์<br/>หรือแผนกที่ปรึกษา<br/>(Specify Target<br/>Doctor/Department)")]
P32[("3.2<br/>การระบุ<br/>ความเร่งด่วน<br/>(Specify<br/>Urgency Level)")]
P33[("3.3<br/>การบันทึก<br/>คำถามการปรึกษา<br/>(Record<br/>Consultation Question)")]
P34[("3.4<br/>การบันทึก<br/>คำตอบการปรึกษา<br/>(Record<br/>Consultation Answer)")]
P35[("3.5<br/>การติดตาม<br/>สถานะการปรึกษา<br/>(Track<br/>Consultation Status)")]
%% Data Stores
DS1[("D1<br/>EXAMINATION_SESSION")]
DS3[("D3<br/>MEDICAL_DIAGNOSIS")]
DS9[("D9<br/>CONSULTATION")]
DS22[("D22<br/>CONSULTATION_NOTIFICATION")]
DS23[("D23<br/>SPECIALIST_AVAILABILITY")]
%% Input flows
DOCTOR -->|ชื่อแพทย์/แผนก<br/>ที่ต้องการปรึกษา| P31
DOCTOR -->|ระดับความเร่งด่วน<br/>STAT หรือ URGENT หรือ ROUTINE| P32
DOCTOR -->|คำถามการปรึกษา<br/>ข้อมูลคลินิก| P33
SPECIALIST -->|คำตอบการปรึกษา<br/>คำแนะนำ| P34
DOCTOR -->|คำขอติดตาม<br/>สถานะ| P35
SPECIALIST -->|คำขอติดตาม<br/>สถานะ| P35
%% Process flows and data store interactions
DS1 -.->|ข้อมูลผู้ป่วย| P31
DS3 -.->|ข้อมูลการวินิจฉัย| P31
DS23 -.->|ข้อมูลแพทย์เฉพาะทาง| P31
P31 -.->|เริ่มต้นการปรึกษา| DS9
DS9 -.->|ข้อมูลการปรึกษา| P32
P32 -.->|อัปเดตความเร่งด่วน| DS9
P32 -.->|สร้างการแจ้งเตือน| DS22
DS9 -.->|ข้อมูลการปรึกษา| P33
DS1 -.->|ข้อมูลผู้ป่วย| P33
DS3 -.->|ข้อมูลการวินิจฉัย| P33
P33 -.->|บันทึกคำถาม| DS9
DS9 -.->|คำถามการปรึกษา| P34
P34 -.->|บันทึกคำตอบ| DS9
P34 -.->|อัปเดตสถานะ| DS9
DS9 -.->|สถานะการปรึกษา| P35
DS22 -.->|การแจ้งเตือน| P35
%% Output flows
P31 -->|คำขอปรึกษา| SPECIALIST
P32 -->|การแจ้งเตือนเร่งด่วน| SPECIALIST
P33 -->|คำถามการปรึกษา<br/>ข้อมูลผู้ป่วย| SPECIALIST
P34 -->|คำตอบการปรึกษา| DOCTOR
P35 -->|สถานะการปรึกษา| DOCTOR
P35 -->|สถานะการปรึกษา| SPECIALIST
%% Styling
style P31 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P32 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P33 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P34 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P35 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style DOCTOR fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style SPECIALIST fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style DS1 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS3 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS9 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS22 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS23 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
7. Level 1 DFD - การพิมพ์เอกสาร
graph TD
%% External Entities
DOCTOR["👨⚕️<br/>แพทย์"]
NURSE["👩⚕️<br/>พยาบาล"]
PATIENT["🧑🦱<br/>ผู้ป่วย"]
%% Sub-processes
P41["4.1<br/>การพิมพ์ใบรับรอง<br/>แพทย์แบบต่างๆ<br/>(Medical Certificate<br/>Printing)"]
P42["4.2<br/>การพิมพ์<br/>OPD Card<br/>(OPD Card<br/>Printing)"]
P43["4.3<br/>การพิมพ์<br/>ใบสั่งยา<br/>(Prescription<br/>Printing)"]
P44["4.4<br/>การพิมพ์ใบส่งต่อ<br/>รักษาสถานพยาบาลอื่น<br/>(Referral Letter<br/>Printing)"]
P45["4.5<br/>การพิมพ์<br/>ใบนัดหมาย<br/>(Appointment<br/>Printing)"]
P46["4.6<br/>การพิมพ์หนังสือรับรอง<br/>ยานอกบัญชียาหลัก<br/>(Non-Essential Drug<br/>Certificate Printing)"]
P47["4.7<br/>การจัดการ<br/>Template เอกสาร<br/>(Document Template<br/>Management)"]
%% Data Stores
DS1["D1<br/>EXAMINATION_SESSION"]
DS2["D2<br/>PHYSICAL_EXAMINATION"]
DS3["D3<br/>MEDICAL_DIAGNOSIS"]
DS5["D5<br/>MEDICATION_ORDER"]
DS8["D8<br/>APPOINTMENT"]
DS10["D10<br/>PATIENT_REFERRAL"]
DS24["D24<br/>DOCUMENT_TEMPLATE"]
DS25["D25<br/>MEDICAL_CERTIFICATE"]
DS26["D26<br/>PRINTED_DOCUMENT_LOG"]
%% Input flows
DOCTOR -->|คำขอพิมพ์<br/>ใบรับรองแพทย์| P41
DOCTOR -->|คำขอพิมพ์<br/>OPD Card| P42
DOCTOR -->|คำขอพิมพ์<br/>ใบสั่งยา| P43
DOCTOR -->|คำขอพิมพ์<br/>ใบส่งต่อ| P44
DOCTOR -->|คำขอพิมพ์<br/>ใบนัดหมาย| P45
NURSE -->|คำขอพิมพ์<br/>ใบนัดหมาย| P45
DOCTOR -->|คำขอพิมพ์<br/>หนังสือรับรองยา| P46
DOCTOR -->|การจัดการ Template| P47
%% Process flows and data store interactions
DS1 -.->|ข้อมูลผู้ป่วย| P41
DS2 -.->|ข้อมูลการตรวจร่างกาย| P41
DS3 -.->|ข้อมูลการวินิจฉัย| P41
DS24 -.->|Template ใบรับรองแพทย์| P41
P41 -.->|บันทึกใบรับรองแพทย์| DS25
P41 -.->|Log การพิมพ์| DS26
DS1 -.->|ข้อมูลผู้ป่วย| P42
DS2 -.->|ข้อมูลการตรวจร่างกาย| P42
DS3 -.->|ข้อมูลการวินิจฉัย| P42
DS5 -.->|ข้อมูลการสั่งยา| P42
DS24 -.->|Template OPD Card| P42
P42 -.->|Log การพิมพ์| DS26
DS1 -.->|ข้อมูลผู้ป่วย| P43
DS5 -.->|ข้อมูลการสั่งยา| P43
DS24 -.->|Template ใบสั่งยา| P43
P43 -.->|Log การพิมพ์| DS26
DS1 -.->|ข้อมูลผู้ป่วย| P44
DS3 -.->|ข้อมูลการวินิจฉัย| P44
DS10 -.->|ข้อมูลการส่งต่อ| P44
DS24 -.->|Template ใบส่งต่อ| P44
P44 -.->|Log การพิมพ์| DS26
DS1 -.->|ข้อมูลผู้ป่วย| P45
DS8 -.->|ข้อมูลการนัดหมาย| P45
DS24 -.->|Template ใบนัดหมาย| P45
P45 -.->|Log การพิมพ์| DS26
DS1 -.->|ข้อมูลผู้ป่วย| P46
DS5 -.->|ข้อมูลยานอกบัญชี| P46
DS24 -.->|Template หนังสือรับรอง| P46
P46 -.->|Log การพิมพ์| DS26
P47 -.->|จัดการ Template| DS24
DS24 -.->|Template เอกสาร| P47
%% Output flows
P41 -->|"ใบรับรองแพทย์<br/>(ไทย-อังกฤษ)"| DOCTOR
P41 -->|"ใบรับรองแพทย์<br/>ลาป่วย-สมัครงาน"| PATIENT
P42 -->|OPD Card| PATIENT
P43 -->|ใบสั่งยา| PATIENT
P44 -->|ใบส่งต่อ| DOCTOR
P45 -->|"ใบนัดหมาย<br/>(ไทย-อังกฤษ)"| PATIENT
P46 -->|"หนังสือรับรองยา<br/>นอกบัญชียาหลัก"| PATIENT
P47 -->|"Template ที่อัปเดต"| DOCTOR
%% Styling
style P41 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P42 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P43 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P44 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P45 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P46 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style P47 fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
style DOCTOR fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style NURSE fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style PATIENT fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style DS1 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS2 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS3 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS5 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS8 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS10 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS24 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS25 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
style DS26 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
เอกสารนี้จัดทำขึ้นเพื่อใช้เป็นแนวทางในการออกแบบและพัฒนาระบบห้องตรวจแพทย์ที่เชื่อมโยงกับระบบอื่นๆ ในโรงพยาบาลและจะได้รับการปรับปรุงตามความต้องการที่เปลี่ยนแปลง
8. Data Dictionary
8.1 รายละเอียดข้อมูลในแต่ละ Data Store
8.1.4 MEDICAL_PROCEDURE (หัตถการทางการแพทย์)
| Field Name | Description | Data Type | Length | Example/Format |
|---|---|---|---|---|
| IsFromTemplate | มาจาก Template | BIT | 1 | 0/1 |
| IsFromReDiag | มาจาก Re-diag | BIT | 1 | 0/1 |
| TemplateID | รหัส Template | VARCHAR | 20 | TMPL-XXXXXXXXX |
| OriginalDiagnosisID | รหัสการวินิจฉัยต้นฉบับ (สำหรับ Re-diag) | VARCHAR | 20 | DIAG-XXXXXXXXXX |
| ProcedureID | รหัสหัตถการ | VARCHAR | 20 | PROC-XXXXXXXXXX |
| ICDProcedureCode | รหัสหัตถการ ICD (WHO) | VARCHAR | 10 | XXXXXXX |
| ProcedureName | ชื่อหัตถการ | NVARCHAR | 200 | Text |
| ProcedureNameEng | ชื่อหัตถการ (อังกฤษ) | NVARCHAR | 200 | Text |
| PerformerID | รหัสแพทย์/เจ้าหน้าที่ผู้ทำ | VARCHAR | 20 | DOC-XXXXXXXX |
| PerformerName | ชื่อผู้ทำหัตถการ | NVARCHAR | 100 | Text |
| StartTime | เวลาเริ่ม | DATETIME | 19 | DD/MM/YYYY HH:MM:SS |
| EndTime | เวลาสิ้นสุด | DATETIME | 19 | DD/MM/YYYY HH:MM:SS |
| Duration | ระยะเวลา (นาที) | INT | 4 | XXXX |
| ProcedureLocation | สถานที่ทำหัตถการ | NVARCHAR | 100 | Text |
| ProcedureNotes | หมายเหตุหัตถการ | NTEXT | MAX | Text |
| Complications | ภาวะแทรกซ้อน | NTEXT | MAX | Text |
| MedicationOrderID | รหัสการสั่งยา | VARCHAR | 20 | MED-XXXXXXXXXXX |
| DrugCode | รหัสยา | VARCHAR | 20 | DRUG-XXXXXXXX |
| DrugName | ชื่อยา | NVARCHAR | 200 | Text |
| GenericName | ชื่อสามัญยา | NVARCHAR | 200 | Text |
| Strength | ความแรง | VARCHAR | 50 | Text |
| DosageForm | รูปแบบยา | VARCHAR | 50 | Text |
| Quantity | จำนวน | DECIMAL | 10,2 | XXXXX.XX |
| Unit | หน่วย | VARCHAR | 20 | Text |
| Frequency | ความถี่การใช้ | VARCHAR | 50 | Text |
| Duration | จำนวนวันใช้ยา | INT | 3 | XXX |
| Instructions | วิธีการใช้ | NTEXT | MAX | Text |
| Route | วิธีให้ยา | VARCHAR | 50 | Text |
| IsFromReMed | มาจาก RE-MED | BIT | 1 | 0/1 |
| OriginalMedicationID | รหัสการสั่งยาต้นฉบับ (สำหรับ RE-MED) | VARCHAR | 20 | MED-XXXXXXXXXXX |
| IsChronicDisease | ยาโรคเรื้อรัง | BIT | 1 | 0/1 |
| TotalAmount | จำนวนรวม (คำนวณจากวันใช้) | DECIMAL | 10,2 | XXXXX.XX |
| PharmacyStatus | สถานะเภสัชกรรม | VARCHAR | 20 | ORDERED/DISPENSED/CANCELLED |
| AllergyChecked | ตรวจสอบการแพ้ยาแล้ว | BIT | 1 | 0/1 |
| DrugInteractionChecked | ตรวจสอบ Drug Interaction แล้ว | BIT | 1 | 0/1 |
8.1.5 DRUG_ALLERGY_ALERT (การเตือนการแพ้ยา)
| Field Name | Description | Data Type | Length | Example/Format |
|---|---|---|---|---|
| AllergyAlertID | รหัสการเตือนการแพ้ยา | VARCHAR | 20 | ALERT-XXXXXXXX |
| AllergyType | ประเภทการแพ้ | VARCHAR | 20 | DRUG/FOOD/ENVIRONMENTAL |
| AllergenName | ชื่อสารก่อภูมิแพ้ | NVARCHAR | 200 | Text |
| AllergySymptoms | อาการที่แพ้ | NTEXT | MAX | Text |
| Severity | ความร้ายแรง | VARCHAR | 20 | MILD/MODERATE/SEVERE/ANAPHYLAXIS |
| OnsetDate | วันที่เริ่มแพ้ | DATETIME | 19 | DD/MM/YYYY HH:MM:SS |
| NaranjoScore | คะแนน Naranjo Algorithm | INT | 2 | XX |
| NaranjoResult | ผลการประเมินระดับการแพ้ยา | VARCHAR | 50 | Text |
| IsContraindicated | ห้ามสั่งใช้กับผู้ป่วย | BIT | 1 | 0/1 |
8.1.6 SPECIAL_DISEASE_CHECK (การตรวจสอบโรคพิเศษ)
| Field Name | Description | Data Type | Length | Example/Format |
|---|---|---|---|---|
| SpecialDiseaseID | รหัสโรคพิเศษ | VARCHAR | 20 | SPDIS-XXXXXXXX |
| DiseaseCode | รหัสโรค | VARCHAR | 20 | Text |
| G6PDStatus | สถานะ G-6-PD | VARCHAR | 20 | NORMAL/DEFICIENT/UNKNOWN |
| G6PDTestDate | วันที่ตรวจ G-6-PD | DATETIME | 19 | DD/MM/YYYY |
| FoodAllergyList | รายการอาหารที่แพ้ | NTEXT | MAX | Text |
| SideEffectDescription | รายละเอียดผลข้างเคียง | NTEXT | MAX | Text |
| SideEffectSeverity | ความรุนแรงผลข้างเคียง | VARCHAR | 20 | MILD/MODERATE/SEVERE |
| ReportedDate | วันที่รายงานผลข้างเคียง | DATETIME | 19 | DD/MM/YYYY HH:MM:SS |
| ReportedBy | ผู้รายงาน | VARCHAR | 50 | Text |
8.1.7 LAB_ORDER (การสั่ง Lab)
| Field Name | Description | Data Type | Length | Example/Format |
|---|---|---|---|---|
| LabOrderID | รหัสการสั่ง Lab | VARCHAR | 20 | LAB-XXXXXXXXXXX |
| LabTestCode | รหัสการตรวจ Lab | VARCHAR | 20 | Text |
| LabTestName | ชื่อการตรวจ Lab | NVARCHAR | 200 | Text |
| SpecimenType | ประเภทสิ่งส่งตรวจ | VARCHAR | 50 | Text |
| Urgency | ความเร่งด่วน | VARCHAR | 20 | STAT/URGENT/ROUTINE |
| ClinicalInfo | ข้อมูลคลินิก | NTEXT | MAX | Text |
| LabRoom | ห้อง Lab | VARCHAR | 50 | Text |
| NotificationRoom | ห้องที่ต้องแจ้งผล | VARCHAR | 50 | Text |
8.1.8 RADIOLOGY_ORDER (การสั่ง X-Ray)
| Field Name | Description | Data Type | Length | Example/Format |
|---|---|---|---|---|
| XRayOrderID | รหัสการสั่ง X-Ray | VARCHAR | 20 | XRAY-XXXXXXXXXX |
| XRayType | ประเภทการตรวจ X-Ray | VARCHAR | 100 | Text |
| Position | ท่าถ่าย | VARCHAR | 50 | Text |
| Side | ด้าน | VARCHAR | 20 | LEFT/RIGHT/BILATERAL |
| RoomCode | รหัสห้องเอ็กซเรย์ | VARCHAR | 10 | Text |
| PatientCondition | สภาพผู้ป่วย | VARCHAR | 50 | Text |
| ClinicalDiagnosis | การวินิจฉัยเบื้องต้น | NTEXT | MAX | Text |
8.1.9 PATIENT_APPOINTMENT (การนัดหมาย)
| Field Name | Description | Data Type | Length | Example/Format |
|---|---|---|---|---|
| AppointmentID | รหัสการนัดหมาย | VARCHAR | 20 | APPT-XXXXXXXXXX |
| AppointmentDate | วันที่นัดหมาย | DATETIME | 19 | DD/MM/YYYY HH:MM:SS |
| AppointmentWeeks | จำนวนสัปดาห์ข้างหน้า | INT | 2 | XX |
| AppointmentMonths | จำนวนเดือนข้างหน้า | INT | 2 | XX |
| DepartmentCode | รหัสแผนก | VARCHAR | 10 | DEPT-XXX |
| IsMultipleDepartments | นัดหลายแผนก | BIT | 1 | 0/1 |
| AppointmentReason | เหตุผลการนัด | NTEXT | MAX | Text |
| AppointmentInstructions | คำแนะนำการนัด | NTEXT | MAX | Text |
| HolidayDate | วันหยุด | DATE | 10 | DD/MM/YYYY |
| HolidayName | ชื่อวันหยุด | NVARCHAR | 100 | Text |
| HolidayType | ประเภทวันหยุด | VARCHAR | 20 | NATIONAL/HOSPITAL/RELIGIOUS |
8.1.10 PATIENT_CONSULTATION (การปรึกษา)
| Field Name | Description | Data Type | Length | Example/Format |
|---|---|---|---|---|
| ConsultationID | รหัสการปรึกษา | VARCHAR | 20 | CONS-XXXXXXXXXX |
| TargetDoctorID | รหัสแพทย์เป้าหมาย | VARCHAR | 20 | DOC-XXXXXXXX |
| TargetDepartment | แผนกเป้าหมาย | VARCHAR | 50 | Text |
| UrgencyLevel | ระดับความเร่งด่วน | VARCHAR | 20 | STAT/URGENT/ROUTINE |
| ConsultReason | เหตุผลการปรึกษา | NTEXT | MAX | Text |
| ConsultQuestion | คำถามการปรึกษา | NTEXT | MAX | Text |
| ConsultAnswer | คำตอบการปรึกษา | NTEXT | MAX | Text |
| ConsultationStatus | สถานะการปรึกษา | VARCHAR | 20 | PENDING/IN_PROGRESS/COMPLETED/CANCELLED |
| ConsultationDate | วันที่ปรึกษา | DATETIME | 19 | DD/MM/YYYY HH:MM:SS |
| ResponseDate | วันที่ตอบกลับ | DATETIME | 19 | DD/MM/YYYY HH:MM:SS |
8.1.11 PATIENT_REFERRAL (การส่งต่อผู้ป่วย)
| Field Name | Description | Data Type | Length | Example/Format |
|---|---|---|---|---|
| ReferralID | รหัสการส่งต่อ | VARCHAR | 20 | REF-XXXXXXXXXXX |
| ReferralType | ประเภทการส่งต่อ | VARCHAR | 20 | REFER/ADMIT/SURGERY |
| TargetHospital | โรงพยาบาลปลายทาง | NVARCHAR | 200 | Text |
| TargetDepartmentCode | รหัสแผนกปลายทาง | VARCHAR | 10 | Text |
| ReferReason | เหตุผลการส่งต่อ | NTEXT | MAX | Text |
| PrimaryDiagnosis | การวินิจฉัยหลัก | NTEXT | MAX | Text |
| TreatmentGiven | การรักษาที่ให้แล้ว | NTEXT | MAX | Text |
| EndDate | วันที่สิ้นสุดการรักษา | DATETIME | 19 | DD/MM/YYYY HH:MM:SS |
| ReferPoint | จุดส่งต่อ | VARCHAR | 100 | Text |
8.1.12 DOCUMENT_TEMPLATE (Template เอกสาร)
| Field Name | Description | Data Type | Length | Example/Format |
|---|---|---|---|---|
| DocumentType | ประเภทเอกสาร | VARCHAR | 50 | Text |
| LanguageType | ภาษาเอกสาร | VARCHAR | 10 | TH/EN |
| TemplateName | ชื่อ Template | NVARCHAR | 100 | Text |
| TemplateContent | เนื้อหา Template | NTEXT | MAX | Text |
| IsActive | เปิดใช้งาน | BIT | 1 | 0/1 |
| Version | เวอร์ชัน | VARCHAR | 10 | X.X |
8.2 Data Flows
| Flow Name | Description | Composition |
|---|---|---|
| examination_session_data | ข้อมูลการตรวจรักษา | ExaminationID + VisitID + HN + HistoryID + ExaminationRoomCode + DoctorID + StartTime + EndTime + ExaminationStatus + ChiefComplaint + IllnessDuration + IsPregnant + IsBreastfeeding + RightsVerificationID + FinanceReferenceID + CreatedDate + CreatedBy + CompletedDate + Notes |
| physical_examination_data | ข้อมูลการตรวจร่างกาย | PhysicalExamID + ExaminationID + GeneralAppearance + HEENT + ChestHeart + Abdomen + PelvicExam + RectalExam + Genitalia + Neurological + Extremities + PhysicalExamText + DrawingImagePath + PhotoImagePath + ExaminationDate + ExaminedBy |
| diagnosis_data | ข้อมูลการวินิจฉัย | DiagnosisID + SourceSystem + SourceID + VisitID + HN + ICDCode + ICDCodeThai + DiseaseName + DiseaseNameEng + DiagnosisType + CertaintyLevel + OnsetType + DiagnosisText + TreatmentGroupCode + DRGCode + DRGWeight + IsFromTemplate + IsFromReDiag + TemplateID + OriginalDiagnosisID + DiagnosisDate + DiagnosedBy |
| procedure_data | ข้อมูลหัตถการ | ProcedureID + SourceSystem + SourceID + VisitID + HN + ICDProcedureCode + ProcedureName + ProcedureNameEng + TreatmentGroupCode + PerformerID + PerformerName + StartTime + EndTime + Duration + ProcedureLocation + ProcedureNotes + Complications + ProcedureDate |
| medication_order_data | ข้อมูลการสั่งยา | MedicationOrderID + SourceSystem + SourceID + VisitID + HN + DrugCode + DrugName + GenericName + Strength + DosageForm + Quantity + Unit + Frequency + Duration + Instructions + Route + IsFromTemplate + TemplateID + IsFromReMed + OriginalMedicationID + IsChronicDisease + TotalAmount + OrderDate + OrderedBy + PharmacyStatus + AllergyChecked + DrugInteractionChecked |
| drug_allergy_data | ข้อมูลการแพ้ยา | AllergyAlertID + ExaminationID + PatientHN + AllergyType + AllergenName + AllergySymptoms + Severity + OnsetDate + NaranjoScore + NaranjoResult + IsContraindicated + Reporter + ReportDate |
| special_disease_data | ข้อมูลโรคพิเศษ | SpecialDiseaseID + ExaminationID + PatientHN + DiseaseCode + G6PDStatus + G6PDTestDate + FoodAllergyList + SideEffectDescription + SideEffectSeverity + ReportedDate + ReportedBy |
| lab_order_data | ข้อมูลการสั่ง Lab | LabOrderID + ExaminationID + VisitID + HN + LabTestCode + LabTestName + SpecimenType + Urgency + ClinicalInfo + LabRoom + NotificationRoom + OrderDate + DoctorID |
| xray_order_data | ข้อมูลการสั่ง X-Ray | XRayOrderID + ExaminationID + VisitID + HN + XRayType + Position + Side + RoomCode + PatientCondition + Urgency + ClinicalInfo + ClinicalDiagnosis + Notes + OrderDate + DoctorID |
| lab_result_data | ข้อมูลผล Lab | LabOrderID + TestResults + ResultValues + NormalRange + IsAbnormal + ResultDate + TechnicianID + VerifiedBy + ResultStatus |
| xray_result_data | ข้อมูลผล X-Ray | XRayOrderID + ImagePath + RadiologyReport + Findings + Impression + ReportDate + RadiologistID + VerifiedBy + ResultStatus |
| appointment_data | ข้อมูลการนัดหมาย | AppointmentID + ExaminationID + VisitID + HN + AppointmentDate + AppointmentWeeks + AppointmentMonths + DepartmentCode + DoctorCode + IsMultipleDepartments + AppointmentReason + AppointmentInstructions + CreatedDate + CreatedBy |
| consultation_data | ข้อมูลการปรึกษา | ConsultationID + ExaminationID + VisitID + HN + TargetDoctorID + TargetDepartment + UrgencyLevel + ConsultReason + ConsultQuestion + ConsultAnswer + ConsultationStatus + ConsultationDate + ResponseDate + RequestedBy + AnsweredBy |
| referral_data | ข้อมูลการส่งต่อ | ReferralID + ExaminationID + VisitID + HN + ReferralType + TargetHospital + TargetDepartmentCode + ReferReason + PrimaryDiagnosis + TreatmentGiven + EndDate + ReferPoint + ReferralDate + ReferredBy |
| document_template_data | ข้อมูล Template เอกสาร | TemplateID + DocumentType + LanguageType + TemplateName + TemplateContent + IsActive + Version + CreatedDate + CreatedBy + LastModified |
| medical_certificate_data | ข้อมูลใบรับรองแพทย์ | CertificateID + ExaminationID + PatientHN + CertificateType + LanguageType + CertificateContent + IssueDate + ValidUntil + IssuedBy + CertificateNumber |
| image_drawing_data | ข้อมูลภาพและการวาดรูป | ImageID + ExaminationID + ImageType + ImagePath + DrawingData + ImageDescription + CaptureDate + CapturedBy + ImageSize + ImageFormat |
| vital_signs_screen_data | ข้อมูล Screen และ Vital Signs | Weight + Height + BMI + Temperature + WaistCircumference + PulseRate + RespiratoryRate + SystolicBP + DiastolicBP + BloodPressurePosition + MeasurementDate + MeasuredBy |
| pre_order_lab_data | ข้อมูลการสั่ง Lab ล่วงหน้า | PreOrderLabID + AppointmentID + LabTestCode + LabTestName + SpecimenType + OrderInstructions + PreOrderDate + DoctorID |
| pre_order_xray_data | ข้อมูลการสั่ง X-Ray ล่วงหน้า | PreOrderXRayID + AppointmentID + XRayType + Position + Side + OrderInstructions + PreOrderDate + DoctorID |
| holiday_calendar_data | ข้อมูลปฏิทินวันหยุด | HolidayDate + HolidayName + HolidayType + IsRecurring + Description |
| drug_interaction_data | ข้อมูล Drug Interaction | InteractionID + Drug1Code + Drug2Code + InteractionLevel + InteractionDescription + ClinicalSignificance + ManagementRecommendation |
| rights_verification_data | ข้อมูลการตรวจสอบสิทธิ | RightsVerificationID + PatientHN + RightsType + RightsStatus + ValidFrom + ValidTo + CoverageLimit + VerificationDate + VerifiedBy |
| finance_service_data | ข้อมูลบริการการเงิน | FinanceReferenceID + ServiceCode + ServiceName + ServiceFee + TreatmentGroupCode + DRGCode + BillingDate + PaymentStatus |
8.3 Data Stores
| Store Name | Description | Primary Key | Contents |
|---|---|---|---|
| D1: EXAMINATION_SESSION | ข้อมูลเซสชันการตรวจรักษา | ExaminationID | examination_session_data + vital_signs_screen_data + rights_verification_data |
| D2: PHYSICAL_EXAMINATION | ข้อมูลการตรวจร่างกาย | PhysicalExamID | physical_examination_data + image_drawing_data |
| D3: MEDICAL_DIAGNOSIS | ข้อมูลการวินิจฉัย | DiagnosisID | diagnosis_data + template และ re_diag references |
| D4: MEDICAL_PROCEDURE | ข้อมูลหัตถการทางการแพทย์ | ProcedureID | procedure_data + ICD procedure codes |
| D5: MEDICATION_ORDER | ข้อมูลการสั่งยา | MedicationOrderID | medication_order_data + drug_interaction_data + chronic disease indicators |
| D6: LAB_ORDER | ข้อมูลการสั่ง Lab | LabOrderID | lab_order_data + clinical information + urgency levels |
| D7: XRAY_ORDER | ข้อมูลการสั่ง X-Ray | XRayOrderID | xray_order_data + clinical diagnosis + patient conditions |
| D8: APPOINTMENT | ข้อมูลการนัดหมาย | AppointmentID | appointment_data + multi-department scheduling |
| D9: CONSULTATION | ข้อมูลการปรึกษา | ConsultationID | consultation_data + question-answer pairs + urgency tracking |
| D10: PATIENT_REFERRAL | ข้อมูลการส่งต่อผู้ป่วย | ReferralID | referral_data + multiple referral types (refer/admit/surgery) |
| D11: DRUG_ALLERGY_ALERT | ข้อมูลการแพ้ยา | AllergyAlertID | drug_allergy_data + Naranjo scoring + contraindication flags |
| D12: EXAMINATION_IMAGES | ภาพการตรวจ | ImageID | image_drawing_data + photo management + drawing tools data |
| D13: SPECIAL_DISEASE | ข้อมูลโรคพิเศษ | SpecialDiseaseID | special_disease_data + G-6-PD status + food allergies + side effects |
| D14: EXAMINATION_TEMPLATE | Template การตรวจ | TemplateID | physical examination templates + department-specific templates |
| D15: LAB_RESULTS | ผลการตรวจ Lab | LabOrderID | lab_result_data + historical comparison + trend analysis |
| D16: XRAY_RESULTS | ผลการตรวจ X-Ray | XRayOrderID | xray_result_data + image storage + radiology reports |
| D17: APPOINTMENT_TEMPLATE | Template การนัดหมาย | TemplateID | appointment templates + recurring appointment patterns |
| D18: MULTI_DEPARTMENT_APPOINTMENT | การนัดหลายแผนก | AppointmentID | multi-department scheduling data + coordination information |
| D19: HOLIDAY_CALENDAR | ปฏิทินวันหยุด | HolidayDate | holiday_calendar_data + recurring holidays + hospital-specific holidays |
| D20: PRE_ORDER_LAB | การสั่ง Lab ล่วงหน้า | PreOrderLabID | pre_order_lab_data + appointment linkage |
| D21: PRE_ORDER_XRAY | การสั่ง X-Ray ล่วงหน้า | PreOrderXRayID | pre_order_xray_data + appointment linkage |
| D22: CONSULTATION_NOTIFICATION | การแจ้งเตือนการปรึกษา | NotificationID | consultation notifications + urgency alerts + response tracking |
| D23: SPECIALIST_AVAILABILITY | ความพร้อมแพทย์เฉพาะทาง | DoctorID + Date | specialist schedules + availability windows + consultation capacity |
| D24: DOCUMENT_TEMPLATE | Template เอกสาร | TemplateID | document_template_data + multi-language support + version control |
| D25: MEDICAL_CERTIFICATE | ใบรับรองแพทย์ | CertificateID | medical_certificate_data + certificate types + language variants |
| D26: PRINTED_DOCUMENT_LOG | Log การพิมพ์เอกสาร | LogID | document printing history + user tracking + document types |
9. API Integration Flow
9.1 การเชื่อมโยงกับระบบต่างๆ ตาม TOR และ Schema
sequenceDiagram
participant D as แพทย์
participant EXAM as ระบบห้องตรวจแพทย์<br/>(1.2.3)
participant HIST as ระบบซักประวัติ<br/>(1.2.2)
participant MRH as ระบบเวชระเบียน<br/>(1.2.1)
participant RIGHTS as ระบบตรวจสอบสิทธิ<br/>(1.2.15)
participant PHARM as ระบบเภสัชกรรม<br/>(1.2.13)
participant LAB as ระบบงานชันสูตร<br/>(1.2.7)
participant XRAY as ระบบรังสีวิทยา<br/>(1.2.8)
participant FIN as ระบบการเงิน<br/>(1.2.14)
Note over D,FIN: Flow 1: การเริ่มต้นการตรวจรักษา
D->>EXAM: เลือกผู้ป่วยจากรายการรอตรวจ
EXAM->>MRH: ขอข้อมูลผู้ป่วย (HN, VisitID)
MRH-->>EXAM: ข้อมูลผู้ป่วยหลัก
EXAM->>HIST: ขอข้อมูลการซักประวัติ (HistoryID)
HIST-->>EXAM: Vital Signs, Chief Complaint, ข้อมูลประวัติ
EXAM->>RIGHTS: ตรวจสอบสิทธิการรักษา
RIGHTS-->>EXAM: สถานะสิทธิ, ข้อจำกัดการรักษา
Note over D,FIN: Flow 2: การตรวจร่างกาย (Physical Examination)
D->>EXAM: บันทึกการตรวจร่างกาย (GA, HEENT, Chest/Heart, etc.)
D->>EXAM: การวาดรูป, การถ่ายภาพ
EXAM->>EXAM: บันทึก PHYSICAL_EXAMINATION
EXAM->>EXAM: จัดเก็บภาพตาม PDPA
Note over D,FIN: Flow 3: การวินิจฉัยและการสั่งยา
D->>EXAM: วินิจฉัยด้วย ICD Code (WHO และไทย) หรือ Re-diag
EXAM->>FIN: ส่งข้อมูลกลุ่มค่ารักษา, DRG Code
D->>EXAM: สั่งยาด้วย RE-MED หรือ Template
EXAM->>PHARM: ตรวจสอบ Drug Interaction
PHARM-->>EXAM: ผลการตรวจสอบ, ข้อมูลการแพ้ยา
EXAM->>EXAM: ตรวจสอบโรคพิเศษ (G-6-PD)
EXAM->>PHARM: ส่งใบสั่งยา (SourceSystem='EXAMINATION')
Note over D,FIN: Flow 4: การสั่ง Lab/X-Ray และการแสดงผล
D->>EXAM: สั่งตรวจ Lab/X-Ray
EXAM->>LAB: ส่งคำสั่ง Lab (SourceSystem='EXAMINATION')
EXAM->>XRAY: ส่งคำสั่ง X-Ray (SourceSystem='EXAMINATION')
LAB-->>EXAM: ผล Lab ปัจจุบัน, ประวัติ 5 ปี
XRAY-->>EXAM: ผล X-Ray, ภาพ DICOM
EXAM->>EXAM: แสดงผล Lab แบบเปรียบเทียบ (Trend Graph)
Note over D,FIN: Flow 5: การส่งต่อและการนัดหมาย
D->>EXAM: การส่งต่อ (Refer/ส่งแผนก/ส่งผ่าตัด)
EXAM->>MRH: การ Refer โรงพยาบาลอื่น
EXAM->>EXAM: การส่งต่อภายในโรงพยาบาล
D->>EXAM: การนัดหมาย (วัน/สัปดาห์/เดือน)
EXAM->>EXAM: ตรวจสอบวันหยุดต่างๆ
EXAM->>EXAM: การนัดหลายแผนกในครั้งเดียว
Note over D,FIN: Flow 6: การออกเอกสาร
D->>EXAM: ขอพิมพ์เอกสารต่างๆ
EXAM->>EXAM: สร้างใบรับรองแพทย์ (ไทย/อังกฤษ)
EXAM->>EXAM: สร้าง OPD CARD, ใบสั่งยา, ใบนัดหมาย
EXAM->>EXAM: สร้างหนังสือรับรองยานอกบัญชี
EXAM-->>D: เอกสารที่ขอ
9.2 Shared Tables Integration Pattern
graph TD
subgraph "ระบบซักประวัติ (1.2.2)"
HIST_SRC["HistoryID<br/>SourceSystem='HISTORY_TAKING'"]
end
subgraph "ระบบห้องตรวจแพทย์ (1.2.3)"
EXAM_SRC["ExaminationID<br/>SourceSystem='EXAMINATION'"]
end
subgraph "Shared Tables"
DIAGNOSIS["MEDICAL_DIAGNOSIS<br/>การวินิจฉัยร่วม"]
PROCEDURE["MEDICAL_PROCEDURE<br/>หัตถการร่วม"]
MEDICATION["MEDICATION_ORDER<br/>การสั่งยาร่วม"]
LAB_ORDER["LAB_ORDER<br/>การสั่ง Lab ร่วม"]
XRAY_ORDER["RADIOLOGY_ORDER<br/>การสั่ง X-Ray ร่วม"]
REFERRAL["PATIENT_REFERRAL<br/>การส่งต่อร่วม"]
CONSULT["PATIENT_CONSULTATION<br/>การปรึกษาร่วม"]
APPOINTMENT["PATIENT_APPOINTMENT<br/>การนัดหมายร่วม"]
end
%% ระบบซักประวัติเขียนไปยัง Shared Tables
HIST_SRC -->|SourceSystem='HISTORY_TAKING'<br/>SourceID=HistoryID| DIAGNOSIS
HIST_SRC -->|SourceSystem='HISTORY_TAKING'<br/>SourceID=HistoryID| PROCEDURE
HIST_SRC -->|SourceSystem='HISTORY_TAKING'<br/>SourceID=HistoryID| MEDICATION
HIST_SRC -->|SourceSystem='HISTORY_TAKING'<br/>SourceID=HistoryID| LAB_ORDER
%% ระบบห้องตรวจแพทย์เขียนไปยัง Shared Tables
EXAM_SRC -->|SourceSystem='EXAMINATION'<br/>SourceID=ExaminationID| DIAGNOSIS
EXAM_SRC -->|SourceSystem='EXAMINATION'<br/>SourceID=ExaminationID| PROCEDURE
EXAM_SRC -->|SourceSystem='EXAMINATION'<br/>SourceID=ExaminationID| MEDICATION
EXAM_SRC -->|SourceSystem='EXAMINATION'<br/>SourceID=ExaminationID| LAB_ORDER
EXAM_SRC -->|SourceSystem='EXAMINATION'<br/>SourceID=ExaminationID| XRAY_ORDER
EXAM_SRC -->|SourceSystem='EXAMINATION'<br/>SourceID=ExaminationID| REFERRAL
EXAM_SRC -->|SourceSystem='EXAMINATION'<br/>SourceID=ExaminationID| CONSULT
EXAM_SRC -->|SourceSystem='EXAMINATION'<br/>SourceID=ExaminationID| APPOINTMENT
%% การอ่านข้อมูลจาก Shared Tables
DIAGNOSIS -.->|SourceSystem Filter| HIST_SRC
DIAGNOSIS -.->|SourceSystem Filter| EXAM_SRC
MEDICATION -.->|RE-MED: OriginalMedicationID| HIST_SRC
DIAGNOSIS -.->|Re-diag: OriginalDiagnosisID| HIST_SRC
style DIAGNOSIS fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style PROCEDURE fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style MEDICATION fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style LAB_ORDER fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style XRAY_ORDER fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style REFERRAL fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style CONSULT fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
style APPOINTMENT fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
9.3 Template และ Re-functions Integration
flowchart TB
subgraph "Template System"
EXAM_TEMPLATE["EXAMINATION_TEMPLATE<br/>Template การตรวจ"]
MED_TEMPLATE["MEDICATION_TEMPLATE<br/>Template การสั่งยา"]
DIAG_TEMPLATE["DIAGNOSIS_TEMPLATE<br/>Template การวินิจฉัย"]
end
subgraph "Re-functions"
REMED["RE-MED<br/>การสั่งยาซ้ำ"]
REDIAG["Re-diag<br/>การวินิจฉัยซ้ำ"]
REPROCED["Re-procedure<br/>การทำหัตถการซ้ำ"]
end
subgraph "Current Examination"
CURRENT_EXAM["การตรวจรักษาปัจจุบัน<br/>ExaminationID"]
end
%% Template Usage
EXAM_TEMPLATE -->|IsFromTemplate=1<br/>TemplateID| CURRENT_EXAM
MED_TEMPLATE -->|IsFromTemplate=1<br/>TemplateID| CURRENT_EXAM
DIAG_TEMPLATE -->|IsFromTemplate=1<br/>TemplateID| CURRENT_EXAM
%% Re-function Usage
REMED -->|IsFromReMed=1<br/>OriginalMedicationID| CURRENT_EXAM
REDIAG -->|IsFromReDiag=1<br/>OriginalDiagnosisID| CURRENT_EXAM
REPROCED -->|IsFromReProc=1<br/>OriginalProcedureID| CURRENT_EXAM
%% Integration with Shared Tables
CURRENT_EXAM -->|SourceSystem='EXAMINATION'| SHARED_TABLES["Shared Tables<br/>MEDICAL_DIAGNOSIS<br/>MEDICATION_ORDER<br/>MEDICAL_PROCEDURE"]
style CURRENT_EXAM fill:#e8f5e8,stroke:#2e7d32,stroke-width:3px
style SHARED_TABLES fill:#e0f7fa,stroke:#0097a7,stroke-width:2px
9.4 ความสอดคล้องกับ TOR และ SRS
| TOR Section | DFD Process | Data Store | Integration System |
|---|---|---|---|
| 1.2.3.1.1 | P1 (การจัดการข้อมูลพื้นฐาน) | DS14 (ICD_CODES) | ระบบการเงิน (1.2.14) |
| 1.2.3.1.2 | P1 (การจัดการข้อมูลพื้นฐาน) | DS14 (ICD_CODES) | ระบบการเงิน (1.2.14) |
| 1.2.3.1.3 | P1 (การจัดการข้อมูลพื้นฐาน) | DS14 (Treatment Group) | ระบบการเงิน (1.2.14) |
| 1.2.3.2.1 | P2 (การตรวจรักษา) | DS1, DS2 | ระบบซักประวัติ (1.2.2) |
| 1.2.3.2.2 | P2 (การตรวจรักษา) | DS2, DS12 | Camera, Drawing Tool |
| 1.2.3.2.3 | P2 (การตรวจรักษา) | DS16, DS17 | ระบบ Lab (1.2.7), X-Ray (1.2.8) |
| 1.2.3.2.4 | P2 (การตรวจรักษา) | DS11, DS13 | ระบบเภสัชกรรม (1.2.13) |
| 1.2.3.2.5-6 | P2 (การตรวจรักษา) | DS5, DS11 | ระบบเภสัชกรรม (1.2.13) |
| 1.2.3.2.7-8 | P2 (การตรวจรักษา) | DS3, DS4 | ระบบการเงิน (1.2.14) |
| 1.2.3.2.9-12 | P2 (การตรวจรักษา) | DS6, DS7, DS16, DS17 | Lab (1.2.7), X-Ray (1.2.8) |
| 1.2.3.2.13-19 | P2 (การตรวจรักษา) | DS10 | หลายระบบ |
| 1.2.3.3 | P3 (การจัดการนัดหมาย) | DS8 | ระบบนัดหมาย (1.2.6) |
| 1.2.3.4 | P4 (การขอปรึกษา) | DS9 | แพทย์เฉพาะทาง |
| 1.2.3.5 | P5 (การพิมพ์เอกสาร) | DS19 | Printer, Report Engine |
---
10. API Technical Specifications
10.1 ภาพรวมการเชื่อมต่อระบบ
ระบบห้องตรวจแพทย์เชื่อมต่อกับระบบอื่นผ่าน RESTful API และ Real-time WebSocket สำหรับข้อมูลที่ต้องการความเร็วสูง
graph TD
%% Core System
EXAM_SYSTEM[("🩺<br/>ระบบห้องตรวจแพทย์<br/>1.2.3")]
%% Input Integration Systems
HISTORY_API[("📝<br/>History Taking API<br/>1.2.2")]
MEDICAL_RECORD_API[("📋<br/>Medical Record API<br/>1.2.1")]
RIGHTS_API[("🎫<br/>Rights Verification API<br/>1.2.15")]
LAB_RESULT_API[("🔬<br/>Lab Results API<br/>1.2.7")]
XRAY_RESULT_API[("📡<br/>X-Ray Results API<br/>1.2.8")]
%% Output Integration Systems
PHARMACY_API[("💊<br/>Pharmacy API<br/>1.2.13")]
FINANCE_API[("💰<br/>Finance API<br/>1.2.14")]
LAB_ORDER_API[("🔬<br/>Lab Order API<br/>1.2.7")]
XRAY_ORDER_API[("📷<br/>X-Ray Order API<br/>1.2.8")]
APPOINTMENT_API[("📅<br/>Appointment API<br/>1.2.6")]
INPATIENT_API[("🏨<br/>Inpatient API<br/>1.2.17")]
SURGERY_API[("⚕️<br/>Surgery API<br/>1.2.18")]
%% API Flows - Input
HISTORY_API -->|GET: patient_history<br/>POST: examination_feedback| EXAM_SYSTEM
MEDICAL_RECORD_API -->|GET: patient_data<br/>GET: visit_data| EXAM_SYSTEM
RIGHTS_API -->|GET: rights_verification<br/>POST: rights_usage| EXAM_SYSTEM
LAB_RESULT_API -->|GET: lab_results<br/>WebSocket: real_time_results| EXAM_SYSTEM
XRAY_RESULT_API -->|GET: xray_results<br/>WebSocket: real_time_images| EXAM_SYSTEM
%% API Flows - Output
EXAM_SYSTEM -->|POST: medication_order<br/>GET: drug_interaction_check| PHARMACY_API
EXAM_SYSTEM -->|POST: service_charges<br/>POST: treatment_group_billing| FINANCE_API
EXAM_SYSTEM -->|POST: lab_order<br/>PUT: cancel_lab_order| LAB_ORDER_API
EXAM_SYSTEM -->|POST: xray_order<br/>PUT: cancel_xray_order| XRAY_ORDER_API
EXAM_SYSTEM -->|POST: appointment<br/>GET: doctor_schedule| APPOINTMENT_API
EXAM_SYSTEM -->|POST: patient_admission<br/>POST: bed_reservation| INPATIENT_API
EXAM_SYSTEM -->|POST: surgery_request<br/>GET: or_schedule| SURGERY_API
%% Styling
style EXAM_SYSTEM fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style HISTORY_API fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style MEDICAL_RECORD_API fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style RIGHTS_API fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style LAB_RESULT_API fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style XRAY_RESULT_API fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style PHARMACY_API fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
style FINANCE_API fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
style LAB_ORDER_API fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
style XRAY_ORDER_API fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
style APPOINTMENT_API fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
style INPATIENT_API fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
style SURGERY_API fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
9.2 รายละเอียด API Endpoints
9.2.1 Input APIs (ข้อมูลเข้า)
History Taking System Integration (1.2.2)
GET /api/v1/history/{historyId}
- รับข้อมูลการซักประวัติ
- ส่งคืน: patient data, vital signs, chief complaint, medical history
POST /api/v1/history/{historyId}/examination-feedback
- ส่งผลการตรวจเพิ่มเติมกลับไปยังระบบซักประวัติ
- ส่ง: physical examination results, updated diagnosis
WebSocket /ws/history-updates
- รับการอัปเดตแบบ real-time จากระบบซักประวัติ
Medical Record System Integration (1.2.1)
GET /api/v1/patients/{hn}
- รับข้อมูลผู้ป่วยหลัก
- ส่งคืน: demographics, contact info, insurance
GET /api/v1/visits/{visitId}
- รับข้อมูลการเข้ารับบริการ
- ส่งคืน: visit details, registration info, current status
GET /api/v1/patients/{hn}/medical-history
- รับประวัติการรักษาย้อนหลัง
- ส่งคืน: previous visits, diagnoses, treatments
Rights Verification System Integration (1.2.15)
GET /api/v1/rights/{hn}/verify
- ตรวจสอบสิทธิการรักษา
- ส่งคืน: rights status, coverage details, limitations
POST /api/v1/rights/{hn}/usage
- บันทึกการใช้สิทธิ
- ส่ง: service codes, charges, treatment details
WebSocket /ws/rights-alerts
- รับการแจ้งเตือนเรื่องสิทธิแบบ real-time
Laboratory System Integration (1.2.7)
GET /api/v1/lab/results/{hn}
- รับผลการตรวจ Lab ปัจจุบันและย้อนหลัง
- ส่งคืน: test results, reference ranges, abnormal flags
GET /api/v1/lab/results/{hn}/trends
- รับข้อมูล Lab แบบ trend สำหรับการเปรียบเทียบ
- ส่งคืน: historical data, trend graphs, statistical analysis
WebSocket /ws/lab-results
- รับผล Lab แบบ real-time เมื่อมีผลใหม่
Radiology System Integration (1.2.8)
GET /api/v1/xray/results/{hn}
- รับผลการตรวจ X-Ray และภาพ
- ส่งคืน: images, reports, radiologist interpretations
GET /api/v1/xray/images/{imageId}
- ดาวน์โหลดภาพ X-Ray คุณภาพสูง
- ส่งคืน: DICOM files, image metadata
WebSocket /ws/xray-alerts
- รับการแจ้งเตือนเมื่อมีผล X-Ray ใหม่
9.2.2 Output APIs (ข้อมูลออก)
Pharmacy System Integration (1.2.13)
POST /api/v1/pharmacy/orders
- ส่งใบสั่งยาไปยังระบบเภสัชกรรม
- ส่ง: medication details, dosage, instructions, patient info
GET /api/v1/pharmacy/drug-interactions
- ตรวจสอบ Drug Interaction
- ส่ง: drug codes, patient allergies
- ส่งคืน: interaction warnings, severity levels
POST /api/v1/pharmacy/allergy-alerts
- ส่งข้อมูลการแพ้ยาใหม่
- ส่ง: allergy details, Naranjo score, contraindications
GET /api/v1/pharmacy/g6pd-drugs
- ตรวจสอบยาที่ห้ามใช้กับผู้ป่วย G-6-PD
- ส่ง: drug codes, G-6-PD status
- ส่งคืน: contraindicated drugs, alternatives
Finance System Integration (1.2.14)
POST /api/v1/finance/charges
- ส่งข้อมูลค่าบริการและการรักษา
- ส่ง: service codes, quantities, treatment groups
POST /api/v1/finance/drg-calculation
- คำนวณ DRG และกลุ่มค่ารักษาพยาบาล
- ส่ง: diagnosis codes, procedures, comorbidities
- ส่งคืน: DRG code, weight, expected LOS
GET /api/v1/finance/treatment-groups
- รับข้อมูลกลุ่มค่ารักษาพยาบาล
- ส่งคืน: treatment group codes, service fees, coverage
Laboratory Order System Integration (1.2.7)
POST /api/v1/lab/orders
- สั่งการตรวจ Lab
- ส่ง: test codes, specimen types, urgency, clinical info
PUT /api/v1/lab/orders/{orderId}/cancel
- ยกเลิกการสั่ง Lab
- ส่ง: cancellation reason, alternative orders
POST /api/v1/lab/orders/pre-order
- สั่ง Lab ล่วงหน้าสำหรับการนัดหมาย
- ส่ง: appointment details, test requirements
Radiology Order System Integration (1.2.8)
POST /api/v1/xray/orders
- สั่งการตรวจ X-Ray
- ส่ง: examination types, positions, urgency, clinical diagnosis
PUT /api/v1/xray/orders/{orderId}/modify
- แก้ไขคำสั่ง X-Ray
- ส่ง: updated requirements, new positioning
POST /api/v1/xray/orders/emergency
- สั่ง X-Ray แบบฉุกเฉิน
- ส่ง: emergency details, time constraints
Appointment System Integration (1.2.6)
POST /api/v1/appointments
- สร้างการนัดหมาย
- ส่ง: appointment details, multiple departments, preferences
GET /api/v1/appointments/availability
- ตรวจสอบความพร้อมของแพทย์และแผนก
- ส่งคืน: available slots, doctor schedules
POST /api/v1/appointments/multi-department
- นัดหลายแผนกในครั้งเดียว
- ส่ง: department list, coordination requirements
GET /api/v1/appointments/holidays
- ตรวจสอบวันหยุดต่างๆ
- ส่งคืน: holiday calendar, hospital-specific holidays
Inpatient System Integration (1.2.17)
POST /api/v1/inpatient/admissions
- ส่งข้อมูลการ Admit ผู้ป่วย
- ส่ง: admission details, bed requirements, medical conditions
POST /api/v1/inpatient/bed-reservations
- จองเตียงผู้ป่วย
- ส่ง: bed type, special requirements, estimated LOS
POST /api/v1/inpatient/transfers
- ส่งต่อผู้ป่วยระหว่างแผนก
- ส่ง: transfer reason, target department, handover notes
Surgery System Integration (1.2.18)
POST /api/v1/surgery/requests
- ส่งคำขอผ่าตัด
- ส่ง: surgery details, urgency, surgeon preferences
GET /api/v1/surgery/or-schedule
- ตรวจสอบตารางห้องผ่าตัด
- ส่งคืน: available OR slots, equipment requirements
POST /api/v1/surgery/pre-op-orders
- ส่งคำสั่งเตรียมผ่าตัด
- ส่ง: pre-operative requirements, special preparations
9.3 Error Handling และ Security
9.3.1 Error Response Format
{
"error": {
"code": "EXAM_001",
"message": "Physical examination data validation failed",
"details": "Required field 'GeneralAppearance' is missing",
"timestamp": "2024-10-07T14:30:00Z",
"request_id": "req_123456789"
}
}
9.3.2 Authentication & Authorization
- JWT Token: ใช้สำหรับ authentication ระหว่างระบบ
- OAuth 2.0: สำหรับ authorization และ scope management
- RBAC: Role-Based Access Control สำหรับควบคุมสิทธิ์การเข้าถึง API
9.3.3 Rate Limiting
- API Rate Limit: 1000 requests/hour per system
- WebSocket Connection: 5 concurrent connections per system
- Emergency APIs: Unlimited rate สำหรับ STAT orders
9.4 Data Synchronization Strategy
9.4.1 Real-time Sync (WebSocket)
- Lab/X-Ray results notifications
- Emergency consultation alerts
- Drug interaction warnings
- Rights verification status changes
9.4.2 Batch Sync (Scheduled APIs)
- Daily historical data synchronization
- Weekly appointment calendar updates
- Monthly statistical data exchange
- Quarterly system health checks
9.4.3 Event-Driven Sync
- Patient admission events
- Surgery scheduling events
- Critical lab value alerts
- Medication order changes
เอกสารนี้จัดทำขึ้นเพื่อใช้เป็นแนวทางในการออกแบบและพัฒนาระบบห้องตรวจแพทย์ที่เชื่อมโยงกับระบบอื่นๆ ในโรงพยาบาล และจะได้รับการปรับปรุงตามความต้องการที่เปลี่ยนแปลง