159 lines
12 KiB
Markdown
159 lines
12 KiB
Markdown
# 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*
|