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

Data Flow Diagram (DFD)

ระบบการเงิน (Financial Management System)

เวอร์ชัน: 1.0

วันที่: 8 ตุลาคม 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. ภาพรวมระบบ

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

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

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

  • รองรับหลายสิทธิต่อการรักษา 1 ครั้ง: ผู้ป่วยสามารถใช้หลายสิทธิในการรับบริการครั้งเดียว
  • การชำระเงินหลายรูปแบบ: เงินสด, บัตรเครดิต, เงินโอน, QR Code, หักบัญชีสิทธิ
  • ระบบอนุมัติลดหย่อน: Workflow การขออนุมัติยกเว้นและลดหย่อนค่ารักษา
  • การจัดการเงินรับฝาก: สำหรับผู้ป่วยใน รองรับการฝาก-ถอน-หักเงินมัดจำ
  • การยกเลิกและแก้ไขใบเสร็จ: พร้อม Audit Trail ครบถ้วน
  • การปิดรอบการเงิน: รายวัน, รายเดือน, รายปี พร้อมรายงานสรุป

2. Context Diagram

graph TD
    %% External Entities
    CASHIER["👤 เจ้าหน้าที่การเงิน"]
    FIN_SUP["👨‍💼 หัวหน้าการเงิน"]
    REG_STAFF["👤 เจ้าหน้าที่ลงทะเบียน"]
    DOCTOR["👨‍⚕️ แพทย์"]
    NURSE["👩‍⚕️ พยาบาล"]
    PATIENT["👤 ผู้ป่วยและญาติ"]
    ADMIN["👨‍💼 ผู้ดูแลระบบการเงิน"]

    %% Central System
    FIN_SYS["💰 ระบบการเงิน<br/>(Financial Management System)"]

    %% External Systems
    MRS["📋 ระบบเวชระเบียน<br/>(1.2.1)"]
    HIS["🏥 ระบบซักประวัติ<br/>(1.2.2)"]
    EXAM["🔬 ระบบห้องตรวจแพทย์<br/>(1.2.3)"]
    EMERGENCY["🚨 ระบบห้องฉุกเฉิน<br/>(1.2.4)"]
    DENTAL["🦷 ระบบทันตกรรม<br/>(1.2.5)"]
    APPT["📅 ระบบนัดหมาย<br/>(1.2.6)"]
    LAB["🧪 ระบบงานชันสูตร<br/>(1.2.7)"]
    XRAY["📸 ระบบรังสีวิทยา<br/>(1.2.8)"]
    SPECIAL["🏥 ระบบคลินิกพิเศษ<br/>(1.2.9)"]
    THAI_MED["🌿 ระบบแพทย์แผนไทย<br/>(1.2.10)"]
    HEALTH_PROMO["🏃‍♂️ ระบบงานส่งเสริมสุขภาพ<br/>(1.2.11)"]
    REHAB["♿ ระบบเวชศาสตร์ฟื้นฟู<br/>(1.2.12)"]
    PHARMACY["💊 ระบบเภสัชกรรม<br/>(1.2.13)"]
    RIGHTS["🆔 ระบบตรวจสอบสิทธิ<br/>(1.2.15)"]
    ADMISSION["🏨 ระบบ Admission Center<br/>(1.2.16)"]
    IPD["🛏️ ระบบผู้ป่วยใน<br/>(1.2.17)"]
    OR["⚕️ ระบบห้องผ่าตัด<br/>(1.2.18)"]
    DELIVERY["👶 ระบบห้องคลอด<br/>(1.2.19)"]
    NUTRITION["🍎 ระบบโภชนาการ<br/>(1.2.20)"]
    SYS_ADMIN["🔧 ระบบผู้ดูแลระบบ<br/>(1.2.21)"]
    BLOOD_BANK["🩸 ระบบงานคลังโลหิต<br/>(1.2.22)"]
    HEALTH_CHECK["📋 ระบบงานตรวจสุขภาพ<br/>(1.2.23)"]
    DATA_EXPORT["📤 การส่งออกข้อมูล<br/>(1.2.24)"]

    %% External Organizations
    NHSO["🏛️ สปสช.<br/>(NHSO)"]
    SSO["🏛️ สนย.<br/>(SSO)"]
    CGD["🏛️ กรมบัญชีกลาง<br/>(CGD)"]
    INSURANCE["🏢 บริษัทประกัน"]
    BANK["🏦 ธนาคาร"]

    %% Data Flows - Input to System
    CASHIER -->|"การรับชำระเงิน<br/>การออกใบเสร็จ<br/>การจัดการเงินสด"| FIN_SYS
    FIN_SUP -->|"การอนุมัติลดหย่อน<br/>การปิดรอบการเงิน<br/>การจัดการยกเว้น"| FIN_SYS
    REG_STAFF -->|"ข้อมูลสิทธิการรักษา<br/>การตรวจสอบค้างชำระ"| FIN_SYS
    DOCTOR -->|"การตรวจสอบสิทธิ<br/>ข้อมูลค่ารักษา"| FIN_SYS
    NURSE -->|"การตรวจสอบสถานะชำระ<br/>ข้อมูลผู้ป่วย"| FIN_SYS
    PATIENT -->|"การชำระเงิน<br/>ข้อมูลการรับฝาก<br/>คำขอลดหย่อน"| FIN_SYS
    ADMIN -->|"การตั้งค่าสิทธิ<br/>ผังการคิดค่าบริการ<br/>การจัดการ Master Data"| FIN_SYS

    %% Data Flows - Output from System
    FIN_SYS -->|"ใบเสร็จรับเงิน<br/>รายงานการเงิน<br/>สถานะการชำระ"| CASHIER
    FIN_SYS -->|"รายงานการเงิน<br/>สรุปรายได้<br/>การอนุมัติ"| FIN_SUP
    FIN_SYS -->|"สถานะการชำระ<br/>ข้อมูลค้างชำระ"| REG_STAFF
    FIN_SYS -->|"ข้อมูลสิทธิ<br/>สถานะการชำระ"| DOCTOR
    FIN_SYS -->|"สถานะการชำระ<br/>ข้อมูลผู้ป่วย"| NURSE
    FIN_SYS -->|"ใบเสร็จรับเงิน<br/>ใบแจ้งหนี้<br/>ใบรับฝากเงิน"| PATIENT
    FIN_SYS -->|"รายงานระบบ<br/>Log การใช้งาน"| ADMIN

    %% System Integration - HIS Systems
    MRS <-->|"ข้อมูลผู้ป่วย<br/>Visit Information<br/>HN Lookup"| FIN_SYS
    HIS <-->|"ค่าตรวจรักษา<br/>การวินิจฉัย"| FIN_SYS
    EXAM <-->|"ค่าบริการตรวจ<br/>หัตถการทางการแพทย์"| FIN_SYS
    EMERGENCY <-->|"ค่าบริการฉุกเฉิน<br/>การรักษาฉุกเฉิน"| FIN_SYS
    DENTAL <-->|"ค่าบริการทันตกรรม<br/>หัตถการฟัน"| FIN_SYS
    APPT <-->|"ค่าบริการนัดหมาย<br/>การจองคิว"| FIN_SYS
    LAB <-->|"ค่าตรวจแล็บ<br/>รายการตรวจ"| FIN_SYS
    XRAY <-->|"ค่าเอ็กซเรย์<br/>ค่าถ่ายภาพทางการแพทย์"| FIN_SYS
    SPECIAL <-->|"ค่าบริการคลินิกพิเศษ<br/>หัตถการพิเศษ"| FIN_SYS
    THAI_MED <-->|"ค่าบริการแพทย์แผนไทย<br/>ยาสมุนไพร"| FIN_SYS
    HEALTH_PROMO <-->|"ค่าบริการส่งเสริมสุขภาพ<br/>โปรแกรมสุขภาพ"| FIN_SYS
    REHAB <-->|"ค่าบริการฟื้นฟู<br/>กายภาพบำบัด"| FIN_SYS
    PHARMACY <-->|"ค่ายาและเวชภัณฑ์<br/>รายการจ่ายยา"| FIN_SYS
    RIGHTS <-->|"ข้อมูลสิทธิการรักษา<br/>การตรวจสอบสิทธิ"| FIN_SYS
    ADMISSION <-->|"ค่าบริการรับเข้า<br/>เงินรับฝาก"| FIN_SYS
    IPD <-->|"ค่าห้องและอาหาร<br/>ค่ารักษาผู้ป่วยใน"| FIN_SYS
    OR <-->|"ค่าห้องผ่าตัด<br/>ค่าวิสัญญี"| FIN_SYS
    DELIVERY <-->|"ค่าห้องคลอด<br/>ค่าการคลอด"| FIN_SYS
    NUTRITION <-->|"ค่าบริการโภชนาการ<br/>อาหารเสริม"| FIN_SYS
    SYS_ADMIN <-->|"การจัดการระบบ<br/>สิทธิ์การใช้งาน"| FIN_SYS
    BLOOD_BANK <-->|"ค่าเลือดและส่วนประกอบ<br/>การจัดเก็บเลือด"| FIN_SYS
    HEALTH_CHECK <-->|"ค่าตรวจสุขภาพ<br/>แพ็กเกจตรวจสุขภาพ"| FIN_SYS
    DATA_EXPORT <-->|"ข้อมูลการเงิน<br/>รายงาน 43 แฟ้ม"| FIN_SYS

    %% External Organizations Integration
    NHSO <-->|"ข้อมูล 43 แฟ้ม<br/>การเคลม UC<br/>ข้อมูลสิทธิ"| FIN_SYS
    SSO <-->|"ข้อมูลประกันสังคม<br/>การเคลมสิทธิ"| FIN_SYS
    CGD <-->|"ข้อมูลข้าราชการ<br/>การเบิกจ่าย"| FIN_SYS
    INSURANCE <-->|"ข้อมูลประกันเพิ่มเติม<br/>การเคลมประกัน"| FIN_SYS
    BANK <-->|"การชำระผ่านบัตร<br/>การโอนเงิน<br/>EDC Terminal"| FIN_SYS

    %% Styling
    style FIN_SYS fill:#e0f2f1,stroke:#004d40,stroke-width:4px
    style MRS fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
    style HIS fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    style RIGHTS fill:#fff3e0,stroke:#e65100,stroke-width:2px
    style PHARMACY fill:#fce4ec,stroke:#880e4f,stroke-width:2px
    style NHSO fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    style SSO fill:#fff9c4,stroke:#f57f17,stroke-width:2px
    style CGD fill:#f1f8e9,stroke:#33691e,stroke-width:2px
    style BANK fill:#e3f2fd,stroke:#0277bd,stroke-width:2px

