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

Data Flow Diagram (DFD)

ระบบงานชันสูตร (Laboratory Information System)

เวอร์ชัน: 1.0

วันที่: 11 ตุลาคม 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. Level 1 DFD - การพิมพ์เอกสาร
  9. Data Dictionary
  10. API Integration Flow

1. ภาพรวมระบบ

ระบบงานชันสูตรทำหน้าที่เป็น Laboratory Hub System ที่จัดการการดำเนินงานห้องปฏิบัติการทางการแพทย์ครบวงจรของโรงพยาบาลค่ายธนรัชน์ โดยมีการไหลของข้อมูลหลักดังนี้:

  • Input: คำสั่งตรวจจากระบบต่างๆ, ข้อมูลผู้ป่วยจากระบบเวชระเบียน, สิ่งส่งตรวจ, ผลการตรวจจาก Lab นอก
  • Processing: การจัดการคำสั่งตรวจ, การบันทึกผลการตรวจ, การตรวจสอบค่าปกติ/ผิดปกติ, การควบคุมคุณภาพ, การอนุมัติผล
  • Output: ผลการตรวจ, รายงานการตรวจ, ใบสั่งตรวจ, การแจ้งเตือนผลผิดปกติ, การนัดฟังผล
  • Integration: เชื่อมต่อกับ 8 ระบบหลักผ่าน API สำหรับการรับคำสั่งตรวจ, ส่งผลการตรวจ, การเงิน, การนัดหมาย

คุณลักษณะหลักของระบบ:

  • การจัดการข้อมูลรายการ Lab ครบถ้วน: ค่าปกติตามอายุและเพศ, ค่าวิกฤต, สิ่งส่งตรวจ, อัตราค่าบริการ
  • การสั่งตรวจแบบออนไลน์: รองรับการสั่งตรวจจากทุกจุดในโรงพยาบาล แบบ real-time
  • การจัดการกลุ่มการตรวจ (Panel): การสั่งตรวจเป็นกลุ่ม เพิ่ม-ลดรายการได้
  • การรายงานผลครบวงจร: บันทึกผลตัวเลข/ตัวอักษร, ภาพถ่าย, Result Text, Lab Note
  • การควบคุมคุณภาพ: ระบบ Report by/Approved by, การล็อกผล, ประวัติการเปลี่ยนแปลง
  • การแจ้งเตือนอัตโนมัติ: ผลผิดปกติ, ค่าวิกฤต, ผลพร้อมดู
  • การเชื่อมโยง Lab นอก: รับผล PDF จาก Lab ภายนอก
  • การนัดหมายฟังผล: เชื่อมโยงระบบนัดหมาย (1.2.6)

กระบวนการหลักของระบบ:

  1. การสั่งตรวจ: รับคำสั่งจากระบบต่างๆ → สร้าง Lab Request → พิมพ์ใบสั่งตรวจ/สติกเกอร์
  2. การเก็บสิ่งส่งตรวจ: สแกน Barcode → ตรวจสอบ Specimen → ส่งห้อง Lab
  3. การตรวจวิเคราะห์: ทำการตรวจ → บันทึกผล → ตรวจสอบ QC
  4. การรายงานผล: Report by → Approved by → ปลดล็อก → แจ้งผลพร้อม
  5. การติดตาม: แจ้งเตือนผลผิดปกติ → นัดฟังผล → พิมพ์รายงาน

2. Context Diagram

graph TD
    %% External Entities
    DOC["👨‍⚕️ แพทย์<br/>(Doctor)"]
    NURSE["👩‍⚕️ พยาบาล<br/>(Nurse)"]
    LAB_TECH["🔬 นักเทคนิคการแพทย์<br/>(Lab Technician)"]
    LAB_SUPERVISOR["👨‍🏫 หัวหน้าแลป<br/>(Lab Supervisor)"]
    PATIENT["👤 ผู้ป่วยและญาติ<br/>(Patient & Family)"]
    FINANCE_STAFF["💰 เจ้าหน้าที่การเงิน<br/>(Finance Staff)"]
    OUT_LAB["🏢 Lab นอก<br/>(External Lab)"]

    %% Main System
    LAB_SYS["🔬 ระบบงานชันสูตร<br/>Laboratory Information System<br/>(1.2.7)"]

    %% Other HIS Systems
    MED_REC["📋 ระบบเวชระเบียน<br/>(1.2.1)"]
    HISTORY["🩺 ระบบซักประวัติ<br/>(1.2.2)"]
    EXAM["🏥 ระบบห้องตรวจแพทย์<br/>(1.2.3)"]
    ER["🚑 ระบบห้องฉุกเฉิน<br/>(1.2.4)"]
    APPT["📅 ระบบนัดหมายฯ<br/>(1.2.6)"]
    XRAY["🩻 ระบบรังสีวิทยา<br/>(1.2.8)"]
    FINANCE["💳 ระบบการเงิน<br/>(1.2.14)"]
    PHARM["💊 ระบบเภสัชกรรม<br/>(1.2.13)"]

    %% Data Flows - External Entities to System
    DOC -->|คำสั่งตรวจ Lab| LAB_SYS
    DOC -->|ดูผลการตรวจ| LAB_SYS
    NURSE -->|เก็บสิ่งส่งตรวจ| LAB_SYS
    LAB_TECH -->|บันทึกผลการตรวจ| LAB_SYS
    LAB_TECH -->|ควบคุมคุณภาพ| LAB_SYS
    LAB_SUPERVISOR -->|อนุมัติผลการตรวจ| LAB_SYS
    PATIENT -->|สิ่งส่งตรวจ| LAB_SYS
    OUT_LAB -->|ผลการตรวจ PDF| LAB_SYS

    %% Data Flows - System to External Entities
    LAB_SYS -->|ใบสั่งตรวจ Lab| DOC
    LAB_SYS -->|ผลการตรวจ| DOC
    LAB_SYS -->|รายงานการตรวจ| DOC
    LAB_SYS -->|สติกเกอร์ Tube| LAB_TECH
    LAB_SYS -->|ใบสั่งตรวจ Lab| LAB_TECH
    LAB_SYS -->|การแจ้งเตือนผลผิดปกติ| DOC
    LAB_SYS -->|ใบนัดฟังผล| PATIENT
    LAB_SYS -->|รายงานผลการตรวจ| PATIENT
    LAB_SYS -->|รายงานการเงิน Lab| FINANCE_STAFF

    %% Data Flows - System Integrations
    MED_REC <-->|ข้อมูลผู้ป่วย| LAB_SYS
    HISTORY -->|คำสั่งตรวจ Lab| LAB_SYS
    EXAM -->|คำสั่งตรวจ Lab| LAB_SYS
    ER -->|คำสั่งตรวจ STAT| LAB_SYS
    LAB_SYS -->|ผลการตรวจ| HISTORY
    LAB_SYS -->|ผลการตรวจ| EXAM
    LAB_SYS -->|ผลการตรวจ STAT| ER
    LAB_SYS <-->|การนัดฟังผล| APPT
    LAB_SYS <-->|ข้อมูลการเงิน Lab| FINANCE
    LAB_SYS <-->|การตรวจเสริม| XRAY
    LAB_SYS <-->|Drug Level Monitor| PHARM

    %% Styling
    style LAB_SYS fill:#e3f2fd,stroke:#0277bd,stroke-width:4px
    style DOC fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style NURSE fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style LAB_TECH fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style LAB_SUPERVISOR fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style PATIENT fill:#fce4ec,stroke:#c2185b,stroke-width:2px
    style FINANCE_STAFF fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style OUT_LAB fill:#f1f8e9,stroke:#33691e,stroke-width:2px
    style MED_REC fill:#fafafa,stroke:#424242,stroke-width:2px
    style HISTORY fill:#fafafa,stroke:#424242,stroke-width:2px
    style EXAM fill:#fafafa,stroke:#424242,stroke-width:2px
    style ER fill:#fafafa,stroke:#424242,stroke-width:2px
    style APPT fill:#fafafa,stroke:#424242,stroke-width:2px
    style XRAY fill:#fafafa,stroke:#424242,stroke-width:2px
    style FINANCE fill:#fafafa,stroke:#424242,stroke-width:2px
    style PHARM fill:#fafafa,stroke:#424242,stroke-width:2px

