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

Data Flow Diagram (DFD)

ระบบตรวจสอบสิทธิ (Rights Verification 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. Data Dictionary
  9. API Integration Flow

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

ระบบตรวจสอบสิทธิทำหน้าที่เป็น Supporting Module ที่ให้บริการตรวจสอบและจัดการสิทธิการรักษาพยาบาลของผู้ป่วยแบบครบวงจร โดยมีการไหลของข้อมูลหลักดังนี้:

การไหลของข้อมูลหลัก:

  • Input: ข้อมูลผู้ป่วยจากระบบเวชระเบียน (1.2.1), ข้อมูลสิทธิจากระบบภายนอก (สปสช./สนย.), ข้อมูลการรักษาจากระบบต่างๆ, ข้อมูลการชำระเงินจากระบบการเงิน (1.2.14)
  • Processing: การตรวจสอบสิทธิออนไลน์, การจัดการข้อมูลสิทธิ, การคำนวณส่วนลดและค่าบริการ, การออกใบยืนยันสิทธิ, การจัดการประเภทการชำระเงิน, การติดตามสถานะสิทธิ
  • Output: ข้อมูลสิทธิที่ยืนยันแล้ว, ใบยืนยันสิทธิ, รายงานการใช้สิทธิ, ข้อมูลส่วนลดและการคิดค่าบริการ, การแจ้งเตือนสิทธิหมดอายุ
  • Integration: เชื่อมต่อกับระบบภายนอก (สปสช./สนย.) ผ่าน Web Service, เชื่อมต่อกับระบบการเงิน (1.2.14) สำหรับการคิดค่าบริการ, เชื่อมต่อกับระบบต่างๆ ผ่าน Modal/Pop-up Interface

ฟีเจอร์หลักตาม TOR:

1. การจัดการข้อมูลพื้นฐาน (1.2.15.1): - กำหนดข้อมูลสิทธิการรักษาโดยเชื่อมโยงกับ สปสช. และ สนย. - กำหนดประเภทการชำระเงินของแต่ละสิทธิ - กำหนดข้อมูลสิทธิ: เลขที่สิทธิ, วันที่เริ่มใช้, วันที่หมดอายุ, สถานพยาบาลหลัก/รอง - กำหนดประเภทการออกใบเสร็จรับเงินและผังการคิดค่าบริการ - กำหนดส่วนลดในค่าใช้จ่ายแต่ละหมวด

2. การตรวจสอบสิทธิ (1.2.15.2): - แสดงข้อมูลสิทธิการรักษาโดยค้นหาจาก HN, ชื่อ-นามสกุล, เลขบัตรประชาชน - แสดงข้อมูลครบถ้วน: HN, ชื่อ-นามสกุล, อายุ, เพศ, บัตรประชาชน, เอกสารแสดงสิทธิอื่นๆ - บันทึกและแก้ไขสิทธิผู้ป่วย - บันทึกการยืนยันการตรวจสอบสิทธิและพิมพ์ใบยืนยันสิทธิ

การทำงานในสองรูปแบบ:

1. Modal/Pop-up Component (Supporting Function): - เรียกใช้จากระบบอื่นๆ เช่น ระบบเวชระเบียน, ระบบซักประวัติ, ระบบห้องตรวจแพทย์ - แสดงสิทธิการรักษาแบบ Real-time - เลือกใช้สิทธิสำหรับการรักษาแต่ละครั้ง - ตรวจสอบและแก้ไขข้อมูลสิทธิระหว่างการรักษา

2. Standalone Management Interface: - จัดการสิทธิสำหรับเจ้าหน้าที่ตรวจสอบสิทธิโดยเฉพาะ - การเชื่อมโยงกับระบบภายนอก (สปสช./สนย.) - การออกใบยืนยันสิทธิ - การจัดการส่วนลดและการคิดค่าบริการ - การตรวจสอบและแก้ไขข้อมูลสิทธิย้อนหลัง

คุณลักษณะพิเศษ:

  • การตรวจสอบออนไลน์ Real-time: เชื่อมต่อ สปสช./สนย. แบบทันที
  • การจัดการหลายสิทธิ: ผู้ป่วย 1 คนสามารถมีหลายสิทธิพร้อมกัน
  • ระบบ Cache สำหรับ Offline: ทำงานได้แม้ขาดการเชื่อมต่อชั่วคราว
  • การคำนวณส่วนลดแบบยืดหยุ่น: ส่วนลดตามประเภทสิทธิและหมวดค่าใช้จ่าย
  • การติดตาม Audit Trail: บันทึกประวัติการเปลี่ยนแปลงครบถ้วน
  • การแจ้งเตือนอัตโนมัติ: สิทธิหมดอายุ, ข้อผิดพลาดการตรวจสอบ
  • รองรับการทำงานแบบ Multi-tenancy: สำหรับโรงพยาบาลเครือข่าย

2. Context Diagram

graph TD
    %% External Entities - Internal Systems
    MEDICAL[ระบบเวชระเบียน<br/>1.2.1<br/>Medical Records]
    HISTORY[ระบบซักประวัติ<br/>1.2.2<br/>History Taking]
    DOCTOR[ระบบห้องตรวจแพทย์<br/>1.2.3<br/>Doctor Room]
    EMERGENCY[ระบบห้องฉุกเฉิน<br/>1.2.4<br/>Emergency Room]
    INPATIENT[ระบบผู้ป่วยใน<br/>1.2.17<br/>Inpatient]
    FINANCIAL[ระบบการเงิน<br/>1.2.14<br/>Financial System]

    %% External Entities - External Systems
    NHSO[ระบบ สปสช.<br/>NHSO<br/>National Health Security Office]
    SSO[ระบบ สนย.<br/>SSO<br/>Social Security Office]
    CGD[ระบบข้าราชการ<br/>CGD<br/>Civil Government Database]

    %% External Entities - Users
    RIGHTS_OFFICER[เจ้าหน้าที่ตรวจสอบสิทธิ<br/>Rights Verification Officer]
    CASHIER[เจ้าหน้าที่การเงิน<br/>Cashier]
    ADMIN[ผู้ดูแลระบบ<br/>System Administrator]

    %% Main System
    RIGHTS_SYSTEM[ระบบตรวจสอบสิทธิ<br/>Rights Verification System<br/>🔧 Supporting Module]

    %% Data flows - Internal Systems Integration
    MEDICAL -.->|patient_data<br/>visit_info| RIGHTS_SYSTEM
    HISTORY -.->|treatment_request<br/>rights_inquiry| RIGHTS_SYSTEM
    DOCTOR -.->|treatment_request<br/>rights_inquiry| RIGHTS_SYSTEM
    EMERGENCY -.->|emergency_rights_check<br/>urgent_verification| RIGHTS_SYSTEM
    INPATIENT -.->|admission_rights<br/>coverage_check| RIGHTS_SYSTEM

    RIGHTS_SYSTEM -.->|verified_rights<br/>discount_info<br/>payment_type| MEDICAL
    RIGHTS_SYSTEM -.->|rights_status<br/>coverage_details| HISTORY
    RIGHTS_SYSTEM -.->|rights_status<br/>coverage_details| DOCTOR
    RIGHTS_SYSTEM -.->|rights_status<br/>coverage_details| EMERGENCY
    RIGHTS_SYSTEM -.->|rights_status<br/>coverage_details| INPATIENT

    %% Financial Integration
    RIGHTS_SYSTEM <-.->|financial_data<br/>discount_rules<br/>payment_methods| FINANCIAL

    %% External Systems Integration
    RIGHTS_SYSTEM <-.->|rights_verification<br/>eligibility_check<br/>API_calls| NHSO
    RIGHTS_SYSTEM <-.->|social_security_check<br/>coverage_verification<br/>API_calls| SSO
    RIGHTS_SYSTEM <-.->|civil_servant_verification<br/>government_coverage<br/>API_calls| CGD

    %% User Interactions
    RIGHTS_OFFICER -->|manage_rights<br/>verify_eligibility<br/>issue_certificates| RIGHTS_SYSTEM
    RIGHTS_SYSTEM -->|rights_certificate<br/>verification_report<br/>coverage_summary| RIGHTS_OFFICER

    CASHIER -->|payment_inquiry<br/>discount_request| RIGHTS_SYSTEM
    RIGHTS_SYSTEM -->|payment_calculation<br/>discount_amount<br/>receipt_type| CASHIER

    ADMIN -->|system_config<br/>master_data<br/>external_api_config| RIGHTS_SYSTEM
    RIGHTS_SYSTEM -->|system_status<br/>error_logs<br/>performance_reports| ADMIN

    %% Styling
    classDef internalSys fill:#e3f2fd,stroke:#0277bd,stroke-width:2px
    classDef externalSys fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
    classDef users fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef mainSys fill:#e8f5e8,stroke:#2e7d32,stroke-width:3px

    class MEDICAL,HISTORY,DOCTOR,EMERGENCY,INPATIENT,FINANCIAL internalSys
    class NHSO,SSO,CGD externalSys
    class RIGHTS_OFFICER,CASHIER,ADMIN users
    class RIGHTS_SYSTEM mainSys

3. Level 0 DFD

graph TD
    %% External Entities
    MEDICAL[ระบบเวชระเบียน<br/>Medical Records<br/>1.2.1]
    CLINICAL_SYS[ระบบคลินิก<br/>Clinical Systems<br/>1.2.2, 1.2.3, 1.2.4]
    FINANCIAL[ระบบการเงิน<br/>Financial System<br/>1.2.14]
    NHSO[ระบบ สปสช.<br/>NHSO]
    SSO[ระบบ สนย.<br/>SSO] 
    CGD[ระบบข้าราชการ<br/>CGD]
    RIGHTS_OFFICER[เจ้าหน้าที่ตรวจสอบสิทธิ]
    ADMIN[ผู้ดูแลระบบ]

    %% Main Process
    P0[0.0<br/>ระบบตรวจสอบสิทธิ<br/>Rights Verification<br/>System]

    %% Data Stores
    DS1[(D1<br/>ข้อมูลประเภทสิทธิ<br/>Rights Types)]
    DS2[(D2<br/>ข้อมูลสิทธิผู้ป่วย<br/>Patient Rights)]
    DS3[(D3<br/>ประวัติการตรวจสอบ<br/>Verification History)]
    DS4[(D4<br/>ข้อมูลการเงินสิทธิ<br/>Rights Financial Data)]
    DS5[(D5<br/>ข้อมูลระบบภายนอก<br/>External Systems)]
    DS6[(D6<br/>ข้อมูลส่วนลด<br/>Discount Rules)]
    DS7[(D7<br/>Audit Log<br/>การตรวจสอบ)]

    %% Data Flows - Patient Data Input
    MEDICAL -->|patient_basic_info<br/>HN, demographics| P0
    CLINICAL_SYS -->|treatment_request<br/>service_details<br/>modal_call| P0

    %% Data Flows - External Verification
    P0 <-->|online_verification<br/>API_request_response| NHSO
    P0 <-->|social_security_check<br/>API_request_response| SSO
    P0 <-->|civil_servant_check<br/>API_request_response| CGD

    %% Data Flows - Financial Integration
    P0 <-->|payment_calculation<br/>discount_rules<br/>receipt_types| FINANCIAL

    %% Data Flows - User Management
    RIGHTS_OFFICER -->|rights_management<br/>verification_request<br/>certificate_issue| P0
    P0 -->|verification_result<br/>rights_certificate<br/>coverage_report| RIGHTS_OFFICER

    ADMIN -->|master_data_config<br/>external_api_setup<br/>system_maintenance| P0
    P0 -->|system_status<br/>error_reports<br/>audit_reports| ADMIN

    %% Data Flows - Output to Systems
    P0 -->|verified_rights_data<br/>coverage_details<br/>payment_info| CLINICAL_SYS
    P0 -->|financial_calculation<br/>discount_amount<br/>payment_type| FINANCIAL

    %% Data Store Interactions
    P0 <-->|read/write| DS1
    P0 <-->|read/write| DS2
    P0 <-->|read/write| DS3
    P0 <-->|read/write| DS4
    P0 <-->|read/write| DS5
    P0 <-->|read/write| DS6
    P0 -->|audit_trail| DS7

    %% Styling
    classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef process fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    classDef datastore fill:#fff3e0,stroke:#ef6c00,stroke-width:2px

    class MEDICAL,CLINICAL_SYS,FINANCIAL,NHSO,SSO,CGD,RIGHTS_OFFICER,ADMIN entity
    class P0 process
    class DS1,DS2,DS3,DS4,DS5,DS6,DS7 datastore

4. Level 1 DFD - การจัดการข้อมูลสิทธิ

graph TD
    %% External Entities
    MEDICAL[ระบบเวชระเบียน<br/>Medical Records]
    CLINICAL_SYS[ระบบคลินิก<br/>Clinical Systems]
    RIGHTS_OFFICER[เจ้าหน้าที่ตรวจสอบสิทธิ]
    ADMIN[ผู้ดูแลระบบ]

    %% Processes
    P11[1.1<br/>จัดการประเภทสิทธิ<br/>Manage Rights Types]
    P12[1.2<br/>จัดการสิทธิผู้ป่วย<br/>Manage Patient Rights]
    P13[1.3<br/>จัดการข้อมูลสิทธิ<br/>Manage Rights Information]
    P14[1.4<br/>จัดการสถานพยาบาล<br/>Manage Healthcare Providers]

    %% Data Stores
    DS1[(D1<br/>ข้อมูลประเภทสิทธิ<br/>Rights Types)]
    DS2[(D2<br/>ข้อมูลสิทธิผู้ป่วย<br/>Patient Rights)]
    DS8[(D8<br/>ข้อมูลสถานพยาบาล<br/>Healthcare Providers)]
    DS9[(D9<br/>ข้อมูลสิทธิรายละเอียด<br/>Rights Details)]
    DS7[(D7<br/>Audit Log<br/>การตรวจสอบ)]

    %% Data Flows - Rights Types Management
    ADMIN -->|rights_type_definition<br/>payment_type_config<br/>receipt_type_setup| P11
    P11 -->|rights_type_created<br/>configuration_status| ADMIN
    P11 <-->|read/write_rights_types| DS1
    P11 -->|rights_type_changes| DS7

    %% Data Flows - Patient Rights Management
    RIGHTS_OFFICER -->|patient_rights_search<br/>HN_name_citizenID<br/>rights_modification| P12
    CLINICAL_SYS -->|patient_rights_inquiry<br/>modal_request| P12
    MEDICAL -->|patient_basic_data<br/>HN_demographics| P12

    P12 -->|patient_rights_display<br/>rights_status<br/>coverage_info| RIGHTS_OFFICER
    P12 -->|rights_verification_result<br/>coverage_details| CLINICAL_SYS
    P12 -->|patient_data_request| MEDICAL

    P12 <-->|read/write_patient_rights| DS2
    P12 <-->|read_rights_types| DS1
    P12 -->|patient_rights_changes| DS7

    %% Data Flows - Rights Information Management
    RIGHTS_OFFICER -->|rights_details_setup<br/>validity_dates<br/>document_numbers| P13
    P13 -->|rights_information_updated<br/>setup_status| RIGHTS_OFFICER

    P13 <-->|read/write_rights_details| DS9
    P13 <-->|read_patient_rights| DS2
    P13 <-->|read_rights_types| DS1
    P13 -->|rights_info_changes| DS7

    %% Data Flows - Healthcare Providers Management
    ADMIN -->|hospital_network_setup<br/>primary_secondary_hospitals<br/>provider_configuration| P14
    P14 -->|provider_setup_complete<br/>network_status| ADMIN

    P14 <-->|read/write_providers| DS8
    P14 <-->|link_to_rights_types| DS1
    P14 -->|provider_changes| DS7

    %% Cross-Process Data Flows
    P11 -->|rights_type_updates| P12
    P11 -->|rights_type_updates| P13
    P14 -->|provider_updates| P13
    P12 -->|patient_rights_updates| P13

    %% Styling
    classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef process fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    classDef datastore fill:#fff3e0,stroke:#ef6c00,stroke-width:2px

    class MEDICAL,CLINICAL_SYS,RIGHTS_OFFICER,ADMIN entity
    class P11,P12,P13,P14 process
    class DS1,DS2,DS7,DS8,DS9 datastore

5. Level 1 DFD - การตรวจสอบสิทธิออนไลน์

graph TD
    %% External Entities
    CLINICAL_SYS[ระบบคลินิก<br/>Clinical Systems]
    RIGHTS_OFFICER[เจ้าหน้าที่ตรวจสอบสิทธิ]
    NHSO[ระบบ สปสช.<br/>NHSO]
    SSO[ระบบ สนย.<br/>SSO]
    CGD[ระบบข้าราชการ<br/>CGD]

    %% Processes
    P21[2.1<br/>ตรวจสอบสิทธิออนไลน์<br/>Online Rights Verification]
    P22[2.2<br/>จัดการ Cache ข้อมูล<br/>Manage Data Cache]
    P23[2.3<br/>ประมวลผลการตรวจสอบ<br/>Process Verification Results]
    P24[2.4<br/>จัดการข้อผิดพลาด<br/>Handle Verification Errors]

    %% Data Stores
    DS2[(D2<br/>ข้อมูลสิทธิผู้ป่วย<br/>Patient Rights)]
    DS3[(D3<br/>ประวัติการตรวจสอบ<br/>Verification History)]
    DS5[(D5<br/>ข้อมูลระบบภายนอก<br/>External Systems)]
    DS10[(D10<br/>Cache ข้อมูลออนไลน์<br/>Online Data Cache)]
    DS11[(D11<br/>Error Log<br/>บันทึกข้อผิดพลาด)]
    DS7[(D7<br/>Audit Log<br/>การตรวจสอบ)]

    %% Data Flows - Verification Request
    CLINICAL_SYS -->|verification_request<br/>patient_ID<br/>rights_type| P21
    RIGHTS_OFFICER -->|manual_verification<br/>force_online_check<br/>rights_inquiry| P21

    %% Data Flows - External API Calls
    P21 <-->|NHSO_API_call<br/>UC_verification<br/>gold_card_check| NHSO
    P21 <-->|SSO_API_call<br/>social_security_check<br/>employment_verification| SSO
    P21 <-->|CGD_API_call<br/>civil_servant_check<br/>government_coverage| CGD

    %% Data Flows - Cache Management
    P21 -->|cache_request<br/>offline_data_request| P22
    P22 -->|cached_data<br/>offline_verification_result| P21
    P22 <-->|read/write_cache| DS10
    P22 <-->|read_external_config| DS5

    %% Data Flows - Result Processing
    P21 -->|verification_result<br/>online_response<br/>API_data| P23
    P23 -->|processed_rights_data<br/>verification_status<br/>coverage_details| CLINICAL_SYS
    P23 -->|verification_report<br/>rights_summary<br/>status_update| RIGHTS_OFFICER

    P23 <-->|update_patient_rights| DS2
    P23 -->|save_verification_history| DS3
    P23 -->|verification_audit| DS7

    %% Data Flows - Error Handling
    P21 -->|API_error<br/>connection_failure<br/>timeout_error| P24
    P24 -->|error_notification<br/>fallback_procedure<br/>manual_intervention_required| RIGHTS_OFFICER
    P24 -->|retry_request<br/>alternative_verification| P21
    P24 -->|error_log_entry| DS11
    P24 -->|error_audit| DS7

    %% Data Flows - Historical Data
    P23 <-->|read_verification_history| DS3
    P22 -->|cache_cleanup<br/>data_refresh| DS10
    P21 <-->|read_external_system_config| DS5

    %% Cross-Process Communication
    P22 -->|cache_status| P21
    P23 -->|processing_status| P21
    P24 -->|error_status| P21
    P24 -->|error_pattern_analysis| P22

    %% Styling
    classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef process fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    classDef datastore fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
    classDef external fill:#ffcdd2,stroke:#c62828,stroke-width:2px

    class CLINICAL_SYS,RIGHTS_OFFICER entity
    class NHSO,SSO,CGD external
    class P21,P22,P23,P24 process
    class DS2,DS3,DS5,DS7,DS10,DS11 datastore

6. Level 1 DFD - การจัดการการเงินและส่วนลด

graph TD
    %% External Entities
    FINANCIAL[ระบบการเงิน<br/>Financial System<br/>1.2.14]
    CLINICAL_SYS[ระบบคลินิก<br/>Clinical Systems]
    CASHIER[เจ้าหน้าที่การเงิน<br/>Cashier]
    ADMIN[ผู้ดูแลระบบ<br/>System Administrator]

    %% Processes
    P31[3.1<br/>จัดการประเภทการชำระเงิน<br/>Manage Payment Types]
    P32[3.2<br/>คำนวณส่วนลด<br/>Calculate Discounts]
    P33[3.3<br/>จัดการผังการคิดค่าบริการ<br/>Manage Service Fee Structure]
    P34[3.4<br/>จัดการประเภทใบเสร็จ<br/>Manage Receipt Types]

    %% Data Stores
    DS1[(D1<br/>ข้อมูลประเภทสิทธิ<br/>Rights Types)]
    DS2[(D2<br/>ข้อมูลสิทธิผู้ป่วย<br/>Patient Rights)]
    DS4[(D4<br/>ข้อมูลการเงินสิทธิ<br/>Rights Financial Data)]
    DS6[(D6<br/>ข้อมูลส่วนลด<br/>Discount Rules)]
    DS12[(D12<br/>ประเภทการชำระเงิน<br/>Payment Types)]
    DS13[(D13<br/>ผังการคิดค่าบริการ<br/>Service Fee Structure)]
    DS14[(D14<br/>ประเภทใบเสร็จ<br/>Receipt Types)]
    DS7[(D7<br/>Audit Log<br/>การตรวจสอบ)]

    %% Data Flows - Payment Types Management
    ADMIN -->|payment_type_setup<br/>rights_payment_mapping<br/>configuration| P31
    P31 -->|payment_type_created<br/>setup_status| ADMIN
    P31 <-->|read/write_payment_types| DS12
    P31 <-->|link_to_rights_types| DS1
    P31 -->|payment_type_changes| DS7

    %% Data Flows - Discount Calculation
    CLINICAL_SYS -->|service_request<br/>patient_rights<br/>service_details| P32
    CASHIER -->|discount_inquiry<br/>manual_discount_request<br/>payment_calculation| P32
    FINANCIAL -->|service_cost<br/>fee_structure<br/>billing_items| P32

    P32 -->|discount_amount<br/>final_cost<br/>payment_breakdown| CLINICAL_SYS
    P32 -->|discount_calculation<br/>payment_summary<br/>receipt_info| CASHIER
    P32 -->|discounted_amount<br/>financial_adjustment<br/>billing_update| FINANCIAL

    P32 <-->|read_discount_rules| DS6
    P32 <-->|read_patient_rights| DS2
    P32 <-->|read_rights_types| DS1
    P32 <-->|read_financial_data| DS4
    P32 -->|discount_calculation_log| DS7

    %% Data Flows - Service Fee Structure Management
    ADMIN -->|fee_structure_setup<br/>rights_fee_mapping<br/>service_pricing| P33
    FINANCIAL -->|service_cost_update<br/>pricing_change<br/>billing_structure| P33

    P33 -->|fee_structure_updated<br/>pricing_status| ADMIN
    P33 -->|updated_pricing<br/>fee_calculation_rules| FINANCIAL

    P33 <-->|read/write_fee_structure| DS13
    P33 <-->|read_rights_types| DS1
    P33 <-->|update_financial_data| DS4
    P33 -->|fee_structure_changes| DS7

    %% Data Flows - Receipt Types Management
    ADMIN -->|receipt_type_setup<br/>rights_receipt_mapping<br/>template_configuration| P34
    CASHIER -->|receipt_type_inquiry<br/>template_request| P34

    P34 -->|receipt_type_created<br/>template_status| ADMIN
    P34 -->|receipt_template<br/>format_specification<br/>printing_format| CASHIER

    P34 <-->|read/write_receipt_types| DS14
    P34 <-->|read_rights_types| DS1
    P34 <-->|read_payment_types| DS12
    P34 -->|receipt_type_changes| DS7

    %% Cross-Process Data Flows
    P31 -->|payment_type_updates| P32
    P31 -->|payment_type_updates| P34
    P33 -->|fee_structure_updates| P32
    P34 -->|receipt_type_updates| P32

    %% Integration with Financial System
    P32 <-->|discount_calculation<br/>billing_adjustment<br/>payment_processing| FINANCIAL
    P33 <-->|fee_structure_sync<br/>pricing_update<br/>service_costing| FINANCIAL

    %% Styling
    classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef process fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    classDef datastore fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
    classDef financial fill:#e1f5fe,stroke:#01579b,stroke-width:2px

    class CLINICAL_SYS,CASHIER,ADMIN entity
    class FINANCIAL financial
    class P31,P32,P33,P34 process
    class DS1,DS2,DS4,DS6,DS7,DS12,DS13,DS14 datastore

7. Level 1 DFD - การรายงานและเอกสาร

graph TD
    %% External Entities
    RIGHTS_OFFICER[เจ้าหน้าที่ตรวจสอบสิทธิ<br/>Rights Verification Officer]
    CASHIER[เจ้าหน้าที่การเงิน<br/>Cashier]
    MANAGEMENT[ผู้บริหาร<br/>Management]
    CLINICAL_SYS[ระบบคลินิก<br/>Clinical Systems]
    PRINTER[เครื่องพิมพ์<br/>Printer]

    %% Processes
    P41[4.1<br/>สร้างใบยืนยันสิทธิ<br/>Generate Rights Certificate]
    P42[4.2<br/>สร้างรายงานการใช้สิทธิ<br/>Generate Rights Usage Report]
    P43[4.3<br/>สร้างรายงานการเงิน<br/>Generate Financial Report]
    P44[4.4<br/>จัดการเอกสาร<br/>Document Management]

    %% Data Stores
    DS2[(D2<br/>ข้อมูลสิทธิผู้ป่วย<br/>Patient Rights)]
    DS3[(D3<br/>ประวัติการตรวจสอบ<br/>Verification History)]
    DS4[(D4<br/>ข้อมูลการเงินสิทธิ<br/>Rights Financial Data)]
    DS6[(D6<br/>ข้อมูลส่วนลด<br/>Discount Rules)]
    DS15[(D15<br/>เทมเพลตเอกสาร<br/>Document Templates)]
    DS16[(D16<br/>เอกสารที่สร้าง<br/>Generated Documents)]
    DS7[(D7<br/>Audit Log<br/>การตรวจสอบ)]

    %% Data Flows - Rights Certificate Generation
    RIGHTS_OFFICER -->|certificate_request<br/>patient_HN<br/>verification_data| P41
    CLINICAL_SYS -->|certificate_request<br/>patient_data<br/>rights_verification| P41

    P41 -->|rights_certificate<br/>verification_document<br/>PDF_output| RIGHTS_OFFICER
    P41 -->|certificate_data<br/>print_command| PRINTER
    P41 -->|certificate_status<br/>document_generated| CLINICAL_SYS

    P41 <-->|read_patient_rights| DS2
    P41 <-->|read_verification_history| DS3
    P41 <-->|read_certificate_template| DS15
    P41 -->|save_generated_certificate| DS16
    P41 -->|certificate_generation_log| DS7

    %% Data Flows - Rights Usage Reporting
    RIGHTS_OFFICER -->|usage_report_request<br/>date_range<br/>rights_type_filter| P42
    MANAGEMENT -->|management_report_request<br/>statistical_analysis<br/>period_report| P42

    P42 -->|usage_report<br/>statistics<br/>analysis_result| RIGHTS_OFFICER
    P42 -->|management_report<br/>summary_statistics<br/>trend_analysis| MANAGEMENT

    P42 <-->|read_verification_history| DS3
    P42 <-->|read_patient_rights| DS2
    P42 <-->|read_report_template| DS15
    P42 -->|save_generated_report| DS16
    P42 -->|report_generation_log| DS7

    %% Data Flows - Financial Reporting
    CASHIER -->|financial_report_request<br/>discount_summary<br/>payment_analysis| P43
    MANAGEMENT -->|financial_analysis_request<br/>cost_benefit_report<br/>budget_analysis| P43

    P43 -->|financial_report<br/>discount_summary<br/>cost_analysis| CASHIER
    P43 -->|financial_analysis<br/>budget_report<br/>savings_summary| MANAGEMENT

    P43 <-->|read_financial_data| DS4
    P43 <-->|read_discount_rules| DS6
    P43 <-->|read_verification_history| DS3
    P43 <-->|read_financial_template| DS15
    P43 -->|save_financial_report| DS16
    P43 -->|financial_report_log| DS7

    %% Data Flows - Document Management
    RIGHTS_OFFICER -->|document_template_setup<br/>format_configuration<br/>template_update| P44
    MANAGEMENT -->|document_policy<br/>template_approval<br/>format_standards| P44

    P44 -->|template_updated<br/>document_format<br/>configuration_status| RIGHTS_OFFICER
    P44 -->|template_status<br/>approval_confirmation<br/>format_compliance| MANAGEMENT

    P44 <-->|read/write_templates| DS15
    P44 <-->|manage_generated_docs| DS16
    P44 -->|document_management_log| DS7

    %% Cross-Process Data Flows
    P41 -->|certificate_data| P44
    P42 -->|report_data| P44
    P43 -->|financial_report_data| P44
    P44 -->|template_updates| P41
    P44 -->|template_updates| P42
    P44 -->|template_updates| P43

    %% Print and Export Functions
    P41 -->|print_certificate<br/>PDF_export| PRINTER
    P42 -->|print_report<br/>Excel_export| PRINTER
    P43 -->|print_financial_report<br/>PDF_export| PRINTER

    %% Styling
    classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef process fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    classDef datastore fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
    classDef device fill:#fafafa,stroke:#424242,stroke-width:2px

    class RIGHTS_OFFICER,CASHIER,MANAGEMENT,CLINICAL_SYS entity
    class PRINTER device
    class P41,P42,P43,P44 process
    class DS2,DS3,DS4,DS6,DS7,DS15,DS16 datastore

8. Data Dictionary

8.1 Data Stores

Data Store ชื่อ คำอธิบาย ข้อมูลหลัก
D1 ข้อมูลประเภทสิทธิ
(Rights Types)
เก็บข้อมูลประเภทสิทธิการรักษาพยาบาลทั้งหมด รหัสประเภทสิทธิ, ชื่อสิทธิ, รายละเอียด, ระบบภายนอกที่เชื่อมโยง
D2 ข้อมูลสิทธิผู้ป่วย
(Patient Rights)
เก็บข้อมูลสิทธิของผู้ป่วยแต่ละราย HN, ประเภทสิทธิ, เลขที่สิทธิ, วันที่เริ่ม-สิ้นสุด, สถานะ
D3 ประวัติการตรวจสอบ
(Verification History)
เก็บประวัติการตรวจสอบสิทธิทั้งหมด วันที่ตรวจสอบ, ผลการตรวจสอบ, ระบบที่ใช้ตรวจสอบ, ผู้ตรวจสอบ
D4 ข้อมูลการเงินสิทธิ
(Rights Financial Data)
เก็บข้อมูลการเงินที่เกี่ยวข้องกับสิทธิ ประเภทการชำระ, อัตราส่วนลด, ค่าธรรมเนียม, การคิดค่าบริการ
D5 ข้อมูลระบบภายนอก
(External Systems)
เก็บข้อมูลการเชื่อมต่อระบบภายนอก URL API, การตั้งค่าการเชื่อมต่อ, ข้อมูลการพิสูจน์ตัวตน
D6 ข้อมูลส่วนลด
(Discount Rules)
เก็บกฎการให้ส่วนลดตามประเภทสิทธิ เปอร์เซ็นต์ส่วนลด, เงื่อนไข, หมวดค่าใช้จ่าย
D7 Audit Log
(การตรวจสอบ)
บันทึกการดำเนินการทั้งหมดของระบบ เวลา, ผู้ใช้, การดำเนินการ, ข้อมูลก่อน-หลัง
D8 ข้อมูลสถานพยาบาล
(Healthcare Providers)
เก็บข้อมูลสถานพยาบาลหลักและรอง รหัสสถานพยาบาล, ชื่อ, ที่อยู่, ประเภทการให้บริการ
D9 ข้อมูลสิทธิรายละเอียด
(Rights Details)
เก็บรายละเอียดเพิ่มเติมของสิทธิ เลขที่เอกสาร, วันที่ออกเอกสาร, หน่วยงานออก, หมายเหตุ
D10 Cache ข้อมูลออนไลน์
(Online Data Cache)
เก็บข้อมูลที่ดึงจากระบบภายนอกไว้ชั่วคราว ข้อมูลสิทธิจากออนไลน์, เวลาที่ดึงข้อมูล, วันหมดอายุ Cache
D11 Error Log
(บันทึกข้อผิดพลาด)
บันทึกข้อผิดพลาดการเชื่อมต่อระบบภายนอก รหัสข้อผิดพลาด, รายละเอียด, ระบบที่เกิดปัญหา, เวลา
D12 ประเภทการชำระเงิน
(Payment Types)
เก็บประเภทการชำระเงินตามสิทธิ รหัสประเภทการชำระ, วิธีการชำระ, เงื่อนไข
D13 ผังการคิดค่าบริการ
(Service Fee Structure)
เก็บโครงสร้างการคิดค่าบริการ รหัสบริการ, อัตราค่าบริการ, สูตรการคำนวณ
D14 ประเภทใบเสร็จ
(Receipt Types)
เก็บประเภทใบเสร็จตามสิทธิ รหัสประเภทใบเสร็จ, รูปแบบ, เทมเพลต
D15 เทมเพลตเอกสาร
(Document Templates)
เก็บแบบฟอร์มเอกสารต่างๆ เทมเพลตใบยืนยันสิทธิ, เทมเพลตรายงาน, รูปแบบการพิมพ์
D16 เอกสารที่สร้าง
(Generated Documents)
เก็บเอกสารที่ระบบสร้างขึ้น ไฟล์เอกสาร, วันที่สร้าง, ผู้สร้าง, สถานะ

8.2 Data Elements

Element Name Description Type Length Format
RightTypeID รหัสประเภทสิทธิ VARCHAR 10 RT-XXXXXXX
RightTypeName ชื่อประเภทสิทธิ NVARCHAR 100 Text
ExternalSystemCode รหัสระบบภายนอก VARCHAR 10 NHSO/SSO/CGD
PatientRightID รหัสสิทธิผู้ป่วย VARCHAR 20 PR-XXXXXXXXXX
HN หมายเลขประจำตัวผู้ป่วย VARCHAR 10 XXXXXXXXXX
RightsNumber เลขที่สิทธิ VARCHAR 50 Text/Number
StartDate วันที่เริ่มใช้สิทธิ DATE 10 YYYY-MM-DD
EndDate วันที่สิ้นสุดสิทธิ DATE 10 YYYY-MM-DD
PrimaryHospital สถานพยาบาลหลัก VARCHAR 10 Hospital Code
SecondaryHospital สถานพยาบาลรอง VARCHAR 10 Hospital Code
VerificationID รหัสการตรวจสอบ VARCHAR 20 VF-XXXXXXXXXX
VerificationDate วันที่ตรวจสอบ DATETIME 19 YYYY-MM-DD HH:MM:SS
VerificationStatus สถานะการตรวจสอบ VARCHAR 20 VERIFIED/PENDING/FAILED
VerificationMethod วิธีการตรวจสอบ VARCHAR 20 ONLINE/OFFLINE/MANUAL
VerifiedBy ผู้ตรวจสอบ VARCHAR 20 User ID
APIResponse ผลตอบกลับจาก API NTEXT MAX JSON/XML
PaymentTypeCode รหัสประเภทการชำระ VARCHAR 10 PT-XXXXXXX
PaymentMethod วิธีการชำระเงิน VARCHAR 50 CASH/CARD/TRANSFER
DiscountPercentage เปอร์เซ็นต์ส่วนลด DECIMAL 5,2 XX.XX
ExpenseCategory หมวดค่าใช้จ่าย VARCHAR 50 Category Name
ServiceFeeRate อัตราค่าบริการ DECIMAL 10,2 XXXXXXXX.XX
ReceiptTypeCode รหัสประเภทใบเสร็จ VARCHAR 10 RC-XXXXXXX
CertificateNumber เลขที่ใบยืนยันสิทธิ VARCHAR 20 CERT-XXXXXXXXX
DocumentPath เส้นทางเอกสาร VARCHAR 255 File Path
TemplateID รหัสเทมเพลต VARCHAR 20 TPL-XXXXXXXXX

8.3 Data Flows

Flow Name Description Composition
patient_basic_info ข้อมูลพื้นฐานผู้ป่วย HN + PatientName + DOB + CitizenID + Gender
rights_inquiry คำขอตรวจสอบสิทธิ HN + RightTypeID + VerificationDate + RequestedBy
verification_request คำขอตรวจสอบออนไลน์ PatientID + RightsNumber + VerificationMethod + APIEndpoint
verification_result ผลการตรวจสอบสิทธิ VerificationStatus + RightsData + Coverage + ExpiryDate
rights_certificate ใบยืนยันสิทธิ CertificateNumber + PatientData + RightsDetails + IssueDate
discount_calculation การคำนวณส่วนลด ServiceCost + DiscountRate + FinalAmount + DiscountDetails
payment_calculation การคำนวณการชำระเงิน TotalCost + Discount + PaymentMethod + ReceiptType
financial_adjustment การปรับปรุงทางการเงิน AdjustmentAmount + Reason + ApprovedBy + AdjustmentDate
API_request คำขอ API ระบบภายนอก APIEndpoint + RequestData + Headers + Authentication
API_response ผลตอบกลับ API StatusCode + ResponseData + ErrorMessage + Timestamp
audit_trail บันทึกการตรวจสอบ Action + UserID + Timestamp + OldValue + NewValue

8.4 External Interfaces

Interface Description Protocol Data Format
NHSO API เชื่อมต่อระบบ สปสช. HTTPS/REST JSON
SSO API เชื่อมต่อระบบ สนย. HTTPS/REST JSON
CGD API เชื่อมต่อระบบข้าราชการ HTTPS/REST JSON
HIS Integration เชื่อมต่อระบบ HIS ภายใน HTTP/REST JSON
Financial API เชื่อมต่อระบบการเงิน HTTP/REST JSON

9. API Integration Flow

9.1 External API Integration (ระบบภายนอก)

sequenceDiagram
    participant CS as Clinical System
    participant RS as Rights System
    participant NHSO as สปสช. API
    participant SSO as สนย. API
    participant CGD as ข้าราชการ API
    participant CACHE as Cache System
    participant DB as Database

    Note over CS,DB: การตรวจสอบสิทธิออนไลน์

    CS->>RS: Rights Verification Request (HN, Rights Type)
    RS->>CACHE: Check Cache Data

    alt Cache Hit (ข้อมูลยังไม่หมดอายุ)
        CACHE-->>RS: Return Cached Rights Data
        RS-->>CS: Verification Result (Cached)
    else Cache Miss (ไม่มีข้อมูลหรือหมดอายุ)
        RS->>DB: Get Patient Rights Info
        DB-->>RS: Patient Rights Data

        alt UC Rights (หลักประกันสุขภาพถ้วนหน้า)
            RS->>NHSO: UC Verification API Call
            NHSO-->>RS: UC Rights Status & Coverage
        else SSS Rights (ประกันสังคม)
            RS->>SSO: SSS Verification API Call
            SSO-->>RS: SSS Rights Status & Coverage
        else Civil Servant Rights (ข้าราชการ)
            RS->>CGD: Civil Servant Verification API Call
            CGD-->>RS: Civil Servant Rights Status & Coverage
        end

        RS->>CACHE: Store Verification Result
        RS->>DB: Update Patient Rights Status
        RS-->>CS: Verification Result (Fresh)
    end

9.2 Internal HIS Integration (ระบบภายใน)

sequenceDiagram
    participant MR as Medical Records
    participant HIST as History System
    participant DR as Doctor Room
    participant ER as Emergency Room
    participant RS as Rights System
    participant FS as Financial System
    participant DB as Database

    Note over MR,DB: การใช้งานแบบ Modal/Pop-up

    alt Patient Registration (การลงทะเบียน)
        MR->>RS: Open Rights Modal (HN)
        RS->>DB: Get Patient Rights
        DB-->>RS: Rights Data
        RS-->>MR: Display Rights Modal
        MR->>RS: Select Rights for Visit
        RS->>DB: Save Selected Rights
        RS-->>MR: Rights Confirmation
    end

    alt Clinical Treatment (การรักษา)
        HIST->>RS: Rights Inquiry (Modal)
        RS-->>HIST: Current Rights Status
        DR->>RS: Rights Verification (Modal)
        RS-->>DR: Verified Rights + Coverage
        ER->>RS: Emergency Rights Check
        RS-->>ER: Emergency Coverage Status
    end

    alt Financial Calculation (การคำนวณการเงิน)
        Any->>RS: Request Payment Calculation
        RS->>FS: Get Service Costs
        FS-->>RS: Cost Details
        RS->>DB: Get Discount Rules
        DB-->>RS: Discount Information
        RS->>RS: Calculate Final Amount
        RS-->>Any: Payment Summary
        RS->>FS: Update Financial Data
    end

9.3 Document Generation Flow (การสร้างเอกสาร)

sequenceDiagram
    participant USER as User
    participant RS as Rights System
    participant TPL as Template Engine
    participant DOC as Document Storage
    participant PRINT as Printer
    participant EMAIL as Email System

    Note over USER,EMAIL: การออกใบยืนยันสิทธิ

    USER->>RS: Request Rights Certificate
    RS->>RS: Validate Rights Status
    RS->>TPL: Get Certificate Template
    TPL-->>RS: Template Data
    RS->>RS: Merge Data with Template
    RS->>DOC: Save Generated Certificate
    DOC-->>RS: Document ID

    alt Print Certificate
        RS->>PRINT: Send to Printer
        PRINT-->>RS: Print Status
    end

    alt Email Certificate
        RS->>EMAIL: Send Email with Attachment
        EMAIL-->>RS: Email Status
    end

    RS-->>USER: Certificate Generated Successfully

9.4 Error Handling and Retry Logic

flowchart TD
    A[API Request] --> B{Connection Check}
    B -->|Success| C[Send API Request]
    B -->|Failed| D[Use Cached Data]

    C --> E{API Response}
    E -->|Success| F[Process Response]
    E -->|Error| G{Error Type}

    G -->|Timeout| H[Retry with Timeout]
    G -->|Authentication| I[Refresh Token]
    G -->|Service Down| J[Mark Service Offline]
    G -->|Data Error| K[Log Error & Manual Check]

    H --> L{Retry Count}
    L -->|< 3| C
    L -->|>= 3| D

    I --> M[Get New Token]
    M --> C

    F --> N[Update Cache]
    D --> O[Return Cached Result]
    J --> O
    K --> P[Notify Administrator]

    N --> Q[Return Success]
    O --> R[Return with Warning]
    P --> S[Return Error]

9.5 API Technical Specifications

9.5.1 NHSO (สปสช.) API Integration

{
  "endpoint": "https://api.nhso.go.th/v2/verification",
  "method": "POST",
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {access_token}",
    "X-API-Version": "2.0"
  },
  "request": {
    "citizen_id": "1234567890123",
    "hospital_code": "12345",
    "service_date": "2024-10-11"
  },
  "response": {
    "status": "success",
    "data": {
      "rights_status": "active",
      "coverage_type": "UC",
      "expiry_date": "2024-12-31",
      "primary_hospital": "12345",
      "secondary_hospital": "67890"
    }
  }
}

9.5.2 SSO (สนย.) API Integration

{
  "endpoint": "https://api.sso.go.th/v1/benefits",
  "method": "GET",
  "headers": {
    "Authorization": "Bearer {access_token}",
    "Accept": "application/json"
  },
  "request": {
    "social_security_number": "1234567890",
    "verification_date": "2024-10-11"
  },
  "response": {
    "status": "success",
    "data": {
      "benefit_status": "active",
      "employer": "Company ABC",
      "coverage_rate": "80",
      "benefit_year": "2024"
    }
  }
}

9.5.3 Cache Management Strategy

  • Cache TTL: 24 hours for rights verification
  • Cache Key Format: rights:{system}:{patient_id}:{date}
  • Cache Invalidation: On rights status change or manual update
  • Offline Mode: Use last known good data with warning message
  • Cache Cleanup: Daily cleanup of expired entries

9.5.4 Security Considerations

  • API Authentication: OAuth 2.0 with JWT tokens
  • Data Encryption: TLS 1.3 for all external communications
  • Rate Limiting: 100 requests per minute per API
  • Audit Logging: All API calls logged with request/response data
  • Data Privacy: PII data masked in logs according to PDPA

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