3. Level 0 DFD

graph TD
    %% External Entities
    CASHIER["👤 เจ้าหน้าที่การเงิน"]
    FIN_SUP["👨‍💼 หัวหน้าการเงิน"]
    PATIENT["👤 ผู้ป่วยและญาติ"]
    ADMIN["👨‍💼 ผู้ดูแลระบบการเงิน"]
    HIS_SYSTEMS["🏥 ระบบ HIS อื่นๆ"]
    EXT_ORG["🏛️ หน่วยงานภายนอก"]

    %% Core Processes
    P1["1.0<br/>การจัดการข้อมูลการเงิน<br/>🗂️ Financial Master<br/>Data Management"]
    P2["2.0<br/>การรับชำระเงิน<br/>💳 Payment<br/>Processing"]
    P3["3.0<br/>การจัดการเอกสาร<br/>📄 Document<br/>Management"]
    P4["4.0<br/>การจัดการค้างชำระ<br/>⏰ Outstanding<br/>Management"]
    P5["5.0<br/>การปิดรอบการเงิน<br/>📊 Financial<br/>Closing & Reporting"]

    %% Data Stores
    DS1[("D1: ข้อมูลสิทธิการรักษา<br/>Financial Rights")]
    DS2[("D2: ข้อมูลการชำระเงิน<br/>Payment Transactions")]
    DS3[("D3: เอกสารทางการเงิน<br/>Financial Documents")]
    DS4[("D4: ข้อมูลค้างชำระ<br/>Outstanding Records")]
    DS5[("D5: รายงานการเงิน<br/>Financial Reports")]
    DS6[("D6: การตั้งค่าระบบ<br/>System Configuration")]
    DS7[("D7: Audit Logs<br/>การตรวจสอบ")]

    %% Data Flows - Process 1.0 การจัดการข้อมูลการเงิน
    ADMIN -->|"การตั้งค่าสิทธิ<br/>ผังการคิดค่าบริการ<br/>Master Data"| P1
    HIS_SYSTEMS -->|"ข้อมูลผู้ป่วย<br/>รายการค่ารักษา"| P1
    P1 -->|"ข้อมูลสิทธิ<br/>อัตราค่าบริการ"| DS1
    P1 -->|"การตั้งค่า<br/>Configuration"| DS6
    DS1 -->|"ข้อมูลสิทธิ"| P1
    DS6 -->|"การตั้งค่าระบบ"| P1

    %% Data Flows - Process 2.0 การรับชำระเงิน
    CASHIER -->|"การรับชำระเงิน<br/>ข้อมูลการชำระ"| P2
    PATIENT -->|"การชำระเงิน<br/>ข้อมูลการรับฝาก"| P2
    DS1 -->|"ข้อมูลสิทธิ<br/>อัตราค่าบริการ"| P2
    HIS_SYSTEMS -->|"รายการค่ารักษา<br/>ข้อมูลผู้ป่วย"| P2
    P2 -->|"รายการการชำระ<br/>Transaction Data"| DS2
    P2 -->|"การรับชำระเงิน<br/>ยอดชำระ"| CASHIER
    P2 -->|"ใบเสร็จรับเงิน<br/>ใบรับฝากเงิน"| PATIENT
    DS2 -->|"ประวัติการชำระ"| P2
    DS4 -->|"ข้อมูลค้างชำระ"| P2
    P2 -->|"อัพเดทค้างชำระ"| DS4

    %% Data Flows - Process 3.0 การจัดการเอกสาร
    P2 -->|"ข้อมูลการชำระ<br/>Request เอกสาร"| P3
    CASHIER -->|"คำขอออกเอกสาร<br/>การยกเลิกใบเสร็จ"| P3
    PATIENT -->|"ขอใบแจ้งหนี้<br/>เอกสารทางการเงิน"| P3
    P3 -->|"เอกสารการเงิน<br/>Receipt, Invoice"| DS3
    P3 -->|"ใบเสร็จรับเงิน<br/>ใบแจ้งหนี้"| CASHIER
    P3 -->|"เอกสารทางการเงิน<br/>ใบสรุปค่ารักษา"| PATIENT
    DS3 -->|"เอกสารเดิม<br/>ประวัติเอกสาร"| P3
    DS7 -->|"Log การยกเลิก"| P3
    P3 -->|"Audit Trail<br/>การแก้ไขเอกสาร"| DS7

    %% Data Flows - Process 4.0 การจัดการค้างชำระ
    FIN_SUP -->|"การอนุมัติลดหย่อน<br/>การยกเว้นค่ารักษา"| P4
    CASHIER -->|"คำขออนุมัติ<br/>การรับชำระหนี้ค้าง"| P4
    PATIENT -->|"คำขอลดหย่อน<br/>การชำระหนี้ค้าง"| P4
    DS4 -->|"ข้อมูลค้างชำระ"| P4
    DS2 -->|"ประวัติการชำระ"| P4
    P4 -->|"ยอดค้างชำระ<br/>การอนุมัติ"| DS4
    P4 -->|"การแจ้งเตือน<br/>ค้างชำระ"| CASHIER
    P4 -->|"ผลการอนุมัติ<br/>ยอดหลังลดหย่อน"| FIN_SUP
    P4 -->|"การแจ้งเตือน<br/>ยอดค้างชำระ"| PATIENT
    DS7 -->|"Log การอนุมัติ"| P4
    P4 -->|"Audit Trail<br/>การอนุมัติ"| DS7

    %% Data Flows - Process 5.0 การปิดรอบการเงิน
    CASHIER -->|"การนับเงิน<br/>การปิดยอดรายวัน"| P5
    FIN_SUP -->|"การปิดรอบ<br/>คำขอรายงาน"| P5
    DS2 -->|"ข้อมูลการชำระ<br/>Transaction Data"| P5
    DS3 -->|"เอกสารการเงิน"| P5
    DS4 -->|"ข้อมูลค้างชำระ"| P5
    P5 -->|"รายงานการเงิน<br/>สรุปรายได้"| DS5
    P5 -->|"รายงานรายวัน<br/>ใบนำส่งเงิน"| CASHIER
    P5 -->|"รายงานการเงิน<br/>สรุปรายได้"| FIN_SUP
    P5 -->|"ข้อมูลการเงิน<br/>รายงาน 43 แฟ้ม"| EXT_ORG
    DS5 -->|"รายงานเดิม<br/>ข้อมูลเปรียบเทียบ"| P5

    %% External System Integration
    HIS_SYSTEMS -->|"ข้อมูลค่ารักษา<br/>Visit Information"| P2
    EXT_ORG -->|"ข้อมูลสิทธิ<br/>การตรวจสอบสิทธิ"| P1
    P5 -->|"ข้อมูลการเงิน<br/>43 แฟ้ม, สรุปรายได้"| EXT_ORG

    %% Styling
    style P1 fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    style P2 fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    style P3 fill:#fff3e0,stroke:#e65100,stroke-width:2px
    style P4 fill:#fce4ec,stroke:#880e4f,stroke-width:2px
    style P5 fill:#f3e5f5,stroke:#4a148c,stroke-width:2px

    style DS1 fill:#fff9c4,stroke:#f57f17
    style DS2 fill:#e0f2f1,stroke:#004d40
    style DS3 fill:#f1f8e9,stroke:#33691e
    style DS4 fill:#ffebee,stroke:#c62828
    style DS5 fill:#e8eaf6,stroke:#283593
    style DS6 fill:#fafafa,stroke:#424242
    style DS7 fill:#fff3e0,stroke:#ef6c00

4. Level 1 DFD - การจัดการข้อมูลการเงิน