3. Level 0 DFD

graph TD
    %% External Entities
    DOC["👨‍⚕️ แพทย์"]
    NURSE["👩‍⚕️ พยาบาล"]
    LAB_TECH["🔬 นักเทคนิคการแพทย์"]
    LAB_SUPERVISOR["👨‍🏫 หัวหน้าแลป"]
    PATIENT["👤 ผู้ป่วยและญาติ"]
    FINANCE_STAFF["💰 เจ้าหน้าที่การเงิน"]
    OUT_LAB["🏢 Lab นอก"]

    %% Other Systems
    HIS_SYSTEMS["💻 ระบบ HIS อื่นๆ<br/>(1.2.1, 1.2.2, 1.2.3,<br/>1.2.4, 1.2.6, 1.2.8,<br/>1.2.13, 1.2.14)"]

    %% Main Processes
    P1["1.0<br/>การจัดการข้อมูล<br/>พื้นฐาน Lab"]
    P2["2.0<br/>การสั่งตรวจ<br/>ห้องปฏิบัติการ"]
    P3["3.0<br/>การรายงานผล<br/>การตรวจ"]
    P4["4.0<br/>การควบคุม<br/>คุณภาพ"]
    P5["5.0<br/>การพิมพ์<br/>เอกสาร"]

    %% Data Stores
    DS1[("D1<br/>Master Lab Tests<br/>(รายการตรวจ Lab)")]
    DS2[("D2<br/>Lab Orders<br/>(คำสั่งตรวจ)")]
    DS3[("D3<br/>Lab Results<br/>(ผลการตรวจ)")]
    DS4[("D4<br/>Specimens<br/>(สิ่งส่งตรวจ)")]
    DS5[("D5<br/>Quality Control<br/>(ควบคุมคุณภาพ)")]
    DS6[("D6<br/>Lab Reports<br/>(รายงานการตรวจ)")]
    DS7[("D7<br/>Outside Lab<br/>(Lab นอก)")]
    DS8[("D8<br/>Critical Values<br/>(ค่าวิกฤต)")]
    DS9[("D9<br/>Appointment Lab<br/>(นัดฟังผล)")]
    DS10[("D10<br/>Lab Billing<br/>(การเงิน Lab)")]

    %% Data Flows - Main Process Flows
    HIS_SYSTEMS -->|ข้อมูลผู้ป่วย| P2
    HIS_SYSTEMS -->|คำสั่งตรวจ Lab| P2
    DOC -->|คำสั่งตรวจ Lab| P2
    P2 -->|ผลการตรวจ| HIS_SYSTEMS
    P3 -->|ผลการตรวจ| HIS_SYSTEMS

    DOC -->|กำหนดรายการ Lab| P1
    LAB_SUPERVISOR -->|อนุมัติรายการ Lab| P1
    P1 -.->|ข้อมูล Lab Tests| DS1
    DS1 -.->|รายการ Lab| P2

    P2 -.->|คำสั่งตรวจ| DS2
    DS2 -.->|รายการสั่งตรวจ| P3
    DS2 -.->|คำสั่งตรวจ| P5

    NURSE -->|สิ่งส่งตรวจ| P3
    LAB_TECH -->|บันทึกผลการตรวจ| P3
    OUT_LAB -->|ผลการตรวจ PDF| P3
    P3 -.->|ผลการตรวจ| DS3
    DS3 -.->|ข้อมูลผล| P4
    DS3 -.->|ผลการตรวจ| P5

    P3 -.->|ข้อมูล Specimen| DS4
    DS4 -.->|สถานะ Specimen| P3

    LAB_TECH -->|ข้อมูล QC| P4
    LAB_SUPERVISOR -->|อนุมัติผลการตรวจ| P4
    P4 -.->|ข้อมูล QC| DS5
    DS5 -.->|สถานะ QC| P3

    P3 -.->|ผลผิดปกติ| DS8
    DS8 -.->|การแจ้งเตือน| DOC

    P3 -.->|การนัดฟังผล| DS9
    DS9 -.->|ข้อมูลนัด| HIS_SYSTEMS

    P3 -.->|ข้อมูลการเงิน| DS10
    DS10 -.->|รายงานการเงิน| FINANCE_STAFF

    P5 -.->|เอกสาร Lab| DS6
    DS6 -.->|Template เอกสาร| P5

    %% Print Outputs
    P5 -->|ใบสั่งตรวจ Lab| DOC
    P5 -->|ใบสั่งตรวจ Lab| LAB_TECH
    P5 -->|สติกเกอร์ Tube| LAB_TECH
    P5 -->|รายงานผลการตรวจ| DOC
    P5 -->|รายงานผลการตรวจ| PATIENT
    P5 -->|ใบนัดฟังผล| PATIENT

    %% Alert and Notification Flows
    P3 -->|การแจ้งเตือนผลผิดปกติ| DOC
    P3 -->|แจ้งผลพร้อมดู| HIS_SYSTEMS

    %% Styling
    style P1 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style P2 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style P3 fill:#e3f2fd,stroke:#0277bd,stroke-width:2px
    style P4 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style P5 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px

    style DS1 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
    style DS2 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style DS3 fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
    style DS4 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
    style DS5 fill:#f1f8e9,stroke:#33691e,stroke-width:2px
    style DS6 fill:#fafafa,stroke:#424242,stroke-width:2px
    style DS7 fill:#ffccbc,stroke:#ff9800,stroke-width:2px
    style DS8 fill:#ffebee,stroke:#d32f2f,stroke-width:2px
    style DS9 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style DS10 fill:#fff8e1,stroke:#f9a825,stroke-width:2px

4. Level 1 DFD - การจัดการข้อมูลพื้นฐาน

