Initial commit

This commit is contained in:
Porawit Dongwang
2026-09-16 23:20:08 +07:00
commit 0041668dbb
32577 changed files with 3687927 additions and 0 deletions
@@ -0,0 +1,158 @@
# 01. System Analysis & Business Process Architecture
**Project:** Thai Traditional Massage Queue Management System (TTMQMS Enterprise)
**Version:** 1.0.0 Enterprise Production
**Author:** Antigravity AI Engineering Team
---
## 1. Executive Summary & Problem Statement
โรงพยาบาลและศูนย์การแพทย์แผนไทยหลายแห่งต้องเผชิญกับปัญหาการบริหารจัดการคิวผู้รับบริการที่ขาดประสิทธิภาพ เช่น ปัญหาความแออัดในห้องรอคอย การกระจายภาระงานหมอนวดที่ไม่เป็นธรรม (Therapist Workload Imbalance) การเก็บข้อมูลเวชระเบียนบนกระดาษที่เสี่ยงต่อการสูญหาย และขาดการเชื่อมต่อข้อมูลกับระบบข้อมูลโรงพยาบาลหลัก (HIS เช่น HOSxP, JHCIS)
**TTMQMS Enterprise** ได้ถูกออกแบบและพัฒนาขึ้นเพื่อยกระดับการให้บริการนวดแผนไทยสู่มาตรฐานสากลด้วยเทคโนโลยี AI Smart Queue Allocator, เวชระเบียนอิเล็กทรอนิกส์มาตรฐาน SOAP Note พร้อมการบันทึกลายมือชื่อดิจิทัล (Digital Signature), การสแกนชำระเงินผ่าน Thai QR PromptPay EMVCo และการเชื่อมต่อข้อมูลสุขภาพด้วยมาตรฐาน HL7 FHIR R4
---
## 2. System Context Diagram (Level 0 DFD)
แผนภาพบริบทแสดงการปฏิสัมพันธ์ระหว่างระบบ TTMQMS กับผู้ใช้งานกลุ่มต่างๆ และระบบภายนอก (External Entities)
```mermaid
graph TD
subgraph Users [ผู้ใช้งานระบบภายใน]
P[ผู้ป่วย / ผู้รับบริการ<br/>Patients]
R[พนักงานต้อนรับ<br/>Receptionists]
T[แพทย์แผนไทย / หมอนวด<br/>Therapists]
C[แคชเชียร์ / การเงิน<br/>Cashiers]
A[ผู้บริหาร / ผู้ดูแลระบบ<br/>Admins]
end
subgraph External_Systems [ระบบภายนอกองค์กร]
HIS[โรงพยาบาล HIS<br/>HOSxP / JHCIS]
FHIR[กระทรวงสาธารณสุข<br/>MOPH FHIR Server]
BANK[ระบบธนาคาร<br/>PromptPay EMVCo Gateway]
HW[ฮาร์ดแวร์<br/>Smart Card / ESC POS Printer]
end
SYS((TTMQMS Enterprise<br/>Queue & EMR System))
P -->|Walk-in / แสดงบัตรประชาชน| R
R -->|1. ลงทะเบียน & ออกคิว| SYS
SYS -->|2. สั่งพิมพ์ใบคิว 80mm| HW
HW -->|อ่านข้อมูล CID PCSC| SYS
SYS <-->|3. ซิงค์ HN / ข้อมูลผู้ป่วย| HIS
SYS -->|4. แจ้งเตือนเรียกคิว TV| P
T -->|5. บันทึก SOAP Note & VAS| SYS
SYS <-->|6. แลกเปลี่ยน Encounter FHIR R4| FHIR
C -->|7. คิดค่าบริการ & สร้าง QR| SYS
SYS <-->|8. ตรวจสอบสถานะชำระเงิน| BANK
A -->|9. ดูรายงาน KPI & ตั้งค่า SLA| SYS
```
---
## 3. Data Flow Diagram (DFD Level 1)
แผนภาพกระแสข้อมูลระดับ 1 แสดงการไหลของข้อมูลระหว่าง 5 กระบวนการหลัก (Core Processes) และคลังข้อมูล (Data Stores)
```mermaid
graph LR
subgraph Data_Stores [ฐานข้อมูล MySQL 8 / Redis]
D1[(D1: Patients & EMR)]
D2[(D2: Queues & AI Logs)]
D3[(D3: SOAP Notes & Clinical)]
D4[(D4: Billing & Receipts)]
D5[(D5: Users & Security Logs)]
end
IN1[Reception / Smart Card] --> P1(1.0 Registration & Walk-in Queue)
P1 <--> D1
P1 -->|บันทึกคิว| D2
D2 --> P2(2.0 AI Smart Queue Allocator)
P2 -->|คำนวณ Workload & SLA| D2
P2 -->|แสดงผล| OUT1[Smart TV Display / Sound]
D1 --> P3(3.0 Clinical Assessment & SOAP)
D2 --> P3
P3 <--> D3
P3 -->|Sync FHIR R4| OUT2[HOSxP / MOPH FHIR Server]
D2 --> P4(4.0 POS Checkout & Billing)
D3 --> P4
P4 <--> D4
P4 -->|พิมพ์ใบเสร็จ| OUT3[ESC/POS Thermal Printer]
D1 --> P5(5.0 Executive BI Analytics)
D2 --> P5
D3 --> P5
D4 --> P5
P5 -->|รายงาน KPI| OUT4[Executive Dashboards]
```
---
## 4. Business Process Flowchart (ทุก Module)
### 4.1 Module 1: Patient Registration & Walk-in Queue
```mermaid
flowchart TD
Start([ผู้รับบริการ Walk-in]) --> Card{ใช้บัตรประชาชน<br/>Smart Card?}
Card -->|ใช่| Read[ระบบอ่านข้อมูลจากบัตรผ่าน WebUSB/PCSC]
Card -->|ไม่| Manual[พิมพ์ค้นหา HN หรือเลขบัตร 13 หลัก]
Read --> ChkHN{มีข้อมูลในระบบ/HIS?}
Manual --> ChkHN
ChkHN -->|ไม่มี| Reg[ขึ้นทะเบียนผู้ป่วยใหม่ & ซิงค์ HIS]
ChkHN -->|มี| SelSvc[เลือกบริการนวดแผนไทยและระดับความสำคัญ]
Reg --> SelSvc
SelSvc --> AICalc[เรียกใช้งาน Smart Queue Engine Sp]
AICalc --> Assign[AI จัดสรรหมอนวดและห้องพักที่เหมาะสม]
Assign --> Print[ส่งคำสั่งพิมพ์ใบคิว ESC/POS Thermal Printer]
Print --> End([เสร็จสิ้นกระบวนการออกคิว])
```
### 4.2 Module 2: AI Smart Queue Allocation Logic (`sp_assign_smart_queue`)
```mermaid
flowchart TD
A([รับคำขอจัดสรรคิว: Service ID, Priority, Branch]) --> B[ดึงรายชื่อหมอนวดที่สถานะ พร้อมให้บริการ]
B --> C{ตรวจสอบชั่วโมงทำงานสะสม<br/>< Max Daily Mins?}
C -->|ไม่ผ่าน| D[ตัดชื่อหมอนวดที่เหนื่อยล้าเกินกำหนดออก] --> E[คำนวณคะแนน Workload Score]
C -->|ผ่าน| E
E --> F[ดึงรายชื่อห้องนวดสถานะ ว่างและประเภทตรงกับบริการ]
F --> G{มีหมอนวดและห้องว่างพร้อมกัน?}
G -->|มีทันที| H[จัดสรรคิวเป็น Assigned พร้อมจับคู่ห้องและหมอนวด]
G -->|ไม่มีห้อง/หมอว่าง| I[จัดสรรคิวเป็น Waiting พร้อมคำนวณเวลารอคอย Est. Wait Time]
H --> J([บันทึกลงฐานข้อมูลและส่ง Notification])
I --> J
```
### 4.3 Module 3: Clinical Assessment & SOAP Note Workflow
```mermaid
flowchart TD
S([หมอนวดเรียกผู้ป่วยเข้าห้องพัก]) --> O1[บันทึกสัญญาณชีพ BP/PR ก่อนนวด]
O1 --> O2[ประเมินระดับความปวด Pre-treatment VAS Score 0-10]
O2 --> O3[ตรวจวัดองศาการเคลื่อนไหว ROM Goniometer]
O3 --> O4[บันทึกข้อมูลอาการนำ S และการตรวจร่างกาย O]
O4 --> O5[วินิจฉัยโรคตามคัมภีร์เวชกรรมไทย A]
O5 --> O6[กำหนดแผนการรักษาและให้คำแนะนำ P]
O6 --> O7[ให้การรักษาหัตถการนวดแผนไทย / ประคบสมุนไพร]
O7 --> O8[ประเมินสัญญาณชีพและระดับความปวดหลังรักษา Post-VAS Score]
O8 --> O9[หมอนวดลงนามลายนิ้วมือดิจิทัล Digital Signature Pad]
O9 --> O10[ระบบส่ง Sync Encounter & Observation FHIR R4 เข้า HIS]
O10 --> E([เสร็จสิ้นการรักษา เปลี่ยนสถานะคิวเป็น Completed])
```
---
## 5. UI/UX Design System & Wireframes Architecture
การออกแบบหน้าจออ้างอิงหลักการ **Glassmorphism Healthcare UI** ที่มีความทันสมัย สบายตา และรองรับการใช้งานผ่านอุปกรณ์เคลื่อนที่ (PWA Mobile First) โดยมีโครงสร้างการจัดวางหน้าจอ (Wireframe Architecture) ดังนี้:
### 5.1 Responsive Master Layout (Desktop vs Mobile PWA)
- **Desktop / Tablet View (1024px+):** ด้านซ้ายเป็น Glassmorphism Sidebar แสดงเมนูระบบครบทั้ง 8 โมดูล พร้อมโลโก้และข้อมูลผู้ใช้งาน ด้านบนเป็น Top Navbar แสดงสถานะการเชื่อมต่อ Online/Offline และปุ่มเชื่อมต่อ USB Printer
- **Mobile PWA View (< 1024px):** ซ่อน Sidebar อัตโนมัติและเปลี่ยนเป็น **Mobile Bottom Navigation Bar** แสดง 5 ไอคอนหลัก (แดชบอร์ด, ออกคิว, SOAP Note, คิดเงิน, เมนู) เพื่อให้แพทย์และพนักงานสามารถกดใช้งานด้วยมือเดียวได้อย่างคล่องตัว
### 5.2 Glassmorphism Color Tokens & Typography
- **Primary Color:** Emerald 500 (`#10b981`) สื่อถึงความเป็นธรรมชาติ สมุนไพรไทย และความปลอดภัยทางการแพทย์
- **Secondary Color:** Cyan 500 (`#06b6d4`) สื่อถึงเทคโนโลยี ความสะอาด และความแม่นยำทางเวชกรรม
- **Accent Color:** Amber 500 (`#f59e0b`) ใช้สำหรับแจ้งเตือนระดับคิวรอคอยและยอดเงิน
- **Typography:** ฟอนต์สารบรรณ (Sarabun) สำหรับข้อความทางการแพทย์ และ Outfit สำหรับตัวเลข KPI และเวลา
---
*เอกสารนี้เป็นความลับและเป็นลิขสิทธิ์ของทีมพัฒนาระบบ TTMQMS Enterprise*