graph TD
    %% External Entities
    ADMIN["👨‍💼 ผู้ดูแลระบบการเงิน"]
    HIS_SYSTEMS["🏥 ระบบ HIS อื่นๆ"]
    EXT_ORG["🏛️ หน่วยงานภายนอก<br/>(สปสช., สนย., กรมบัญชีกลาง)"]

    %% Sub Processes
    P11["1.1<br/>จัดการข้อมูลสิทธิ<br/>การรักษาพยาบาล<br/>🆔 Rights Management"]
    P12["1.2<br/>จัดการผังการคิด<br/>ค่าบริการ<br/>💰 Pricing Schema"]
    P13["1.3<br/>จัดการการยกเว้น<br/>และลดหย่อน<br/>💸 Exemption Management"]
    P14["1.4<br/>จัดการจุดรับชำระเงิน<br/>🏪 Payment Points"]

    %% Data Stores
    DS1[("D1: ข้อมูลสิทธิการรักษา<br/>Financial Rights")]
    DS6[("D6: การตั้งค่าระบบ<br/>System Configuration")]
    DS8[("D8: ผังการคิดค่าบริการ<br/>Pricing Schema")]
    DS9[("D9: การยกเว้นและลดหย่อน<br/>Exemptions & Discounts")]
    DS10[("D10: จุดรับชำระเงิน<br/>Payment Points")]

    %% Process 1.1 - จัดการข้อมูลสิทธิการรักษาพยาบาล
    ADMIN -->|"ข้อมูลสิทธิใหม่<br/>แก้ไขสิทธิ<br/>ข้อมูล Master"| P11
    EXT_ORG -->|"ข้อมูลสิทธิมาตรฐาน<br/>รหัส 43 แฟ้ม<br/>การอัพเดทสิทธิ"| P11
    HIS_SYSTEMS -->|"ข้อมูลผู้ป่วย<br/>การใช้สิทธิ"| P11
    P11 -->|"ข้อมูลสิทธิ<br/>ชื่อสิทธิ<br/>ประเภทการชำระ<br/>รหัสสิทธิ สนย.<br/>ค่าธรรมเนียมสิทธิ"| DS1
    DS1 -->|"ข้อมูลสิทธิเดิม<br/>ประวัติสิทธิ"| P11
    P11 -->|"ข้อมูลสิทธิที่อัพเดท<br/>การเปลี่ยนแปลงสิทธิ"| ADMIN

    %% Process 1.2 - จัดการผังการคิดค่าบริการ
    ADMIN -->|"ผังการคิดค่าบริการ<br/>สูตรการคำนวณ<br/>อัตราค่าบริการ"| P12
    DS1 -->|"ข้อมูลสิทธิ<br/>ประเภทสิทธิ"| P12
    HIS_SYSTEMS -->|"หมวดค่ารักษา<br/>รายการบริการ"| P12
    P12 -->|"ผังการคิดค่าบริการ<br/>- Fee for Service<br/>- DRG<br/>- Global Budget<br/>- Capitation<br/>- Mixed Payment"| DS8
    DS8 -->|"ผังการคิดค่าบริการเดิม<br/>ประวัติการเปลี่ยนแปลง"| P12
    P12 -->|"ผังการคิดค่าบริการ<br/>ที่อัพเดท"| ADMIN
    P12 -->|"อัตราค่าบริการ<br/>วิธีการคำนวณ"| P11

    %% Process 1.3 - จัดการการยกเว้นและลดหย่อน
    ADMIN -->|"ประเภทการยกเว้น<br/>ประเภทการลดหย่อน<br/>เงื่อนไขการอนุมัติ"| P13
    DS1 -->|"ข้อมูลสิทธิ<br/>ประเภทสิทธิ"| P13
    P13 -->|"ประเภทการยกเว้น:<br/>- Full Exemption<br/>- Partial Exemption<br/>- Conditional Exemption<br/>- Staff Exemption"| DS9
    P13 -->|"ประเภทการลดหย่อน:<br/>- Percentage Discount<br/>- Fixed Amount Discount<br/>- Category-based Discount<br/>- Special Discount"| DS9
    DS9 -->|"ประเภทการยกเว้น/ลดหย่อนเดิม<br/>เงื่อนไขการอนุมัติ"| P13
    P13 -->|"การยกเว้นและลดหย่อน<br/>ที่อัพเดท"| ADMIN

    %% Process 1.4 - จัดการจุดรับชำระเงิน
    ADMIN -->|"ข้อมูลจุดรับชำระเงิน<br/>การตั้งค่าอุปกรณ์<br/>การกำหนดสิทธิ์"| P14
    P14 -->|"จุดรับชำระเงิน:<br/>- Main Cashier<br/>- Department Cashier<br/>- Emergency Cashier<br/>- Mobile Cashier"| DS10
    DS10 -->|"ข้อมูลจุดรับชำระเงินเดิม<br/>การตั้งค่าอุปกรณ์"| P14
    P14 -->|"การตั้งค่าอุปกรณ์<br/>ที่อัพเดท"| DS6
    DS6 -->|"การตั้งค่าระบบ<br/>Configuration"| P14
    P14 -->|"จุดรับชำระเงิน<br/>ที่อัพเดท"| ADMIN

    %% Integration between sub-processes
    P11 -.->|"ข้อมูลสิทธิ"| P12
    P11 -.->|"ข้อมูลสิทธิ"| P13
    P12 -.->|"ผังการคิดค่าบริการ"| P13

    %% Styling
    style P11 fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    style P12 fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    style P13 fill:#fff3e0,stroke:#e65100,stroke-width:2px
    style P14 fill:#fce4ec,stroke:#880e4f,stroke-width:2px

    style DS1 fill:#fff9c4,stroke:#f57f17
    style DS6 fill:#fafafa,stroke:#424242
    style DS8 fill:#e0f2f1,stroke:#004d40
    style DS9 fill:#ffebee,stroke:#c62828
    style DS10 fill:#f1f8e9,stroke:#33691e

5. Level 1 DFD - การรับชำระเงิน