graph TD
    %% External Entities
    DOC["👨‍⚕️ แพทย์"]
    LAB_SUPERVISOR["👨‍🏫 หัวหน้าแลป"]
    ADMIN["👨‍💼 ผู้ดูแลระบบ"]

    %% Sub-processes
    P11["1.1<br/>การกำหนด<br/>รายการตรวจ Lab"]
    P12["1.2<br/>การกำหนด<br/>ค่าปกติและค่าวิกฤต"]
    P13["1.3<br/>การกำหนด<br/>กลุ่มการตรวจ (Panel)"]
    P14["1.4<br/>การกำหนด<br/>อัตราค่าบริการ"]
    P15["1.5<br/>การออกแบบ<br/>แบบฟอร์มการสั่ง"]
    P16["1.6<br/>การกำหนด<br/>การแจ้งเตือน"]

    %% Data Stores
    DS1[("D1<br/>Master Lab Tests")]
    DS11[("D11<br/>Normal Values<br/>(ค่าปกติ)")]
    DS12[("D12<br/>Critical Values<br/>(ค่าวิกฤต)")]
    DS13[("D13<br/>Lab Panels<br/>(กลุ่มการตรวจ)")]
    DS14[("D14<br/>Service Rates<br/>(อัตราค่าบริการ)")]
    DS15[("D15<br/>Order Forms<br/>(แบบฟอร์มการสั่ง)")]
    DS16[("D16<br/>Alert Settings<br/>(การตั้งค่าแจ้งเตือน)")]
    DS17[("D17<br/>Lab Categories<br/>(หมวดหมู่การตรวจ)")]

    %% Data Flows
    DOC -->|รายการตรวจใหม่| P11
    LAB_SUPERVISOR -->|อนุมัติรายการตรวจ| P11
    P11 -.->|รายการ Lab Tests| DS1

    DOC -->|ค่าปกติตามอายุเพศ| P12
    LAB_SUPERVISOR -->|ค่าวิกฤต| P12
    P12 -.->|ค่าปกติ| DS11
    P12 -.->|ค่าวิกฤต| DS12
    DS1 -.->|รายการตรวจ| P12

    DOC -->|การจัดกลุ่มตรวจ| P13
    P13 -.->|Panel Tests| DS13
    DS1 -.->|รายการตรวจ| P13

    ADMIN -->|อัตราค่าบริการ| P14
    P14 -.->|ราคาค่าบริการ| DS14
    DS1 -.->|รายการตรวจ| P14
    DS17 -.->|หมวดหมู่| P14

    DOC -->|ออกแบบฟอร์ม| P15
    P15 -.->|Template ฟอร์ม| DS15
    DS13 -.->|กลุ่มการตรวจ| P15

    LAB_SUPERVISOR -->|เงื่อนไขการแจ้งเตือน| P16
    P16 -.->|การตั้งค่าแจ้งเตือน| DS16
    DS11 -.->|ค่าปกติ| P16
    DS12 -.->|ค่าวิกฤต| P16

    %% Outputs
    P11 -->|รายการ Lab ใหม่| DOC
    P12 -->|ค่าอ้างอิง| DOC
    P13 -->|Panel Tests| DOC
    P14 -->|รายการราคา| ADMIN
    P15 -->|แบบฟอร์มการสั่ง| DOC
    P16 -->|การตั้งค่าแจ้งเตือน| LAB_SUPERVISOR

    %% Integration with other systems
    DS14 -.->|ข้อมูลการเงิน| P14
    P14 -->|อัปเดตราคา| ADMIN

    %% Styling
    style P11 fill:#e3f2fd,stroke:#0277bd,stroke-width:2px
    style P12 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style P13 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style P14 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style P15 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style P16 fill:#ffebee,stroke:#d32f2f,stroke-width:2px

    style DS1 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
    style DS11 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style DS12 fill:#ffebee,stroke:#d32f2f,stroke-width:2px
    style DS13 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style DS14 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style DS15 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style DS16 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
    style DS17 fill:#fafafa,stroke:#424242,stroke-width:2px

5. Level 1 DFD - การสั่งตรวจห้องปฏิบัติการ

graph TD
    %% External Entities
    DOC["👨‍⚕️ แพทย์"]
    NURSE["👩‍⚕️ พยาบาล"]
    HIS_SYSTEMS["💻 ระบบ HIS อื่นๆ"]
    PATIENT["👤 ผู้ป่วย"]

    %% Sub-processes
    P21["2.1<br/>การรับคำสั่งตรวจ<br/>แบบออนไลน์"]
    P22["2.2<br/>การเลือกชนิด<br/>การตรวจ"]
    P23["2.3<br/>การจัดการ<br/>คำสั่งตรวจ"]
    P24["2.4<br/>การสร้าง<br/>Barcode และ Label"]
    P25["2.5<br/>การตรวจสอบ<br/>สิทธิและราคา"]
    P26["2.6<br/>การจัดการ<br/>สิ่งส่งตรวจ"]

    %% Data Stores
    DS1[("D1<br/>Master Lab Tests")]
    DS2[("D2<br/>Lab Orders")]
    DS4[("D4<br/>Specimens")]
    DS13[("D13<br/>Lab Panels")]
    DS14[("D14<br/>Service Rates")]
    DS18[("D18<br/>Barcode Labels<br/>(ป้ายกำกับ)")]
    DS19[("D19<br/>Order Status<br/>(สถานะคำสั่ง)")]
    DS20[("D20<br/>Patient Rights<br/>(สิทธิผู้ป่วย)")]

    %% Data Flows - Input
    HIS_SYSTEMS -->|คำสั่งตรวจ Lab| P21
    DOC -->|คำสั่งตรวจ Lab| P21
    NURSE -->|คำสั่งตรวจ Lab| P21
    P21 -.->|คำสั่งตรวจ| DS2

    DOC -->|เลือกรายการตรวจ| P22
    DOC -->|เลือก Panel| P22
    DS1 -.->|รายการ Lab| P22
    DS13 -.->|กลุ่มการตรวจ| P22
    P22 -->|รายการที่เลือก| P23

    P23 -->|เพิ่ม-ลดรายการ| DOC
    P23 -.->|คำสั่งสุดท้าย| DS2
    DS2 -.->|ข้อมูลคำสั่ง| P24

    P24 -.->|Barcode/Label| DS18
    P24 -->|ป้ายกำกับ| NURSE

    DS20 -.->|ข้อมูลสิทธิ| P25
    DS14 -.->|ราคาค่าบริการ| P25
    P25 -->|ยืนยันสิทธิ| HIS_SYSTEMS

    PATIENT -->|สิ่งส่งตรวจ| P26
    NURSE -->|เก็บ Specimen| P26
    P26 -.->|ข้อมูล Specimen| DS4
    DS18 -.->|Barcode| P26

    %% Status Updates
    P21 -.->|สถานะ: Ordered| DS19
    P26 -.->|สถานะ: Collected| DS19
    DS19 -.->|อัปเดตสถานะ| HIS_SYSTEMS

    %% Outputs
    P21 -->|ยืนยันการรับคำสั่ง| HIS_SYSTEMS
    P22 -->|รายการตรวจที่เลือก| DOC
    P23 -->|คำสั่งตรวจสุดท้าย| P24
    P24 -->|ใบสั่งตรวจ| DOC
    P25 -->|ข้อมูลการเงิน| HIS_SYSTEMS
    P26 -->|ข้อมูล Specimen| P21

    %% Integration
    P25 -->|ข้อมูลเงิน| HIS_SYSTEMS
    P26 -->|พร้อมส่ง Lab| P21

    %% Styling
    style P21 fill:#e3f2fd,stroke:#0277bd,stroke-width:2px
    style P22 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style P23 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style P24 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style P25 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style P26 fill:#ffebee,stroke:#d32f2f,stroke-width:2px

    style DS1 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
    style DS2 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style DS4 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
    style DS13 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style DS14 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style DS18 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style DS19 fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
    style DS20 fill:#fafafa,stroke:#424242,stroke-width:2px

