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

Data Flow Diagram (DFD)

ระบบห้องตรวจแพทย์ (Examination Room System)

เวอร์ชัน: 1.0

วันที่: 7 ตุลาคม 2568

สอดคล้องกับ: SRS ระบบห้องตรวจแพทย์ v1.0, TOR ระบบห้องตรวจแพทย์, ERD v1.0, และ Schema v1.0


สารบัญ

  1. ภาพรวมระบบ
  2. Context Diagram
  3. Level 0 DFD
  4. Level 1 DFD - การตรวจร่างกายและการรักษา
  5. Level 1 DFD - การจัดการนัดหมาย
  6. Level 1 DFD - การขอปรึกษา
  7. Level 1 DFD - การพิมพ์เอกสาร
  8. Data Dictionary
  9. API Integration Flow
  10. 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

เอกสารนี้จัดทำขึ้นเพื่อใช้เป็นแนวทางในการออกแบบและพัฒนาระบบห้องตรวจแพทย์ที่เชื่อมโยงกับระบบอื่นๆ ในโรงพยาบาล และจะได้รับการปรับปรุงตามความต้องการที่เปลี่ยนแปลง