graph TD
    %% External Entities
    CASHIER["👤 เจ้าหน้าที่การเงิน"]
    PATIENT["👤 ผู้ป่วยและญาติ"]
    HIS_SYSTEMS["🏥 ระบบ HIS อื่นๆ"]
    BANK["🏦 ธนาคาร"]
    EDC["💳 EDC Terminal"]

    %% Sub Processes
    P21["2.1<br/>การแสดงรายการ<br/>ค่ารักษา<br/>💊 Charge Display"]
    P22["2.2<br/>การรับชำระเงิน<br/>ผู้ป่วยนอก<br/>🏥 OPD Payment"]
    P23["2.3<br/>การรับชำระเงิน<br/>ผู้ป่วยใน<br/>🛏️ IPD Payment"]
    P24["2.4<br/>การจัดการ<br/>เงินรับฝาก<br/>💰 Deposit Management"]
    P25["2.5<br/>การรองรับ<br/>หลายสิทธิ<br/>🆔 Multi-Rights Support"]
    P26["2.6<br/>การรับชำระ<br/>หลายรูปแบบ<br/>💳 Multi-Payment Methods"]

    %% Data Stores
    DS1[("D1: ข้อมูลสิทธิการรักษา<br/>Financial Rights")]
    DS2[("D2: ข้อมูลการชำระเงิน<br/>Payment Transactions")]
    DS4[("D4: ข้อมูลค้างชำระ<br/>Outstanding Records")]
    DS8[("D8: ผังการคิดค่าบริการ<br/>Pricing Schema")]
    DS11[("D11: เงินรับฝาก<br/>Deposit Records")]
    DS12[("D12: รายการค่ารักษา<br/>Charge Items")]

    %% Process 2.1 - การแสดงรายการค่ารักษา
    HIS_SYSTEMS -->|"รายการค่ารักษา:<br/>- ค่าตรวจรักษา<br/>- ค่ายาและเวชภัณฑ์<br/>- ค่าตรวจทางห้องปฏิบัติการ<br/>- ค่าเอ็กซเรย์<br/>- ค่าหัตถการ"| P21
    CASHIER -->|"HN ผู้ป่วย<br/>วันที่ที่ต้องการ"| P21
    DS1 -->|"ข้อมูลสิทธิ<br/>ประเภทสิทธิ"| P21
    DS8 -->|"ผังการคิดค่าบริการ<br/>อัตราค่าบริการ"| P21
    P21 -->|"รายการค่ารักษา<br/>แยกตามหมวด"| DS12
    DS12 -->|"รายการค่ารักษา<br/>ประวัติค่ารักษา"| P21
    P21 -->|"รายการค่ารักษา:<br/>- ยอดรวมทั้งหมด<br/>- ยอดส่วนลด<br/>- ยอดสุทธิ<br/>- ยอดที่ต้องชำระ"| CASHIER

    %% Process 2.2 - การรับชำระเงินผู้ป่วยนอก (OPD)
    CASHIER -->|"การเลือกรายการ<br/>วิธีการชำระเงิน"| P22
    PATIENT -->|"การชำระเงิน<br/>จำนวนเงินที่จ่าย"| P22
    DS12 -->|"รายการค่ารักษา OPD<br/>ยอดที่ต้องชำระ"| P22
    DS1 -->|"ข้อมูลสิทธิ<br/>ค่าธรรมเนียมสิทธิ"| P22
    P22 -->|"รายการการชำระ OPD<br/>Transaction Data"| DS2
    P22 -->|"การคำนวณเงินทอน<br/>สถานะการชำระ"| CASHIER
    P22 -->|"การแจ้งยืนยันการชำระ<br/>เงินทอน"| PATIENT
    DS4 -->|"ข้อมูลค้างชำระ<br/>(ถ้ามี)"| P22
    P22 -->|"อัพเดทสถานะ<br/>ค้างชำระ"| DS4

    %% Process 2.3 - การรับชำระเงินผู้ป่วยใน (IPD)
    CASHIER -->|"AN ผู้ป่วยใน<br/>การปิดบิล"| P23
    PATIENT -->|"การชำระเงิน<br/>การขอใบแจ้งเรียกเก็บ"| P23
    DS11 -->|"ยอดเงินรับฝาก<br/>การใช้เงินรับฝาก"| P23
    DS12 -->|"รายการค่ารักษา IPD:<br/>- ค่าห้องและอาหาร<br/>- ค่ายาและเวชภัณฑ์<br/>- ค่าหัตถการ<br/>- ค่าบริการพิเศษ"| P23
    HIS_SYSTEMS -->|"ข้อมูลการจำหน่าย<br/>วันที่จำหน่าย"| P23
    P23 -->|"รายการการชำระ IPD<br/>การปิดบิลสุดท้าย"| DS2
    P23 -->|"ใบสรุปหน้างบ<br/>ยอดเงินที่ต้องชำระ/คืน"| CASHIER
    P23 -->|"ใบแจ้งเรียกเก็บเงิน<br/>การแจ้งยอดค้างชำระ"| PATIENT
    P23 -->|"การหักเงินรับฝาก<br/>ยอดคงเหลือ"| DS11

    %% Process 2.4 - การจัดการเงินรับฝาก
    CASHIER -->|"การรับฝากเงิน<br/>การใช้เงินรับฝาก"| P24
    PATIENT -->|"การฝากเงิน<br/>ชื่อผู้ฝาก<br/>จำนวนเงิน"| P24
    P24 -->|"ข้อมูลเงินรับฝาก:<br/>- วันที่รับฝาก<br/>- เวลาที่รับฝาก<br/>- ชื่อผู้ฝาก<br/>- จำนวนเงิน<br/>- หมายเหตุ"| DS11
    DS11 -->|"ยอดเงินรับฝาก<br/>ประวัติการใช้เงิน"| P24
    P24 -->|"ใบรับฝากเงิน<br/>ยอดเงินรับฝากปัจจุบัน"| CASHIER
    P24 -->|"ใบรับฝากเงิน<br/>การแจ้งยอดคงเหลือ"| PATIENT

    %% Process 2.5 - การรองรับหลายสิทธิ
    DS1 -->|"ข้อมูลสิทธิทั้งหมด<br/>ของผู้ป่วย"| P25
    DS12 -->|"รายการค่ารักษา<br/>ที่ต้องแบ่งสิทธิ"| P25
    CASHIER -->|"การเลือกใช้สิทธิ<br/>การแบ่งรายการ"| P25
    P25 -->|"การแบ่งค่ารักษา<br/>ตามสิทธิ:<br/>- สิทธิหลัก<br/>- สิทธิรอง<br/>- การคำนวณแยก"| P22
    P25 -->|"การแบ่งค่ารักษา<br/>ตามสิทธิ"| P23
    P25 -->|"ผลการคำนวณ<br/>หลายสิทธิ"| CASHIER

    %% Process 2.6 - การรับชำระหลายรูปแบบ
    CASHIER -->|"การเลือกวิธีชำระ<br/>การรับชำระแบบผสม"| P26
    PATIENT -->|"วิธีการชำระเงิน:<br/>- เงินสด<br/>- บัตรเครดิต/เดบิต<br/>- เงินโอน<br/>- QR Code Payment<br/>- เงินรับฝาก"| P26
    EDC -->|"ผลการชำระบัตร<br/>Transaction Approved"| P26
    BANK -->|"ผลการโอนเงิน<br/>Slip การโอน"| P26
    P26 -->|"รายการการชำระ<br/>แยกตามวิธี:<br/>- Cash Amount<br/>- Card Amount<br/>- Transfer Amount<br/>- QR Amount<br/>- Deposit Amount"| P22
    P26 -->|"รายการการชำระ<br/>แยกตามวิธี"| P23
    P26 -->|"ผลการรับชำระ<br/>สถานะการชำระ"| CASHIER
    P26 -->|"การยืนยันการชำระ<br/>Receipt/Slip"| PATIENT

    %% Integration between sub-processes
    P21 -.->|"รายการค่ารักษา"| P22
    P21 -.->|"รายการค่ารักษา"| P23
    P22 -.->|"ข้อมูลการชำระ"| P26
    P23 -.->|"ข้อมูลการชำระ"| P26
    P23 -.->|"การใช้เงินรับฝาก"| P24
    P25 -.->|"การแบ่งสิทธิ"| P22
    P25 -.->|"การแบ่งสิทธิ"| P23

    %% Styling
    style P21 fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    style P22 fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    style P23 fill:#fff3e0,stroke:#e65100,stroke-width:2px
    style P24 fill:#fce4ec,stroke:#880e4f,stroke-width:2px
    style P25 fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
    style P26 fill:#e0f2f1,stroke:#004d40,stroke-width:2px

    style DS1 fill:#fff9c4,stroke:#f57f17
    style DS2 fill:#e0f2f1,stroke:#004d40
    style DS4 fill:#ffebee,stroke:#c62828
    style DS8 fill:#e0f2f1,stroke:#004d40
    style DS11 fill:#e8eaf6,stroke:#283593
    style DS12 fill:#f1f8e9,stroke:#33691e

6. Level 1 DFD - การจัดการเอกสารทางการเงิน

