Data Flow Diagram (DFD)
ระบบงานชันสูตร (Laboratory Information System)
เวอร์ชัน: 1.0
วันที่: 11 ตุลาคม 2568
สอดคล้องกับ: SRS ระบบงานชันสูตร v1.0, TOR ระบบงานชันสูตร, ERD v1.0, และ Schema v1.0
สารบัญ
- ภาพรวมระบบ
- Context Diagram
- Level 0 DFD
- Level 1 DFD - การจัดการข้อมูลพื้นฐาน
- Level 1 DFD - การสั่งตรวจห้องปฏิบัติการ
- Level 1 DFD - การรายงานผลการตรวจ
- Level 1 DFD - การควบคุมคุณภาพ
- Level 1 DFD - การพิมพ์เอกสาร
- Data Dictionary
- 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)
กระบวนการหลักของระบบ:
- การสั่งตรวจ: รับคำสั่งจากระบบต่างๆ → สร้าง Lab Request → พิมพ์ใบสั่งตรวจ/สติกเกอร์
- การเก็บสิ่งส่งตรวจ: สแกน Barcode → ตรวจสอบ Specimen → ส่งห้อง Lab
- การตรวจวิเคราะห์: ทำการตรวจ → บันทึกผล → ตรวจสอบ QC
- การรายงานผล: Report by → Approved by → ปลดล็อก → แจ้งผลพร้อม
- การติดตาม: แจ้งเตือนผลผิดปกติ → นัดฟังผล → พิมพ์รายงาน
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%