6. Level 1 DFD - การรายงานผลการตรวจ

graph TD
    %% External Entities
    LAB_TECH["🔬 นักเทคนิคการแพทย์"]
    DOC["👨‍⚕️ แพทย์"]
    HIS_SYSTEMS["💻 ระบบ HIS อื่นๆ"]
    OUT_LAB["🏢 Lab นอก"]
    PATIENT["👤 ผู้ป่วย"]

    %% Sub-processes
    P31["3.1<br/>การแสดงรายการ<br/>ผู้ป่วยส่งตรวจ"]
    P32["3.2<br/>การค้นหา<br/>ผู้ป่วย"]
    P33["3.3<br/>การบันทึก<br/>ผลการตรวจ"]
    P34["3.4<br/>การบันทึก<br/>ภาพถ่ายและ Text"]
    P35["3.5<br/>การจัดการ<br/>ผล Lab นอก"]
    P36["3.6<br/>การตรวจสอบ<br/>ค่าปกติ/ผิดปกติ"]
    P37["3.7<br/>การแจ้งเตือน<br/>และแสดงผล"]
    P38["3.8<br/>การจัดการ<br/>Lab Note"]
    P39["3.9<br/>การนัดหมาย<br/>ฟังผล"]

    %% Data Stores
    DS2[("D2<br/>Lab Orders")]
    DS3[("D3<br/>Lab Results")]
    DS4[("D4<br/>Specimens")]
    DS7[("D7<br/>Outside Lab")]
    DS8[("D8<br/>Critical Values")]
    DS9[("D9<br/>Appointment Lab")]
    DS11[("D11<br/>Normal Values")]
    DS21[("D21<br/>Lab Images<br/>(ภาพการตรวจ)")]
    DS22[("D22<br/>Lab Notes<br/>(หมายเหตุ)")]
    DS23[("D23<br/>Patient History<br/>(ประวัติผู้ป่วย)")]
    DS24[("D24<br/>Result Status<br/>(สถานะผล)")]

    %% Data Flows - Patient Display and Search
    DS2 -.->|รายการส่งตรวจ| P31
    P31 -->|รายการผู้ป่วย| LAB_TECH

    LAB_TECH -->|HN/ชื่อ/บัตรประชาชน| P32
    LAB_TECH -->|Barcode| P32
    DS2 -.->|ข้อมูลคำสั่ง| P32
    DS23 -.->|ประวัติผู้ป่วย| P32
    P32 -->|ข้อมูลผู้ป่วย| LAB_TECH

    %% Result Entry
    LAB_TECH -->|ผลการตรวจ| P33
    DS2 -.->|รายการตรวจ| P33
    P33 -.->|ผลการตรวจ| DS3
    DS11 -.->|ค่าปกติ| P33

    LAB_TECH -->|ภาพถ่าย| P34
    LAB_TECH -->|Result Text| P34
    P34 -.->|ภาพและข้อความ| DS21
    DS3 -.->|ผลการตรวจ| P34

    %% Outside Lab
    OUT_LAB -->|ผลการตรวจ PDF| P35
    P35 -.->|ผล Lab นอก| DS7
    DS7 -.->|ผลการตรวจ| DS3

    %% Value Checking
    DS3 -.->|ผลการตรวจ| P36
    DS11 -.->|ค่าปกติ| P36
    DS8 -.->|ค่าวิกฤต| P36
    P36 -.->|ค่าผิดปกติ| DS8
    P36 -->|การแจ้งเตือน| P37

    %% Alert and Display
    P37 -->|แจ้งเตือนผลผิดปกติ| DOC
    P37 -->|แจ้งผลพร้อมดู| HIS_SYSTEMS
    P37 -.->|สถานะ: Ready| DS24
    DS24 -.->|การแจ้งเตือน| HIS_SYSTEMS

    %% Lab Notes
    LAB_TECH -->|Lab Note| P38
    P38 -.->|หมายเหตุ| DS22
    DS22 -.->|Note ไปผู้ดูผล| HIS_SYSTEMS

    %% Appointment
    LAB_TECH -->|นัดฟังผลวันอื่น| P39
    P39 -.->|การนัดฟังผล| DS9
    DS9 -.->|ข้อมูลนัด| HIS_SYSTEMS

    %% Historical Data
    DS23 -.->|ประวัติการรักษา| P31
    DS23 -.->|ประวัติการวินิจฉัย| P31
    DS23 -.->|ประวัติยา Lab/X-Ray| P31
    DS23 -.->|การเปรียบเทียบผล| P31

    %% Outputs to Doctors
    P31 -->|ผลการตรวจ| DOC
    P33 -->|ผลการตรวจใหม่| HIS_SYSTEMS
    P34 -->|ภาพผลการตรวจ| DOC
    P35 -->|ผล Lab นอก| DOC
    P38 -->|Lab Note| DOC
    P39 -->|ใบนัดฟังผล| PATIENT

    %% Styling
    style P31 fill:#e3f2fd,stroke:#0277bd,stroke-width:2px
    style P32 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style P33 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style P34 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style P35 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style P36 fill:#ffebee,stroke:#d32f2f,stroke-width:2px
    style P37 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style P38 fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
    style P39 fill:#f1f8e9,stroke:#33691e,stroke-width:2px

    style DS2 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style DS3 fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
    style DS4 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
    style DS7 fill:#ffccbc,stroke:#ff9800,stroke-width:2px
    style DS8 fill:#ffebee,stroke:#d32f2f,stroke-width:2px
    style DS9 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style DS11 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style DS21 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style DS22 fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
    style DS23 fill:#fafafa,stroke:#424242,stroke-width:2px
    style DS24 fill:#fff8e1,stroke:#f9a825,stroke-width:2px

7. Level 1 DFD - การควบคุมคุณภาพ