graph TD
    %% External Entities
    CASHIER["👤 เจ้าหน้าที่การเงิน"]
    PATIENT["👤 ผู้ป่วยและญาติ"]
    PRINTER["🖨️ เครื่องพิมพ์"]

    %% Sub Processes
    P31["3.1<br/>การออกใบเสร็จ<br/>รับเงิน<br/>🧾 Receipt Generation"]
    P32["3.2<br/>การออกใบแจ้งหนี้<br/>📋 Invoice Generation"]
    P33["3.3<br/>การยกเลิกและ<br/>แก้ไขใบเสร็จ<br/>❌ Receipt Cancellation"]
    P34["3.4<br/>การพิมพ์เอกสาร<br/>อื่นๆ<br/>📄 Other Documents"]
    P35["3.5<br/>การควบคุมเลขที่<br/>เอกสาร<br/>🔢 Document Numbering"]

    %% Data Stores
    DS2[("D2: ข้อมูลการชำระเงิน<br/>Payment Transactions")]
    DS3[("D3: เอกสารทางการเงิน<br/>Financial Documents")]
    DS7[("D7: Audit Logs<br/>การตรวจสอบ")]
    DS11[("D11: เงินรับฝาก<br/>Deposit Records")]
    DS12[("D12: รายการค่ารักษา<br/>Charge Items")]
    DS13[("D13: เลขที่เอกสาร<br/>Document Numbers")]
    DS14[("D14: Template เอกสาร<br/>Document Templates")]

    %% Process 3.1 - การออกใบเสร็จรับเงิน
    DS2 -->|"ข้อมูลการชำระเงิน<br/>Transaction Data"| P31
    DS12 -->|"รายการค่ารักษา<br/>รายละเอียดค่าใช้จ่าย"| P31
    CASHIER -->|"คำขอออกใบเสร็จ<br/>การพิมพ์ใบเสร็จ"| P31
    DS13 -->|"เลขที่ใบเสร็จถัดไป<br/>Running Number"| P31
    DS14 -->|"Template ใบเสร็จ<br/>รูปแบบการแสดงผล"| P31
    P31 -->|"ใบเสร็จรับเงิน:<br/>- เลขที่ใบเสร็จ<br/>- ข้อมูลผู้ป่วย<br/>- รายการค่ารักษา<br/>- วิธีการชำระ<br/>- ลายเซ็นผู้รับเงิน"| DS3
    P31 -->|"อัพเดทเลขที่ใบเสร็จ<br/>Running Number"| DS13
    P31 -->|"ใบเสร็จรับเงิน<br/>พร้อมพิมพ์"| CASHIER
    P31 -->|"ใบเสร็จรับเงิน<br/>(Original)"| PATIENT
    P31 -->|"คำสั่งพิมพ์<br/>Receipt Data"| PRINTER

    %% Process 3.2 - การออกใบแจ้งหนี้
    DS12 -->|"รายการค่ารักษา<br/>ข้อมูลการรักษา"| P32
    DS11 -->|"ข้อมูลเงินรับฝาก<br/>ยอดคงเหลือ"| P32
    CASHIER -->|"คำขอออกใบแจ้งหนี้<br/>ประเภทใบแจ้งหนี้"| P32
    PATIENT -->|"ขอใบแจ้งหนี้<br/>เอกสารสำหรับเบิก"| P32
    DS13 -->|"เลขที่ใบแจ้งหนี้ถัดไป<br/>Invoice Number"| P32
    DS14 -->|"Template ใบแจ้งหนี้<br/>รูปแบบตามประเภท"| P32
    P32 -->|"ใบแจ้งหนี้:<br/>- OPD Invoice<br/>- IPD Invoice<br/>- Rights Invoice<br/>- Insurance Invoice"| DS3
    P32 -->|"อัพเดทเลขที่ใบแจ้งหนี้<br/>Invoice Number"| DS13
    P32 -->|"ใบแจ้งหนี้<br/>พร้อมส่งมอบ"| CASHIER
    P32 -->|"ใบแจ้งหนี้<br/>(Original)"| PATIENT
    P32 -->|"คำสั่งพิมพ์<br/>Invoice Data"| PRINTER

    %% Process 3.3 - การยกเลิกและแก้ไขใบเสร็จ
    CASHIER -->|"คำขอยกเลิกใบเสร็จ<br/>เหตุผลการยกเลิก<br/>หลักฐานประกอบ"| P33
    DS3 -->|"ใบเสร็จเดิม<br/>ข้อมูลใบเสร็จ"| P33
    DS7 -->|"Log การยกเลิก<br/>ประวัติการแก้ไข"| P33
    P33 -->|"ใบยกเลิกใบเสร็จ<br/>เอกสารยกเลิก"| DS3
    P33 -->|"อัพเดทสถานะ<br/>ใบเสร็จ (ยกเลิก)"| DS3
    P33 -->|"Audit Trail:<br/>- วันที่ยกเลิก<br/>- ผู้ยกเลิก<br/>- เหตุผล<br/>- การเชื่อมโยงเอกสาร"| DS7
    P33 -->|"ใบยกเลิกใบเสร็จ<br/>การคืนเงิน"| CASHIER
    P33 -->|"เอกสารยกเลิก<br/>การแจ้งยกเลิก"| PATIENT
    DS13 -->|"เลขที่เอกสารใหม่<br/>(กรณีสร้างใหม่)"| P33
    P33 -->|"เลขที่เอกสารใหม่<br/>แทนที่เอกสารเก่า"| DS13

    %% Process 3.4 - การพิมพ์เอกสารอื่นๆ
    CASHIER -->|"คำขอพิมพ์เอกสาร<br/>ประเภทเอกสาร"| P34
    PATIENT -->|"ขอเอกสาร<br/>ประเภทเอกสาร"| P34
    DS3 -->|"เอกสารทางการเงิน<br/>ข้อมูลเอกสาร"| P34
    DS11 -->|"ข้อมูลเงินรับฝาก<br/>ประวัติการฝาก"| P34
    DS12 -->|"รายการค่ารักษา<br/>รายละเอียดการรักษา"| P34
    DS14 -->|"Template เอกสารต่างๆ:<br/>- ใบรับฝากเงิน<br/>- ใบสรุปหน้างบ<br/>- ใบรายการค่าใช้จ่าย<br/>- ใบนำส่งเงิน<br/>- ใบสั่งยา"| P34
    P34 -->|"เอกสารที่พิมพ์:<br/>- ใบรับฝากเงิน<br/>- ใบสรุปหน้างบ<br/>- ใบรายการค่าใช้จ่าย<br/>- ใบนำส่งเงิน<br/>- ใบสั่งยา (ไทย/อังกฤษ)"| CASHIER
    P34 -->|"เอกสารที่ขอ<br/>รายการต่างๆ"| PATIENT
    P34 -->|"คำสั่งพิมพ์<br/>Document Data"| PRINTER

    %% Process 3.5 - การควบคุมเลขที่เอกสาร
    CASHIER -->|"คำขอเลขที่เอกสารใหม่<br/>ประเภทเอกสาร"| P35
    DS13 -->|"เลขที่เอกสารปัจจุบัน<br/>Running Number"| P35
    P35 -->|"เลขที่เอกสารใหม่:<br/>- รูปแบบ: YYYY-MM-DD-NNNNNN<br/>- รูปแบบ: CC-YYYY-NNNNNN<br/>- รูปแบบ: YYYY-CC-NNNNNN"| DS13
    P35 -->|"เลขที่เอกสารใหม่<br/>ที่ได้รับมอบหมาย"| P31
    P35 -->|"เลขที่เอกสารใหม่<br/>ที่ได้รับมอบหมาย"| P32
    P35 -->|"เลขที่เอกสารใหม่<br/>ที่ได้รับมอบหมาย"| P33
    DS7 -->|"Log การออกเลขที่<br/>ประวัติการใช้"| P35
    P35 -->|"Audit Trail<br/>การออกเลขที่เอกสาร"| DS7

    %% Integration between sub-processes
    P31 -.->|"ข้อมูลใบเสร็จ"| P33
    P32 -.->|"ข้อมูลใบแจ้งหนี้"| P34
    P35 -.->|"เลขที่เอกสาร"| P31
    P35 -.->|"เลขที่เอกสาร"| P32

    %% Styling
    style P31 fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    style P32 fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    style P33 fill:#fff3e0,stroke:#e65100,stroke-width:2px
    style P34 fill:#fce4ec,stroke:#880e4f,stroke-width:2px
    style P35 fill:#f3e5f5,stroke:#4a148c,stroke-width:2px

    style DS2 fill:#e0f2f1,stroke:#004d40
    style DS3 fill:#f1f8e9,stroke:#33691e
    style DS7 fill:#fff3e0,stroke:#ef6c00
    style DS11 fill:#e8eaf6,stroke:#283593
    style DS12 fill:#f1f8e9,stroke:#33691e
    style DS13 fill:#e1f5fe,stroke:#0277bd
    style DS14 fill:#fafafa,stroke:#424242

7. Level 1 DFD - การจัดการค้างชำระ

