รายงานสรุปการพัฒนาระบบควบคุมสิทธิ์และโหมดกลุ่มควบคุม (RCT System Integration Report)
โครงการวิจัย: TaijiFlow AI - Phase 3 Randomized Controlled Trial (RCT)
วันที่บันทึก: 2 กรกฎาคม 2026
1. วัตถุประสงค์การพัฒนา (Research & Technical Objectives)
การพัฒนาระบบในเฟสนี้มุ่งเน้นการเตรียมความพร้อมของแอปพลิเคชันสำหรับทำการทดสอบทางคลินิกแบบสุ่มและมีกลุ่มควบคุม (Randomized Controlled Trial: RCT) เพื่อประเมินประสิทธิภาพของระบบป้อนกลับทางชีวกลศาสตร์ด้วย AI (AI-based Biomechanical Feedback) ในการฝึกไท้เก๊ก โดยมีข้อกำหนดหลักดังนี้:
- Forced Authentication: บังคับยืนยันตัวตนก่อนเข้าใช้งานหน้าเว็บหลัก เพื่อระบุตัวตนอาสาสมัครและจับคู่กับกลุ่มวิจัยได้อย่างถูกต้อง
- One-Time Informed Consent: จัดเก็บความยินยอมในการเข้าร่วมโครงการวิจัยด้านสุขภาพและการเคลื่อนไหว พร้อมนโยบายข้อมูลส่วนบุคคลและข้อจำกัดความรับผิดชอบ (Privacy & Non-Medical Disclaimer) เพียงครั้งเดียวตามหลักจริยธรรมการวิจัยในมนุษย์ (IRB)
- Sham UI (Placebo Mode): ออกแบบส่วนติดต่อผู้ใช้หลอกเพื่อเป็น "กลุ่มควบคุม (Control Group)" โดยปิดกั้นตัวบ่งชี้การเรียนรู้ (Learning Indicators) ทั้งหมด แต่ยังคงเก็บข้อมูลพิกัดการเคลื่อนไหวเพื่อนำมาเปรียบเทียบความแตกต่างทางสถิติกับกลุ่มทดลองภายหลัง
2. โครงสร้างฐานข้อมูล Supabase (Database Schema Updates)
มีการเพิ่มฟิลด์ในตารางหลัก public.users เพื่อสนับสนุนการทำงานดังนี้:
| Column Name | Data Type | Default | Description |
|---|---|---|---|
consent_accepted | BOOLEAN | false | สถานะการยอมรับข้อตกลงความเป็นส่วนตัวและข้อจำกัดการใช้งานด้านสุขภาพ (ยอมรับแล้ว = true) |
research_group | TEXT | 'experimental' | กลุ่มงานวิจัยที่ระบุสิทธิ์ใช้งานแอป: 'experimental' (กลุ่มทดลอง) หรือ 'control' (กลุ่มควบคุม) |
คำสั่ง SQL สำหรับปรับปรุงระบบ:
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS consent_accepted BOOLEAN DEFAULT false;
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS research_group TEXT DEFAULT 'experimental';3. สรุปไฟล์ที่ได้รับการแก้ไข (Code Integration Matrix)
การเชื่อมต่อระบบแบ่งออกเป็น 5 ส่วนหลักในโค้ดแอปพลิเคชันหลัก:
รายละเอียดการแก้ไขรายไฟล์:
- หน้าตาหน้าต่างข้อตกลงและการควบคุมสิทธิ์:
- [MODIFY] [app.html](file:///Users/yut/TaijiFlow/src/app.html):
- ปรับแต่งหน้าป๊อปอัปความเป็นส่วนตัว
#privacy-modalให้เป็นดีไซน์ Glassmorphic - เพิ่มกล่อง Scroll สำหรับข้อตกลงและคำเตือน และปุ่มยินยอมจะปลดล็อกเฉพาะเมื่อติ๊กถูกเช็คบ็อกซ์คำเตือนครบถ้วน
- เพิ่มเลย์เอาต์
#control-complete-modalเพื่อแสดงความยินดีแบบไม่มีคะแนนให้กลุ่มควบคุม
- ปรับแต่งหน้าป๊อปอัปความเป็นส่วนตัว
- [MODIFY] [app.html](file:///Users/yut/TaijiFlow/src/app.html):
- การคลังคำแปลหลายภาษา (Localization):
- [MODIFY] [translations.js](file:///Users/yut/TaijiFlow/src/js/utils/translations.js):
- เพิ่มคีย์คำชี้แจงความเป็นส่วนตัวและแพทย์แบบยาว (
privacy_agreement_detail,medical_disclaimer_detail) - เพิ่มคีย์ปุ่มกลับหน้าหลักและข้อความป๊อปอัปจบการฝึกของกลุ่มควบคุม ทั้งภาษาไทยและภาษาอังกฤษ
- เพิ่มคีย์คำชี้แจงความเป็นส่วนตัวและแพทย์แบบยาว (
- [MODIFY] [translations.js](file:///Users/yut/TaijiFlow/src/js/utils/translations.js):
- การปรับแต่งตรรกะในฟอร์มล็อกอิน:
- [MODIFY] [auth_popup_manager.js](file:///Users/yut/TaijiFlow/src/js/ui/auth_popup_manager.js):
- เพิ่มโหมดบังคับเปิด (
isForced = true) เพื่อซ่อนปุ่มปิดและป้องกันการกดปิดภายนอกป๊อปอัป พร้อมปุ่ม "กลับหน้าหลัก" เพื่อเด้งออกหากปฏิเสธการใช้งาน - เพิ่มฟังก์ชันค้นหาภาษาสำรองย้อนหลังให้สอดคล้องกับคลังภาษาหลัก
- เพิ่มโหมดบังคับเปิด (
- [MODIFY] [auth_popup_manager.js](file:///Users/yut/TaijiFlow/src/js/ui/auth_popup_manager.js):
- บันทึกข้อมูลและดึงข้อมูลโปรไฟล์:
- [MODIFY] [auth_manager.js](file:///Users/yut/TaijiFlow/src/js/controllers/auth_manager.js):
- แนบค่าความยินยอมไปกับฟังก์ชัน
signUpและดึงมาเซฟลง Supabase - เพิ่มฟังก์ชัน
updateConsent()เพื่อส่งค่าอัปเดตสิทธิ์ยินยอมในตารางusersสำหรับผู้ใช้งานเดิม
- แนบค่าความยินยอมไปกับฟังก์ชัน
- [MODIFY] [auth_manager.js](file:///Users/yut/TaijiFlow/src/js/controllers/auth_manager.js):
- ตรรกะตรวจเช็คความปลอดภัยก่อนรันระบบ:
- [MODIFY] [script.js](file:///Users/yut/TaijiFlow/src/js/controllers/script.js):
- ติดตามการเปลี่ยนสถานะล็อกอินเพื่อกักสิทธิ์ และเซ็ตค่ารันไทม์
window.isPlaceboModeตามกลุ่มวิจัยของผู้ใช้งาน
- ติดตามการเปลี่ยนสถานะล็อกอินเพื่อกักสิทธิ์ และเซ็ตค่ารันไทม์
- [MODIFY] [script.js](file:///Users/yut/TaijiFlow/src/js/controllers/script.js):
- การปิดเอฟเฟกต์การแสดงผล (Visual & Audio Muting):
- [MODIFY] [pose_processor.js](file:///Users/yut/TaijiFlow/src/js/controllers/pose_processor.js):
- ข้ามการวาดโครงกระดูกข้อต่อ (
_renderUserBody) หากเปิดใช้งานโหมดกลุ่มควบคุม - ยกเว้นการแสดงป้ายข้อความฟีดแบ็กสีส้มบนจอ และยกเว้นเสียงพูด AI เตือน (TTS Voice)
- คงระบบการเก็บข้อมูลดิบและพิกัด (
_logFrameData) ไว้เบื้องหลังเพื่อเก็บสถิติสำหรับการเปรียบเทียบในงานวิจัย
- ข้ามการวาดโครงกระดูกข้อต่อ (
- [MODIFY] [pose_processor.js](file:///Users/yut/TaijiFlow/src/js/controllers/pose_processor.js):
- หน้าต่างผลลัพธ์การฝึกซ้อม:
- [MODIFY] [training_flow_controller.js](file:///Users/yut/TaijiFlow/src/js/controllers/training_flow_controller.js):
- สลับการแสดงป๊อปอัปเกรด/คะแนนสรุป AQA ไปเป็นแสดงผลป๊อปอัปแจ้งผลการรำสำเร็จทั่วไปในกรณีเป็นอาสาสมัครกลุ่มควบคุม
- [MODIFY] [training_flow_controller.js](file:///Users/yut/TaijiFlow/src/js/controllers/training_flow_controller.js):
4. ตารางเปรียบเทียบประสบการณ์ผู้ใช้ (User Experience Matrix)
ตารางสรุปความแตกต่างของฟีเจอร์การแสดงผลที่อาสาสมัครทั้งสองกลุ่มจะได้รับ:
| ฟีเจอร์การแสดงผลบนแอปพลิเคชัน | กลุ่มทดลอง (Experimental) | กลุ่มควบคุม (Control / Placebo) |
|---|---|---|
| วิดีโอต้นแบบจากผู้เชี่ยวชาญ (Ghost / Video) | มี | มี |
| การปรับเทียบมุมกล้อง (Calibration) | มี | มี |
| วาดเส้นพิกัดข้อต่อทับร่างผู้รำ (User Skeleton) | มี (แสดงผลแบบเรียลไทม์) | ไม่มี (เห็นเฉพาะภาพกล้องดิบ) |
| การขึ้นกล่องข้อความเตือนผิดหลักไทเก๊ก (Visual Alerts) | มี (แสดงกล่องสีส้มเตือนทันที) | ไม่มี |
| ระบบเสียงพูดเตือนจุดผิดพลาด (Auditory TTS) | มี | ไม่มี |
| คะแนนและรายงานประเมินผลการรำ (AQA Score & Report) | มี (หน้าต่างวิเคราะห์ 6 แกน + เกรด) | ไม่มี (แสดงเฉพาะป๊อปอัปแจ้งบันทึกสำเร็จ) |
| ส่งข้อมูลพิกัดขึ้นวิเคราะห์งานวิจัย (Research Cloud Logging) | มี (บันทึกขึ้น Supabase) | มี (บันทึกขึ้น Supabase เบื้องหลัง) |
5. คำแนะนำสำหรับการเขียนรายงานวิจัย/วิทยานิพนธ์ (Academic Writing Guidelines)
คุณสามารถนำโครงสร้างระบบนี้ไปเขียนอธิบายในรายงานระเบียบวิธีวิจัย (Methodology) และส่วนผลงานวิจัย (Results/Discussion) ได้ดังนี้:
การอธิบายความเที่ยงตรงของกลุ่มควบคุม (Methodological Rigor & Internal Validity)
"เพื่อลดผลกระทบจากอคติในการทดลอง (Hawthorne Effect หรือความตั้งใจที่เพิ่มขึ้นเนื่องจากรู้ว่ากำลังถูกจับตามอง) ระบบแอปพลิเคชันได้รับการติดตั้งโหมดหลอก (Placebo/Sham UI Mode) สำหรับกลุ่มควบคุม (Control Group) โดยกลุ่มควบคุมจะได้เห็นกล้องเว็บแคมคู่กับวิดีโอสาธิตผู้เชี่ยวชาญและผ่านกระบวนการตั้งระยะกล้องเสมือนกลุ่มทดลองทุกประการ ทว่าระบบจะไม่แสดงผลการตรวจประเมินแบบเรียลไทม์ใดๆ (ไม่มีเส้นข้อต่อสะท้อนกลับ, ไม่มีคำเตือนทางภาพและเสียง และไม่มีการตัดเกรดประเมินผลหลังฝึกซ้อม) อย่างไรก็ตาม ระบบหลังบ้านยังคงบันทึกข้อมูลพิกัดการเคลื่อนไหว (Kinematic Joint Coordinates) และความคลาดเคลื่อนทางชีวกลศาสตร์ทั้งหมดไว้อย่างสมบูรณ์เพื่อนำมาประเมินเปรียบเทียบในเชิงวิจัยต่อไป"
หลักจริยธรรมการจัดเก็บข้อมูลส่วนบุคคล (Ethics & Data Privacy)
"ระบบจัดเก็บความยินยอมถูกออกแบบมาให้ทำงานสอดคล้องกับหลักจริยธรรมการวิจัยในมนุษย์ (IRB) โดยบังคับแสดงหน้าต่างคำชี้แจงความเป็นส่วนตัวและข้อจำกัดความรับผิดชอบด้านสุขภาพ (Informed Consent) แก่อาสาสมัครทุกคนตั้งแต่การใช้งานครั้งแรก การยอมรับสิทธิ์ยินยอมจะถูกจัดเก็บลงฐานข้อมูลแบบเข้ารหัสควบคู่ไปกับรหัสอาสาสมัคร (De-identified Participant ID) และพิกัดร่างกายที่ส่งออกไปวิเคราะห์จะไม่มีการนำภาพถ่ายจริงหรือไฟล์วิดีโอของผู้เข้าร่วมโครงการวิจัยออกจากเครื่องประมวลผลโลคอล เพื่อปกป้องความเป็นส่วนตัวของผู้เข้าร่วมวิจัยสูงสุด"