graph TD
    %% External Entities
    LAB_TECH["🔬 นักเทคนิคการแพทย์"]
    LAB_SUPERVISOR["👨‍🏫 หัวหน้าแลป"]
    DOC["👨‍⚕️ แพทย์"]
    HIS_SYSTEMS["💻 ระบบ HIS อื่นๆ"]

    %% Sub-processes
    P41["4.1<br/>การตรวจสอบ<br/>การเข้าอ่านผล"]
    P42["4.2<br/>การระบุ<br/>Report by/Approved by"]
    P43["4.3<br/>การยืนยัน<br/>และ Lock ผล"]
    P44["4.4<br/>การบันทึกประวัติ<br/>การเปลี่ยนแปลง"]
    P45["4.5<br/>การควบคุม<br/>การแสดงผล"]
    P46["4.6<br/>การตรวจสอบ<br/>คุณภาพผลการตรวจ"]

    %% Data Stores
    DS3[("D3<br/>Lab Results")]
    DS5[("D5<br/>Quality Control")]
    DS25[("D25<br/>Access Log<br/>(บันทึกการเข้าใช้)")]
    DS26[("D26<br/>Approval Status<br/>(สถานะการอนุมัติ)")]
    DS27[("D27<br/>Result History<br/>(ประวัติการแก้ไข)")]
    DS28[("D28<br/>Lock Status<br/>(สถานะการล็อก)")]
    DS29[("D29<br/>QC Standards<br/>(มาตรฐาน QC)")]
    DS30[("D30<br/>Display Control<br/>(ควบคุมการแสดง)")]

    %% Data Flows - Access Control
    LAB_TECH -->|เข้าอ่านผล Lab| P41
    DOC -->|เข้าดูผล Lab| P41
    P41 -.->|บันทึกการเข้าใช้| DS25
    DS25 -.->|รายงานการเข้าใช้| LAB_SUPERVISOR

    %% Report By and Approval
    LAB_TECH -->|Report by| P42
    LAB_SUPERVISOR -->|Approved by| P42
    P42 -.->|สถานะการอนุมัติ| DS26
    DS3 -.->|ผลการตรวจ| P42
    DS26 -.->|ผู้ Approve| P43

    %% Lock and Confirm
    LAB_SUPERVISOR -->|ยืนยันและ Lock| P43
    P43 -.->|สถานะ Lock| DS28
    DS26 -.->|การอนุมัติ| P43
    P43 -->|ยืนยันการ Lock| LAB_SUPERVISOR

    %% Change History
    P42 -.->|การเปลี่ยนแปลง| DS27
    P43 -.->|การ Lock/Unlock| DS27
    DS27 -.->|ประวัติการแก้ไข| P44
    P44 -->|รายงานการเปลี่ยนแปลง| LAB_SUPERVISOR

    %% Display Control
    DS28 -.->|สถานะ Lock| P45
    DS26 -.->|สถานะ Approval| P45
    P45 -.->|ควบคุมการแสดง| DS30
    DS30 -.->|ไม่แสดงรายการ| HIS_SYSTEMS
    P45 -->|ผลที่ไม่ได้รับการอนุมัติ| LAB_SUPERVISOR

    %% Quality Control
    LAB_TECH -->|ข้อมูล QC| P46
    LAB_SUPERVISOR -->|มาตรฐาน QC| P46
    P46 -.->|ข้อมูล QC| DS5
    DS29 -.->|มาตรฐาน QC| P46
    P46 -->|รายงาน QC| LAB_SUPERVISOR

    %% Integration
    DS3 -.->|ผลการตรวจ| P41
    DS3 -.->|ผลการตรวจ| P45
    P43 -->|ปลดล็อกผล| HIS_SYSTEMS
    P45 -->|ผลที่พร้อมแสดง| HIS_SYSTEMS

    %% Outputs
    P41 -->|สิทธิ์การเข้าถึง| LAB_TECH
    P42 -->|สถานะการรายงาน| LAB_TECH
    P43 -->|สถานะการล็อก| LAB_SUPERVISOR
    P44 -->|ประวัติการเปลี่ยนแปลง| LAB_SUPERVISOR
    P45 -->|การควบคุมการแสดง| DOC
    P46 -->|รายงาน QC| LAB_SUPERVISOR

    %% Styling
    style P41 fill:#e3f2fd,stroke:#0277bd,stroke-width:2px
    style P42 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style P43 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style P44 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style P45 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style P46 fill:#ffebee,stroke:#d32f2f,stroke-width:2px

    style DS3 fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
    style DS5 fill:#f1f8e9,stroke:#33691e,stroke-width:2px
    style DS25 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style DS26 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style DS27 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style DS28 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style DS29 fill:#ffebee,stroke:#d32f2f,stroke-width:2px
    style DS30 fill:#fff8e1,stroke:#f9a825,stroke-width:2px

8. Level 1 DFD - การพิมพ์เอกสาร