graph TD
    %% External Entities
    CASHIER["👤 เจ้าหน้าที่การเงิน"]
    FIN_SUP["👨‍💼 หัวหน้าการเงิน"]
    PATIENT["👤 ผู้ป่วยและญาติ"]
    REG_STAFF["👤 เจ้าหน้าที่ลงทะเบียน"]
    DIRECTOR["👨‍💼 ผู้อำนวยการ"]

    %% Sub Processes
    P41["4.1<br/>การบันทึกยอด<br/>ค้างชำระ<br/>📝 Outstanding Recording"]
    P42["4.2<br/>การแจ้งเตือน<br/>ค้างชำระ<br/>🔔 Outstanding Alert"]
    P43["4.3<br/>การขออนุมัติ<br/>ลดหย่อนและยกเว้น<br/>📋 Approval Request"]
    P44["4.4<br/>การอนุมัติ<br/>ลดหย่อนและยกเว้น<br/>✅ Approval Process"]
    P45["4.5<br/>การรับชำระ<br/>หนี้ค้าง<br/>💰 Outstanding Payment"]

    %% Data Stores
    DS2[("D2: ข้อมูลการชำระเงิน<br/>Payment Transactions")]
    DS4[("D4: ข้อมูลค้างชำระ<br/>Outstanding Records")]
    DS7[("D7: Audit Logs<br/>การตรวจสอบ")]
    DS9[("D9: การยกเว้นและลดหย่อน<br/>Exemptions & Discounts")]
    DS15[("D15: คำขออนุมัติ<br/>Approval Requests")]
    DS16[("D16: Workflow อนุมัติ<br/>Approval Workflow")]

    %% Process 4.1 - การบันทึกยอดค้างชำระ
    CASHIER -->|"การสร้างยอดค้างชำระ<br/>HN ผู้ป่วย<br/>ยอดเงินค้างชำระ<br/>เหตุผลการค้างชำระ"| P41
    PATIENT -->|"ขอค้างชำระ<br/>เหตุผลการค้างชำระ"| P41
    DS2 -->|"ข้อมูลการชำระเงิน<br/>ยอดที่ต้องชำระ"| P41
    P41 -->|"ข้อมูลค้างชำระ:<br/>- HN ผู้ป่วย<br/>- ยอดค้างชำระ<br/>- ประเภทการค้างชำระ<br/>- เหตุผล<br/>- วันที่ครบกำหนด<br/>- สถานะ"| DS4
    P41 -->|"ใบแจ้งการค้างชำระ<br/>ข้อมูลการค้างชำระ"| CASHIER
    P41 -->|"การแจ้งการค้างชำระ<br/>เงื่อนไขการชำระ"| PATIENT
    DS7 -->|"Log การสร้างค้างชำระ"| P41
    P41 -->|"Audit Trail<br/>การสร้างค้างชำระ"| DS7

    %% Process 4.2 - การแจ้งเตือนค้างชำระ
    DS4 -->|"ข้อมูลค้างชำระ<br/>รายการค้างชำระ"| P42
    REG_STAFF -->|"การ Login ของผู้ป่วย<br/>HN ผู้ป่วย"| P42
    P42 -->|"การแจ้งเตือน:<br/>⚠️ ผู้ป่วยมียอดค้างชำระ<br/>- วันที่ค้าง<br/>- ยอดค้างชำระ<br/>- จำนวนวันค้าง<br/>- เหตุผล"| REG_STAFF
    P42 -->|"การแจ้งเตือน<br/>ยอดค้างชำระ"| CASHIER
    P42 -->|"การแจ้งเตือน<br/>การติดตามหนี้"| PATIENT
    P42 -->|"รายงานค้างชำระ<br/>สรุปยอดค้างชำระ"| FIN_SUP
    DS7 -->|"Log การแจ้งเตือน"| P42
    P42 -->|"Audit Trail<br/>การแจ้งเตือน"| DS7

    %% Process 4.3 - การขออนุมัติลดหย่อนและยกเว้น
    CASHIER -->|"คำขออนุมัติ<br/>ลดหย่อน/ยกเว้น<br/>เหตุผล<br/>หลักฐานประกอบ"| P43
    PATIENT -->|"คำขอลดหย่อน<br/>เอกสารประกอบ<br/>เหตุผลความเดือดร้อน"| P43
    DS4 -->|"ข้อมูลค้างชำระ<br/>ยอดที่ขอลดหย่อน"| P43
    DS9 -->|"ประเภทการลดหย่อน<br/>เงื่อนไขการอนุมัติ"| P43
    DS16 -->|"Workflow การอนุมัติ<br/>ระดับการอนุมัติ"| P43
    P43 -->|"คำขออนุมัติ:<br/>- เลขที่คำขอ<br/>- HN ผู้ป่วย<br/>- ยอดที่ขอลดหย่อน<br/>- ประเภทการลดหย่อน<br/>- เหตุผล<br/>- หลักฐาน<br/>- ผู้ขออนุมัติ"| DS15
    P43 -->|"การส่งคำขอ<br/>ไปยังผู้อนุมัติ"| FIN_SUP
    P43 -->|"การส่งคำขอ<br/>(กรณีเกินอำนาจ)"| DIRECTOR
    P43 -->|"การแจ้งสถานะ<br/>คำขออนุมัติ"| CASHIER
    P43 -->|"การแจ้งสถานะ<br/>คำขออนุมัติ"| PATIENT
    DS7 -->|"Log การขออนุมัติ"| P43
    P43 -->|"Audit Trail<br/>การขออนุมัติ"| DS7

    %% Process 4.4 - การอนุมัติลดหย่อนและยกเว้น
    FIN_SUP -->|"การพิจารณาอนุมัติ<br/>ผลการพิจารณา<br/>หมายเหตุ"| P44
    DIRECTOR -->|"การอนุมัติกรณีพิเศษ<br/>การอนุมัติเกินอำนาจ"| P44
    DS15 -->|"คำขออนุมัติ<br/>รายละเอียดคำขอ"| P44
    DS16 -->|"Workflow การอนุมัติ<br/>ระดับการอนุมัติ"| P44
    P44 -->|"ผลการอนุมัติ:<br/>- อนุมัติ/ไม่อนุมัติ<br/>- ยอดที่อนุมัติ<br/>- เงื่อนไข<br/>- หมายเหตุ<br/>- วันที่อนุมัติ"| DS15
    P44 -->|"การปรับยอดค้างชำระ<br/>ตามการอนุมัติ"| DS4
    P44 -->|"เอกสารการอนุมัติ<br/>ผลการพิจารณา"| FIN_SUP
    P44 -->|"เอกสารการอนุมัติ<br/>(กรณีอนุมัติ)"| DIRECTOR
    P44 -->|"การแจ้งผลการอนุมัติ<br/>กลับไปยังผู้ขอ"| CASHIER
    P44 -->|"การแจ้งผลการอนุมัติ<br/>ยอดหลังลดหย่อน"| PATIENT
    DS7 -->|"Log การอนุมัติ"| P44
    P44 -->|"Audit Trail<br/>การอนุมัติ"| DS7

    %% Process 4.5 - การรับชำระหนี้ค้าง
    CASHIER -->|"การรับชำระหนี้ค้าง<br/>เลือกรายการค้างชำระ<br/>วิธีการชำระ"| P45
    PATIENT -->|"การชำระหนี้ค้าง<br/>จำนวนเงินที่ชำระ"| P45
    DS4 -->|"ข้อมูลค้างชำระ<br/>ยอดคงเหลือ"| P45
    DS15 -->|"ผลการอนุมัติ<br/>ยอดหลังลดหย่อน"| P45
    P45 -->|"รายการรับชำระหนี้ค้าง<br/>อัพเดทยอดคงเหลือ"| DS2
    P45 -->|"อัพเดทสถานะ<br/>ค้างชำระ (ชำระแล้ว)"| DS4
    P45 -->|"ใบเสร็จรับเงิน<br/>ค้างชำระ"| CASHIER
    P45 -->|"ใบเสร็จรับเงิน<br/>หนี้ค้าง"| PATIENT
    P45 -->|"ประวัติการรับชำระ<br/>หนี้ค้าง"| DS7
    DS7 -->|"Log การรับชำระหนี้ค้าง"| P45

    %% Integration between sub-processes
    P41 -.->|"ข้อมูลค้างชำระ"| P42
    P42 -.->|"การแจ้งเตือน"| P43
    P43 -.->|"คำขออนุมัติ"| P44
    P44 -.->|"ผลการอนุมัติ"| P45
    P45 -.->|"การชำระเงิน"| P41

    %% Styling
    style P41 fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    style P42 fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    style P43 fill:#fff3e0,stroke:#e65100,stroke-width:2px
    style P44 fill:#fce4ec,stroke:#880e4f,stroke-width:2px
    style P45 fill:#f3e5f5,stroke:#4a148c,stroke-width:2px

    style DS2 fill:#e0f2f1,stroke:#004d40
    style DS4 fill:#ffebee,stroke:#c62828
    style DS7 fill:#fff3e0,stroke:#ef6c00
    style DS9 fill:#ffebee,stroke:#c62828
    style DS15 fill:#e8eaf6,stroke:#283593
    style DS16 fill:#f1f8e9,stroke:#33691e

8. Level 1 DFD - การปิดรอบการเงิน

