Data Flow Diagram (DFD)
ระบบตรวจสอบสิทธิ (Rights Verification 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 - การรายงานและเอกสาร
- Data Dictionary
- 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 ที่กำหนด