graph TD
    %% External Entities
    DOC["👨‍⚕️ แพทย์"]
    LAB_TECH["🔬 นักเทคนิคการแพทย์"]
    PATIENT["👤 ผู้ป่วยและญาติ"]
    NURSE["👩‍⚕️ พยาบาล"]
    HIS_SYSTEMS["💻 ระบบ HIS อื่นๆ"]

    %% Sub-processes
    P51["5.1<br/>การพิมพ์<br/>ใบ Request Lab"]
    P52["5.2<br/>การพิมพ์<br/>Sticker ติด Tube"]
    P53["5.3<br/>การพิมพ์<br/>ใบรายงานผล"]
    P54["5.4<br/>การพิมพ์<br/>ใบนัด"]
    P55["5.5<br/>การออกแบบ<br/>Template เอกสาร"]
    P56["5.6<br/>การจัดการ<br/>รูปแบบการพิมพ์"]

    %% Data Stores
    DS2[("D2<br/>Lab Orders")]
    DS3[("D3<br/>Lab Results")]
    DS6[("D6<br/>Lab Reports")]
    DS9[("D9<br/>Appointment Lab")]
    DS15[("D15<br/>Order Forms")]
    DS18[("D18<br/>Barcode Labels")]
    DS31[("D31<br/>Print Templates<br/>(Template การพิมพ์)")]
    DS32[("D32<br/>Print Settings<br/>(การตั้งค่าการพิมพ์)")]
    DS33[("D33<br/>Document Format<br/>(รูปแบบเอกสาร)")]
    DS34[("D34<br/>Print Queue<br/>(คิวการพิมพ์)")]

    %% Data Flows - Lab Request Printing
    DOC -->|พิมพ์ใบ Request| P51
    LAB_TECH -->|พิมพ์ใบ Request| P51
    DS2 -.->|คำสั่งตรวจ| P51
    DS15 -.->|แบบฟอร์ม| P51
    P51 -.->|คิวการพิมพ์| DS34
    P51 -->|ใบ Request Lab| DOC
    P51 -->|ใบ Request Lab| LAB_TECH

    %% Sticker Printing
    LAB_TECH -->|พิมพ์ Sticker| P52
    NURSE -->|พิมพ์ Sticker| P52
    DS18 -.->|Barcode Labels| P52
    DS2 -.->|ข้อมูลผู้ป่วย| P52
    P52 -->|Sticker ติด Tube| LAB_TECH
    P52 -->|Sticker ติด Tube| NURSE

    %% Result Report Printing
    DOC -->|พิมพ์รายงานผล| P53
    LAB_TECH -->|พิมพ์รายงานผล| P53
    DS3 -.->|ผลการตรวจ| P53
    DS31 -.->|Template รายงาน| P53
    DS28 -.->|สถานะ Lock| P53
    P53 -->|รายงานผลการตรวจ| DOC
    P53 -->|รายงานผลการตรวจ| PATIENT

    %% Appointment Printing
    LAB_TECH -->|พิมพ์ใบนัด| P54
    DS9 -.->|การนัดฟังผล| P54
    DS31 -.->|Template ใบนัด| P54
    P54 -->|ใบนัดฟังผล| PATIENT
    P54 -->|ข้อมูลนัด| HIS_SYSTEMS

    %% Template Design
    DOC -->|ออกแบบ Template| P55
    LAB_TECH -->|ปรับแต่ง Template| P55
    P55 -.->|Template เอกสาร| DS31
    DS33 -.->|รูปแบบเอกสาร| P55
    P55 -->|Template ใหม่| DOC

    %% Print Format Management
    LAB_TECH -->|ตั้งค่าการพิมพ์| P56
    P56 -.->|การตั้งค่า| DS32
    DS32 -.->|รูปแบบการพิมพ์| P51
    DS32 -.->|รูปแบบการพิมพ์| P52
    DS32 -.->|รูปแบบการพิมพ์| P53
    DS32 -.->|รูปแบบการพิมพ์| P54

    %% Integration
    DS6 -.->|รายงาน Lab| P53
    P53 -.->|รายงานที่พิมพ์| DS6
    DS34 -.->|ลำดับการพิมพ์| P51
    DS34 -.->|ลำดับการพิมพ์| P52
    DS34 -.->|ลำดับการพิมพ์| P53
    DS34 -.->|ลำดับการพิมพ์| P54

    %% Multi-location Printing
    P51 -->|พิมพ์จากจุดส่งตรวจ| HIS_SYSTEMS
    P51 -->|พิมพ์จากห้อง Lab| LAB_TECH
    P53 -->|พิมพ์จากจุดส่งตรวจ| HIS_SYSTEMS
    P53 -->|พิมพ์จากห้อง Lab| LAB_TECH

    %% Outputs
    P55 -->|Template การพิมพ์| LAB_TECH
    P56 -->|การตั้งค่าการพิมพ์| LAB_TECH

    %% Styling
    style P51 fill:#e3f2fd,stroke:#0277bd,stroke-width:2px
    style P52 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style P53 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style P54 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style P55 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style P56 fill:#ffebee,stroke:#d32f2f,stroke-width:2px

    style DS2 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style DS3 fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
    style DS6 fill:#fafafa,stroke:#424242,stroke-width:2px
    style DS9 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    style DS15 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style DS18 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    style DS31 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    style DS32 fill:#ffebee,stroke:#d32f2f,stroke-width:2px
    style DS33 fill:#e0f2f1,stroke:#00695c,stroke-width:2px
    style DS34 fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px

9. Data Dictionary

9.1 Data Stores

Data Store ชื่อ คำอธิบาย ข้อมูลหลัก
D1 Master Lab Tests
(รายการตรวจ Lab)
เก็บข้อมูลรายการตรวจทางห้องปฏิบัติการทั้งหมด รหัสการตรวจ, ชื่อการตรวจ, หน่วย, วิธีการตรวจ, ประเภทสิ่งส่งตรวจ
D2 Lab Orders
(คำสั่งตรวจ)
เก็บข้อมูลคำสั่งตรวจทางห้องปฏิบัติการ เลขที่คำสั่ง, HN, รายการตรวจ, วันที่สั่ง, ผู้สั่ง, สถานะ
D3 Lab Results
(ผลการตรวจ)
เก็บผลการตรวจทางห้องปฏิบัติการ เลขที่ผล, รหัสการตรวจ, ผลการตรวจ, หน่วย, สถานะ
D4 Specimens
(สิ่งส่งตรวจ)
เก็บข้อมูลสิ่งส่งตรวจและ Barcode รหัส Specimen, ประเภท, วันที่เก็บ, สถานะ
D5 Quality Control
(ควบคุมคุณภาพ)
เก็บข้อมูลการควบคุมคุณภาพห้องปฏิบัติการ รหัส QC, ค่ามาตรฐาน, ผลการตรวจสอบ, สถานะ
D6 Lab Reports
(รายงานการตรวจ)
เก็บรายงานการตรวจทางห้องปฏิบัติการ เลขที่รายงาน, รูปแบบรายงาน, ข้อมูลรายงาน
D7 Outside Lab
(Lab นอก)
เก็บข้อมูลผลการตรวจจาก Lab ภายนอก รหัส Lab นอก, ชื่อ Lab, ผลการตรวจ PDF
D8 Critical Values
(ค่าวิกฤต)
เก็บข้อมูลค่าวิกฤตที่ต้องแจ้งเตือน รหัสการตรวจ, ค่าวิกฤตต่ำ, ค่าวิกฤตสูง
D9 Appointment Lab
(นัดฟังผล)
เก็บข้อมูลการนัดหมายฟังผลการตรวจ เลขที่นัด, HN, วันที่นัด, เหตุผล
D10 Lab Billing
(การเงิน Lab)
เก็บข้อมูลการเงินการตรวจทางห้องปฏิบัติการ รหัสการเงิน, ค่าบริการ, สิทธิการรักษา
D11 Normal Values
(ค่าปกติ)
เก็บค่าปกติของการตรวจตามอายุและเพศ รหัสการตรวจ, อายุต่ำ, อายุสูง, เพศ, ค่าปกติต่ำ, ค่าปกติสูง
D12 Critical Values
(ค่าวิกฤต)
เก็บค่าวิกฤตของการตรวจแต่ละประเภท รหัสการตรวจ, ค่าวิกฤตต่ำ, ค่าวิกฤตสูง, การแจ้งเตือน
D13 Lab Panels
(กลุ่มการตรวจ)
เก็บข้อมูลกลุ่มการตรวจที่รวมกัน รหัส Panel, ชื่อ Panel, รายการตรวจใน Panel
D14 Service Rates
(อัตราค่าบริการ)
เก็บอัตราค่าบริการการตรวจ รหัสการตรวจ, ราคาค่าบริการ, หมวดหมู่
D15 Order Forms
(แบบฟอร์มการสั่ง)
เก็บแบบฟอร์มการสั่งตรวจ รหัสฟอร์ม, ชื่อฟอร์ม, รูปแบบ, รายการตรวจ
D16 Alert Settings
(การตั้งค่าแจ้งเตือน)
เก็บการตั้งค่าการแจ้งเตือนต่างๆ ประเภทการแจ้งเตือน, เงื่อนไข, ผู้รับแจ้ง
D17 Lab Categories
(หมวดหมู่การตรวจ)
เก็บหมวดหมู่การตรวจทางห้องปฏิบัติการ รหัสหมวด, ชื่อหมวด, การจัดกลุ่ม
D18 Barcode Labels
(ป้ายกำกับ)
เก็บข้อมูล Barcode และ Label รหัส Barcode, ข้อมูล Label, รูปแบบ
D19 Order Status
(สถานะคำสั่ง)
เก็บสถานะของคำสั่งตรวจ เลขที่คำสั่ง, สถานะ, เวลาอัปเดต
D20 Patient Rights
(สิทธิผู้ป่วย)
เก็บข้อมูลสิทธิการรักษาของผู้ป่วย HN, ประเภทสิทธิ, วันหมดอายุ