graph TD
    %% External Entities
    CASHIER["👤 เจ้าหน้าที่การเงิน"]
    FIN_SUP["👨‍💼 หัวหน้าการเงิน"]
    DIRECTOR["👨‍💼 ผู้อำนวยการ"]
    EXT_ORG["🏛️ หน่วยงานภายนอก<br/>(สปสช., สนย., กรมบัญชีกลาง)"]
    AUDITOR["👨‍💼 ผู้ตรวจสอบ"]

    %% Sub Processes
    P51["5.1<br/>การปิดยอดรายวัน<br/>📊 Daily Closing"]
    P52["5.2<br/>การสรุปยอดเงิน<br/>💰 Financial Summary"]
    P53["5.3<br/>การสร้างรายงาน<br/>การเงิน<br/>📋 Financial Reporting"]
    P54["5.4<br/>การจัดการเงินสด<br/>💵 Cash Management"]
    P55["5.5<br/>การส่งออกข้อมูล<br/>📤 Data Export"]

    %% Data Stores
    DS2[("D2: ข้อมูลการชำระเงิน<br/>Payment Transactions")]
    DS3[("D3: เอกสารทางการเงิน<br/>Financial Documents")]
    DS4[("D4: ข้อมูลค้างชำระ<br/>Outstanding Records")]
    DS5[("D5: รายงานการเงิน<br/>Financial Reports")]
    DS7[("D7: Audit Logs<br/>การตรวจสอบ")]
    DS10[("D10: จุดรับชำระเงิน<br/>Payment Points")]
    DS17[("D17: การปิดรอบ<br/>Closing Records")]
    DS18[("D18: เงินสดและยอดคงเหลือ<br/>Cash & Balance")]
    DS19[("D19: ข้อมูลส่งออก<br/>Export Data")]

    %% Process 5.1 - การปิดยอดรายวัน
    CASHIER -->|"การปิดยอดรายวัน<br/>วันที่ปิดยอด<br/>จุดรับชำระเงิน<br/>การนับเงินสด"| P51
    FIN_SUP -->|"การอนุมัติปิดยอด<br/>การตรวจสอบยอด"| P51
    DS2 -->|"รายการการชำระเงิน<br/>รายวัน"| P51
    DS3 -->|"เอกสารทางการเงิน<br/>รายวัน"| P51
    DS10 -->|"ข้อมูลจุดรับชำระเงิน<br/>การตั้งค่าจุดรับชำระ"| P51
    DS18 -->|"ยอดเงินสดคงเหลือ<br/>ก่อนปิดยอด"| P51
    P51 -->|"ผลการปิดยอดรายวัน:<br/>- ยอดรายได้รวม<br/>- แยกตามประเภทการชำระ<br/>- แยกตามหมวดค่ารักษา<br/>- แยกตามสิทธิ<br/>- ผลต่างเงินสด<br/>- สถานะการปิดยอด"| DS17
    P51 -->|"รายงานปิดยอดรายวัน<br/>ใบนำส่งเงินรายได้"| CASHIER
    P51 -->|"สรุปยอดรายวัน<br/>ผลต่างเงินสด"| FIN_SUP
    P51 -->|"อัพเดทยอดเงินสด<br/>หลังปิดยอด"| DS18
    DS7 -->|"Log การปิดยอด"| P51
    P51 -->|"Audit Trail<br/>การปิดยอดรายวัน"| DS7

    %% Process 5.2 - การสรุปยอดเงิน
    CASHIER -->|"คำขอสรุปยอดเงิน<br/>ช่วงวันที่<br/>เงื่อนไขการสรุป"| P52
    FIN_SUP -->|"คำขอรายงานการเงิน<br/>การเปรียบเทียบ"| P52
    DS17 -->|"ข้อมูลการปิดรอบ<br/>ประวัติการปิดยอด"| P52
    DS2 -->|"ข้อมูลการชำระเงิน<br/>รายละเอียดการชำระ"| P52
    DS4 -->|"ข้อมูลค้างชำระ<br/>ยอดค้างชำระ"| P52
    P52 -->|"สรุปยอดเงิน:<br/>- รายได้ตามรายการค่ารักษา<br/>- รายได้ตามจุดรับชำระ<br/>- รายได้ตามสิทธิ<br/>- รายได้ตามหน่วยงาน<br/>- การเปรียบเทียบ"| DS5
    P52 -->|"รายงานสรุปยอดเงิน<br/>ตามเงื่อนไข"| CASHIER
    P52 -->|"รายงานการเงิน<br/>สำหรับฝ่ายบริหาร"| FIN_SUP
    P52 -->|"ข้อมูลสรุปรายบุคคล<br/>ยอดค่ารักษาผู้ป่วย"| CASHIER

    %% Process 5.3 - การสร้างรายงานการเงิน
    FIN_SUP -->|"คำขอรายงานการเงิน<br/>ประเภทรายงาน<br/>ช่วงเวลา"| P53
    DIRECTOR -->|"คำขอรายงานผู้บริหาร<br/>การวิเคราะห์"| P53
    AUDITOR -->|"คำขอรายงานตรวจสอบ<br/>Audit Report"| P53
    DS5 -->|"ข้อมูลรายงานการเงิน<br/>สรุปยอดเงิน"| P53
    DS17 -->|"ข้อมูลการปิดรอบ<br/>ประวัติการปิดยอด"| P53
    DS7 -->|"Audit Logs<br/>การตรวจสอบ"| P53
    P53 -->|"รายงานการเงิน:<br/>- รายงานยอดรายได้รายวัน<br/>- รายงานค้างชำระ<br/>- รายงานการลดหย่อน<br/>- รายงานสำหรับฝ่ายบริหาร<br/>- รายงานตรวจสอบ"| DS5
    P53 -->|"รายงานการเงิน<br/>สำหรับฝ่ายบริหาร"| FIN_SUP
    P53 -->|"รายงานผู้บริหาร<br/>การวิเคราะห์ทางการเงิน"| DIRECTOR
    P53 -->|"รายงานตรวจสอบ<br/>Audit Report"| AUDITOR
    P53 -->|"ข้อมูลสำหรับส่งออก<br/>External Reporting"| DS19

    %% Process 5.4 - การจัดการเงินสด
    CASHIER -->|"การนับเงิน<br/>การนำส่งเงิน<br/>ยอดเงินสดคงเหลือ"| P54
    FIN_SUP -->|"การตรวจสอบเงินสด<br/>การอนุมัติการนำส่ง"| P54
    DS18 -->|"ยอดเงินสดคงเหลือ<br/>ประวัติการนำส่ง"| P54
    DS17 -->|"ข้อมูลการปิดยอด<br/>ยอดเงินสดรายวัน"| P54
    P54 -->|"การจัดการเงินสด:<br/>- ยอดเงินสดคงเหลือ<br/>- การนำส่งเงิน<br/>- ผลต่างเงินสด<br/>- การตรวจสอบ"| DS18
    P54 -->|"ใบนำส่งเงิน<br/>ยอดเงินที่นำส่ง"| CASHIER
    P54 -->|"รายงานเงินสด<br/>ยอดคงเหลือ"| FIN_SUP
    DS7 -->|"Log การจัดการเงินสด"| P54
    P54 -->|"Audit Trail<br/>การจัดการเงินสด"| DS7

    %% Process 5.5 - การส่งออกข้อมูล
    FIN_SUP -->|"คำขอส่งออกข้อมูล<br/>รายงาน 43 แฟ้ม<br/>ข้อมูลหน่วยงานภายนอก"| P55
    EXT_ORG -->|"คำขอข้อมูลการเงิน<br/>รูปแบบข้อมูล"| P55
    DS19 -->|"ข้อมูลสำหรับส่งออก<br/>Template การส่งออก"| P55
    DS5 -->|"รายงานการเงิน<br/>ข้อมูลสรุป"| P55
    DS2 -->|"ข้อมูลการชำระเงิน<br/>รายละเอียด"| P55
    P55 -->|"ข้อมูลส่งออก:<br/>- รายงาน 43 แฟ้ม (สปสช.)<br/>- ข้อมูลประกันสังคม<br/>- ข้อมูลข้าราชการ<br/>- ข้อมูลประกันเพิ่มเติม"| DS19
    P55 -->|"รายงาน 43 แฟ้ม<br/>ข้อมูลการเงิน"| EXT_ORG
    P55 -->|"การยืนยันการส่งออก<br/>สถานะการส่ง"| FIN_SUP
    DS7 -->|"Log การส่งออกข้อมูล"| P55
    P55 -->|"Audit Trail<br/>การส่งออกข้อมูล"| DS7

    %% Integration between sub-processes
    P51 -.->|"ข้อมูลการปิดยอด"| P52
    P52 -.->|"ข้อมูลสรุป"| P53
    P51 -.->|"ยอดเงินสด"| P54
    P53 -.->|"รายงาน"| P55
    P54 -.->|"ข้อมูลเงินสด"| P53

    %% Styling
    style P51 fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    style P52 fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    style P53 fill:#fff3e0,stroke:#e65100,stroke-width:2px
    style P54 fill:#fce4ec,stroke:#880e4f,stroke-width:2px
    style P55 fill:#f3e5f5,stroke:#4a148c,stroke-width:2px

    style DS2 fill:#e0f2f1,stroke:#004d40
    style DS3 fill:#f1f8e9,stroke:#33691e
    style DS4 fill:#ffebee,stroke:#c62828
    style DS5 fill:#e8eaf6,stroke:#283593
    style DS7 fill:#fff3e0,stroke:#ef6c00
    style DS10 fill:#f1f8e9,stroke:#33691e
    style DS17 fill:#e1f5fe,stroke:#0277bd
    style DS18 fill:#fff9c4,stroke:#f57f17
    style DS19 fill:#fafafa,stroke:#424242

9. Data Dictionary

9.1 Data Stores

Data Store ชื่อ คำอธิบาย ข้อมูลหลัก
D1 ข้อมูลสิทธิการรักษา
(Financial Rights)
เก็บข้อมูลสิทธิการรักษาพยาบาลทางการเงิน รหัสสิทธิ, ชื่อสิทธิ, ประเภทการชำระ, รหัสสิทธิ สนย., ค่าธรรมเนียมสิทธิ
D2 ข้อมูลการชำระเงิน
(Payment Transactions)
เก็บรายการการชำระเงินทั้งหมด เลขที่การชำระ, HN, วันที่ชำระ, ยอดเงิน, วิธีการชำระ, สถานะ
D3 เอกสารทางการเงิน
(Financial Documents)
เก็บเอกสารทางการเงินทั้งหมด เลขที่เอกสาร, ประเภทเอกสาร, วันที่ออก, ข้อมูลเอกสาร, สถานะ
D4 ข้อมูลค้างชำระ
(Outstanding Records)
เก็บข้อมูลยอดค้างชำระ HN, ยอดค้างชำระ, วันที่ค้าง, เหตุผล, สถานะ
D5 รายงานการเงิน
(Financial Reports)
เก็บรายงานการเงินต่างๆ รหัสรายงาน, ประเภทรายงาน, วันที่สร้าง, ข้อมูลรายงาน
D6 การตั้งค่าระบบ
(System Configuration)
เก็บการตั้งค่าระบบการเงิน พารามิเตอร์, ค่าตั้งค่า, วันที่อัพเดท, ผู้อัพเดท
D7 Audit Logs
(การตรวจสอบ)
เก็บบันทึกการใช้งานทั้งหมด วันที่เวลา, ผู้ใช้, การกระทำ, ข้อมูลเดิม, ข้อมูลใหม่
D8 ผังการคิดค่าบริการ
(Pricing Schema)
เก็บวิธีการคำนวณค่าบริการ รหัสสิทธิ, วิธีการคิด, สูตรคำนวณ, อัตราค่าบริการ
D9 การยกเว้นและลดหย่อน
(Exemptions & Discounts)
เก็บประเภทการยกเว้นและลดหย่อน รหัสประเภท, คำอธิบาย, เงื่อนไข, เปอร์เซ็นต์ลด
D10 จุดรับชำระเงิน
(Payment Points)
เก็บข้อมูลจุดรับชำระเงิน รหัสจุด, ชื่อจุด, ที่ตั้ง, ประเภท, ผู้รับผิดชอบ
D11 เงินรับฝาก
(Deposit Records)
เก็บข้อมูลเงินมัดจำ HN, AN, วันที่ฝาก, จำนวนเงิน, ยอดคงเหลือ, สถานะ
D12 รายการค่ารักษา
(Charge Items)
เก็บรายการค่ารักษาแยกตามหมวด HN, วันที่, รายการ, หมวด, จำนวน, ราคา, ยอดรวม
D13 เลขที่เอกสาร
(Document Numbers)
เก็บ Running Number เอกสาร ประเภทเอกสาร, รูปแบบ, เลขที่ปัจจุบัน, วันที่รีเซ็ต
D14 Template เอกสาร
(Document Templates)
เก็บแม่แบบเอกสาร รหัส Template, ชื่อ Template, โครงสร้าง, รูปแบบ
D15 คำขออนุมัติ
(Approval Requests)
เก็บคำขออนุมัติลดหย่อน เลขที่คำขอ, HN, ยอดขอลด, เหตุผล, สถานะ, ผู้อนุมัติ
D16 Workflow อนุมัติ
(Approval Workflow)
เก็บขั้นตอนการอนุมัติ ระดับอนุมัติ, ยอดเงิน, ผู้อนุมัติ, เงื่อนไข
D17 การปิดรอบ
(Closing Records)
เก็บข้อมูลการปิดยอด วันที่ปิด, จุดรับชำระ, ยอดรายได้, ผลต่าง, สถานะ
D18 เงินสดและยอดคงเหลือ
(Cash & Balance)
เก็บข้อมูลเงินสด วันที่, ยอดยกมา, รับเพิ่ม, จ่ายออก, ยอดคงเหลือ
D19 ข้อมูลส่งออก
(Export Data)
เก็บข้อมูลสำหรับส่งออก รหัสการส่งออก, ประเภท, ข้อมูล, วันที่ส่ง, สถานะ

9.2 Data Flows

9.2.1 Input Data Flows

Data Flow แหล่งที่มา ปลายทาง คำอธิบาย
ข้อมูลสิทธิการรักษา ผู้ดูแลระบบการเงิน Process 1.1 ข้อมูลสิทธิใหม่, การแก้ไขสิทธิ
รายการค่ารักษา ระบบ HIS อื่นๆ Process 2.1 ค่าตรวจ, ค่ายา, ค่าหัตถการ
การชำระเงิน ผู้ป่วยและญาติ Process 2.0 เงินสด, บัตร, โอน, QR Code
คำขออนุมัติลดหย่อน เจ้าหน้าที่การเงิน Process 4.3 คำขอลดหย่อน, เหตุผล, หลักฐาน
การปิดยอดรายวัน เจ้าหน้าที่การเงิน Process 5.1 การนับเงิน, การปิดยอด

9.2.2 Output Data Flows

Data Flow แหล่งที่มา ปลายทาง คำอธิบาย
ใบเสร็จรับเงิน Process 3.1 ผู้ป่วยและญาติ ใบเสร็จการชำระเงิน
ใบแจ้งหนี้ Process 3.2 ผู้ป่วยและญาติ ใบแจ้งค่ารักษา
รายงานการเงิน Process 5.3 หัวหน้าการเงิน รายงานสรุปการเงิน
การแจ้งเตือนค้างชำระ Process 4.2 เจ้าหน้าที่ลงทะเบียน แจ้งเตือนหนี้ค้าง
รายงาน 43 แฟ้ม Process 5.5 หน่วยงานภายนอก ข้อมูลส่ง สปสช.

9.3 External Entities

External Entity คำอธิบาย บทบาท
👤 เจ้าหน้าที่การเงิน บุคลากรที่รับชำระเงิน รับชำระเงิน, ออกใบเสร็จ, นับเงิน
👨‍💼 หัวหน้าการเงิน ผู้ดูแลงานการเงิน อนุมัติลดหย่อน, ดูรายงาน, ปิดยอด
👤 ผู้ป่วยและญาติ ผู้รับบริการ ชำระเงิน, ฝากเงิน, ขอเอกสาร
👨‍💼 ผู้ดูแลระบบการเงิน ผู้ดูแลระบบ ตั้งค่า, จัดการ Master Data
🏥 ระบบ HIS อื่นๆ ระบบใน HIS ส่งข้อมูลค่ารักษา, ข้อมูลผู้ป่วย
🏛️ หน่วยงานภายนอก สปสช., สนย., กรมบัญชีกลาง รับข้อมูลการเงิน, ตรวจสอบสิทธิ
🏦 ธนาคาร สถาบันการเงิน ยืนยันการชำระบัตร, การโอนเงิน

10. API Integration Flow

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

sequenceDiagram
    participant FIN as ระบบการเงิน
    participant MRS as ระบบเวชระเบียน
    participant RIGHTS as ระบบตรวจสอบสิทธิ
    participant PHARMACY as ระบบเภสัชกรรม
    participant LAB as ระบบชันสูตร
    participant XRAY as ระบบรังสีวิทยา

    Note over FIN,XRAY: การดึงข้อมูลค่ารักษาจากระบบต่างๆ

    FIN->>MRS: getPatientInfo(HN)
    MRS-->>FIN: PatientData + VisitInfo

    FIN->>RIGHTS: checkRights(HN)
    RIGHTS-->>FIN: RightsInfo + Copayment

    FIN->>PHARMACY: getPharmacyCharges(HN, Date)
    PHARMACY-->>FIN: DrugCharges[]

    FIN->>LAB: getLabCharges(HN, Date)
    LAB-->>FIN: LabCharges[]

    FIN->>XRAY: getXrayCharges(HN, Date)
    XRAY-->>FIN: XrayCharges[]

    Note over FIN: คำนวณค่ารักษารวม
    FIN->>FIN: calculateTotalCharges()

    Note over FIN: ส่งข้อมูลกลับไปยังระบบต่างๆ
    FIN->>MRS: updatePaymentStatus(HN, Status)
    FIN->>RIGHTS: updateRightsUsage(HN, Amount)

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

sequenceDiagram
    participant FIN as ระบบการเงิน
    participant NHSO as สปสช.
    participant SSO as สนย.
    participant CGD as กรมบัญชีกลาง
    participant BANK as ธนาคาร

    Note over FIN,BANK: การส่งข้อมูลและการชำระเงิน

    %% การตรวจสอบสิทธิ
    FIN->>NHSO: checkUCRights(CitizenID)
    NHSO-->>FIN: UCStatus + Eligibility

    FIN->>SSO: checkSSSRights(SSSNumber)
    SSO-->>FIN: SSSStatus + Benefits

    FIN->>CGD: checkCGDRights(EmpID)
    CGD-->>FIN: CGDStatus + Benefits

    %% การชำระเงินผ่านธนาคาร
    FIN->>BANK: processCardPayment(CardData)
    BANK-->>FIN: TransactionResult

    FIN->>BANK: verifyTransfer(SlipData)
    BANK-->>FIN: TransferVerification

    %% การส่งข้อมูล 43 แฟ้ม
    Note over FIN,NHSO: การส่งข้อมูล 43 แฟ้ม (รายเดือน)
    FIN->>NHSO: submit43Files(MonthlyData)
    NHSO-->>FIN: SubmissionResult

    %% การเคลมเงิน
    FIN->>NHSO: submitClaim(ClaimData)
    NHSO-->>FIN: ClaimResult + PaymentInfo

10.3 API Endpoints สำคัญ

10.3.1 Patient & Payment APIs

# การดึงข้อมูลผู้ป่วย
GET /api/v1/patient/{hn}/info
GET /api/v1/patient/{hn}/charges
GET /api/v1/patient/{hn}/outstanding

# การรับชำระเงิน
POST /api/v1/payment/opd
POST /api/v1/payment/ipd
POST /api/v1/payment/deposit
GET /api/v1/payment/{transactionId}

# การจัดการใบเสร็จ
POST /api/v1/receipt/generate
POST /api/v1/receipt/cancel
GET /api/v1/receipt/{receiptNo}

10.3.2 Financial Management APIs

# การจัดการสิทธิ
GET /api/v1/rights/list
POST /api/v1/rights/create
PUT /api/v1/rights/{rightsId}
DELETE /api/v1/rights/{rightsId}

# การปิดรอบการเงิน
POST /api/v1/closing/daily
GET /api/v1/closing/status/{date}
GET /api/v1/reports/daily/{date}
GET /api/v1/reports/monthly/{month}

# การส่งออกข้อมูล
POST /api/v1/export/43files
GET /api/v1/export/status/{exportId}

10.4 การจัดการ Error และ Exception

10.4.1 Error Codes

Financial_Errors:
  FIN_001: "ไม่พบข้อมูลผู้ป่วย"
  FIN_002: "สิทธิการรักษาไม่ถูกต้อง"
  FIN_003: "ยอดเงินไม่เพียงพอ"
  FIN_004: "การชำระเงินล้มเหลว"
  FIN_005: "ใบเสร็จซ้ำ"
  FIN_006: "ไม่สามารถยกเลิกใบเสร็จได้"
  FIN_007: "ข้อมูลการปิดรอบไม่ถูกต้อง"
  FIN_008: "การส่งข้อมูลล้มเหลว"

10.4.2 Retry Mechanism

API_Retry_Policy:
  max_retries: 3
  retry_delay: 1000ms
  exponential_backoff: true
  retry_conditions:
    - network_timeout
    - server_error_5xx
    - rate_limit_exceeded

10.5 การรักษาความปลอดภัย API

10.5.1 Authentication & Authorization

Security_Measures:
  authentication: "JWT Token"
  authorization: "Role-based Access Control"
  encryption: "TLS 1.3"
  api_key: "Required for external APIs"
  rate_limiting: "100 requests/minute"
  ip_whitelisting: "Production environment"

10.5.2 Data Validation

Input_Validation:
  HN: "regex: ^[0-9]{6,10}$"
  amount: "decimal(10,2), min: 0"
  payment_method: "enum: [cash, card, transfer, qr]"
  receipt_no: "regex: ^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}$"

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