9.2 Data Elements

Element Name Description Data Type Length Example/Format
LabTestID รหัสการตรวจทางห้องปฏิบัติการ VARCHAR 20 LAB-XXXXXXXXXX
TestName ชื่อการตรวจ NVARCHAR 200 Text
TestNameEng ชื่อการตรวจ (อังกฤษ) NVARCHAR 200 Text
TestCategory หมวดหมู่การตรวจ VARCHAR 50 CBC/Chemistry/Hematology
TestType ประเภทการตรวจ VARCHAR 50 Quantitative/Qualitative
Specimen ประเภทสิ่งส่งตรวจ VARCHAR 50 Blood/Urine/Stool
Unit หน่วยการตรวจ VARCHAR 20 mg/dl, mmol/L
NormalRangeMale ค่าปกติเพศชาย VARCHAR 100 0.0-1.5
NormalRangeFemale ค่าปกติเพศหญิง VARCHAR 100 0.0-1.2
CriticalLow ค่าวิกฤตต่ำ DECIMAL 10,3 XXX.XXX
CriticalHigh ค่าวิกฤตสูง DECIMAL 10,3 XXX.XXX
PossibleValues ค่าความเป็นไปได้ NTEXT MAX Positive/Negative
ReferenceValue ค่าพื้นฐาน/มาตรฐาน VARCHAR 100 Text
ServiceRate อัตราค่าบริการ DECIMAL 10,2 XXXXX.XX
IsOutLab เป็น Lab นอกหรือไม่ BIT 1 0/1
LOINCCode รหัส LOINC VARCHAR 20 XXXX-X
OrderID เลขที่คำสั่งตรวจ VARCHAR 20 ORD-XXXXXXXXXXX
HN หมายเลขประจำตัวผู้ป่วย VARCHAR 10 XXXXXXXXXX
OrderDate วันที่สั่งตรวจ DATETIME 19 DD/MM/YYYY HH:MM:SS
OrderBy ผู้สั่งตรวจ VARCHAR 20 DOC-XXXXXXXX
OrderStatus สถานะคำสั่ง VARCHAR 20 ORDERED/COLLECTED/PROCESSING/COMPLETED
Urgency ความเร่งด่วน VARCHAR 20 STAT/URGENT/ROUTINE
ClinicalInfo ข้อมูลทางคลินิก NTEXT MAX Text
ResultID เลขที่ผลการตรวจ VARCHAR 20 RES-XXXXXXXXXXX
ResultValue ผลการตรวจ VARCHAR 500 Text/Number
ResultText ข้อความผลการตรวจ NTEXT MAX Text
ResultDate วันที่ออกผล DATETIME 19 DD/MM/YYYY HH:MM:SS
ReportedBy ผู้รายงานผล VARCHAR 20 TECH-XXXXXXXX
ApprovedBy ผู้อนุมัติผล VARCHAR 20 SUP-XXXXXXXX
IsLocked ล็อกผลแล้ว BIT 1 0/1
IsAbnormal ผลผิดปกติ BIT 1 0/1
IsCritical ค่าวิกฤต BIT 1 0/1
LabNote หมายเหตุการตรวจ NTEXT MAX Text

9.3 Data Flows

9.3.1 Input Data Flows

Data Flow แหล่งที่มา ปลายทาง คำอธิบาย
lab_order_data ระบบ HIS อื่นๆ Process 2.1 คำสั่งตรวจจากระบบต่างๆ
master_lab_data แพทย์/หัวหน้าแลป Process 1.1 ข้อมูลรายการตรวจใหม่
normal_values_data แพทย์ Process 1.2 ค่าปกติตามอายุและเพศ
panel_configuration แพทย์ Process 1.3 การจัดกลุ่มการตรวจ
result_entry_data นักเทคนิคการแพทย์ Process 3.3 การบันทึกผลการตรวจ
specimen_data พยาบาล Process 2.6 ข้อมูลการเก็บสิ่งส่งตรวจ
outside_lab_result Lab นอก Process 3.5 ผลการตรวจ PDF จาก Lab ภายนอก
qc_data นักเทคนิคการแพทย์ Process 4.6 ข้อมูลการควบคุมคุณภาพ
approval_data หัวหน้าแลป Process 4.2 การอนุมัติผลการตรวจ

9.3.2 Output Data Flows

Data Flow แหล่งที่มา ปลายทาง คำอธิบาย
lab_result_data Process 3.3 ระบบ HIS อื่นๆ ผลการตรวจส่งกลับ
lab_report Process 5.3 แพทย์/ผู้ป่วย รายงานผลการตรวจ
lab_request Process 5.1 แพทย์/นักเทคนิค ใบสั่งตรวจ Lab
barcode_label Process 5.2 นักเทคนิค/พยาบาล สติกเกอร์ติด Tube
abnormal_alert Process 3.7 แพทย์ การแจ้งเตือนผลผิดปกติ
critical_alert Process 3.6 แพทย์ การแจ้งเตือนค่าวิกฤต
result_ready_notification Process 3.7 ระบบ HIS อื่นๆ แจ้งผลพร้อมดู
appointment_data Process 3.9 ระบบนัดหมาย การนัดฟังผล
billing_data Process 2.5 ระบบการเงิน ข้อมูลการเงิน Lab

9.4 External Entities

External Entity คำอธิบาย บทบาท
👨‍⚕️ แพทย์ แพทย์ผู้รักษา สั่งตรวจ Lab, ดูผลการตรวจ, กำหนดรายการตรวจ
👩‍⚕️ พยาบาล พยาบาลผู้ดูแล เก็บสิ่งส่งตรวจ, สั่งตรวจ Lab, พิมพ์สติกเกอร์
🔬 นักเทคนิคการแพทย์ เจ้าหน้าที่ห้อง Lab บันทึกผลการตรวจ, ควบคุมคุณภาพ, พิมพ์เอกสาร
👨‍🏫 หัวหน้าแลป ผู้บริหารห้อง Lab อนุมัติผลการตรวจ, กำหนดมาตรฐาน QC
👤 ผู้ป่วยและญาติ ผู้รับบริการ ให้สิ่งส่งตรวจ, รับรายงานผล, ใบนัดฟังผล
💰 เจ้าหน้าที่การเงิน ผู้จัดการการเงิน ดูรายงานการเงิน Lab
🏢 Lab นอก ห้องปฏิบัติการภายนอก ส่งผลการตรวจ PDF
💻 ระบบ HIS อื่นๆ ระบบใน HIS ส่งคำสั่งตรวจ, รับผลการตรวจ

10. API Integration Flow

10.1 การเชื่อมต่อกับระบบภายใน HIS

sequenceDiagram
    participant LAB as ระบบงานชันสูตร
    participant MED as ระบบเวชระเบียน (1.2.1)
    participant HIST as ระบบซักประวัติ (1.2.2)
    participant EXAM as ระบบห้องตรวจแพทย์ (1.2.3)
    participant ER as ระบบห้องฉุกเฉิน (1.2.4)
    participant APPT as ระบบนัดหมาย (1.2.6)
    participant FIN as ระบบการเงิน (1.2.14)

    Note over LAB: การรับคำสั่งตรวจ Lab
    HIST->>LAB: sendLabOrder(HN, TestList, Urgency)
    EXAM->>LAB: sendLabOrder(HN, TestList, Urgency)
    ER->>LAB: sendStatLabOrder(HN, TestList, STAT)
    LAB->>MED: getPatientInfo(HN)
    MED-->>LAB: PatientInfo + Demographics
    LAB->>FIN: checkRights(HN, TestList)
    FIN-->>LAB: RightsValidation + Pricing
    LAB-->>HIST: OrderConfirmation(OrderID, Status)
    LAB-->>EXAM: OrderConfirmation(OrderID, Status)
    LAB-->>ER: StatOrderConfirmation(OrderID, Status)

    Note over LAB: การส่งผลการตรวจ
    LAB->>LAB: processResult(ResultData)
    LAB->>LAB: validateNormalRange(ResultValue)
    LAB->>LAB: checkCriticalValue(ResultValue)
    LAB-->>HIST: labResultReady(HN, OrderID, Results)
    LAB-->>EXAM: labResultReady(HN, OrderID, Results)
    LAB-->>ER: statResultReady(HN, OrderID, Results)

    Note over LAB: การแจ้งเตือนและนัดหมาย
    LAB->>LAB: generateAlert(CriticalValue)
    LAB-->>HIST: criticalValueAlert(HN, TestName, Value)
    LAB-->>EXAM: abnormalResultAlert(HN, TestName, Value)
    LAB->>APPT: createLabAppointment(HN, AppointmentDate)
    APPT-->>LAB: AppointmentConfirmation(AppointmentID)

    Note over LAB: การอัปเดตการเงิน
    LAB->>FIN: updateLabCharges(HN, TestList, Amount)
    FIN-->>LAB: ChargeConfirmation(TransactionID)

10.2 การเชื่อมต่อกับระบบภายนอก

sequenceDiagram
    participant LAB as ระบบงานชันสูตร
    participant OUT_LAB as Lab นอก
    participant QC_SYS as ระบบ QC ภายนอก
    participant BANK as ธนาคาร
    participant NHSO as สปสช.

    Note over LAB: การเชื่อมต่อ Lab นอก
    LAB->>OUT_LAB: sendOutLabOrder(PatientInfo, TestList)
    OUT_LAB-->>LAB: OrderAcceptance(OutLabOrderID)
    OUT_LAB->>LAB: sendResultPDF(OutLabOrderID, PDFFile)
    LAB->>LAB: processOutLabResult(PDFFile)
    LAB->>LAB: importResultData(ResultData)

    Note over LAB: การควบคุมคุณภาพ
    LAB->>QC_SYS: sendQCData(QCResults, Calibration)
    QC_SYS-->>LAB: QCValidation(PassFail, Comments)
    LAB->>LAB: updateQCStatus(ValidationResult)

    Note over LAB: การตรวจสอบการเงิน
    LAB->>BANK: validatePayment(PatientID, Amount)
    BANK-->>LAB: PaymentValidation(Status)

    Note over LAB: การส่งข้อมูลภายนอก
    LAB->>NHSO: sendLabData(PatientID, TestResults)
    NHSO-->>LAB: DataAcceptance(ConfirmationID)

10.3 API Endpoints สำคัญ

10.3.1 Lab Order Management APIs

# การจัดการคำสั่งตรวจ
POST /api/v1/lab/orders
GET /api/v1/lab/orders/{orderID}
PUT /api/v1/lab/orders/{orderID}/status
DELETE /api/v1/lab/orders/{orderID}

# การจัดการรายการตรวจ
GET /api/v1/lab/tests
POST /api/v1/lab/tests
GET /api/v1/lab/tests/{testID}
PUT /api/v1/lab/tests/{testID}

# การจัดการ Panel
GET /api/v1/lab/panels
POST /api/v1/lab/panels
GET /api/v1/lab/panels/{panelID}
PUT /api/v1/lab/panels/{panelID}

10.3.2 Lab Result Management APIs

# การจัดการผลการตรวจ
POST /api/v1/lab/results
GET /api/v1/lab/results/{resultID}
PUT /api/v1/lab/results/{resultID}
POST /api/v1/lab/results/{resultID}/approve

# การจัดการภาพและเอกสาร
POST /api/v1/lab/results/{resultID}/images
GET /api/v1/lab/results/{resultID}/images
POST /api/v1/lab/results/{resultID}/documents

# การจัดการ Lab นอก
POST /api/v1/lab/outsource/results
GET /api/v1/lab/outsource/providers
POST /api/v1/lab/outsource/orders

10.3.3 Quality Control APIs

# การควบคุมคุณภาพ
GET /api/v1/lab/qc/standards
POST /api/v1/lab/qc/results
GET /api/v1/lab/qc/reports/{reportID}

# การตรวจสอบและอนุมัติ
POST /api/v1/lab/results/{resultID}/lock
POST /api/v1/lab/results/{resultID}/unlock
GET /api/v1/lab/audit/logs

10.3.4 Reporting and Printing APIs

# การพิมพ์เอกสาร
POST /api/v1/lab/print/request/{orderID}
POST /api/v1/lab/print/result/{resultID}
POST /api/v1/lab/print/labels/{orderID}

# การจัดการรายงาน
GET /api/v1/lab/reports/patient/{hn}
GET /api/v1/lab/reports/financial
POST /api/v1/lab/reports/custom

10.3.5 Alert and Notification APIs

# การแจ้งเตือน
POST /api/v1/lab/alerts/critical
POST /api/v1/lab/alerts/abnormal
GET /api/v1/lab/alerts/pending
PUT /api/v1/lab/alerts/{alertID}/acknowledge

# การนัดหมาย
POST /api/v1/lab/appointments
GET /api/v1/lab/appointments/{hn}
PUT /api/v1/lab/appointments/{appointmentID}

หมายเหตุ: Data Flow Diagram นี้แสดงการไหลของข้อมูลในระบบงานชันสูตรของโรงพยาบาลค่ายธนรัชน์ ครอบคลุมตั้งแต่การจัดการข้อมูลพื้นฐาน การสั่งตรวจ การรายงานผล การควบคุมคุณภาพ และการพิมพ์เอกสาร โดยเน้นการเชื่อมโยงกับระบบอื่นๆ ใน HIS และ Lab ภายนอกอย่างครบถ้วน ตามความต้องการใน TOR และ SRS ทั้งหมด 100%