บันทึกการอัปเดตระบบ

ติดตามการเปลี่ยนแปลง ฟีเจอร์ใหม่ และการปรับปรุงประสิทธิภาพของ Sakura Medical

V. 3.0.24 23 Jul 2026

Stable Rapid Sidebar Navigation

LATEST
BUGFIX
  • Latest click wins: เมื่อกดเมนูซ้ายต่อเนื่อง หน้าล่าสุดที่ผู้ใช้เลือกจะคงอยู่และผลลัพธ์ช้าจากหน้าก่อนหน้าจะถูกทิ้ง
  • Request isolation: แยกคำขอข้อมูลตามหน้าและลำดับการนำทาง พร้อมยกเลิกผลลัพธ์ที่หมดอายุโดยไม่เขียนทับข้อมูลหน้าปัจจุบัน
  • Light Update guard: Dashboard และ Case Run จะไม่วาดหน้าก่อนหน้ากลับมาหลังผู้ใช้เปลี่ยนเมนูแล้ว
  • Single navigation listener: ป้องกันการผูกตัวฟังคลิกเมนูและ hashchange ซ้ำหลัง Realtime Refresh
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.24
V. 3.0.23 23 Jul 2026

Dashboard Event Card Light Update

IMPROVEMENT
  • Single-card width: เมื่อเหลือ Happy Hour หรือ Live Run Case เพียงการ์ดเดียว การ์ดที่เหลือจะขยายเต็มแถวอัตโนมัติ
  • Light Update: เมื่อ Happy Hour หมดเวลา หรือรอบ Run Case ปิด จะเปลี่ยนเฉพาะพื้นที่สองการ์ดโดยไม่วาด dashboardDoctor ใหม่ทั้งหน้า
  • Stable layout state: สถานะหนึ่งการ์ดและสองการ์ดถูกคำนวณใหม่พร้อมเนื้อหา จึงไม่ค้างเป็นช่องว่างครึ่งจอ
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.23
V. 3.0.22 23 Jul 2026

Center Happy Hour Bonus

IMPROVEMENT
  • Exact center: วางกล่องโบนัสต่อชั่วโมงไว้บนแกนกลาง 50% ของ Happy Hour ด้วยพื้นที่ซ้ายและขวาที่สมดุล
  • Content alignment: จัดข้อความโบนัส เครื่องหมายบวก ตัวเลข และหน่วยให้อยู่กลางกล่องทั้งแนวนอนและแนวตั้ง
  • Responsive width: ความกว้างกล่องโบนัสปรับตามพื้นที่โดยยังคงจุดกึ่งกลางเดิม
  • No overflow: รักษาโครงสามส่วนของ Happy Hour โดยไม่ให้ชื่อกิจกรรมหรือข้อมูลรางวัลล้น
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.22
V. 3.0.21 23 Jul 2026

Dashboard Doctor Reference Banner Layout

IMPROVEMENT
  • Reference order: ยึดภาพต้นแบบโดยวาง Live Run Case Queue ด้านซ้าย และ Happy Hour ด้านขวา
  • Equal row: ทั้งสองกล่องอยู่แถวเดียวกัน แบ่งพื้นที่ครึ่งต่อครึ่งและยืดความสูงเท่ากัน
  • Happy Hour structure: จัดชื่อกิจกรรม โบนัสต่อชั่วโมง และช่วงเวลา/รางวัลรวมเป็นสามส่วนแนวนอนตามภาพ
  • Stable refresh: ลำดับและโครงสร้างไม่สลับเมื่อ Dashboard ทำ Light Update
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.21
V. 3.0.20 23 Jul 2026

Case Run Sticky Content Mask

IMPROVEMENT
  • Clean sticky headers: เมื่อแถบตารางรันเคสและหมายเหตุติดจอ เนื้อหาในกล่องจะไม่เลื่อนโผล่เหนือแถบอีก
  • Exact content edge: Sticky Header ปิดช่องว่างด้านบนของพื้นที่เลื่อนพอดีโดยไม่เพิ่มแผ่นบังในตำแหน่งปกติ
  • All layout modes: รองรับระยะขอบของ Balanced, Compact, Comfort และมือถือด้วยตัวแปรกลางเดียวกัน
  • Preserved boundary: หัวข้อยังหยุดที่ขอบล่างของกล่องและปุ่มควบคุมยังใช้งานได้เหมือนเดิม
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.20
V. 3.0.19 23 Jul 2026

Restore Dashboard Banner Order

IMPROVEMENT
  • Original order: คืนลำดับ Happy Hour ไว้ด้านซ้าย และ Live Run Case Queue ไว้ด้านขวา
  • Equal layout: ยังคงรูปแบบแถวเดียวและแบ่งพื้นที่ครึ่งต่อครึ่งจากเวอร์ชันก่อน
  • Light Update safe: กำหนดลำดับด้วยกฎของ Grid เพื่อไม่ให้ตำแหน่งสลับเมื่อข้อมูลอัปเดต
  • Responsive order: บนหน้าจอเล็ก Happy Hour จะแสดงก่อน Live Run Case Queue
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.19
V. 3.0.18 23 Jul 2026

Equal Dashboard Doctor Banners

IMPROVEMENT
  • Equal columns: กล่อง Live Run Case Queue และ Happy Hour อยู่แถวเดียวกันและแบ่งพื้นที่ครึ่งต่อครึ่ง
  • Stable placement: ล้างค่า Grid เดิมที่ทำให้สองกล่องกระโดดคนละแถวหรือวางแบบทแยง
  • Matched height: ให้ทั้งสองกล่องยืดเต็มความสูงของแถวเดียวกันอย่างสมดุล
  • Responsive: คงสองคอลัมน์บนเดสก์ท็อป และเรียงหนึ่งคอลัมน์เฉพาะหน้าจอไม่เกิน 1024px
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.18
V. 3.0.17 23 Jul 2026

Case Run Sticky Card Headers

IMPROVEMENT
  • Sticky board controls: แถบตารางรันเคสและชุดควบคุมคิวติดอยู่ด้านบนเมื่อเลื่อนภายในหน้า Case Run
  • Sticky notes controls: แถบหมายเหตุและปุ่มเรียงคิวใหม่ติดตามหน้าจอในสัดส่วนเดียวกัน
  • Card boundary: หัวข้อแต่ละฝั่งหยุดที่ขอบล่างของกล่องตัวเอง ไม่ลอยทับส่วนถัดไป
  • Scoped styling: ทำงานเฉพาะหน้ารายละเอียด Case Run และรองรับ Light/Dark Mode
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.17
V. 3.0.16 23 Jul 2026

Health Check Avatar Presence

IMPROVEMENT
  • Location view: รวมผู้ใช้งานปัจจุบันตามหน้าที่กำลังใช้งาน เพื่อดูได้ทันทีว่าแต่ละตำแหน่งมีใครอยู่บ้าง
  • Avatar stack: แสดงรูปซ้อนกันสูงสุด 5 คน และแสดงวง +จำนวนเมื่อมีผู้ใช้งานมากกว่า 5 คน
  • Hover details: ชี้เมาส์หรือใช้คีย์บอร์ดโฟกัสที่รูปเพื่อดูชื่อและตำแหน่ง; วงจำนวนแสดงรายชื่อที่เหลือทั้งหมด
  • Privacy: ใช้ข้อมูล Presence และรูปโปรไฟล์ที่มีอยู่เดิม โดยไม่เปิดข้อมูลในฟอร์มหรือเนื้อหางาน
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.16
V. 3.0.15 23 Jul 2026

Compact Case Run Detail Proportions

IMPROVEMENT
  • Case Run only: ลดความสูงและระยะห่างเฉพาะหน้ารายละเอียด Case Run โดยไม่กระทบตาราง ฟอร์ม หรือการ์ดหน้าอื่น
  • Board table: ลดความสูงแถว ช่องเลือกสถานะแพทย์ และปุ่มประจำแถวให้กลับมาใกล้สัดส่วนเดิม
  • Side controls: ปรับการ์ดหมายเหตุ คนรัน/คนช่วย/คนประกาศ อัตราเงิน และสวิตช์คิวให้กระชับเท่า ๆ กัน
  • Supporting sections: ลดช่องว่างและความสูงของรายการคิว ประวัติ คำสั่งประกาศ และตารางเคสมีปัญหาในสัดส่วนเดียวกัน
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.15
V. 3.0.14 23 Jul 2026

Semantic Notification Colors

IMPROVEMENT
  • Notification colors: แยกสีแจ้งเตือนตามสถานะอย่างชัดเจน — สำเร็จสีเขียว, ข้อผิดพลาดสีแดง, คำเตือนสีเหลือง และข้อมูลทั่วไปสีฟ้า
  • Light and Dark: เพิ่มพื้นหลัง ขอบ ไอคอน และข้อความที่อ่านง่ายแยกสำหรับโหมดสว่างและโหมดมืด
  • Accessibility: เพิ่มสถานะประกาศสำหรับโปรแกรมอ่านหน้าจอ โดย Error/Warning แจ้งแบบเร่งด่วนและ Success/Info แจ้งแบบสุภาพ
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.14
V. 3.0.13 23 Jul 2026

Balanced Dashboard and UI Control Consistency

IMPROVEMENT
  • Doctor Dashboard: ปรับสัดส่วนการ์ด Run Case และ Surge Pricing เมื่อเปิดพร้อมกัน ลดขนาดส่วนที่ล้น และเปลี่ยนเป็นแถวเดียวอัตโนมัติเมื่อพื้นที่ไม่พอ
  • UI Theme: ลดตัวเลือกธีมระบบให้เหลือ Apple และ Version 1 พร้อมย้ายค่าธีมเก่าที่เลิกใช้กลับไป Apple อัตโนมัติ
  • Appearance: จัดระยะไอคอน ข้อความ และสวิตช์ Dark Mode/Effects ใหม่ ไม่ให้ข้อความหรือสวิตช์ชนกัน
  • Form icons: เพิ่มมาตรฐานระยะซ้ายสำหรับช่องกรอกและตัวกรองที่มีไอคอน แก้ไอคอนซ้อนข้อความใน Logs และครอบคลุมฟอร์มรูปแบบเดียวกันทั้งระบบ
  • Permissions: เอาพื้นหลังสีเทาและกรอบซ้อนออกจากโซนแท็บจัดการสิทธิ์
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.13
V. 3.0.12 23 Jul 2026

Login Icon and Background Visibility

IMPROVEMENT
  • Login icon: แก้เส้น Heartbeat ที่ค้างอยู่ในสถานะซ่อนหลังปิด Animation ให้แสดงคมชัดเสมอ รวมถึงหน้าจอมือถือ
  • Background visibility: เพิ่มความชัด สี และรายละเอียดของภาพพื้นหลัง พร้อมลดชั้นสีมืดและใช้แผงโปร่งแสงโดยยังรักษาความอ่านง่ายของฟอร์ม
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.12
V. 3.0.11 23 Jul 2026

Unified Tabs and Light Update Controls

IMPROVEMENT
  • Clean sub-tabs: นำพื้นหลังสีเทาและกรอบซ้อนออกจาก summaryReport, calendarReport, redeemPoints และ examinationUser พร้อมใช้สถานะ Active สีหลักรูปแบบเดียวกัน
  • Stable light updates: ปรับ calendarReport, approveWork, myShiftAttendanceInfo และ mySalaryReport ให้อัปเดตเฉพาะพื้นที่เนื้อหา โดยไม่สร้าง App Shell ใหม่หรือเล่นเอฟเฟกต์ซ้ำ
  • Doctor dashboard: การสลับรายสัปดาห์ รายเดือน และรายปีอัปเดตข้อมูลกราฟเดิมโดยตรงแบบไม่มีแอนิเมชันซ้ำ
  • Settings and Search: แยกกรอบ Workspace/Appearance ให้ไม่ชนกัน นำตัวเลือก Effects กลับมา และลดขอบช่องค้นหาให้เหลือกรอบนอกเพียงชั้นเดียว
  • Navigation and Health: เอาปุ่มแลกของรางวัลออกจากแถบบนโดยคงเมนูซ้าย และแก้ Health Check ให้มีแท็บ Active เพียงรายการเดียว
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.11
V. 3.0.10 23 Jul 2026

Health Analytics and Live Usage Monitor

New Version
  • Web performance: เพิ่มกราฟแนวโน้ม 24 ชั่วโมง เวลาโหลดเฉลี่ย ปริมาณข้อมูล ข้อผิดพลาด และระดับความเสี่ยงโดยประมาณ
  • Usage Heatmap: แสดงช่วงเวลาที่มีการใช้งานมากหรือควรเฝ้าดู แยกตามวันและชั่วโมง พร้อมสลับดูความเสี่ยง เวลาโหลด และจำนวนเข้าใช้
  • Live users: เพิ่มสถานะผู้ใช้งานปัจจุบันว่าใครอยู่หน้าไหน หน้าที่ถูกใช้มากที่สุด และตัวกรองช่วงเวลา 24 ชั่วโมง/7 วัน/30 วัน
  • Privacy and load: เก็บเฉพาะข้อมูลสรุปรายชั่วโมง 31 วัน ไม่เก็บเนื้อหาเคสหรือข้อมูลในฟอร์ม และใช้ heartbeat แบบเบาเพื่อไม่รบกวนงานหลัก
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.10
V. 3.0.9 23 Jul 2026

Sidebar Active Edge Alignment

IMPROVEMENT
  • Active indicator: ย้ายแถบสีของเมนูที่กำลังใช้งานไปแนบขอบซ้ายของกรอบเมนูโดยตรง แทนการวางแทรกอยู่ด้านในก่อนไอคอน
  • Consistent navigation: ใช้ตำแหน่งเดียวกันกับเมนูหลักและเมนูย่อยทั้ง Light Mode และ Dark Mode
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.9
V. 3.0.8 23 Jul 2026

Unified Headers and Stable Light Updates

IMPROVEMENT
  • Unified headers: ปรับ examinationAdmin, budgetManagement, caseReview, eventSettings, redeemSettings และ DoctorCommands ให้ใช้โครงหัวมาตรฐานเดียวกับ approveWork โดยชื่ออยู่ซ้าย เมนูอยู่ขวา และ Active ใช้สีหลักของระบบ
  • Stable realtime: เปลี่ยน Budget, Salary และ Case Review เป็น light update เท่านั้น ไม่ให้สัญญาณ Auto Refresh วาดทั้งหน้าใหม่หรือดึงค่าที่กำลังแก้กลับย้อนหลัง
  • Salary workspace: แยกหัวหน้ารายงานออกจากกล่องเลือกวันที่และตัวเลือกคำนวณชั่วคราวอย่างชัดเจน
  • Camp landing: เพิ่มหน้าเลือกรอบออกนอกพื้นที่ในรูปแบบเดียวกับหน้าแรกของ caseRun ก่อนเข้าสู่หน้ารายละเอียดเดิม
  • Responsive consistency: หัวและแถบเมนูชุดใหม่เรียงตัวอัตโนมัติบนมือถือทั้ง Light Mode และ Dark Mode
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.8
V. 3.0.7 23 Jul 2026

Dashboard Header and Classic Sidebar Refinement

IMPROVEMENT
  • Classic sidebar: คืนรูปแบบเมนูซ้ายเดิมที่รายการปกติไม่มีกล่องล้อมทุกแถว และใช้กรอบเหลี่ยมขอบมนเฉพาะ Active state
  • Admin Dashboard header: เปลี่ยนหัว Admin Dashboard ให้ใช้โครงเดียวกับ approveWork โดยชื่ออยู่ซ้ายและ Overview/Analytics/Performance อยู่ขวา
  • Transparent dashboard tabs: นำพื้นหลังสีเทาของ tab group ออกและใช้ Main Color เฉพาะแท็บปัจจุบัน
  • Responsive pairing: หน้า Admin Dashboard และ approveWork คงหัวแบบแถวเดียวกันตั้งแต่ Tablet ขึ้นไป และเรียงลงเฉพาะมือถือ
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.7
V. 3.0.6 23 Jul 2026

Unified Workspace Consistency

IMPROVEMENT
  • Unified page structure: ใช้โครงหัวหน้าแบบเดียวกับหน้าอนุมัติทั้งระบบ โดยชื่อหน้าชิดซ้ายและแท็บหรือคำสั่งชิดขวา
  • Consistent workspace width: กำหนดความกว้าง ระยะขอบ ลำดับกรอบ และรัศมีของหน้าหลักให้เป็นมาตรฐานเดียวกัน
  • Uniform sidebar items: เปลี่ยนเมนูและกลุ่มเมนูซ้ายเป็นกรอบเหลี่ยมขอบมนรูปแบบเดียวกัน พร้อมนำเส้น tree ที่ไม่สม่ำเสมอออก
  • Search usability: เพิ่มกรอบช่องค้นหาที่ชัดเจน รองรับลูกศรขึ้นลง Enter การเลือกด้วยเมาส์ และตัดผลลัพธ์ซ้ำ
  • Working pagination: ทำปุ่มหน้าแรก ก่อนหน้า เลขหน้า ถัดไป และหน้าสุดท้ายให้มองเห็นชัด ใช้รูปแบบเดียวกัน และมีสถานะ disabled/current ที่ถูกต้อง
  • Responsive consistency: หัวหน้า แท็บ Search และ Pagination ปรับลำดับอัตโนมัติบนจอแคบ โดยคงสีจาก System Settings
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.6
V. 3.0.5 23 Jul 2026

Nocturne Navigation and Approval Workspace Refinement

IMPROVEMENT
  • Approval header: จัดหัวข้ออนุมัติคำขอชิดซ้ายและคงตัวเลือกแจ้งลืมลงเวลา/อนุมัติการลาไว้ด้านขวา
  • Main-color active tabs: Active tab ใช้สีหลักจาก System Settings พร้อมเส้นขอบโปร่งใสและนำพื้นเทาเข้มออก
  • Desktop sidebar collapse: ปุ่ม Hamburger ย่อหรือเปิด sidebar บน Desktop ได้จริง จำค่าเฉพาะอุปกรณ์ และส่ง resize ให้กราฟจัดพื้นที่ใหม่
  • Continuous menu tree: จัดเส้น sidebar ใหม่ให้ต่อเนื่องตามระดับเมนู ไม่พาดผ่านตัวอักษร และเพิ่ม contrast ทั้ง Light/Dark mode
  • Frame hierarchy: ลดกรอบซ้อนระหว่าง card และ table พร้อมเพิ่มระยะของหน้าอนุมัติให้แต่ละ section แยกชัดเจน
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.5
V. 3.0.4 23 Jul 2026

Nocturne Health Intelligence — Complete UI Rebuild

New Version
  • Complete visual rebuild: ถอด Clinical Command Deck ออกจากการโหลดและสร้าง presentation layer ใหม่ทั้งชุดใน `assets/css/v3-nocturne.css` โดยไม่แก้ business logic หรือ API
  • Reference-led dashboard: ปรับระบบเป็น dashboard ซ้อนกรอบแบบ health intelligence ใช้พื้นหลังดำอมม่วง เส้นขอบบาง แสงเรืองเฉพาะจุด และข้อมูลหนาแน่นที่ยังอ่านง่าย
  • Tree navigation: เปลี่ยน sidebar เป็น floating rail ขอบมน พร้อมเส้น tree connector, active glow และ user profile panel แบบเดียวกับ reference
  • Command bar: เปลี่ยน header เป็น command bar พร้อม pill controls และช่อง Global Search แบบข้อความเต็มบนจอใหญ่
  • Unified analytics cards: ทำ card, metric, chart container, table, tab, form, drop zone, modal และ toast ให้ใช้ surface/line/radius ชุดเดียวกัน
  • System color retained: glow, active state, focus, primary action และ progress indicator ยังอ้าง Primary/Accent จาก System Settings
  • Responsive frame: ทำ desktop เป็น framed workspace, tablet ลด command pill และ mobile เปลี่ยน sidebar เป็น overlay โดยคงพื้นที่กดที่เหมาะสม
  • Motion discipline: ใช้เฉพาะ hover/press feedback ระยะสั้น ปิด particle และ mouse-follow effect พร้อมรองรับ reduced motion
  • Version Pairing: อัปเดต VERSION, package version และ cache busting เป็น 3.0.4
V. 3.0.3 23 Jul 2026

Clinical Command Deck — Distinct Version 3 Interface

IMPROVEMENT
  • Distinct V3 identity: ปรับภาษาภาพเป็น Clinical Command Deck แยกจาก V2 ชัดเจนด้วย command rail สีเข้ม พื้นที่ทำงานแบบแบน และลำดับข้อมูลที่อ่านได้เร็ว
  • System color preserved: ปุ่มหลัก แถบสถานะ active state focus และเส้นนำสายตายังคงใช้ Primary/Accent จาก System Settings โดยไม่ล็อกสีใหม่ทับค่าผู้ดูแล
  • Login portal: เปลี่ยนหน้าเข้าสู่ระบบเป็นพอร์ทัลปฏิบัติการสองส่วนแบบ editorial พร้อม security status และลดองค์ประกอบตกแต่งที่เคลื่อนไหว
  • Unified workspace: ทำ sidebar, command header, card, tab, table, form, modal, toast และ upload zone ให้ใช้โครงและรัศมีแบบเดียวกัน
  • Readable data tables: เพิ่มหัวตารางสี command, ลายแถวสลับแบบอ่อน และ hover ที่ใช้สีระบบเพื่อช่วยไล่ข้อมูลจำนวนมาก
  • Smooth and responsive: ใช้ CSS presentation layer แบบ static ไม่มี particle หรือ mouse-follow animation พร้อมคง Balanced, Compact และ Comfort layout เดิม
  • Dark and light ready: เพิ่ม token ของ command surface สำหรับทั้งสองโหมด และปรับ contrast ของ navigation, form และ feedback ให้สอดคล้องกัน
  • Version Pairing: อัปเดต VERSION และ cache busting เป็น 3.0.3
V. 3.0.2 23 Jul 2026

Realtime Safety, Local Assets, Global Search and Admin Recovery

FEATURE
  • Latest-data protection: เพิ่ม Request Coordinator, ยกเลิกคำขอเก่าที่หมดความหมาย และป้องกัน response เก่าย้อนมาทับหน้าจอใหม่
  • First-commit wins: เพิ่ม revision guard และ lock รายโมดูลสำหรับเวร เคส รันเคส แคมป์ เงินเดือน และการตั้งค่า เมื่อข้อมูลถูกแก้จากอีกหน้าจอ ระบบจะให้รีเฟรชแทนการเขียนทับ
  • Fast realtime: เปลี่ยนหน้าหลักมาใช้ revision channels ที่เบากว่าการสแกนทุกตาราง พร้อมช่วง polling ตามความสำคัญของหน้า
  • Health Check: เพิ่มหน้าสถานะระบบสำหรับ Admin, Director และ Assistant โดยแสดงเฉพาะความพร้อม PHP, MySQL, migration และ scheduled jobs ไม่เปิดเผย log หรือข้อมูลลับ
  • Audit & Undo: เพิ่มประวัติการแก้ System Settings พร้อมผู้แก้ เวลา เหตุผล และ Undo เฉพาะ Admin สำหรับ revision ล่าสุด โดยไม่เก็บค่า webhook ในประวัติ
  • Global Search: เพิ่ม Command Palette (Ctrl/Command + K) ค้นหาคน เคส รันเคส รายงานเงิน เมนู และ Quick Actions ตามสิทธิ์
  • Local production assets: เก็บ Tailwind, Kanit, Feather Icons, SweetAlert2, Toastify และ Chart.js ไว้ในระบบ ไม่พึ่ง CDN หลัก
  • Security baseline: ปิดการเรียก debug, maintenance, test และ cron scripts โดยตรงจากเว็บ พร้อมกำหนดเวลา PHP/MySQL เป็น Asia/Bangkok
  • Database foundation: เพิ่ม migration runner, realtime revisions, entity revisions, presence และ job run tables แบบทำซ้ำได้อย่างปลอดภัย
V. 3.0.1 23 Jul 2026

Personal Workspace Layouts and Live UI Reflow

FEATURE
  • Workspace Layout: เพิ่มตัวเลือกรูปแบบหน้าจอส่วนตัว 3 แบบ ได้แก่ สมดุล (Balanced), กระชับ (Compact) และสบายตา (Comfort) จากเมนูตั้งค่าด้านบน
  • Per-device Preference: จำรูปแบบที่เลือกไว้ในอุปกรณ์ปัจจุบันโดยไม่แก้ System Settings และไม่กระทบหน้าจอของผู้ใช้อื่น
  • Instant Switch: เปลี่ยน spacing, sidebar, header, control, card และ table density ได้ทันทีโดยไม่ reload หรือ render หน้าปัจจุบันใหม่ จึงคงฟอร์ม modal filter pagination และ scroll เดิม
  • Chart Reflow: ส่ง resize signal หลังเปลี่ยนรูปแบบเพื่อให้กราฟและ canvas widget ปรับขนาดตามพื้นที่ใหม่โดยไม่ทำลาย page state
  • Compact Mode: ลดความสูงเมนู control ช่องว่างและแถวตารางสำหรับงานผู้ดูแลหรือหน้าที่มีข้อมูลจำนวนมาก
  • Comfort Mode: เพิ่มพื้นที่อ่าน ขนาดพื้นที่กด และระยะห่างสำหรับจอใหญ่หรือการใช้งานต่อเนื่องเป็นเวลานาน
  • Preview Link: รองรับ query `?layout=balanced`, `?layout=compact` และ `?layout=comfort` สำหรับเปิดดูรูปแบบชั่วคราวโดยไม่ทับค่าที่บันทึกไว้
  • Version Pairing: อัปเดต VERSION และ cache busting เป็น 3.0.1
V. 3.0.0 23 Jul 2026

Calm Medical Workspace — Unified Version 3 Experience

New Version
  • Version 3 Design System: เพิ่มชั้นดีไซน์ Calm Medical Workspace สำหรับทั้งระบบ โดยคง API, permission, realtime และ workflow เดิมทั้งหมด
  • Login Experience: ปรับหน้าเข้าสู่ระบบเป็นหน้าต้อนรับสองส่วนที่เรียบง่าย อ่านง่าย รองรับไทยและอังกฤษ และลดเอฟเฟกต์ที่ไม่จำเป็น
  • Navigation: ปรับ sidebar, header, เมนู active state, user profile และ settings dropdown ให้เป็นรูปแบบเดียวกันทั้ง light/dark mode
  • Shared Components: รวมมาตรฐานการ์ด ปุ่ม input select textarea tab table pagination upload zone modal toast และ loading state ให้สอดคล้องกันทั้งระบบและ plugin
  • Performance: ปิด particle, animated grid และ mouse-following decoration ใน Version 3 พร้อมลด animation ระหว่าง realtime refresh และ tab switch เพื่อลดอาการกระตุก
  • Responsive: ปรับระยะห่าง ตาราง sidebar และหน้า login สำหรับ desktop, tablet และ mobile โดยรักษาข้อมูลสำคัญครบถ้วน
  • Accessibility: เพิ่ม focus-visible, contrast, reduced-motion support, label association, autocomplete และ live status สำหรับตัวโหลดหน้า
  • Version Pairing: อัปเดต VERSION ใน config.php และ changelog เป็น 3.0.0 พร้อม cache busting สำหรับไฟล์ V3
V. 2.1.2 22 Jul 2026

Project Documentation and Realtime Light Update State Preservation

IMPROVEMENT
  • Project Memory: เพิ่ม `PROJECT_MEMORY.md` เป็นบันทึกกลางของโปรเจกต์สำหรับเก็บหลักการทำงาน วิธีวิเคราะห์ความเป็นไปได้ จุดที่ต้องถามก่อนแก้ และมาตรฐานการไล่ฟังก์ชันที่เชื่อมโยงกัน
  • User Requirements: เพิ่ม `USER_REQUIREMENTS.md` เพื่อบันทึกความต้องการที่ Approved แล้ว เช่น clean design, รูปแบบทุกหน้าต้องไปทิศทางเดียวกัน, dashboard อ่านง่ายและอัปเดตข้อมูลแบบไม่รบกวนผู้ใช้, ภาษาไทย+อังกฤษ และ workflow กลางของ modal/table/toast/loading
  • Function Link Map: เพิ่ม `FUNCTION_LINK_MAP.md` เพื่อ map จุดเชื่อมโยงของหน้าเว็บ, API, ตาราง, setting, permission และ plugin สำหรับใช้ไล่แก้ flow ให้ไม่หลุดกัน
  • Approval Process: เพิ่มกติกาว่ารูปแบบใหม่หรือ workflow ใหม่ต้องอยู่ใน Pending Approval ก่อน และเมื่อได้รับ approved แล้วให้บันทึกเป็นกติกาใหม่ของระบบ
  • Required Reading: เพิ่มข้อกำหนดว่าก่อนเริ่มงานทุกครั้งต้องอ่านไฟล์ Markdown กลางของโปรเจกต์ก่อน ได้แก่ `PROJECT_MEMORY.md`, `USER_REQUIREMENTS.md`, `FUNCTION_LINK_MAP.md` และไฟล์ `.md` เฉพาะเรื่องที่เกี่ยวข้อง
  • Case Submit - Realtime Light Update: ปรับหน้า caseSubmit ให้ใช้ `lightUpdate()` ระหว่าง realtime dataRevision โดยอัปเดตเฉพาะ stats และประวัติเคสผ่าน `get_case_submissions?own=1` ไม่ rebuild ทั้งหน้า และคงฟอร์มส่งเคส, tab, pagination, table scroll และ window scroll ไว้ที่เดิม
  • Realtime Refresh - State Preservation: เพิ่ม `refreshRealtimeCurrentPage()` ใน router กลางเพื่อเลือกใช้ `lightUpdate()` เมื่อหน้ารองรับ และ defer full render เมื่อผู้ใช้กำลังกรอกฟอร์มหรือมี input/file เปลี่ยนค้างอยู่
  • Realtime Refresh - Scroll Restore: เพิ่มการจำและคืนตำแหน่ง window scroll รวมถึง scroll ของตารางหรือกล่องข้อมูลหลัง page data refresh เพื่อลดอาการหน้ากระโดดระหว่างอัปเดตข้อมูล
  • Realtime Coverage: เพิ่มหน้าตาราง/ประวัติหลักเข้า realtime data pages เช่น userManagement, shiftAttendanceInfo, calendarReport, budgetManagement, salaryManagement, approveWork, summaryReport, myShiftAttendanceInfo, mySalaryReport, shiftManagement, missedShift และ achievements เพื่อให้ข้อมูลตามกันเมื่อมีการอัปเดตโดยไม่รบกวนฟอร์มที่กำลังใช้งาน
  • Cache Busting: อัปเดต build query ของ `assets/js/main.js` เป็น `realtime-light-state-20260722` เพื่อให้ browser โหลด JavaScript ชุดล่าสุด
V. 2.1.1 22 Jul 2026

Case Submit History Pagination, Upload Error Feedback, and Personal Case Count Fixes

IMPROVEMENT
  • Record - ถ่ายภาพส่งเคส: เพิ่มปุ่มถ่ายภาพจากจอที่เลือกไว้โดยไม่ต้องเลือกจอใหม่ เก็บภาพเข้า Stock พร้อมเวลาแคป ประเภทเคส และแท็กเพื่อน ก่อนส่งเข้า caseSubmit ได้ทันที
  • Record - ปุ่มลัดถ่ายภาพ: เพิ่มการตั้งค่าปุ่มลัดสำหรับถ่ายภาพส่งเคส ค่าเริ่มต้นเป็น F8 และรองรับการเปลี่ยนปุ่มจากหน้า Settings
  • Record - Login Badge: เพิ่มแถบสถานะผู้ใช้ติดขอบจอซ้ายบน แสดงรูป ชื่อ และยศเมื่อ Login แล้ว หรือแจ้งเตือนเมื่อยังไม่ได้ Login บน record.skmd.online
  • Record - Folder-backed Storage: ปรับให้รูปแคปและ VDO บันทึกลงโฟลเดอร์เก็บคลิปเป็นแหล่งหลัก และให้หน้าเว็บอ่านรายการรูป/VDO จากโฟลเดอร์ที่ Browser ได้สิทธิ์อ่านโดยตรง ลดการเก็บ blob ใหญ่ใน IndexedDB
  • Record - IndexedDB Storage Tools: เพิ่มหน้าดูพื้นที่ที่ใช้ใน Browser แยก VDO, รูปแคป และข้อมูลเก่า พร้อมปุ่มล้างเฉพาะข้อมูลของหน้า Record และแจ้งเตือนว่ารายการบนเว็บจะหายเมื่อล้าง
  • Record - Auto Split VDO: เพิ่มระบบตัดไฟล์อัตโนมัติทุก 30 นาทีแล้ว Record ต่อทันทีจนกว่าจะกด Stop เอง โดยสร้างไฟล์ part ต่อ ๆ ไปให้เล่นได้สมบูรณ์
  • Record - Preview / Seekbar: ปรับ preview seekbar ให้เลื่อนเวลาได้จริงและแสดงเวลาตรงกับคลิป รวมถึงแก้ปัญหาคลิปที่ตัดจากช่วงเวลาปัจจุบันหรือ part หลัง ๆ เล่นไม่ขึ้น
  • Record - MP4 Download: ปรับการดาวน์โหลด MP4 ให้ใช้ helper + ffmpeg เพื่อสร้างไฟล์ที่เลื่อนได้ พร้อมแสดงสถานะ 0-100% ระหว่างแปลง และเปลี่ยนแพ็กเกจดาวน์โหลดเป็นชุดโปรแกรมทั้งหมดที่รวม ffmpeg.exe
  • Record - Screen Selection: ปรับปุ่มเลือกจอเป็นเลือกจอเต็ม เพิ่ม hint ให้ Browser เลือกแบบ monitor และแจ้งเตือนหากเลือก Window เพราะอาจติดขอบ Windows
  • Record - Production / Subdomain: ปรับ record.skmd.online ให้ใช้ session Login เดียวกับเว็บหลัก, ใช้ favicon ระบบเดียวกัน, ส่งเคสผ่าน API ระบบหลัก และลด error helper localhost บน Production เมื่อยังไม่ได้เชื่อมต่อ
  • Case Submit - จำนวนเคสที่ถูกต้อง: ปรับการแสดงผลให้แสดงเฉพาะยอดเคสที่ผู้ใช้งานเป็นผู้ส่งเองและได้รับการอนุมัติแล้ว โดยไม่รวมยอดจากเคสที่ถูกแท็กเป็นเคสร่วม
  • Case Submit - แจ้งเตือนหลักฐานรูปภาพ: เพิ่มกล่องแจ้งเตือนใต้ช่องหลักฐานรูปภาพเคสโดยตรง เมื่อไม่ได้แนบรูป, ไฟล์ไม่ใช่รูปภาพ, รูปใหญ่เกิน 8 MB, อ่านไฟล์ไม่ได้, อัปโหลดไม่ครบ หรือส่งรูปไป Discord ไม่สำเร็จ
  • Case Submit - ป้องกันเคสรูปหาย: ปรับฝั่ง Backend ให้ตรวจสอบรูปภาพก่อนบันทึกเคส และหากส่งรูปไป Discord ไม่สำเร็จ ระบบจะไม่ปล่อยให้มีเคสค้างอยู่ในสถานะรอตรวจพร้อมหลักฐานว่าง
  • Case Submit - ลดอาการช้าและค้าง: เพิ่ม timeout ให้การอัปโหลดรูปภาพและการส่ง Discord Webhook เพื่อลดอาการหน้าค้างเมื่อปลายทางตอบช้า พร้อมปรับการโหลดประวัติให้เบาขึ้น
  • Case Submit - ประวัติเคส: แสดงประวัติเคสเฉพาะ 3 สัปดาห์ล่าสุดในหน้าแพทย์ โดยยอดรวมยังคำนวณจากข้อมูลทั้งหมดตามเดิม
  • Case Submit - Pagination ประวัติเคส: จำกัดการแสดงผลประวัติเคสครั้งละ 30 รายการ และเพิ่มปุ่มแบ่งหน้าแบบ << < 1 2 3 > >> แยกตามแท็บเคสที่คุณส่งและเคสที่ถูกแท็ก
V. 2.1.0 19 Jul 2026

Sakura Record, Local Clip Folder Sync, Audio Settings Persistence, and Med Recorder Helper Auto Update

New Version
  • Sakura Record: ปรับหน้า Record สำหรับอัดหน้าจอ/หน้าต่าง/แท็บ พร้อมไมค์และเสียงจากจอที่เลือก โดยเก็บคลิปไว้ในเครื่องผู้ใช้ก่อน
  • Record - ตั้งค่าเสียง: เพิ่มการจำค่าไมค์, ระดับเสียงไมค์, ระดับเสียงจอที่เลือก, โหมดกดปุ่มพูด และปุ่มพูดหลัก/รอง ให้เปิดหน้าใหม่แล้วยังใช้ค่าเดิมทันที
  • Record - Push to Talk: รองรับการกดปุ่มพูดจากคีย์บอร์ดหรือเมาส์ เช่น N / Alt / Mouse button และ sync ค่าไปยังโปรแกรมช่วยเพื่อใช้ตอนเกมหรือโปรแกรมอื่นกำลังโฟกัสอยู่
  • Record - โฟลเดอร์เก็บคลิป: เพิ่มการเลือกโฟลเดอร์ผ่าน MedRecorderHelper เพื่อให้ได้ path จริงบนเครื่อง เช่น D:\ และบันทึกคลิปลงโฟลเดอร์ที่เลือกไว้จริง
  • Record - Disk / System Metrics: เพิ่มข้อมูล Size file, Disk ว่างตาม drive ของโฟลเดอร์ที่เลือก, RAM, CPU, GPU, ความเสถียร และตัวเลือกความคมชัด VDO
  • Record - คลิปในเครื่องนี้: เพิ่มการดูคลิปในหน้าเว็บ, แสดงเวลาจริงขณะเล่น, ดาวน์โหลดเป็น WebM หรือ MP4, และลบคลิปจากหน้าเว็บพร้อมลบไฟล์ในเครื่องเมื่อมีสิทธิ์
  • Record - Save ช่วงระหว่าง Record: เพิ่มการเซฟคลิปย่อยจากช่วงเวลาจริงระหว่างที่กำลังอัดอยู่ โดยเลือกเวลาเริ่มและสิ้นสุดใต้ตัวนับเวลาใหญ่ได้โดยไม่ต้องหยุด Record หลัก
  • Record - Logo Overlay: เพิ่มการอัปโหลดโลโก้หลายรูป, เปิด/ปิดโลโก้, ปรับขนาดต่ำสุด 0.5%, เลือกตำแหน่ง และลากขยับโลโก้บนพื้นที่ VDO ได้
  • Med Recorder Helper: เปลี่ยนชื่อโปรแกรมช่วยเป็น MedRecorderHelper.exe, แสดงสถานะพร้อมใช้งานและเวอร์ชันในหน้าเว็บ, เพิ่มปุ่มดาวน์โหลดพร้อมเลขเวอร์ชัน และอัปเดต helper เป็น v0.1.9
  • Med Recorder Helper - Auto Update: เพิ่ม manifest สำหรับตรวจเวอร์ชันใหม่จาก record.skmd.online และให้โปรแกรมช่วยอัปเดตตัวเองเมื่อมี MedRecorderHelper.exe รุ่นใหม่
  • Med Recorder Helper - No CMD Window: ปรับ build เป็น Windows app เพื่อเปิดโปรแกรมช่วยแล้วไม่เด้งหน้าต่าง CMD/Terminal เหลือเฉพาะหน้าต่าง Med Recorder Helper
  • Cache Version: อัปเดตเวอร์ชันระบบเป็น 2.1.0 และ bump cache หน้า Record เพื่อให้ browser โหลด JavaScript และโปรแกรมช่วยชุดล่าสุด
V. 2.0.8 16 Jul 2026

Realtime Data Sync, Admin Force Refresh, Smooth Doctor Dashboard, and Case Review Live Updates

New Version
  • Realtime Data Sync: เพิ่มระบบตรวจจับการเปลี่ยนแปลงข้อมูลกลาง เพื่อให้หน้าที่เปิดค้างไว้ เช่น รายชื่อแพทย์ถอดยศ, Dashboard ผู้ดูแล, Summary Report, อนุมัติคำขอ, Examination Admin, Budget, Salary, Case Review, Event/Redeem/Lucky Spin Settings, Doctor Commands, Case Run, Camp Injection, Dashboard Doctor, Case Submit, Redeem Points และ plugins/event อัปเดตข้อมูลเองโดยไม่ต้องกด F5
  • Admin Tools - Force Refresh: เพิ่มปุ่มบังคับ Refresh ให้ผู้ใช้งานที่เปิดเว็บอยู่ทั้งหมด โดยให้หน้าเว็บ reload อยู่ที่ตำแหน่ง/หน้าที่ใช้งานอยู่
  • Case Run: ปรับ Live Run Case Queue ให้ realtime มากขึ้น โดยเฉพาะหน้า caseRun ให้ polling ถี่ขึ้นและลดการ render ซ้ำเมื่อข้อมูลไม่เปลี่ยน
  • Case Run - Smooth Name Input: Preserve selected doctor names and row inputs during realtime refresh while autosave is pending, so every open screen stays smooth and does not lose in-progress selections.
  • Dashboard Doctor: ปรับ Live Run Case Queue และ HAPPY HOUR / Surge Pricing ให้ light update เฉพาะเมื่อข้อมูลเปลี่ยนจริง ลดอาการกระตุกของเอฟเฟคเมื่อเปิดหน้าจอทิ้งไว้
  • Dashboard Doctor - Surge Banner: คืนรูปแบบพื้นหลังสีสดใสของ Surge banner พร้อมเอฟเฟคเหรียญ emoji และปรับ fallback ที่กลายเป็นจุดให้เป็นสีขาวโปร่งเรืองแสงแทนสีดำ
  • Dashboard Doctor - Event Banner Layout: ปรับกล่อง Live Run Case Queue และ Surge Pricing / HAPPY HOUR ให้ซ่อนเมื่อปิดรอบ, กล่องเดียวขยายเต็มความกว้าง และเมื่อมีรอบเปิดเพิ่มระหว่างอยู่หน้าเดิมให้เปลี่ยนเป็นแบ่งครึ่งแบบมี transition นุ่มขึ้น
  • Dashboard Doctor - ประวัติการพักเวร / ว.11 / ว.12: ปรับความสูงกล่องให้สมดุลกับประวัติการเข้าเวร และเพิ่ม pagination เมื่อมีข้อมูลมากกว่า 1 หน้า
  • Dashboard Admin - Position Map: ปรับความสูงให้สมดุลกับ Peak Hours Heatmap, เพิ่ม scroll wheel zoom สำหรับดูชื่อแพทย์ละเอียดขึ้น, ยกจุด/tooltip ให้อยู่บนสุด และเพิ่มลำดับ #01 #02 หน้าชื่อ Top 20
  • Dashboard Admin - Performance Summary: ปรับข้อความในการ์ดสรุป Performance ให้อยู่กึ่งกลางกล่อง และเพิ่มเปอร์เซ็นต์เทียบกับช่วงเดียวกันของอาทิตย์ที่แล้วเพื่อดูว่าเพิ่มขึ้นหรือลดลงเท่าไร
  • Dashboard Admin - Performance Badge: ปรับข้อความเปอร์เซ็นต์เทียบอาทิตย์ที่แล้วในการ์ด Performance ให้เป็น badge แบบไอคอนลูกศร สีชัด และอ่านง่ายขึ้น
  • Dashboard Admin - Performance Compact Cards: ลดความสูงและระยะห่างของการ์ดสรุป Performance ให้กระชับขึ้นโดยยังคงแสดงค่าเปรียบเทียบครบถ้วน
  • Dashboard Admin - Performance Heatmap: เพิ่มปุ่มเลือกโหมดเคสฉีดยาใน Peak Hours Heatmap โดยวิเคราะห์จากตั๋วเคสที่เพิ่มให้หมอแต่ละคนเทียบกับชั่วโมงเวรจริง เพื่อแสดงค่าเฉลี่ยตั๋วต่อชั่วโมงเวรในแต่ละช่วงเวลา
  • Dashboard Admin - Heatmap Controls: ย้ายปุ่มเลือกโหมดเคสส่งเข้า/เคสฉีดยาไปไว้ด้านขวาของหัวข้อ Heatmap และย้ายคำอธิบายสีเข้มไปไว้ล่างขวาให้อ่านเป็นระเบียบขึ้น
  • Dashboard Admin - Heatmap Legend: รวมคำอธิบาย Low/High/Hover และความหมายสีเข้มให้อยู่บรรทัดเดียวกันใต้ Heatmap
  • Case Review: หลังมีคนอนุมัติ/ปฏิเสธ/แก้ไขสถานะเคส หน้าที่เปิด caseReview อยู่จะอัปเดตตามโดยอัตโนมัติ
  • Case Review - Light Update: ปรับการอัปเดตหลังอนุมัติหรือ realtime refresh ให้เปลี่ยนเฉพาะข้อมูลในตาราง รักษาเลขหน้า ฟิลเตอร์ และตำแหน่ง scroll เดิม โดยไม่เล่นเอฟเฟคหรือเด้งกลับด้านบน
  • Footer Copyright: ปรับข้อความลิขสิทธิ์ท้ายเว็บเป็น Copyright © 2026 Sakura Medical by Potae Wish
  • Login Session: ปรับระบบ Login ให้จดจำการเข้าสู่ระบบไว้ 15 วันหลังเข้าสู่ระบบสำเร็จ ปิด browser แล้วกลับมาเปิดใหม่ยังใช้งานต่อได้จนกว่าจะครบกำหนดหรือกด Logout
  • Auto Refresh Effects: ปรับให้ auto refresh แบบ light update ไม่ปิดหรือรีเซ็ต animation ของหน้าที่ไม่จำเป็นต้อง render ใหม่ทั้งหน้า
  • Cache Version: อัปเดตเวอร์ชันระบบเป็น 2.0.8 และ bump cache เพื่อให้ browser โหลด JavaScript/CSS ชุดล่าสุด
V. 2.0.7 14 Jul 2026

Performance Analytics Dashboard, Real Case Heatmap, and Doctor Position Map

New Version
  • Dashboard Admin - Performance Tab: เพิ่มแท็บ Performance สำหรับวิเคราะห์การทำงานจริงของหมอ โดยรวมคะแนนถ่วงน้ำหนักจากเวลาเวร, โบนัส, งานนอกพื้นที่, รันเคส, รับเคส, ถูกแท็กเคส, ว.11/ว.12, การลา และการมีส่วนร่วมจริง
  • Performance - Top 10 Performance: ปรับ UI ตาราง Top 10 ให้แบ่งหมวดคะแนน สีข้อความ และรายละเอียดอ่านง่ายขึ้น พร้อมแสดงรับเคสหลักและถูกแท็กเคสรวมในภาพรวมเดียวกัน
  • Performance - ค่าเฉลี่ยที่ควรได้: คำนวณค่าเฉลี่ยเคสที่ควรรับต่อชั่วโมงจากจำนวนเคสที่ส่งเข้ามาจริงทั้งหมดในช่วงที่เลือก และเทียบกับชั่วโมงเวรของหมอเพื่อหา gap รายบุคคล
  • Performance - Peak Hours Heatmap: เพิ่ม Heatmap จำนวนเคสที่ส่งเข้ามาตามชั่วโมง โดยใช้ submissionDate ของเคสทั้งตรวจแล้วและยังไม่ตรวจ พร้อมโทนสีฟ้าอมเขียวและ tooltip แยกประเภท ปกติ / นอกเมือง / ในเมือง
  • Performance - Position Map: เพิ่มแผนที่ตำแหน่ง Top 20 เพื่อดูหมอที่รับเคสน้อยหรือมากกว่าค่าเฉลี่ยที่ควรได้ และเปรียบเทียบกับเวลาออนไลน์มาก/น้อยกว่าค่าเฉลี่ย พร้อม tooltip แสดงรับรวม, ควรได้, gap, ปกติ และแท็ก
  • Dashboard Admin - Analytics: ย้าย Heatmap จำนวนเคสที่ส่งเข้ามาไปไว้ใน Performance และคืน Analytics Heatmap ให้เป็นค่าเฉลี่ยจำนวนหมอตามชั่วโมงสำหรับวิเคราะห์กำลังคน
  • Dashboard Admin - Auto Refresh: ปรับการ refresh ในหน้า Analytics และ Performance ไม่ให้เล่นเอฟเฟกต์โหลดใหม่ตลอดขณะดูข้อมูล ทำให้ใช้งานนิ่งขึ้น
  • Performance - Doctor Filter: รองรับการไม่แสดงหมอที่อยู่ในรายชื่อซ่อนจากการคำนวณและการจัดอันดับ เพื่อให้รายงานสะท้อนทีมที่ต้องการวิเคราะห์จริง
  • Case Run - Queue Visibility: เพิ่มกล่องหมอ Active ที่ยังไม่เข้าคิวต่อจากรายชื่อผู้ต่อคิวรับเคส แสดงแบบ 3 กล่องร่วมกับ History พร้อมปรับสัดส่วนความกว้างเป็น 3.25 / 1.5 / 3.25 และเพิ่มกลุ่มรายชื่อหมอ Active ใน dropdown เลือกแพทย์ โดยซ่อนชื่อที่ถูกเลือกลงตารางแล้วจาก dropdown ช่องอื่นทันที
  • Cache Version: อัปเดตเวอร์ชันระบบเป็น 2.0.7 และ bump cache ของ Dashboard Admin เพื่อให้โหลด Performance/Analytics ล่าสุดทันที
V. 2.0.6 12 Jul 2026

Prediction Hub, Out-of-Area Rename, Salary Update Fix, and Discord Summary Improvements

New Version
  • Social & Event - ทายผลกิจกรรม: เพิ่ม Prediction Hub สำหรับเปิดรอบทายผลกิจกรรมแบบหลายคู่ มีชื่อรอบ, Cover Card, ทีม/ตัวเลือกพร้อมตัวคูณ, เวลาปิดรับ, เครดิตรับสูงสุด, การเลือกผลชนะ และการเก็บข้อมูลรอบหลังจบกิจกรรม
  • Prediction Hub - การทายผลและหลักฐาน: รองรับการเลือกทายได้หลายคู่ในรอบเดียว, อัปโหลดรูปหลักฐานแบบ drag and drop / Ctrl + V, แปลงรูปเป็น WebP เพื่อเก็บในระบบเว็บ และให้ผู้ทายเปิดดูหลักฐานที่ตนเองอัปโหลดได้จาก popup รายละเอียด
  • Prediction Hub - รายชื่อและการจ่ายรางวัล: ปรับ popup รายละเอียดให้ใหญ่ขึ้นและอ่านง่ายขึ้น แสดงรายชื่อเป็นตารางพร้อมชื่อ, ทีม, เงินได้, สถานะ, เครดิตที่ส่ง, รูปรับเงิน, รูปส่งเงิน และปุ่มจ่ายเงิน โดยผู้เปิดรอบหรือ Admin/Assistant/Director จัดการได้
  • Prediction Hub - สถานะหลังสรุปผล: เพิ่มสถานะผลผิดสำหรับผู้ที่ไม่ถูกรางวัล, รองรับกรณีไม่มีใครถูกรางวัลให้เก็บข้อมูลได้โดยไม่ต้องอัปโหลดรูปหลักฐานรับรางวัล และล็อกไม่ให้แก้ไขรายชื่อ/หลักฐานหลังเก็บข้อมูลแล้ว
  • Prediction Hub - Discord Logs: ปรับการส่งข้อมูลเข้า FightEvent webhook ให้รวมข้อมูลเป็นชุดเดียว มีรอบ, ผู้เปิดรอบ, ผู้เก็บข้อมูล, ทีมที่เปิดรับ, ผลชนะ, ยอดรวม, รายรับ/รายจ่าย, รายชื่อผู้เข้าร่วมพร้อมทีมที่แทง และรายชื่อโอนพร้อมหลักฐาน โดยไม่แท็ก @here และใช้ Discord mention จากข้อมูลผู้ใช้
  • Prediction Hub - UI/UX: ปรับ Card ให้แสดง Cover ได้ 6 ใบต่อแถว, คลิก Card เพื่อเปิด popup รายละเอียดโดยไม่เปลี่ยนหน้า, เพิ่มปุ่มปิดรอบ/เก็บข้อมูล/ส่ง Discord ซ้ำตามสิทธิ์, จำหน้า Prediction Hub หลัง Refresh และเปลี่ยนหัวข้อหน้าเป็นทายผลกิจกรรม
  • System Rename - ออกนอกพื้นที่: เปลี่ยนข้อความจากระบบ/คิว/โบนัสแคมป์เป็นระบบออกนอกพื้นที่ใน dashboardDoctor, campInjectionSettings, mySalaryReport, salaryManagement และ budgetManagement ให้สอดคล้องกับชื่อใหม่
  • Salary Management - Update Calculation: ปรับการคำนวณตอน Update รายการเงินเดือนให้ยึดแนวทางเดียวกับตอนสร้างรายการ ป้องกันค่าคำนวณกลายเป็น NaN หลังบันทึกแก้ไข
V. 2.0.5 10 Jul 2026

HTTP 508 & Profile Picture Fix, Edit Pending Case, Shift Schedule History, and Live Discord Webhook Sync Support

New Version
  • Case Review - ตัวเลือกข้าม Popup อนุมัติ: เพิ่ม checkbox ในหน้าตรวจเคสที่แพทย์ส่งเพื่อจดจำการข้าม popup ยืนยันตอนอนุมัติลงเครื่องผู้ใช้เอง ช่วยให้ตรวจเคสต่อเนื่องได้เร็วขึ้นโดยยังคง popup สำหรับการปฏิเสธไว้ตามเดิม
  • Budget Management - โบนัสรันเคสหลายคน: ปรับช่องคนรันเคสและคนประกาศให้เพิ่มได้มากกว่า 1 คนแบบไม่จำกัด ทั้งตอนเพิ่มรายการใหม่และแก้ไขรายการเดิม พร้อมคงการคำนวณเวลาตามช่วงเริ่ม-สิ้นสุดให้กับทุกคนที่ถูกเพิ่มในบทบาทรัน/ประกาศ
  • UI Theme - Sidebar Readability: เพิ่ม guard ให้เมนูด้านซ้ายอ่านง่ายขึ้นในทุกธีมและทุกโหมดสี พร้อม bump cache ของ stylesheet เพื่อให้ผู้ใช้โหลดหน้าตาล่าสุดทันที
  • Session & Performance - แก้ไขปัญหา HTTP 508: ปรับปรุงการเปิด-ปิดเซสชันในระบบ API โดยทำการปิด Session Lock ล่วงหน้าด้วย session_write_close() สำหรับคำขอดึงรูปภาพและดึงข้อมูลโปรไฟล์ ป้องกันการดึงคิวรูปค้างและลดทรัพยากรเซิร์ฟเวอร์ สิ้นสุดปัญหา Failed to load resource (HTTP 508 Resource Limit Reached) อย่างสมบูรณ์
  • Profile Picture - ป้องกันข้อมูลโปรไฟล์เสียหายและรองรับ Redirect URL: ปรับแต่ง SQL ในหน้า Announcements, Cases และ Users ให้แสดงผลรูปโปรไฟล์ภายนอกและ URL ปกติได้โดยตรงโดยไม่แปลงผ่าน API พร้อมระบุมิติด้านความปลอดภัยในหน้าตั้งค่าโปรไฟล์ ป้องกันไม่ให้เซฟทับหรือบันทึกที่อยู่ลิงก์ API ย้อนกลับลงฐานข้อมูลเมื่อบันทึกข้อมูลซ้ำ
  • Case Submit - ระบบแก้ไขเคสรอตรวจ: เพิ่มฟังก์ชันให้แพทย์สามารถกดปุ่มแก้ไข (Edit) เคสที่เคยส่งไปแล้วได้ทันที หากสถานะเคสนั้นยังไม่ได้รับการตรวจสอบ (รอตรวจ/Pending) โดยไม่ได้รับอนุญาตให้แก้ไขไฟล์รูปภาพหลักฐานต้นฉบับ เพื่อความถูกต้องและปลอดภัย
  • Case Submit - หน้าต่างป๊อปอัปแก้ไขเสมือนจริง: ปรับปรุงป๊อปอัปแก้ไขให้มีฟิลด์และหน้าตาเหมือนฟอร์มกรอกส่งเคสจริงทุกประการ ทั้งการ์ดเลือกประเภทเคส, ปุ่มเลือกเวลา NOW, การพิมพ์ autocomplete ค้นหาและแท็กแพทย์ร่วม, การแสดงรายการแพทย์ร่วมในรูปแบบป้ายแท็กย่อย (Pills) ที่ลบออกได้, รายชื่อแพทย์ที่ใช้บ่อย และระบบซ่อนรูปภาพตัวอย่างอัตโนมัติหากรูปภาพนั้นหมดอายุ 24 ชั่วโมงจากกฎของ Discord
  • Discord Sync - ปรับปรุงข้อมูลแก้ไขเรียลไทม์: เมื่อแพทย์ทำการแก้ไขเคส ข้อมูลจะถูกอัปเดตไปยังข้อความและ Embed ในห้องส่งเคสของ Discord โดยอัตโนมัติ พร้อมทั้งฟื้นฟูและสร้างปุ่มกดตรวจสอบผ่านดิสคอร์ด (Link Buttons) ให้ตรงตามข้อมูลใหม่ล่าสุดในทันที
  • User Management - ประวัติเวลาเวรแบบมีผลตามวันที่: เพิ่มระบบบันทึกเวลาเวรเป็นประวัติรายบุคคล รองรับการเปลี่ยนเวลาเวรย้อนหลังหรือล่วงหน้าได้โดยเลือกวันที่มีผลจริง พร้อมแท็บ ประวัติเวลาเวร สำหรับตรวจสอบช่วงเวลาที่ระบบใช้คำนวณ
  • Salary & Shift Attendance - คำนวณตามเวลาเวรจริงของช่วงนั้น: ปรับการคำนวณเงินเดือนและการนับเข้าเวรครบให้เลือกเวลาเวรจากประวัติที่มีผล ณ วันที่เริ่มกะ ทำให้ข้อมูลเก่ากับข้อมูลหลังเปลี่ยนเวลาเวรถูกคิดแยกกันอย่างถูกต้อง
  • Dashboard Doctor - อัปเดตสถานะปัจจุบันแบบ Real-time: ปรับหน้า Dashboard แพทย์ให้ตรวจสอบสถานะเวรของผู้ใช้ปัจจุบันถี่ขึ้น และ repaint การ์ดสถานะทันทีเมื่อถูกบังคับออกเวรหรือสถานะเวรถูกเปลี่ยนจากระบบ พร้อมตรวจ session ซ้ำเมื่อบัญชีถูกปิดใช้งานระหว่างเปิดหน้าเว็บอยู่
  • Database Update - user_shift_schedules: เพิ่มไฟล์อัปเดตฐานข้อมูล database_update_17_user_shift_schedules.sql และระบบสร้าง baseline จากเวลาเวรเดิมอัตโนมัติ เพื่อให้ข้อมูลเก่าใช้งานต่อได้ทันที
V. 2.0.4 07 Jul 2026

MedBot Thai Query Search Polish, Case Type Selection & Review, and Salary Calculation Support

IMPROVEMENT
  • MedBot - ปรับปรุงการค้นหาภาษาไทย: เพิ่มการแยกคำและคีย์เวิร์ดสำคัญ (เช่น เปิด, ปิด, ตรวจ, เมนู, ศพ, ไซเรน) ในตัวแยกคำ ทำให้บอทสามารถค้นหาและตอบคำถามภาษาไทยที่มีคำทับซ้อนหรือพิมพ์สะกดคลาดเคลื่อน (เช่น 'เปิดเปิดสะดวกตรวจในเมนู') ได้อย่างแม่นยำยิ่งขึ้น
  • MedBot - กรองประกาศซ้ำเอาอันล่าสุด: เพิ่มการจัดกลุ่มและเลือกแสดงผลเฉพาะประกาศที่อัปเดตล่าสุดสำหรับหัวข้อเดียวกัน ป้องกันประกาศเก่าขึ้นมาแสดงผลซ้ำซ้อน
  • MedBot - ลดข้อความหัวข้อซ้ำในการตอบกลับคู่มือ: เปลี่ยนการกรองคู่มือแพทย์ในแชทบอทให้ยุบรวมข้อมูลจากหัวข้อและหน้าเดียวกัน ตอบกลับเพียงครั้งเดียวต่อหัวข้อ เพื่อไม่ให้แสดงผลปุ่ม anchor ลิงก์ไปยังจุดเดียวกันซ้ำ ๆ
  • MedBot Rules API - แก้ไขปัญหา API Call Error และหน้าเว็บโหลดช้า: ปรับปรุง API ดึงข้อมูลคู่มือแบบ Scraper ภายนอก โดยให้ดึงจากไฟล์แคชระบบภายนอกทันทีหากมีไฟล์อยู่ และเปิดให้ดึงสดเฉพาะกรณีแอดมินกด Force Sync จากหลังบ้านเท่านั้น ช่วยลดความล่าช้าจากการดึงเว็บอื่น (Sakura Town Rules) สิ้นสุดปัญหาเว็บค้างและแจ้งเตือนกล่องแดง API Call Error บนหน้าเว็บทั้งหมด
  • Doctor Announcements - ปรับปรุงการแสดงผลประกาศ (Website & Discord): แก้ไขการแสดงตัวอักษรเว้นวรรคพิเศษ ( ) ให้แสดงเป็นช่องว่างตามปกติ ป้องกันไม่ให้มีแท็กโครงสร้างรายการ (
      /
    • ) แสดงออกมาเป็นข้อความดิบทั้งบน Discord และในหน้าเว็บบอร์ดของแพทย์ รวมถึงตัดระยะบรรทัดเว้นว่างซ้ำซ้อนรอบแท็กรายการในหน้าแสดงผลหลักเพื่อให้ข้อความเรียงตัวชิดกันสวยงามตามที่พิมพ์จริง พร้อมปรับแต่งการส่งข้อมูลไป Discord ให้ยกเลิกการแสดงหัวข้อระบุการแบ่งหน้า (เช่น ต่อจากประกาศ 2/2) และย้ายรูปภาพแนบเพิ่มเติมไปจัดวางที่ส่วนล่างสุดก่อนเส้นปิดท้ายประกาศ
    • Case Submit - เลือกประเภทเคสแบบชิ้นเดียว: ปรับปรุงหน้าส่งเคสให้มีปุ่มกดเลือกประเภทเคส (ปกติ, นอกเมือง, เมืองบน) เพียงอันเดียวอย่างสวยงามและชัดเจน
    • Case Review - ตรวจสอบและแก้ไขประเภทเคส: ในหน้าตรวจสอบเคสของแอดมิน แสดงป้ายประเภทเคสพร้อมเพิ่มตัวเลือกให้แอดมิน/ผู้ช่วยสามารถคลิกแก้ไขประเภทเคสที่แพทย์เลือกส่งผิดมาได้โดยตรงผ่านหน้าต่างแก้ไขสถานะ
    • Salary Management - ตั้งค่าอัตราตั๋วเคสแยกประเภท: เพิ่มช่องกรอกราคารายงวดสำหรับ เคสปกติ, เคสนอกเมือง, เคสเมืองบน แยกจากกัน พร้อมระบบคำนวณเงินเคสรวม และปุ่ม (i) ดูรายละเอียดการแบ่งยอดแต่ละประเภทของแพทย์แต่ละคน
    • My Salary Report - แสดงยอดคำนวณเงินเคสอย่างละเอียด: หน้ารายงานเงินเดือนแพทย์ส่วนบุคคล แสดงรายละเอียดประวัติและจำนวนเงินตั๋วเคสที่ได้รับแยกตามประเภทเคสและอัตราที่ตั้งจริงของแต่ละงวด
V. 2.0.3 05 Jul 2026

Discord Webhook Botless Buttons Integration, Local Image Storage CDN Fallback, and Multi-Directional Website Review Sync

New Version
  • Case Review - ปุ่มกดอนุมัติ/ไม่อนุมัติบน Discord: เปลี่ยนลิงก์ข้อความยาวๆ เป็นปุ่มกดกล่องข้อความ (Discord Link Buttons) สีเขียว/แดงใต้การ์ดแจ้งเตือนอย่างสวยงามและเป็นระเบียบ
  • Case Review - ระบบปิดแท็บเบราว์เซอร์อัตโนมัติ (Auto-Close): เพิ่มระบบวิเคราะห์เมื่อแอดมินกดปุ่มอนุมัติผ่านดิสคอร์ด แท็บเว็บเพจจะทำงานเบื้องหลังและปิดแท็บตัวเองทันทีภายใน 0.5 วินาที จำลองการทำงานแบบ One-Click Review
  • Case Submit - อัปโหลดรูปภาพเก็บโลคอลและ Discord CDN: บันทึกรูปภาพหลักฐานเก็บไว้ถาวรบนเว็บเซิร์ฟเวอร์หลัก (img/cases/) ป้องกันปัญหาลิงก์รูปของ Discord หมดอายุ พร้อมส่งผ่านรูปเข้า Webhook ห้องเก็บรูปภาพเพื่อขอลิงก์ Discord CDN ส่งกลับไปยังช่องตรวจเคสหลัก แก้ปัญหาภาพเด้งซ้อน 2 ข้อความบน Discord ได้อย่างสมบูรณ์
  • Website Sync - ปรับปรุงข้อมูลสองทาง (Two-Way Sync): เมื่อแอดมินอนุมัติหรือปฏิเสธเคสผ่านหน้าเว็บหลัก (Website UI) ตัวการ์ดข้อความใน Discord จะทำการแก้ไขแบบ In-place ลบปุ่มกดทิ้ง และอัปเดตสถานะล่าสุดในทันที ป้องกันการทำงานซ้ำซ้อน
  • Website Sync - การแก้ไขและกู้คืนสถานะเคส: รองรับการอัปเดตข้อมูลไปยังการ์ดแจ้งเตือนใน Discord แบบเรียลไทม์เมื่อมีการกดปุ่มแก้ไขจำนวนยอดเคส หรือเปลี่ยนสถานะกลับไปกลับมาระหว่าง อนุมัติ / ปฏิเสธ / รอตรวจ บนหน้าเว็บหลัก
  • System Settings - ปุ่มส่งรายงานด่วนแบบแมนนวล: เพิ่มปุ่มสำหรับสั่งส่งรายงานประจำวันและสรุปผลประจำสัปดาห์ไปยัง Discord ได้โดยตรงจากหน้าเว็บบอร์ดตั้งค่าห้อง Report Webhook
  • Cron & API integration - ความเสถียรในการดึงสคริปต์: ปรับสถาปัตยกรรมภายในของสคริปต์ส่งรายงานให้ห่อหุ้มคำสั่งจบการทำงาน ทำให้สามารถถูกดึงไปเรียกใช้แบบฟังก์ชันร่วมผ่าน API หน้าเว็บได้โดยไม่บล็อกการทำงานหรือทำลายการถอดรหัสของ JSON
V. 2.0.2 05 Jul 2026

Dashboard Admin Statistics Cards, Salary Details Sorting, Custom Theme Colors, and Backend Database Payload Optimization

IMPROVEMENT
  • Dashboard Admin - ตัวเลขสถิติและจุดกระพริบ: เพิ่มลิงก์ทางลัดและจุดแดงกระพริบมุมขวากล่องสถิติเมื่อมีภารกิจค้างสำหรับช่อง หมอถอดยศ, เคสรอตรวจ, และยังไม่ได้รับเงินเดือน
  • Dashboard Admin - จัดระเบียบการ์ด: ปรับการจัดวางแถวการ์ดสถิติด้านบนให้อยู่ในแถวเดียวกันอย่างเป็นระเบียบตามดีไซน์สมัยใหม่
  • Dashboard Admin - รวมพักเวร ว.11 / ว.12: เพิ่มเครื่องหมายเตือน emoji ⚠️ ! เมื่อแพทย์มีการพักรอบใด ๆ นานเกินกว่า 45 นาทีต่อครั้ง (คิดเป็นรอบแยกกัน ไม่ใช่เวลารวมทั้งวัน)
  • Salary Management - ประวัติรายงานย้อนหลัง: เพิ่มการ์ดและป้ายแสดงจำนวนแพทย์ที่ยังไม่ได้รับเงินเดือนจริงย้อนหลังเพิ่มเติมเพื่อให้แอดมินเห็นความก้าวหน้า
  • Salary Management - สีหัวข้อและการเรียงลำดับตาราง: เพิ่มระบบคลิกเรียงลำดับ Asc/Desc หัวตารางรายละเอียดเงินเดือน พร้อมธีมสีพรีเมียมแยกสีแต่ละคอลัมน์เพื่อความง่ายในการอ่านข้อมูล
  • Salary Management - ถอดข้อมูลคิวแคมป์ออกทั้งหมด: นำข้อมูล คิวแคมป์ ออกจากระบบรายงานเงินเดือนอย่างสมบูรณ์ ทั้งในการคำนวณ ตารางแสดงรายละเอียด สรุปยอด และการส่งออกข้อมูลไฟล์ CSV
  • User Management - เปิดดูรายละเอียดแพทย์ทั้งหมด: อนุญาตให้แพทย์ทั่วไปสามารถกดดูหน้ารายละเอียดของแพทย์คนอื่นได้แบบอ่านอย่างเดียว (Read-only) โดยไม่ติดสิทธิ์ห้ามเข้าเหมือนเดิม
  • Login & Chatbot - ปรับปรุงหน้าแรกและประสิทธิภาพ: ซ่อนการโหลดข้อมูลแชทบอทเมื่ออยู่หน้าล็อคอินเพื่อป้องกันข้อผิดพลาดใน Console พร้อมแก้รูปภาพพื้นหลังเพจไม่แสดงผล
  • Event Settings - ปรับปรุงปุ่มและตัดปัญหาคลิกซ้ำ: ใช้ระบบโคลนปุ่มก่อนผูก Event Listener ทำให้แก้ปัญหาการส่งคำสั่งเพิ่มช่วง Surge ซ้ำซ้อนและแจ้งเตือน Toast สปอนขึ้นพร้อมกันหลายกล่อง
  • Event Settings - แก้ปัญหาแจ้งเตือนตอนเข้าหน้าเพจ: ปรับสิทธิ์การกู้คืนสถานะ UI เพื่อไม่ให้จำลองการคลิกบนปุ่มเพิ่มช่วง Surge ส่งผลให้ไม่มีข้อความแจ้งเตือนขอวันเวลาโผล่ขึ้นมากวนใจเมื่อผู้ใช้พึ่งกดเข้าสู่หน้าเพจ
  • Backend & Database - ย่อขนาดและคำสั่ง JSON_SET ในฐานข้อมูล: เขียนการย่อประวัติส่งเคสและโบนัสจำเพาะแพทย์รายคน และปรับ Backend ฝั่ง PHP ให้รันคำสั่ง JSON_SET เพื่ออัปเดตสถานะแบบ In-place แก้ไขปัญหา MySQL max_allowed_packet อย่างเด็ดขาด
V. 2.0.1 02 Jul 2026

Operational Workflow Polish, Apple Default UI Theme, State Restore, Chief Commands, and Performance Optimization

New Version
  • MedCenter - แบล็คลิสและบิลลอย: ปรับข้อมูลบทลงโทษในคู่มือโรงพยาบาลให้แสดงรายละเอียดตามของจริง พร้อมตารางเวลา/คูลดาวน์และข้อมูลราคาที่ใช้ในการอ้างอิง
  • Case Submit - ประวัติเคส: ปรับตารางประวัติเคสโดยนำช่องวันที่/เวลาทำงานออก และเพิ่มช่องหมายเหตุท้ายสุดเพื่อแสดงข้อมูลจากการตรวจเคส
  • Case Submit - เหตุผลที่ไม่ผ่าน: เปลี่ยนการแสดงผลเคสที่ไม่ผ่านให้โชว์เป็นเหตุผลที่ไม่ผ่านอย่างชัดเจน เพื่อให้ผู้ส่งเคสรู้ว่าต้องแก้ไขจากสาเหตุใด
  • Budget Management - โบนัสแคมป์: ขยายกล่องรายละเอียดโบนัสแคมป์ให้ดูข้อมูลได้สะดวกขึ้น เพิ่มลูกศรเปิด/ปิดรายละเอียดตามรอบที่เข้าแคมป์ และแสดงรายละเอียดรอบการเข้าฉีดยาที่แคมป์เมื่อมีมากกว่า 1 รอบ
  • Budget Management - สรุปรายจ่ายโบนัสแคมป์: เพิ่มยอดรายจ่ายรวมในหัว Popup รายละเอียดโบนัสแคมป์ เพื่อให้เห็นทันทีว่าโซนนั้นต้องใช้เงินรวมเท่าไร
  • Budget Management - เวลาโบนัสแคมป์: ย้ายเวลาออกจากใต้ชื่อมาเป็นคอลัมน์แยกในแถวรายการ เพื่อให้อ่านและเทียบรอบได้ง่ายขึ้น
  • Restore UI State: ปรับระบบจำสถานะหน้าเมื่อ Refresh ให้กลับมาอยู่แท็บย่อยเดิม และถ้าเปิด Popup อยู่ให้แสดง Popup เดิมอีกครั้งในหน้า budgetManagement, summaryReport, caseReview, examinationAdmin, approveWork, calendarReport, dashboardAdmin, eventSettings, redeemSettings และ examinationUser
  • Chief of Staff - คำสั่งเข้าเวร: เพิ่มคำสั่งค้นหาว่าใครเข้าเวรช่วงเวลา HH:MM - HH:MM พร้อมฟิลเตอร์ผลลัพธ์ให้แสดงเฉพาะคนที่ตรงช่วงเวลาที่ต้องการ
  • Chief of Staff - คำสั่งแคมป์: ปรับคำสั่งเกี่ยวกับแคมป์ให้รองรับการดูว่าใครกำลังฉีดยาอยู่บ้าง, ใครฉีดยาที่แคมป์วันที่ dd/mm/yyyy เยอะที่สุด และ Top ยืนแคมป์แบบระบุจำนวนอันดับเอง
  • Chief of Staff - ตัวแทนข้อมูล @ & #: เพิ่มรูปแบบดึงข้อมูลชื่อ, ยศ และรอบบิล โดย @ ใช้ดึงชื่อ, & ใช้ดึงยศ และ # ใช้ดึงรอบบิล พร้อมรองรับคำสั่งรอบบิลแบบจ่ายครบทั้งหมด
  • System Settings - UI Theme: เพิ่มตัวเลือก Version 1 เพื่อเก็บหน้าตาเดิมของระบบไว้ในหน้า UI Theme และเปลี่ยน Default UI ใหม่ให้เป็นแนว DESIGN-apple.md โดยยังใช้โครงสีหลัก/สีรองจากการตั้งค่าเว็บ
  • Default UI - Apple Style: ปรับธีม Default ให้ใช้พื้นผิวสะอาด เส้นขอบบาง ปุ่มทรง Pill ตาราง/การ์ด/Popup ที่ดูเบาขึ้น และรองรับทั้ง Light/Dark Mode โดยผูกกับสีระบบเดิม
  • Performance - API Response: ปรับ JSON response ไม่ให้ escape ภาษาไทยและ URL โดยไม่จำเป็น พร้อมเปิด gzip สำหรับ API เมื่อ browser รองรับ เพื่อลดขนาดข้อมูลที่ส่งระหว่าง server กับหน้าเว็บ
  • Performance - Auto Refresh: ลดภาระการ refresh อัตโนมัติ โดยกันการยิง get_all_data ซ้อนกัน, หยุด light refresh เมื่อแท็บ browser ไม่ active และปรับช่วง polling ของ dashboard ให้เบาขึ้น
  • Performance - Payload Control: จำกัดข้อมูลที่โตต่อเนื่อง เช่น user logs และ doctor announcements ให้ดึงเฉพาะช่วงที่จำเป็นต่อการแสดงผล ลดเวลาโหลดและลดงาน render ฝั่งหน้าเว็บ
  • Performance - Login Settings: รวมการอ่านค่าตั้งค่าหน้า Login จากหลาย query ให้เหลือ query เดียว เพื่อลดเวลาตอบสนองของหน้าแรก
  • System Logs: ปรับการโหลดข้อมูล Logs ให้ผู้ใช้ที่มีสิทธิ์หน้า systemLogs เห็นข้อมูลได้ทันทีทั้งตอนเปิดหน้าโดยตรงและตอนกดเข้าจากเมนู พร้อมแก้กรณีหน้า Logs แสดงว่างทั้งที่ฐานข้อมูลมีรายการอยู่
  • Dashboard Doctor - Event Cards: ปรับการจัดวาง Event บน Dashboard ให้ถ้ามี Event เดียวแสดงเต็มแถว และถ้ามี 2 Event ให้แบ่งครึ่งจอบน Desktop พร้อมปรับความสูงของการ์ดให้เท่ากัน
  • Dashboard Doctor - Live Run Case Queue: ปรับกล่องระบบคิวรันเคสให้เตี้ยลง จัดข้อความชิดซ้าย ลดช่องว่างที่ไม่จำเป็น และปรับสี/ปุ่มให้เข้ากับ UI ใหม่
  • Dashboard Doctor - Happy Hour: ปรับกล่อง HAPPY HOUR ให้เป็นโทนเข้มอ่านง่าย ลดความสูง เพิ่มเอฟเฟกต์เหรียญหล่นกลับมา และคุมขนาดเอฟเฟกต์ให้ไม่รบกวนการอ่านข้อมูล
  • UI Polish - Event, Achievements, Redeem, Profile, Lucky Spin: ปรับรายละเอียด UI หลายหน้าให้สอดคล้องกันมากขึ้น เช่น ลดความสูง Event Settings, เพิ่มสีหัว Achievements, จัด Points ของ Redeem ให้ชิดซ้าย, ปรับ My Points/สถิติการทำงานใน Profile ให้อ่านง่าย และแก้พื้นหลังไอคอนผล Lucky Spin
  • Cache Version: อัปเดต cache build ของไฟล์หน้าบ้าน เพื่อให้ browser โหลด JavaScript/CSS ล่าสุดหลังปรับ UI Theme และ Performance
V. 1.6.6 01 Jul 2026

Announcement Bell, Discord Publish Tools, Emoji Server, and Syntax Fixes

IMPROVEMENT
  • ประกาศอัปเดตหมอ – แจ้งเตือนกระดิ่ง Header: เมื่อมีการสร้างประกาศใหม่ ระบบจะส่งการแจ้งเตือนไปยังผู้ใช้ทุกคนผ่านกระดิ่ง (Bell) ใน Header อัตโนมัติ พร้อม Badge สีแดงและกดเพื่อเข้าหน้าประกาศได้ทันที
  • ประกาศอัปเดตหมอ – ซ่อนเมนูแถบซ้าย: นำเมนูประกาศอัปเดตหมอออกจากแถบนำทางด้านซ้าย เนื่องจากมีปุ่มกระดิ่งลอย (Floating Bell) และกระดิ่ง Header ให้เข้าถึงได้อยู่แล้ว เพื่อลดความซ้ำซ้อนของเมนู
  • ประกาศอัปเดตหมอ – ส่งประกาศไป Discord: เพิ่มปุ่มประกาศ Discord ให้แต่ละการ์ด พร้อมรองรับ Webhook ผ่านค่า DISCORD_CASE_WEBHOOK_ANNOUCE และส่งเป็นข้อความเต็มแบบ Plain Text ไม่ใช่ Embed Card
  • ประกาศอัปเดตหมอ – ข้อความสำหรับ Discord เท่านั้น: เพิ่มช่องข้อความแท็กดิสคอร์ดและแท็ก <hideweb>...</hideweb> เพื่อซ่อนข้อความบนหน้าเว็บ แต่ยังส่งไป Discord ได้ตามปกติ
  • ประกาศอัปเดตหมอ – อัปโหลดรูปและเส้นประกาศ: รองรับการอัปโหลดรูปประกาศลง Storage ของเว็บ, เลือกเส้นเปิดด้านบนและเส้นปิดท้ายด้านล่าง พร้อมหน้าจอพรีวิวรูปเส้นหลังเลือกชื่อ
  • ประกาศอัปเดตหมอ – รูปแบบส่ง Discord 3 ส่วน: ตอนกดประกาศจะส่งเส้นเปิดเป็นข้อความแรก, รายละเอียดประกาศพร้อมข้อความแท็ก Discord เป็นข้อความกลาง และเส้นปิดท้ายเป็นข้อความสุดท้ายเสมอ แม้เนื้อหาจะเกิน 2,000 ตัวอักษรและต้องแบ่งข้อความ
  • ประกาศอัปเดตหมอ – Emoji Server สำหรับเว็บ: เพิ่มระบบอัปโหลดอีโมจิสำหรับแสดงบนเว็บ โดยจับคู่รูปภาพกับข้อความ Discord รองรับการเพิ่ม แก้ไข ลบ และแสดงรายการอีโมจิเป็นแถวละ 4 รายการ
  • ประกาศอัปเดตหมอ – แสดง Emoji ในตัวแก้ไขและการ์ด: ตัวแก้ไขประกาศ ป๊อปอัป และการ์ดประกาศสามารถแสดงอีโมจิจาก Discord/Emoji Server เป็นรูปภาพบนเว็บ ขณะบันทึกและส่ง Discord ยังใช้ข้อความอีโมจิเดิม
  • ประกาศอัปเดตหมอ – ตรวจจำนวนตัวอักษร Discord: เพิ่มตัวนับจำนวนตัวอักษรในรายละเอียดประกาศและแจ้งเตือนก่อนส่งเมื่อข้อความมีโอกาสเกินลิมิต 2,000 ตัวอักษรของ Discord
  • MedBot Chatbot – ตั้งค่าหมวดหมู่ที่ไม่แสดงในแชทบอท: เพิ่มการตั้งค่าในหน้า System Settings ให้ Admin สามารถเลือกหมวดหมู่ประกาศ (ประกาศ / ทั่วไป / อัปเดตการทำงาน / กิจกรรม / กฎและข้อปฏิบัติ / การสอบ) ที่ไม่ต้องการให้บอทนำข้อมูลมาตอบในแชท
  • ระบบแจ้งเตือน (Notifications) – ฟังก์ชัน sendAllUsersNotification: เพิ่มฟังก์ชันหลังบ้านสำหรับส่งการแจ้งเตือนหาผู้ใช้ทุกคนในระบบ (ประเภท announcement) แยกจากการส่งเฉพาะ Admin/Director/Assistant เดิม
  • แก้ไข JavaScript Syntax Error: แก้ปัญหา Uncaught SyntaxError จากโค้ด Event Listener ของเมนูด้านข้าง (Sidebar) ใน index.php ที่มีบล็อกซ้ำซ้อนและวงเล็บปีกกาปิดไม่ตรงคู่
  • เวอร์ชันแคชของระบบ (Cache Version): อัปเดตเวอร์ชันของแอปพลิเคชันเป็น 1.6.6 เพื่อบังคับให้เบราว์เซอร์ดาวน์โหลดไฟล์หน้าบ้านล่าสุด
V. 1.6.5 30 Jun 2026

MedCenter Map Version Workbench, Default Map Version, Duplicate Workflow, and Doctor Manual UI Improvements

IMPROVEMENT
  • MedCenter – เมนูจัดการแผนที่ด้านขวา: เพิ่มชุดเครื่องมือสำหรับ Admin, Director และ Assistant ในหน้าแผนที่คู่มือแพทย์ แยกการทำงานเป็นพื้นที่แก้ไข Live/Draft, บันทึกงาน, เผยแพร่ Version และจัดการ Version เพื่อให้ลำดับการใช้งานชัดเจนขึ้น
  • MedCenter – Draft Workflow: เพิ่มระบบบันทึก Draft สำหรับข้อมูลที่กำลังแก้ไข โดยการแก้ไข Draft จะไม่กระทบข้อมูลแผนที่ที่ผู้ใช้ทั่วไปเห็นจนกว่าจะเลือก Version ที่ต้องการเผยแพร่จริง
  • MedCenter – Default Version: เพิ่ม Default Version จากไฟล์ต้นฉบับ 629 blip เป็น Version ตั้งต้นของระบบ สามารถเลือกใช้งาน กู้คืน หรือเซฟทับได้ แต่ไม่สามารถลบได้ เพื่อป้องกันข้อมูลแผนที่หลักสูญหาย
  • MedCenter – Duplicate Version: เพิ่มปุ่ม Duplicate เป็น Version ใหม่ ให้เลือก Version ต้นทางแล้วสร้างสำเนาใหม่พร้อมโหลดเข้า Draft อัตโนมัติ เพื่อแก้ไขต่อโดยไม่กระทบ Version เดิม
  • MedCenter – ลบ Version: เปลี่ยนปุ่มในเมนูจัดการจากลบ blip เป็นลบ Version โดยเลือก Version ที่ต้องการลบจากรายการได้โดยตรง และบล็อกการลบ Default Version ทั้งฝั่งหน้าเว็บและ API
  • MedCenter – UI เลือก Version: ปรับหน้าต่างเลือก Version จาก dropdown เดิมที่อ่านยากเป็นรายการแบบการ์ด แสดงชื่อ Version, ป้าย Default/ลบไม่ได้, จำนวนจุด, เวลา และชื่อไฟล์ พร้อมปรับสีและขนาดตัวอักษรให้ชัดขึ้นใน Dark Mode
  • MedCenter – Save Version: ปรับการเซฟ Version ให้ระบุชื่อเองได้ หากไม่กรอกจะใช้วันที่และเวลาอัตโนมัติ พร้อมแสดงจำนวนจุดที่เซฟ และเพิ่มสิทธิ์ลบ Save สำหรับ Admin/Director/Assistant
  • Doctor Manual Search: ปรับระบบค้นหาให้เลื่อนไปยังจุดที่ highlight หลังค้นหา, คลิกเพื่อลบ highlight ได้ในครั้งเดียว, และแก้ปัญหาข้อความ HTML เพี้ยนหลังลบ highlight
  • MedBot Chatbot: ปรับการตอบของบอทคู่มือแพทย์ให้ดึงข้อมูลคู่มือจากหน้าเดียวกันได้ถูกต้องทั้งหน้า Index และ MedCenter, เอาภาษาจีนด้านหน้าแชทออก, เพิ่มคำใกล้เคียงสำหรับคำถามที่พบบ่อย และปรับข้อความเมื่อไม่พบคำตอบให้สั้นพร้อมลิงก์ไปหน้าคู่มือแพทย์
  • MedBot – หัวข้อแนะนำด่วน: เพิ่มคำตอบตรงสำหรับหัวข้ออัตราค่ารักษาพยาบาล, กฎการใช้โรงพยาบาล และขั้นตอนการทำงานของแพทย์ พร้อมลิงก์อ่านต่อไปยังโซนคู่มือที่เกี่ยวข้องโดยตรง
  • MedBot – ประกาศอัปเดตหมอ: เพิ่มการดึงข้อมูลจากประกาศอัปเดตหมอให้บอทนำมาตอบได้ ค้นหาจากหัวข้อ หมวดหมู่ และรายละเอียดประกาศ พร้อมเลือกข้อมูลล่าสุดจากวันที่เผยแพร่เมื่อพบเนื้อหาซ้ำ
  • Camp Injection: ปรับหน้าตั้งค่าคิวฉีดยาแคมป์ให้เหมือนหน้าเปิดรอบ Run Case มากขึ้น เปิดรอบด้วยวันที่วันนี้อัตโนมัติ แสดงเงินได้ต่อนาทีและจำนวนหมอที่เข้าคิว โดยไม่จำกัดจำนวนคนและไม่ให้แพทย์ออกคิวเองหลังลงคิว
  • Camp Injection – ปิดรอบและส่งโบนัสอัตโนมัติ: เมื่อปิดรอบฉีดยาแคมป์ ระบบจะบันทึกเวลาของแพทย์ที่ยังค้างคิว สรุปยอดนาทีแบบปัดขึ้น และสร้างหรืออัปเดตรายการโบนัสแคมป์ใน Budget Management อัตโนมัติ
  • Budget Management: เพิ่มช่องโบนัสแคมป์ให้ทำงานเหมือนโบนัสรันเคส เพื่อรองรับการรวมรายได้จากงานแคมป์ในรอบเงินเดือน และรองรับรายการโบนัสที่สร้างจากการปิดรอบฉีดยาแคมป์โดยตรง
  • Salary Management: เพิ่มการแสดงยอดโบนัสแคมป์แยกในกล่องสรุป ตารางเงินเดือน รายละเอียดรายบุคคล และ Export โดยยังนำยอดไปรวมในเงินเดือนอัตโนมัติ
  • เวอร์ชันแคชของระบบ (Cache Version): อัปเดตเวอร์ชันของแอปพลิเคชันเป็น 1.6.5 เพื่อบังคับให้เบราว์เซอร์ดาวน์โหลดไฟล์หน้าบ้านและปลั๊กอินล่าสุด
V. 1.6.4 29 Jun 2026

Camp Injection Queue Controls and MapDocter URL Alias

IMPROVEMENT
  • บอทช่วยค้นหาคู่มือแพทย์ (MedBot): กู้คืนการเข้ารหัสภาษาไทยและแผนผังคำพ้องความหมาย (Synonyms) ของบอทช่วยสืบค้นเสร็จสมบูรณ์, แก้ไขบั๊กของ JavaScript Template Literal ที่แสดงเป็น `${text}` และ `${content}` บนกล่องข้อความ, และเปลี่ยนการเรียกค้นหาข้อมูลคู่มือให้ผ่าน API ตรงจากระบบหลังบ้าน แทนการเรียกจาก locations.json
  • ปุ่มเปิด/ปิดแชทบอทในหน้าตั้งค่า: เพิ่มสวิตช์เปิด/ปิด (สีชมพู) ในหน้าตั้งค่าระบบทั่วไป (System Settings) เพื่อเปิด/ปิดการแสดงผลของบอทลอยได้ทั่วทั้งระบบในทุกหน้าเพจ
  • คิวฉีดยาที่แคมป์: แพทย์จะไม่สามารถกดออกจากคิวฉีดยาที่แคมป์ได้ด้วยตนเองหลังจากเข้าร่วมแล้ว โดยสิทธิ์การจัดการคิวยังคงเป็นของแอดมิน/สต๊าฟ และการกดออกเวร (Clock-out) จะลบรายชื่อแพทย์ออกจากคิวแคมป์พร้อมกับบันทึกเวลาสะสมลงในประวัติการเข้าเวรโดยอัตโนมัติ
  • ลิงก์นำทาง MapDocter URL: เพิ่มเส้นทางนำทางใหม่ผ่าน URL `/MapDocter` สำหรับเข้าสู่หน้าแผนที่คู่มือแพทย์โดยตรง โดยยังคงรักษาให้สินทรัพย์และ API ของปลั๊กอิน `doc_manual` เดิมสามารถทำงานได้ปกติจากทั้งสอง URL
  • เวอร์ชันแคชของระบบ (Cache Version): อัปเดตเวอร์ชันของแอปพลิเคชันเป็น 1.6.4 เพื่อบังคับให้เบราว์เซอร์ดาวน์โหลดและเรียกใช้งานไฟล์หน้าบ้านล่าสุดทันที
V. 1.6.3 29 Jun 2026

Doctor Manual Plugin, Interactive GTA GPS Map, Custom Blips Upload, and UI Contrast Optimizations

FEATURE
  • คู่มือหมอ – ลบ Blip จากจุดบนแผนที่: เพิ่มปุ่ม Delete Blip ใน popup ของจุดพิกัดสำหรับ Admin, Director และ Assistant พร้อมหน้าต่างยืนยันก่อนลบ และอัปเดตรายการ/marker บนแผนที่ทันทีหลังลบสำเร็จ
  • คู่มือหมอ – ปุ่มทางลัดบน Header: ปรับปุ่มคู่มือหมอให้แสดงเป็นไอคอนหนังสืออย่างเดียวตามดีไซน์เดิม และทำให้ปุ่มแสดงทันทีโดยไม่รอ tooltip หรือจังหวะโหลด permission ฝั่ง JavaScript
  • คู่มือหมอ – Light/Dark Mode และการอ่านตัวอักษร: เพิ่ม theme ให้ SweetAlert2 โดยตรง แก้ปัญหา dark mode พื้นขาวแต่ตัวอักษรอ่อน พร้อมปรับคลาสสี Tailwind ที่ไม่มาตรฐานให้เป็นสีที่ render แน่นอน
  • คู่มือหมอ – Pagination รายการจุดพิกัด: เปลี่ยนจากการแสดงเฉพาะ 60 รายการแรกเป็นระบบแบ่งหน้า แสดงหน้าละ 60 รายการ พร้อมปุ่ม <<, <, เลขหน้า, >, >> และ reset กลับหน้าแรกเมื่อค้นหา
  • คู่มือหมอ – ศูนย์คู่มือปฏิบัติงานแพทย์ (Doctor Manual): เพิ่มการตั้งค่าสิทธิ์การมองเห็นหน้าศูนย์คู่มือแพทย์ในPermissions Management และเพิ่มปุ่มนำทางรูปหนังสือเปิดที่แถบเมนูด้านบนเพื่อนำทางไปยังหน้าคู่มือแพทย์
  • คู่มือหมอ – แผนที่แบบตอบโต้ (Interactive GPS Map): พัฒนาระบบแผนที่จากพิกัดเกม GTA รองรับการย่อขยาย ค้นหาสปอตตำแหน่ง คัดลอกพิกัดด่วน 634 จุด และคัดลอกคำสั่งวาร์ปด่วน (/tp) สำหรับผู้ดูแลระบบ
  • คู่มือหมอ – บันทึกเวอร์ชันแผนที่ (Save & Rollback): เพิ่มปุ่มเฉพาะสำหรับ Admin, Director และ Assistant ในการสั่งบันทึกสถานะจุดพิกัดปัจจุบัน (Save Version) และกู้คืนข้อมูลพิกัดย้อนกลับตามเวลาที่ต้องการ (Rollback)
  • คู่มือหมอ – คลิกขวาเพื่อเพิ่มจุดพิกัดใหม่: เพิ่มฟังก์ชันสำหรับแอดมินในการคลิกขวาจุดบนแผนที่เพื่อปักหมุดใหม่ กำหนดชื่อ เลือกรูปสัญลักษณ์ไอคอน และอัปโหลดไฟล์ไอคอนประเภท PNG ใหม่ขึ้นเซิร์ฟเวอร์โดยตรง
  • คู่มือหมอ – ปุ่มปรับปรุงข้อมูลพิน (Edit Blip): ปรับโฉมปุ่มแก้ไขหมุดเดิมเป็นเมนู "Edit Blip" ซึ่งจะเปิดหน้าต่างตั้งค่าเต็มรูปแบบเหมือนตอนสร้างใหม่ สามารถพิมพ์แก้ไขชื่อ เลือกไอคอน หรืออัปโหลดรูปภาพทดแทน และเปลี่ยนรูปหมุดบนแผนที่ทันทีแบบเรียลไทม์
  • คู่มือหมอ – ประสิทธิภาพการเลื่อนและซูมแผนที่: เพิ่มความลื่นไหลด้วย Canvas Rendering และระบบกรองวาดป้ายข้อความเฉพาะหมุดที่ปรากฏอยู่บนหน้าจอ (Dynamic Viewport Tooltip) ลดการทำงานของซีพียูลงกว่า 95%
  • คู่มือหมอ – การแสดงผลโหมดสว่างและโหมดมืด (Light/Dark Mode Contrast): ปรับสีตัวอักษรของแบนเนอร์หัวข้อ การ์ด Coming Soon แผงรายการแผนที่ สีป๊อปอัพพิกัด และป้ายคำอธิบายบน Leaflet รวมถึงหน้าต่างกรอกข้อมูลของ SweetAlert2 ให้คมชัดและอ่านง่ายในทุกสภาวะแสง
  • คู่มือหมอ – การคงสถานะการมองเห็นปุ่ม (AllowedPages Sync): ปรับปรุงระบบหลังบ้าน (Backend API) ให้เชื่อมโยงและคำนวณสิทธิ์ allowedPages ของผู้ใช้ร่วมกันในทุกเซสชันอัปเดตข้อมูลเบื้องหลัง แก้ปัญหาการสิทธิ์เปิดทับแล้วปุ่มนำทางซ่อนตัวเอง
V. 1.6.2 28 Jun 2026

Chief of Staff Command Updates, Favorite Actions, Popup Details, and Case Run Restore

FEATURE
  • Case Run – ย้ายสำรองรายชื่อเข้าฐานข้อมูลกลาง: เปลี่ยนจากการเก็บข้อมูลสำรองรายชื่อบอร์ดลง localStorage ของเบราว์เซอร์แต่ละเครื่อง ไปบันทึกในตารางฐานข้อมูลกลาง `case_run_board_backups` แทน เพื่อป้องกันปัญหาข้อมูลของแต่ละคนชนกันและเกิดการเขียนทับ (Rollback) รายชื่อแบบไม่ได้ตั้งใจเมื่อมีคนเปิดใช้งานบอร์ดพร้อมกันหลายคน
  • Case Run – เงื่อนไขการสำรองประวัติเฉพาะล่าสุด: ปรับปรุงระบบบันทึกสำรองให้เก็บข้อมูลบอร์ดชุดล่าสุดเพียงชุดเดียวต่อเซสชัน เพื่อความรวดเร็วและประหยัดพื้นที่ และล็อกเงื่อนไขว่าจะเขียนทับข้อมูลประวัติสำรองก็ต่อเมื่อบนบอร์ดมีรายชื่อแพทย์ลงทะเบียนอยู่อย่างน้อย 1 คนเท่านั้น เพื่อป้องกันไม่ให้บอร์ดที่ว่างเปล่าไปเซฟทับประวัติสำรองเดิม
  • Case Run – กู้คืนรายชื่อล่าสุด (Direct Restore): เพิ่มปุ่ม "กู้คืนรายชื่อล่าสุด" สีส้มในแถบ Header ด้านบนข้าง ๆ ปุ่ม "ปิดรอบและจ่ายโบนัส" เมื่อคลิกจะทำการยืนยันความต้องการกู้คืน และดึงรายชื่อแพทย์ชุดล่าสุดกลับมาคืนบอร์ดได้ทันทีในคลิกเดียวอย่างปลอดภัย
  • Chief of Staff – คำสั่งเวรตามช่วงเวลา: เพิ่มคำสั่ง "ขอรายชื่อหมอเวร 00:00 - 06:00" และ "ขอรายชื่อหมอเวรจริง 00:00 - 06:00" เพื่อดึงรายชื่อแพทย์ตามช่วงเวลาที่กรอก พร้อมตรวจว่าเข้าเวรครบ 3 ชั่วโมงในช่วงเวรของตัวเองหรือไม่
  • Chief of Staff – ชุดคำสั่งวิเคราะห์และเงินเดือน: เพิ่มคำสั่งดูรอบเงินเดือนทั้งหมด, ดูประวัติเงินเดือนเป็นรอบของแพทย์ที่แท็ก, เปลี่ยนสถานะเงินเดือนได้จากผลลัพธ์, ตรวจยอดค้างจ่าย/จำนวนหมอที่ยังไม่ได้รับเงิน และจัดอันดับ Top ขยันสุด จากข้อมูลย้อนหลัง 15 วัน
  • Chief of Staff – คำสั่งงานค้างและคิวรันเคส: เพิ่มคำสั่งตรวจงานรออนุมัติ, สรุปงานค้างทั้งหมด, เคสรอ/ค้างตรวจ, เคสเกินเวลาที่กำหนด, คิวรันเคส, ปิด/ซ่อนรอบคิวรันเคส และกดเสร็จคิวรันเคสทั้งหมดผ่าน preview/confirm
  • Chief of Staff – ปุ่มลัดแบบติดดาว: เพิ่มปุ่มดาวใน Action Registry ด้านขวา ให้ผู้ใช้เลือกคำสั่งที่ใช้บ่อยมาแสดงเหนือช่องพิมพ์แชทได้เอง โดยซ่อนปุ่มลัดค่าเริ่มต้นทั้งหมดและจำรายการที่ติดดาวไว้ในเครื่องผู้ใช้
  • Chief of Staff – Popup รายละเอียดคำสั่ง: เปลี่ยนไอคอน i ใน Action Registry จาก tooltip ธรรมดาเป็น popup ของระบบ แสดงชื่อคำสั่ง รายละเอียด ประเภท Read/Confirm และตัวอย่างคำสั่งที่กดเติมลงช่องพิมพ์แชทได้ทันที
  • Chief of Staff – ประสบการณ์ช่องพิมพ์แชท: ปรับช่องพิมพ์ให้เห็นข้อความระหว่างพิมพ์ชัดเจน แยกสีเฉพาะ mention/ชื่อและคำสำคัญ ลดปัญหาสีซ้อน และเพิ่มปุ่มเคลียร์แชทใกล้ปุ่มซ่อนแถบขวา
V. 1.6.1 27 Jun 2026

Chief of Staff Command Center, Camp Injection Queue, Salary Payment Status, and Case Workflow Updates

FEATURE
  • Chief of Staff – แชทสั่งงานในเว็บ: เพิ่มหน้า Chief of Staff สำหรับถามข้อมูล วิเคราะห์ภาพรวม และสร้าง action preview จากข้อความธรรมชาติ พร้อมระบบแชทที่ไม่ refresh หน้า มีสถานะกำลังพิมพ์แบบจุด 3 จุด และตอบกลับแบบหน่วงสั้นให้ใช้งานลื่นขึ้น
  • Chief of Staff – Action Registry และ Confirm / Approval: เพิ่ม Action Registry แบบซ่อนได้/เลื่อนได้ พร้อมคำอธิบายผ่านไอคอน i และระบบยืนยันก่อนทำงานจริง รวมถึงส่งคำขออนุมัติสำหรับ action ที่ต้องใช้สิทธิ์สูง
  • Chief of Staff – สิทธิ์รายบุคคล: เพิ่มแท็บ Chief of Staff ใน permissionsManagement เพื่อกำหนดผู้ใช้งานรายบุคคลนอกเหนือจาก Admin/Director/Assistant และปรับปุ่มลอยให้แสดงตามสิทธิ์ที่ได้รับ
  • Chief of Staff – คำสั่งวิเคราะห์ระบบ: เพิ่มคำสั่งวิเคราะห์ภาพรวมวันนี้, งานค้างทั้งหมด, เคสค้างตรวจ, เงินเดือนยังไม่จ่าย, สรุปเวรวันนี้, สรุปคิวรันเคส, ใคร ว.11 / ว.12 อยู่บ้าง, ใครรันเคสอยู่ และ Analytics ช่วงเวลาคนเข้าเวรมากสุด
  • Chief of Staff – สีสถานะผลตรวจ: ปรับผลการตรวจสอบให้แยกสีอัตโนมัติ โดยรายการที่เสร็จ/ปกติเป็นสีเขียว, รายการที่ยังต้องจัดการเป็นสีแดง และรายการที่กำลังดำเนินการอยู่เป็นสีส้ม
  • Chief of Staff – คำสั่งแพทย์ด้วย @Mention: เพิ่ม autocomplete เมื่อพิมพ์ @ เพื่อค้นชื่อแพทย์และแนะนำคำสั่งใกล้เคียง เช่น เข้าเวรวันนี้, การเข้าเวรล่าสุด, ประวัติทั้งหมด, ตารางเงินเดือนล่าสุด, เคสล่าสุด, แต้มล่าสุด, ประวัติ ว.11/ว.12 และรันเคสล่าสุด
  • Chief of Staff – คำสั่งจัดการผู้เล่น: เพิ่มคำสั่งปรับยศพร้อมแสดงยศเดิมและตัวเลือกยศ, เพิ่มใบขับขี่ฮอร์, ปรับเงินต่อนาทีรายคน, ปรับเงินทั้งยศ, ปรับสถานะ Active / Non-Active และตรวจสอบเข้าเวรครบ 3 ชั่วโมง
  • Chief of Staff – คำสั่งเงินเดือน: เพิ่มคำสั่งเปลี่ยนสถานะเงินเดือนของแพทย์ที่แท็ก เช่น รับเงินเดือนล่าสุดแล้ว, รอรับเงินเดือน และเปลี่ยนสถานะเงินเดือน พร้อมคำแนะนำ pattern อัตโนมัติระหว่างพิมพ์
  • Chief of Staff – คำสั่ง Points: เพิ่มคำสั่งเพิ่ม/ลบ Points แบบกรอกจำนวนเอง เช่น "เพิ่มพ้อย @name <จำนวน>", "@name เพิ่มพ้อยให้ <จำนวน> พ้อย", "ลบพ้อย @name <จำนวน>" หรือ "@name ลบพ้อย <จำนวน> พ้อย" โดยแสดงแต้มเดิม/แต้มใหม่และบันทึกประวัติ points_history หลังยืนยัน
  • Chief of Staff – Autocomplete คำสั่ง Points: ปรับคำแนะนำเพิ่ม/ลบพ้อยให้ใช้จำนวนที่กรอกเอง ไม่ fix 500 และเมื่อพิมพ์จำนวนแล้วจะไม่แสดง autofill ซ้ำ เพื่อให้กด Enter ส่งข้อความได้ทันที
  • Chief of Staff – Top Ranking: เพิ่มคำสั่ง Top 1-10 ตามจำนวนที่ขอ สำหรับเวลาเวร, ตั๋วเคส, เข้าครบเวลาเวร และเคส/เคสร่วม โดยเลือกช่วงเดือนนี้ สัปดาห์ที่ หรือวันที่ได้
  • Chief of Staff – Force / Queue Actions: เพิ่มคำสั่ง force out หมอทั้งหมด และกดเสร็จคิวรันเคสทั้งหมด พร้อม preview และ confirm ก่อนทำงานจริง
  • Salary Management – สถานะการรับเงินเดือน: เพิ่มสถานะรายคนในรายงานเงินเดือนหลัง Final ให้เลือก รอรับเงินเดือน / จ่ายเงินเดือนแล้ว และบันทึกได้จากหน้ารายละเอียดรายงาน
  • My Salary Report – สถานะเงินเดือน: เพิ่มการแสดงสถานะ รอรับเงินเดือน / ได้รับเงินเดือนแล้ว ในหน้ารายงานเงินเดือนของแพทย์ พร้อมสีสถานะส้ม/เขียวให้ดูง่าย
  • Salary Management – ปรับตารางให้พอดีจอ: ปรับความกว้างและการจัดวางคอลัมน์ในตารางเงินเดือนให้ใช้งานบนหน้าจอเดสก์ท็อปได้พอดีขึ้น โดยยังคงข้อมูลสำคัญครบถ้วน
  • Case Review – ตรวจและจัดการเคส: แก้ปัญหามีเคสค้างแต่ไม่แสดงให้ตรวจ เพิ่มเมนูแก้ไขสถานะสำหรับ Admin/Assistant และเพิ่มการบันทึกเวลา Run Operator / คนช่วย / คนประกาศแบบนาทีอัตโนมัติเมื่อปิดรอบรันเคสและจ่ายโบนัส
  • Case Run – จัดการคิวรับเคส: เพิ่มปุ่มกดเสร็จคิวรับเคสทั้งหมด เพื่อปิดรายการผู้ต่อคิวในรอบ active ได้เร็วขึ้น
  • Case Run – สำรองชื่อในตาราง: เพิ่มระบบเก็บ snapshot เฉพาะช่องชื่อแพทย์และชื่อคู่ในตารางรันเคสเป็นระยะ เพื่อกู้ชื่อกลับมาอัตโนมัติเมื่อข้อมูลหายจากการ refresh, อัปโหลดไฟล์ หรือการแก้ไขหน้าเว็บ โดยไม่ดึงช่องอื่นกลับ และยังเคารพการล้าง/ลบแถวที่ผู้ใช้ตั้งใจทำ
  • Shift Attendance Info: ปรับ shiftAttendanceInfo และ myShiftAttendanceInfo ให้ดึงข้อมูลเคสใหม่เสมอเพื่อให้ข้อมูลตั๋วเคสและเคส/เคสร่วมเป็นปัจจุบัน
  • ชื่อหัวข้อเคสร่วม: ปรับชื่อจาก เคสร่วม (เพื่อนแท็ก) [Approved] เป็น เคส/เคสร่วม ให้ตรงกับข้อมูลปัจจุบันและการคำนวณเงินเดือน
  • ปลั๊กอิน Social Event: แก้ปัญหา JavaScript redeclare ตัวแปร badge และปรับการโหลด resource เพื่อลดปัญหา request ยาวเกินจนเจอ HTTP 414
  • System Logs และ User Logs: เพิ่ม label log สำหรับ action จาก Chief of Staff เช่น ปรับยศ, เพิ่มใบขับขี่ฮอร์, ปรับเงินต่อนาที, เพิ่ม Points, ปรับสถานะ, ขออนุมัติ และอนุมัติ action
  • Camp Injection – เปิดคิวและจัดการรอบฉีดยา: เพิ่มหน้าตั้งค่าคิวฉีดยาแคมป์สำหรับผู้ดูแลระบบและแพทย์เฉพาะทางในการสร้าง คัดลอก แก้ไข และลบรอบคิวฉีดยา โดยรองรับการกำหนดอัตราค่าจ้าง (ต่อชั่วโมง/ต่อนาที) และกำหนดจำนวนแพทย์สูงสุดในแต่ละรอบ
  • Camp Injection – โควต้าลงทะเบียน: เพิ่มการตั้งค่าจำกัดรอบการลงทะเบียนคิวฉีดยาแคมป์ของแพทย์ต่อวัน (Daily Limit) เพื่อความยืดหยุ่นในการลงคิวของแพทย์
  • Camp Injection – ตรวจสอบผังและสิทธิ์ผู้ดูแล: เพิ่มหน้าต่างดูผังตำแหน่งแพทย์ที่ลงทะเบียนในแต่ละรอบย่อย พร้อมระบบช่วยเหลือให้ Admin/Staff สามารถกดเลือกแพทย์เพื่อลงทะเบียนหรือยกเลิกคิวจองแทนแพทย์รายบุคคลได้
  • Camp Injection – จองคิวแดชบอร์ดแพทย์: เพิ่มตารางจองคิวฉีดยาแคมป์บนแดชบอร์ดของแพทย์ ให้แพทย์สามารถลงทะเบียนจองรอบและยกเลิกรายการด้วยตนเองผ่าน UI ที่อัปเดตแบบเรียลไทม์
  • Camp Injection – คำนวณรายได้เงินเดือน: เชื่อมโยงข้อมูลการลงทะเบียนคิวฉีดยาแคมป์เข้าสู่ระบบคำนวณเงินเดือนอัตโนมัติ โดยคิดเรทสะสมตามจริง (ชั่วโมง/นาที) พร้อมรายงานประวัติรายรับและยอดเงินเคลมในหน้า slip เงินเดือนของแพทย์และรายงานหลักของผู้บริหาร
  • Camp Injection – การปรับปรุงเงื่อนไขเวลา (Update): นำระบบล็อกห้ามลงทะเบียนหรือยกเลิกคิวล่วงหน้า 2 ชั่วโมงออก เพื่อให้แพทย์จองคิวล่วงหน้าของพรุ่งนี้หรืออนาคตได้ทันที และบล็อกการยกเลิกคิวเฉพาะเมื่ออยู่ในช่วงเวลาให้บริการจริงของรอบนั้นๆ เท่านั้น
  • Camp Injection – ซ่อนรอบที่สิ้นสุดและสถานะรอประกาศ (Update): ปรับปรุงการแสดงผลให้ซ่อนรอบคิวฉีดยาที่สิ้นสุดเวลาให้บริการแล้วโดยอัตโนมัติ พร้อมทั้งแสดงสถานะ 'รอประกาศ' ด้วยเอฟเฟกต์แอนิมชันกระพริบเรียบง่ายเมื่อยังไม่มีรอบเปิดให้บริการ
V. 1.5.11 26 Jun 2026

Cross-Day Surge, Salary Recalculation, and Client Info Logs

IMPROVEMENT
  • Event Settings – Surge Pricing / Happy Hour: รองรับการตั้งช่วงเวลาพิเศษแบบข้ามวัน เช่น 22:50 - 01:50 โดยระบบจะแยกช่วงปลายทางเป็นวันถัดไป แสดงป้ายข้ามวัน และนำรายการข้ามวันไปใช้กับการกรองวันที่ได้ถูกต้อง
  • Event Settings – แก้ไขรายการ Surge: เพิ่มปุ่มแก้ไขในรายการช่วง Surge Pricing / Happy Hour เพื่อโหลดข้อมูลเดิมกลับขึ้นฟอร์มและบันทึกปรับปรุงรายการเดิมได้
  • Dashboard Doctor – ช่วงเวลาพิเศษ: ปรับการแสดงผล Surge/Happy Hour ให้รองรับรอบข้ามวันหลังเที่ยงคืน พร้อมคำนวณเงินรางวัลรวมจากช่วงเวลาจริงได้ถูกต้อง
  • Salary Management – Update การคำนวณ: ปุ่ม Update การคำนวณจะดึงตั๋วเคสและเคส/เคสร่วมจากข้อมูลล่าสุดอีกครั้ง โดยตั๋วเคสมาจากเมนูแต้มตั๋วเคส ส่วนเคส/เคสร่วมมาจากเคสที่ส่งเองหรือถูกแท็กและผ่านการอนุมัติแล้ว
  • System Logs – Client Info: เพิ่มการเก็บข้อมูลหน้าใช้งาน, Board ID/ชื่อบอร์ด, ประเภทอุปกรณ์, Browser/OS, ขนาดหน้าจอ และแสดงเป็น popover สมูทที่ไอคอน i หลัง Details พร้อมแก้ปัญหา API header เมื่อข้อมูลมีภาษาไทย
  • Dashboard Admin และ User Management: เพิ่มเวลาเวรและเมนูเรียงลำดับในรายชื่อแพทย์ที่กำลังเข้าเวร พร้อมแยกยอดเคส/เคสร่วมและตั๋วเคสให้ดูชัดเจนขึ้น
V. 1.5.10 25 Jun 2026

Salary Surge Pricing and Special Time History

IMPROVEMENT
  • Salary Management – Surge Pricing / Happy Hour: ปรับการคำนวณโบนัสช่วงเวลาพิเศษจากรอบใน Event Settings ตามช่วงเวลาที่แพทย์เข้าเวรจริงแบบทับซ้อน (Overlap) และคิดเงินตามนาทีจริง เช่น ตั้ง 30,000/ชม. เข้า 10 นาที ได้ 5,000 บาท
  • Salary Management – ลืมลงเวลา: นำรายการลืมลงเวลาที่ได้รับอนุมัติแล้วเข้าคำนวณเงินเดือนเหมือนช่วงเข้าเวรจริง พร้อมตัดช่วงที่ทับกับเวรจริงออกเพื่อไม่ให้ชั่วโมงและเงินถูกบวกซ้ำ
  • Salary Management – ใบลา: ปรับให้ใบลาที่อนุมัติแล้วแสดงเป็นประวัติ/สรุปการลาเท่านั้น ไม่ถูกนำไปคิดเป็นชั่วโมงเงินเดือนหรือโบนัส Surge เพราะไม่ได้เป็นการเข้าเวรจริง
  • รายงานเงินเดือนแพทย์ (My Salary Report): เพิ่มส่วน ประวัติช่วงเวลาพิเศษ ในหน้ารายละเอียด แสดงรอบ Surge/Happy Hour, ช่วง Event, ช่วงที่เข้าเวรจริง, นาที, อัตรา/ชม. และเงินที่ได้รับ
  • รายงานเงินเดือน – รายละเอียดและ Export: แยกยอด Surge / Happy Hour ออกจากยอดตั๋วเคสและรวมเข้าโบนัสอัตโนมัติอย่างถูกต้อง พร้อมปรับ cache version ของโมดูลรายงานเงินเดือนให้โหลดไฟล์ล่าสุด
  • Dashboard Admin – Final Reports: ปรับกราฟสัดส่วนรายจ่ายและแนวโน้มการเงินให้ใช้ข้อมูลจริงจากรายงานเงินเดือน final แยกเป็นเงินเดือนปกติ, เงินช่วงเวลาพิเศษ, ค่าตั๋วเคส, ค่าเคสร่วม, เงินรันเคส, เงินอัดฉีด, เงินค่าตำแหน่ง, โบนัส Story และอื่นๆ
V. 1.5.9 24 Jun 2026

Multi-Board Case Run, Prioritized Queue Pool, and Enforcement Constraints

FEATURE
  • ระบบรันเคสหลายชุด (Multi-Board Case Run): ผู้ดูแลสามารถเปิดรอบการรันเคสได้หลายบอร์ดพร้อมกัน โดยกำหนดชื่อบอร์ด (เช่น นอกเมือง, ในเมือง) และแสดงผลในรูปแบบการ์ดบริหารจัดการแยกจากกัน
  • แดชบอร์ดแพทย์ – เลือกบอร์ดและระบบล็อกคิวป้องกันซ้ำซ้อน: เพิ่ม Dropdown ให้แพทย์เลือกดูข้อมูลและลงคิวในบอร์ดต่างๆ ได้ และระบบจะทำการล็อกปิดสิทธิ์การสลับบอร์ด/ซ่อนปุ่มลงทะเบียนทันทีหากแพทย์กำลังต่อคิวอยู่ในบอร์ดใดบอร์ดหนึ่ง เพื่อบังคับให้ลงคิวได้สูงสุดเพียง 1 บอร์ดพร้อมกัน
  • การจัดระเบียบรายชื่อผู้ต่อคิว (Queue Pool Prioritization): ดึงรายชื่อแพทย์ที่ยังไม่มีคิวในตารางหลักขึ้นไปอยู่บนสุดของรายชื่อผู้ต่อคิว พร้อมแสดงผลเป็นตัวอักษรสีเหลืองกระพริบและวงเล็บกำกับ (ยังไม่ได้ลงคิว) ส่วนแพทย์ที่มีคิวแล้วจะแสดงเป็นสีเขียวปกติ
  • ล้างช่องข้อมูลในลำดับตาราง (Clear Row Data): เพิ่มปุ่มล้างข้อมูลแถว (ไอคอนกากบาท) ในตารางรันเคส ช่วยให้สามารถล้างประวัติแพทย์คู่และฟิลด์เคสมีปัญหาในแถวนั้นๆ ให้ว่างเพื่อเตรียมจัดคิวใหม่ได้สะดวกยิ่งขึ้น
  • จัดระเบียบคิวหลังยกเลิก/บีบแถวว่าง (Queue Reordering): เพิ่มปุ่ม 'เรียงคิวใหม่' ช่วยให้ผู้ดูแลระบบยกคิวแพทย์จากแถวล่างขึ้นมาแทนที่แถวที่ว่างและรักษาลำดับคิวปัจจุบัน (Active Row Index) ให้อยู่กับตัวแพทย์คนเดิมอย่างถูกต้องอัตโนมัติ
  • ปรับสัดส่วนคอลัมน์เคสมีปัญหา: ปรับลดความกว้างของช่องเช็คบ็อกซ์แจ้งซัพ/ประกาศหา/เคลื่อนย้าย เพื่อขยายความกว้างช่องเบอร์โทรศัพท์ให้แสดงผลได้เต็มเบอร์และชัดเจนยิ่งขึ้น
  • บันทึกประวัติอัตโนมัติเมื่อออกเวร (Clock-out Auto History): เมื่อแพทย์กดออกเวร ระบบจะค้นหาและถอดรายชื่อแพทย์ออกจากคิวของทุก active sessions พร้อมกัน พร้อมคำนวณและบันทึกเวลาทำงานสะสมเข้าสู่ประวัติโดยอัตโนมัติ
V. 1.5.7 21 Jun 2026

Active Shift Duration Support & Leaderboard/Chart Boundary Splitting

IMPROVEMENT
  • การคำนวณเวลาเข้าเวร – รองรับเวรที่กำลังทำงาน (Active Shift): ระบบสามารถคำนวณและสะสมชั่วโมงงานสำหรับเวรที่กำลังทำงานอยู่ ณ ปัจจุบัน (ยังไม่ได้กดออกเวร) เข้าสู่ผลสรุปชั่วโมงทำงานวันนี้/สัปดาห์นี้/เดือนนี้ ได้แบบ Real-time
  • แดชบอร์ดแพทย์ – ปรับปรุงการตัดแบ่งชั่วโมงในชาร์ตและตารางผู้นำ: ปรับปรุงชาร์ตประวัติการทำงาน และตารางผู้นำ Top 10 แพทย์ที่เข้าเวร ให้แสดงผลโดยนำการตัดแบ่งเวลาเวรที่คาบเกี่ยวเที่ยงคืน (00:00) และเวลาของเวรที่กำลังทำงานอยู่มาคำนวณร่วมด้วยอย่างสมบูรณ์
  • แดชบอร์ดผู้ดูแล – ปรับปรุงกราฟประสิทธิภาพและผู้นำส่งเคส: เปลี่ยนการแสดงผลผู้นำเป็น 'Top 10 เคส แบบส่งเคส' และใช้สถิติจำนวนเคสที่ส่งจริงในกราฟเรดาร์แสดงประสิทธิภาพแพทย์
  • เมนูหลัก – เพิ่มแจ้งเตือนรอบการสอบและตรวจเคส: แสดงตัวเลขแจ้งเตือน (Notification Badges) สีแดงในรายการเมนู 'สอบเลื่อนขั้น' และ 'ตรวจเคส' เพื่อระบุจำนวนรายการที่รอดำเนินการอย่างชัดเจน
  • จัดการเงินเดือน – อัตราค่าตั๋วเริ่มต้นและชื่อหัวข้อ: ปรับเปลี่ยนค่าตั้งต้นของตั๋วเคสพิเศษในรอบบิลนี้เป็น 0 บาท และเปลี่ยนชื่อหัวข้อ 'เคสร่วม' เป็น 'เคส/เคสร่วม' และ 'เงินเคสร่วม' เป็น 'เงินเคสรวม'
  • ประวัติการทำงาน – วันเข้าเวรและการลาสาย: ปรับปรุงการนับจำนวนวันเข้าเวร (≥3ชม) ให้นับเฉพาะชั่วโมงเวรปกติของตนเองโดยไม่รวม OT และเพิ่มชั่วโมงคำนวณเวรอีก 1 ชั่วโมงสำหรับวันที่ได้รับอนุมัติใบลาประเภทสาย 1 ชั่วโมง พร้อมปุ่มตัว i ระบุคำอธิบายชัดเจน
  • ประวัติเงินเดือน – การจัดเรียงรายการตามรหัสงวด (ID): ปรับปรุงการแสดงผลรายการประวัติเงินเดือนในหน้ารายงานแพทย์ให้จัดเรียงตามรหัสงวด (ID) ล่าสุดเป็นหลัก (งวดใหม่สุดอยู่บนสุด) โดยไม่มีการแสดงผลคอลัมน์รหัสงวดบนตารางให้รกสายตา
  • ตรวจเคส – เพิ่มการ์ดสถิติตัวกรอง (Bento Filter Cards) และปรับปรุงกรอบสัดส่วน: ปรับปรุงส่วนตัวกรองในหน้าตรวจเคส โดยเปลี่ยนเป็นตัวการ์ดสถิติจำนวนเคส ทั้งหมด / รอตรวจ / อนุมัติแล้ว (สไตล์ Bento Grid) แสดงตัวเลขจำนวนเคสเรียลไทม์ และระบบสลับตัวกรองที่ไฮไลท์ขอบและสีพื้นหลังการ์ด พร้อมเพิ่มกรอบกล่อง (Frame) จัดกลุ่มแผงควบคุมและรายการส่งเคสให้แยกส่วนอย่างสวยงามเป็นสัดส่วนชัดเจน
  • ตรวจเคส – ระบบแนะนำรายชื่อแพทย์อัตโนมัติ (Autocomplete) และสืบค้นผ่านการแท็ก: ปรับปรุงช่องค้นหาผู้ส่งในหน้าตรวจเคสให้รองรับการสืบค้นข้อมูลเพิ่มเติมจากรายชื่อแพทย์ร่วมที่ถูกแท็ก (Tagged Users) และเพิ่มกล่องแนะนำรายชื่อแพทย์แนะนำในระบบแบบเรียลไทม์ขณะกรอก (Autocomplete Dropdown) เพื่อความสะดวกในการกรองผลลัพธ์
  • สอบเลื่อนขั้น – เพิ่มหัวข้อย่อยในเกณฑ์การประเมิน (Evaluation Criteria): พัฒนาระบบเกณฑ์การประเมินในเมนูผู้ดูแลสอบ ให้หัวข้อหลักแต่ละข้อสามารถเพิ่ม แก้ไข และจัดการหัวข้อย่อย (Sub-criteria) ได้เพื่อการลงคะแนนและประเมินผลที่สะดวกรวดเร็วและละเอียดยิ่งขึ้น
  • แก้ไขบั๊ก – ปัญหา JavaScript Syntax ในหน้าสอบ: แก้ไขข้อผิดพลาด JavaScript Syntax Error ในส่วนตรวจประเมินข้อสอบและการจัดการข้อมูลของแพทย์ (ตรวจพบ Uncaught SyntaxError ใน plugins/exam/assets/js/examinationAdmin.js และ examinationUser.js) ให้กลับมาทำงานได้เป็นปกติ
  • แก้ไขบั๊ก – ปัญหา 500 Internal Server Error: แก้ไขข้อผิดพลาด Fatal Error ใน api/users.php และ plugins/exam/api.php เกี่ยวกับฟังก์ชัน array_map() เมื่อมีผู้คุมสอบหรือผู้รับผิดชอบเพียงคนเดียว (รับค่าแบบไม่ใช่ Array) ให้ระบบรองรับการแปลงค่าแบบยืดหยุ่นโดยไม่ล่ม
  • การตรวจข้อสอบ – กรองข้อมูลจัดส่งผลคะแนน: ปรับปรุงแบบฟอร์มการส่งคะแนนในหน้าผู้ดูแลสอบ (examinationAdmin.js) ให้ส่งข้อมูลเฉพาะข้อสอบชุดที่ผู้ตรวจเป็นผู้รับผิดชอบโดยตรง เพื่อป้องกันข้อผิดพลาดการปฏิเสธสิทธิ์จากฝั่งหลังบ้าน (Backend Security Validation)
V. 1.5.6 21 Jun 2026

Simplified Exam Grading Flow & Confirmation Timestamps

FEATURE
  • รอบสอบ – รายละเอียดและสถิติ: ปรับปรุงการ์ดเลือกรอบการสอบในเมนูผู้ดูแลให้ดึงสถิติจำนวนเคส 'รอตรวจ', 'ผ่าน', 'ไม่ผ่าน' และ 'รวมทั้งหมด' มาแสดงผลทันทีแบบ Real-time โดยไม่ต้องคลิกเลือกก่อน
  • การตรวจข้อสอบ – หน้าจอตรวจเรียงแถว: เปลี่ยนหน้าจอตรวจข้อสอบแบบ Tab ในหน้ารวม เป็นหน้าจอรายการคำถามคำตอบเรียงลงมาตามแนวตั้งแบบหน้าเดียว (Continuous Scroll) พร้อม Sticky Header ระบุชุดข้อสอบและคะแนนสะสม เพื่อความสะดวก รวดเร็ว และไม่ต้องสลับหน้าไปมา
  • การตรวจข้อสอบ – ซ่อนปุ่มประเมินรายชุดข้อสอบในหน้ารวม: เปลี่ยนการบันทึกสถานะของชุดข้อสอบให้ประมวลผลผ่าน/ไม่ผ่าน (เกณฑ์ 60%) อัตโนมัติในฐานข้อมูลเมื่อมีการบันทึกคะแนน และเก็บปุ่มประเมินรายชุดข้อสอบแบบดั้งเดิมไว้เฉพาะในโหมดตรวจแยกประเมินรายชุดข้อสอบ
  • ประวัติผู้สอบ – คอลัมน์วันที่ส่งผล: เพิ่มการตรวจคิวรีเวลาส่งผลการประเมินที่ได้รับการยืนยัน (Confirmed At) และแสดงผลเวลาที่ผู้คุมสอบกดยืนยันการตรวจ (ส่งผล) เคียงคู่กับวันเวลาส่งข้อสอบปกติในตารางตรวจข้อสอบ
  • แดชบอร์ดแพทย์ – สรุปชั่วโมงเวร วันนี้/สัปดาห์นี้/เดือนนี้: ปรับปรุงการ์ดสรุปผลชั่วโมงรวมเข้าเวรให้แสดงผลสถิติทั้ง 3 ช่วงเวลาพร้อมกันแบบทันที เพื่อให้แพทย์มองเห็นข้อมูลได้ครบถ้วนโดยไม่ต้องกดเลือกตัวกรองสลับไปมา
  • การคำนวณเวลาเข้าเวร – ตัดแบ่งรอบเวลาเที่ยงคืน (00:00): พัฒนาระบบคำนวณเวลาเข้าเวรแบบคาบเกี่ยววัน โดยระบบจะแบ่งชั่วโมงเข้าเวรตรงจุดตัดเวลาเที่ยงคืน (00:00) และนับจำนวนชั่วโมงให้กับวันหรือช่วงการประเมินนั้นๆ อย่างถูกต้อง ไม่เกิดการสูญเสียชั่วโมงทำงาน
V. 1.5.5 20 Jun 2026

Suppress Generic Loading Indicators

IMPROVEMENT
  • Loading Indicator: ยกเลิกการแสดงผลหลอดโหลดสำหรับการนำเข้าข้อมูลหรือเปลี่ยนหน้าจอทั่วไป เพื่อไม่ให้รบกวนผู้ใช้งานบ่อยเกินไป โดยจะแสดงหลอดโหลดเฉพาะตอนอัปโหลดรูปภาพของ caseSubmit และ ว.12 เท่านั้น
V. 1.5.4 20 Jun 2026

Real-time Image Upload Progress Indicator Bars

IMPROVEMENT
  • Case Submission – หลอดโหลดแสดงความคืบหน้า: เพิ่มหน้าต่างแสดงเปอร์เซ็นต์ความคืบหน้าการอัปโหลดไฟล์รูปภาพหลักฐานส่งเคส (Real-time Upload Progress Bar) พร้อมระบบปิดการกดส่งซ้ำซ้อน
  • ว.12 Break Status – หลอดโหลดแสดงความคืบหน้า: เพิ่มหน้าต่างแสดงเปอร์เซ็นต์ความคืบหน้าการอัปโหลดรูปหลักฐานการขอพักเวร ว.12 ในหน้าต่างแจ้งเตือนทันทีหลังจากกดยืนยัน
V. 1.5.3 20 Jun 2026

My Salary Report & Break Time Evidence Uploads

IMPROVEMENT
  • My Salary Report – โบนัสรันเคส: เพิ่มการแสดงผลตาราง 'ประวัติโบนัสรันเคส' ในหน้ารายละเอียดรายงานเงินเดือน เพื่อให้แพทย์สามารถตรวจสอบเวลาการรันเคสและจำนวนโบนัสเงินสะสมได้อย่างชัดเจน
  • ว.12 Break Status – อัปโหลดหลักฐาน: เพิ่มฟังก์ชันการอัปโหลดรูปภาพหลักฐานประกอบการขอพักเวร (ว.12) โดยรองรับการเลือกไฟล์ปกติ, Drag and Drop ลากไฟล์มาวาง, และการใช้ Clipboard Paste (Ctrl + V) วางภาพจากหน้าต่างอื่นได้ทันทีพร้อมระบบแสดงภาพตัวอย่างย่อ
  • ว.12 Break Status – Discord Hook integration: ดึงลิงก์รูปภาพที่อัปโหลดขึ้น Discord CDN Webhook กลับมาบันทึกเก็บในฐานข้อมูล เพื่อแก้ไขปัญหาลิมิตการโหลดรูปภาพข้ามเครือข่าย/เครื่อง (Cross-Device/Localhost)
  • Summary Report – คอลัมน์หลักฐาน ว.12: เพิ่มคอลัมน์และปุ่มเปิดแสดงหลักฐานรูปภาพประกอบ ว.12 (จากลิงก์ Discord CDN) ในตารางตรวจสอบประวัติการพักเวร
  • Case Submission – หน่วงเวลาการกดส่ง: เพิ่มระบบหน่วงเวลา 1.5 วินาทีหลังจากกดปุ่มส่งเคสสำเร็จเพื่อป้องกันปัญหาระบบอัปโหลดไฟล์ซ้ำหรือกดย้ำสองครั้งโดยไม่ตั้งใจ
V. 1.5.2 20 Jun 2026

Summary Report: Break Time Tab, Discord Hooks & Salary Card Refinements

IMPROVEMENT
  • Summary Report – ว.11/12 Tab: เพิ่มแท็บ 'ตรวจเวลา ว.11/12' ในหน้า summaryReport สำหรับ admin/director/assistant ให้ตรวจสอบประวัติการพักเวร (ว.11/ว.12) ของแพทย์ได้ โดยสามารถกรองตามชื่อ, ประเภท (ว.11/ว.12), และช่วงวันที่ พร้อม Summary Cards แสดงจำนวนรายการ, จำนวนแต่ละประเภท, และรายการที่กำลังใช้งานอยู่
  • Summary Report – ว.11/12 Tab: ตารางแสดงข้อมูลชื่อแพทย์, ประเภท (badge สี), เวลาเริ่ม, เวลาสิ้นสุด, เวลารวม และรองรับ Pagination 20 รายการ/หน้า รายการที่ยังไม่สิ้นสุดจะแสดง badge 'กำลังใช้งาน' สีส้ม
  • Dashboard Admin – Break Time Navigation: รายชื่อแพทย์ในกล่อง 'เวลารวมพักเวรวันนี้ (ว.11 / ว.12)' สามารถคลิกได้ เมื่อคลิกจะนำทางไปยังหน้า summaryReport แท็บ 'ตรวจเวลา ว.11/12' โดย filter ข้อมูลเฉพาะแพทย์ที่เลือกของวันนั้น (00:00 – 23:59) โดยอัตโนมัติ
  • Popup Notify: ปรับเปลี่ยน Toast Notification ให้เป็น Custom Component แบบ Premium โดยสีเขียวสำหรับสำเร็จ, สีแดงสำหรับไม่สำเร็จ, พร้อม Progress Bar นับถอยหลัง และสามารถกดปิดได้
  • Left Menu UI: ปรับ UI เมนูซ้ายให้ระยะห่างระหว่างช่องลดลง, เปลี่ยนการ Highlight รายการที่เลือกอยู่เป็นแท่งสีแนวตั้งด้านซ้าย (1.5px) ไล่สีจาก 40% ไป 0% ไม่มีขอบมนทั้งปุ่มและแท่ง
  • Sakura Town & Salary Report Card: ปรับขนาดกล่อง Sakura Town ให้เท่ากับกล่อง 'รายงานเงินเดือน' และคงขนาดคงที่ตลอดเวลาไม่ขยายตามเนื้อหา
  • Sidebar Fix: แก้ไขปัญหา Sidebar ขยายตัวดันเนื้อหาขึ้นเมื่อเมนูเปิดเต็ม ปัจจุบัน Layout คงที่ตลอดเวลาไม่ว่า Sidebar จะพับหรือขยาย
  • User Management – Mobile UI: ซ่อน Username (ID) และ Discord ID ในหน้าจัดการผู้ใช้บนหน้าจอมือถือ (ขนาดน้อยกว่า 640px) เพื่อให้ตารางอ่านง่ายและไม่แน่นเกินไป โดยข้อมูลยังคงแสดงบน Tablet และ Desktop ตามปกติ
  • Bug Fix – LANG Object Null Reference: แก้ไขข้อผิดพลาด Uncaught TypeError: Cannot read properties of null (reading 'menu_luckyspin_settings') และ 'menu_admin_dashboard' โดยการปรับปรุงการจ่ายค่า LANG ของระบบใน index.php ให้เปลี่ยนเป็น {} หากไม่มีข้อมูลหรือแปลงค่าล้มเหลว พร้อมเพิ่มการตรวจสอบตัวแปรแบบปลอดภัย (Defensive Check) ในปลั๊กอินวงล้อนำโชค (Lucky Spin)
  • Discord Webhooks: ปรับปรุงรูปแบบข้อความการสลับสถานะ ว.11 / ว.12 ให้ตรงรูปแบบอื่น และปรับ Footer ท้ายข้อความของทุก Discord Hook ให้แสดงรูปแบบ 'Sakura Hospital - [วันที่] • วันนี้ เวลา [ชั่วโมง:นาที]' โดยถอดการแสดงผลวินาทีออกตามเงื่อนไขความต้องการ
  • My Salary Report: ปรับปรุงระบบประวัติการเข้าเวรให้แสดงผลเป็น 'เวลารวม' ของการปฏิบัติงานทั้งหมด โดยไม่แยกแสดงเวรปกติและเวรโอทีออกจากกัน
  • My Salary Report: ปรับดีไซน์ส่วน 'ประวัติเคส (ในงวดนี้)' ให้แสดงเป็นกล่องสรุปแบบการ์ด 2 ฝั่ง (เคสส่งตรวจ/เคสร่วม) สวยงามแบบเดียวกับหน้า Salary Management ของผู้บริหาร
  • Database Mockup: ดำเนินการ Mockup ข้อมูลตอกเวร (Shifts) ของแพทย์ทั้งหมดในช่วงวันที่ 15-20 มิถุนายน 2026 เรียบร้อยรวม 127 รายการ เพื่อจำลองการแสดงผลสลิปเงินเดือนและประวัติอย่างสมบูรณ์
V. 1.5.1 17 Jun 2026

Bug Fixes & UI Enhancements for On-Duty and Status Controls

IMPROVEMENT
  • Database Connectivity: เพิ่มระบบตรวจสอบและสร้างตาราง `user_licenses` โดยอัตโนมัติหากไม่มีอยู่ในระบบ เพื่อแก้ไขและป้องกันข้อผิดพลาด 500 Internal Server Error
  • Doctor Dashboard: ปรับปรุงกล่อง 'จัดการสถานะ' (ว.11 / ว.12) ให้แสดงผลอยู่เสมอในรูปแบบเบลอ (Glassmorphism Blur) พร้อมป้ายเตือน 'กรุณาเข้าเวรก่อนจัดการสถานะ' แทนการซ่อนการ์ดเพื่อสัดส่วนหน้าเว็บที่สวยงามยิ่งขึ้น
  • Force Clock-out System: อัปเดตระบบบังคับออกเวรและระบบตารางตั้งเวลาออกเวร (Cron Job) ให้ทำการรีเซ็ตสถานะของแพทย์ที่กำลังพักเวรกลับเป็นสถานะปกติ (Active) และปิดบันทึกการพักเวรโดยอัตโนมัติเมื่อออกจากเวร
V. 1.4.18 16 Jun 2026

Doctor Announcements System & Editor Enhancements

FEATURE
  • Doctor Announcements: พัฒนาระบบประกาศข่าวสารอัปเดตแพทย์ โดยแยกการแสดงผลตามสิทธิ์และจัดเก็บประวัติลงฐานข้อมูลอย่างเป็นระบบ
  • Announcements UI: ปรับปรุงรูปแบบรายการประกาศเป็นแบบ Bento Grid การ์ดพรีเมียม 4 คอลัมน์ รองรับเอฟเฟกต์จุดตารางด้านหลัง และไอคอนสัญลักษณ์ Feather ตามประเภทหมวดหมู่ประกาศ
  • Detail Modal: ออกแบบหน้าต่างแสดงเนื้อหารายละเอียดของประกาศให้มีโครงสร้างสวยงามคล้ายหน้าหนังสือคู่มือ พร้อมระบบขยายรูปภาพสไลด์โชว์ และปุ่มกดย้อนกลับแยกต่างหาก
  • Emoji Picker: ติดตั้งระบบเลือกอิโมจิสไตล์ iPhone (iOS-Style Emoji Keyboard) แยกตามประเภท พร้อมระบบค้นหาอัจฉริยะในหน้าฟอร์มสร้าง/แก้ไขประกาศ
  • Highlight & Links Toolbar: เพิ่มแถบปุ่มสีไฮไลท์ข้อความ (เขียว, เหลือง, แดง, น้ำเงิน, เทา) และการผูกลิงก์ระบบจากบาร์โดยตรง รวมถึงปรับปรุงคลิกขวาเป็นกล่องโต้ตอบของ SweetAlert2 แทน Browser Prompts ทั้งหมด
  • Typography & Scrollbar: ปรับสเปซการเลื่อน Scrollbar ของโมดอลไม่ให้เบียดชนกับปุ่มปิด และเรียกคืนขนาดตัวอักษรของหัวข้อ H1-H6 ให้ถูกต้องเหมาะสมตามระดับลำดับความสำคัญ
  • Category Filter Popup: เพิ่มแถบตัวกรองหมวดหมู่ (Category Filter) บนป๊อปอัปประกาศข่าวสาร ช่วยให้แพทย์สามารถคลิกแยกดูเฉพาะเรื่องที่ต้องการได้ทันที
  • Multi-Image Upload & URLs: ปรับปรุงระบบเพิ่มรูปภาพประกาศให้สามารถแนบได้ทีละหลายๆ รูป ทั้งรูปแบบลิงก์ URL และการอัปโหลดไฟล์ภาพจากเครื่องพร้อมกัน
  • Rich Text Features: เพิ่มเครื่องมือปรับขนาด ฟอนต์ สีตัวอักษร และการแทรกรูปภาพเข้าไปในเนื้อความประกอบประกาศ ณ จุดที่ต้องการโดยตรง
  • Nested Highlights: แก้ไขและปรับปรุงตัวถอดรหัสโค้ดพิเศษ (Regex Parser) ให้ประมวลผลข้อความไฮไลท์แบบวงเล็บซ้อนกันเช่น #[[ ข้อความ ]](สี) ให้แสดงผลได้อย่างถูกต้องสมบูรณ์
V. 1.4.17 15 Jun 2026

Salary Management & Case Awards Integration

FEATURE
  • Salary Management: ปรับปรุงการคำนวณค่าตั๋วพิเศษ โดยคำนวณรวมจากทั้งประวัติส่งเคสและประวัติที่กรอกเพิ่มคะแนนเคส (Case Awards) ตลอดทั้งรอบบิลโดยไม่ต้องมีตัวกรองวันที่
  • Salary Management: ปรับปรุงตารางผลการคำนวณโดยนำช่องกรอกโบนัสค่าตั๋วเคส (ข้างชั่วโมงรวม) และซ่อนคอลัมน์ระบบกาชา (Auto/Manual/รวม) เพื่อความคล่องตัวในการดูข้อมูล
  • My Salary Report: เพิ่มการแสดงผลยอดเงินรายรับของตนเองในหน้ารายชื่อแพทย์ (มุมบนขวา) เพื่อให้ตรวจสอบรายได้งวดนั้นๆ ได้ทันที
  • My Salary Report: ซ่อนตัวเลือกช่วงวันที่สำหรับตั๋วพิเศษ ให้แสดงเฉพาะยอดเงินสะสมจากอัตราค่าตั๋วในรอบบิลนั้นๆ
  • User Management: แก้ไขและปรับปรุงส่วนแก้ไขข้อมูลแพทย์ให้เป็นไปตามสิทธิ์ และบันทึกสังกัดยศรองได้อย่างถูกต้อง
V. 1.4.16 13 Jun 2026

Case Run & Dashboard: UI Improvements & Fixes

FEATURE
  • Case Run Bonus: เพิ่มฟังก์ชันกำหนดอัตราเงินได้ต่อนาทีแยกกันสำหรับคนรันเคส/คนประกาศ (Operator) และคนรับเคสปกติ
  • Case Run Bonus: แก้ไขปัญหาการกดเพิ่มรายชื่อแพทย์ไม่ได้ในหน้าโบนัสรันเคส
  • Case Run Bonus: ปรับปรุงการคำนวณและแสดงผลเงินโบนัสคนรัน/คนประกาศในทุกจุดที่เกี่ยวข้อง
  • Case Run: รวม Input อัตราเงินได้ต่อนาทีแสดงเรียงบน-ล่างพร้อมเส้นคั่น รองรับทศนิยม 2 ตำแหน่ง (step=0.01)
  • Case Run: ปรับสัดส่วนตาราง 'เคสมีปัญหา' Padding กว้างขึ้น Checkbox ใหญ่ขึ้น (w-5 h-5) พร้อม Transition Hover
  • Case Run: แก้ไขข้อความ 'ค่าปรับบิลลอยให้แจ้งส่วนกลางก่อนปรับ', 'อย่าลืม OVERLAY !!' และ typo 'ติ๊ก'
  • Dashboard Doctor: ปรับปรุง UI ปุ่ม 'ลงคิวรับเคส' เป็น Gradient พร้อม Hover Glow และ Shimmer Effect
  • Dashboard Doctor: เปลี่ยนแสดงสถานะเป็น 'แถวที่ X ในตารางรันเคส' หากถูกจัดลงตารางแล้ว หรือ 'โปรดแจ้งผู้รันเคสให้ลงคิว' หากยังไม่มี
V. 1.4.15 06 Jun 2026

Lucky Spin Dynamic Weight Scaling

IMPROVEMENT
  • Lucky Spin: เพิ่มระบบปรับอัตราน้ำหนักแบบไดนามิก (Dynamic Weight Scaling) ในลักษณะเรียลไทม์ตามจำนวนตัวเลือกที่ลดลง (เช่น มี 10 รายการ ตั้งไว้ 2% เมื่อสุ่มออกไปจนเหลือ 5 รายการ อัตราจะเพิ่มขึ้นเป็น 4% โดยอัตโนมัติ)
  • System Core: ปรับปรุงความถูกต้องของอัลกอริทึมการสุ่มระหว่างส่วนการแสดงผลของวงล้อ (Frontend Canvas) และการคำนวณผลรางวัล (Backend luckySpin API) ให้สอดคล้องกัน 100%
  • System Core: อัปเดตเลขเวอร์ชันสคริปต์ (Cache Busting) เพื่อบังคับให้เบราว์เซอร์ดาวน์โหลดไฟล์ตั้งค่าและฟังก์ชันการสุ่มล่าสุดทันที
V. 1.4.14 06 Jun 2026

Lucky Spin Doctor Avatar Integration

FEATURE
  • Lucky Spin: รองรับการแสดงผลรูปภาพโปรไฟล์แพทย์ (Doctor Avatar) ในระบบวงล้อเสนอชื่อแพทย์ (auto_doctor_names)
  • Lucky Spin: ดึงรูปโปรไฟล์แพทย์มาวาดลงในช่องแบ่งของวงล้อสุ่ม (Canvas segments) พร้อมจัดวางข้อความเยื้องเข้าหาศูนย์กลางเพื่อไม่ให้ซ้อนทับกัน
  • Lucky Spin: เพิ่มการแสดงผลรูปโปรไฟล์ของแพทย์ผู้โชคดีลงในหน้าต่างป๊อปอัปประกาศผล (Result Modal) โดยจัดวางในกรอบรูปพรีเมียมตามระดับความพิเศษของรางวัลแทนที่ไอคอนแบบเก่า
V. 1.4.13 05 Jun 2026

Comprehensive Thai Quote Fix & Cache Busting

BUGFIX
  • Bug Fix: แก้ไขข้อผิดพลาด Syntax Error สำหรับภาษาไทยทั้งหมดในระบบโดยการแปลง Single Quotes เป็น Double Quotes ในสคริปต์หน้าต่างๆ
  • System Core: ปรับเพิ่มเวอร์ชันเพื่อทำลายแคชของเบราว์เซอร์ (Cache Busting) บังคับเบราว์เซอร์ดาวน์โหลดสคริปต์แก้ไขไวยากรณ์เวอร์ชันล่าสุด
  • Redeem Points: ปรับปรุงหน้าประวัติการแลกของรางวัลให้แสดงผลเป็นตารางที่อ่านง่ายขึ้น พร้อมระบุผู้ดำเนินรายการและเวลาที่อนุมัติสำเร็จ
  • Redeem Points: เพิ่มการแสดงผลสิทธิ์คงเหลือรายบุคคล (Max/User) ของผู้ใช้ในหน้าแลกรางวัล (เช่น 1/3 ครั้ง)
  • Profile Management: เพิ่มปุ่มข้อมูล (ไอคอน i) ที่กล่อง My Points เพื่อแสดงประวัติการได้รับและใช้งานพ้อยท์ส่วนตัวผ่าน Popup
  • Bug Fix: แก้ไขฟังก์ชันการอนุมัติคำขอแลกพ้อยท์ขัดข้องเนื่องจากการเรียกใช้ฟังก์ชันส่งพารามิเตอร์ไม่ครบถ้วน (ArgumentCountError)
  • Doctor Dashboard: ปรับปรุงการแสดงผล TOP 10 เวลาเข้าเวรของแพทย์ใหม่ โดยแสดงภาพโปรไฟล์ ชื่อ และระยะเวลาที่เข้าเวรในรูปแบบ วัน/ชั่วโมง/นาที พร้อมดีไซน์อันดับ 1-3 อย่างพรีเมียม
V. 1.4.12 05 Jun 2026

Thai Translation Quote & Encoding Fix

BUGFIX
  • Bug Fix: แก้ไขข้อผิดพลาด Syntax Error จากการใช้เครื่องหมายคำพูด (Quotes) สำหรับภาษาไทยในไฟล์สคริปต์ของระบบ เพื่อเสถียรภาพในการใช้งาน
V. 1.4.11 05 Jun 2026

Module Cache Busting & Syntax Correction

IMPROVEMENT
  • System Core: เพิ่มระบบ Cache Busting สำหรับโมดูล JavaScript เพื่อบังคับเบราว์เซอร์ให้โหลดโค้ดเวอร์ชันล่าสุดโดยอัตโนมัติ
  • System Core: เพิ่มการกำหนดค่า .htaccess เพื่อยกเลิกการแคชไฟล์สคริปต์ในเบราว์เซอร์ผู้ใช้ ป้องกันปัญหาไฟล์ค้าง
  • Bug Fix: แก้ไขข้อผิดพลาดทางไวยากรณ์ (SyntaxError) ของภาษาไทย 'คน' ใน dashboardAdmin.js และ 'เพิ่มของรางวัล' ใน redeemSettings.js ให้กลับมาทำงานได้เป็นปกติ
  • Plugin Manager: กู้คืนระบบการโหลดสคริปต์ของปลั๊กอินวงล้อนำโชค (Lucky Spin) ในหน้าแรกของระบบ
V. 1.4.10 04 Jun 2026

Lucky Spin Reset Board & Strict History Filtering

FEATURE
  • Lucky Spin: เพิ่มปุ่ม 'รีเซ็ตกระดาน' (Reset Board) เพื่อรีเซ็ตจำนวนคงเหลือของไอเท็มทั้งหมดในวงล้อปัจจุบันกลับเป็นค่าตั้งต้น
  • Lucky Spin: เพิ่มการบันทึกประวัติ (Logs) การรีเซ็ตกระดานลงในประวัติการหมุน พร้อมเก็บชื่อผู้ทำรายการและเวลา
  • Lucky Spin: ปรับปรุงการแสดงผลประวัติการรีเซ็ตกระดานในตารางให้เด่นชัดด้วยไอคอนย้อนกลับสีแดง (rotate-ccw)
  • Lucky Spin: ปรับปรุงระบบตัวกรองประวัติให้แสดงผลเฉพาะประวัติการหมุนของวงล้อที่เลือกอยู่เท่านั้น เพื่อป้องกันข้อมูลปะปนกัน
V. 1.4.9 03 Jun 2026

Salary Report Label & Summary Update

IMPROVEMENT
  • Salary Management: เปลี่ยนชื่อรายการ โบนัส (กรอกเอง) เป็น ค่าตั๋วเคส ในตาราง สรุปรายบุคคล และ Export
  • Salary Management: เพิ่มการ์ด ค่าตั๋วเคส รวม และให้อัปเดตยอดแบบทันทีเมื่อแก้ไขค่าในรายงานร่าง
  • My Salary Report: ปรับการแสดงผลโบนัส manual เป็น ค่าตั๋วเคส โดยยังใช้ข้อมูลเดิมเพื่อไม่กระทบรายงานเก่า
  • Language: อัปเดตคำแปล bonus_manual เป็น ค่าตั๋วเคส / Case Ticket Fee
  • Bug Fix: แก้ไขปัญหาโครงสร้างไฟล์หลัก (main.js) ทำงานผิดพลาด (Unexpected end of input) และกู้คืนเมนูที่หายไป
  • Bug Fix: แก้ไขการแสดงผลข้อความภาษาไทย (Mojibake) ในระบบการแจ้งเตือน (Notifications) และหน้าต่างยืนยัน
  • Dashboard Admin: เพิ่มปุ่ม 'บังคับออกเวรทั้งหมด' เพื่อจบเวรผู้ปฏิบัติงานทั้งหมดในครั้งเดียว
  • Profile Management: เปลี่ยนการแสดงผลช่อง 'ชั่วโมง OT' เป็น 'จำนวนรวมเคสทั้งหมด' ของตนเอง
  • Profile Management: เปลี่ยนการแสดงผล 'กาชารวม' เป็น 'เงินจากค่าตั๋วเคสรวม' ของตนเอง
  • Bug Fix: แก้ไขปัญหาปุ่ม Hamburger Menu บนเวอร์ชันมือถือกดแล้วเมนูไม่แสดง (แก้การทำงานซ้อนทับกัน)
  • Bug Fix: แก้ไขชื่อหน้า ตรวจเคส/ส่งเคส และข้อความเมนูต่างๆ ที่กลายเป็นภาษาแปลกๆ (Mojibake) ให้กลับมาเป็นภาษาไทยที่ถูกต้อง
  • System Logs: เพิ่มการบันทึกประวัติ (Logs) การตั้งค่า Surge Pricing อย่างละเอียด (บันทึกผู้เพิ่ม/ลบ/แก้ไข, ฟิลด์ที่เปลี่ยนแปลงเทียบค่าเก่า-ใหม่)
  • Event Settings: เพิ่มปุ่ม 'ดูประวัติ' (Logs) รายบุคคลในตาราง Surge Pricing เพื่อดูเวลาและผู้ทำรายการล่าสุดในรูปแบบ Popup
  • Redeem Settings: เพิ่มคอลัมน์แสดง 'ผู้สร้าง' ในตารางการจัดการของรางวัล
  • Redeem Settings: เพิ่มระบบบันทึก Logs จัดการของรางวัลแบบละเอียด (การสร้าง, ประวัติการแก้ไขแต่ละฟิลด์, และการลบ) และส่งข้อมูลไปยัง System Logs
  • Case Submit: ปรับสิทธิ์การแสดงผลตารางประวัติส่งเคส ให้ทุกคนมองเห็นเฉพาะเคสของตนเองเท่านั้น (รวมถึงระดับ Admin)
V. 1.4.8 03 Jun 2026

System Settings, Login Background & Dashboard Fixes

IMPROVEMENT
  • System Settings: เปลี่ยนชื่อโปรแกรมให้ดึงจาก systemSettings และแสดงผลกับ sidebar, footer และหน้า Login
  • Appearance: เพิ่มการตั้งค่าสีหลักของระบบให้ปรับจาก Web Setting และแสดงผลตาม CSS variables จริง
  • Login Background: เพิ่มอัปโหลดรูปพื้นหลังหน้า Login จาก systemSettings พร้อมขนาดแนะนำ 3840*2160 px และบันทึกลง system_settings.login_background_config
  • Plugins UI: ปรับกล่องจัดการระบบเสริม (Plugins) ให้ระยะห่างและความสูงสม่ำเสมอ ไม่ชนกัน
  • Dark/Light Mode: ปรับสีที่ค้างเป็นโทนฟ้าและแก้ footer copyright ให้ใช้พื้นดำโปร่งตามโหมด พร้อมแก้ข้อความหายใน Light Mode
  • Automation: เพิ่มปุ่มเปิด/ปิดการบันทึก cron_log โดย Cron Job ยังทำงานตามปกติเมื่อปิดเฉพาะ log
  • Dashboard Admin: แก้การนับผู้เข้าเวรวันนี้กับกำลังปฏิบัติงาน และแก้ข้อความภาษาไทยที่แสดงผลผิด encoding
  • Case Workflow: ปรับแนวทางระบบเคสเป็นส่งจำนวนเคสและลิงก์ Google Drive จาก Doctor พร้อมหน้าอนุมัติสำหรับ Admin, Director และ Assistant
  • Stability: แก้ timezone ของฐานข้อมูลเป็น +07:00 เพื่อให้เวลาเข้าเวรตรงกับเวลาไทย
V. 1.4.7 03 Feb 2026

Points System & Plugin Management

MAJOR
  • Points System: เพิ่มระบบสะสมคะแนน (Points) ทดแทนบางส่วนของรางวัลที่เป็นตัวเงิน พร้อมประวัติแต้ม
  • Skill Matrix: ระบบประเมินทักษะแพทย์รูปแบบ Spider Chart พร้อมตัวช่วยคำนวณอัตโนมัติจากเวรและเคส
  • System Plugins: เพิ่มแท็บ 'Plugins' ในตั้งค่าระบบ สำหรับเปิด-ปิดโมดูล Skill Matrix, Achievements, Surge Pricing และ Event Activity
  • Plugin Visibility: ซ่อน UI, แบนเนอร์ และไอคอนที่เกี่ยวข้องอัตโนมัติเมื่อปิดการใช้งาน Plugin นั้นๆ
  • Achievements: ปรับปรุงระบบความสำเร็จให้เชื่อมโยงเทบคะแนน (Points) และบันทึกประวัติ
  • Events: เพิ่มการตั้งค่า Bonus Points สำหรับกิจกรรมพิเศษ
V. 1.4.5 21 Jan 2026

Comprehensive UI/UX Improvements

MAJOR
  • Dark Mode: เพิ่ม Theme สำหรับ SweetAlert2 popups และ Select dropdowns ให้รองรับ Dark Mode อย่างสมบูรณ์
  • Pagination: ปรับรูปแบบปุ่มเลือกหน้าเป็น << < 1 2 3 > >> ในหน้า Summary Report และ Approve Work
  • User Management: เพิ่มกราฟ Doughnut Chart แสดงสัดส่วนจำนวนแพทย์แยกตามยศ พร้อม Card Animation แบบใหม่
  • User Management: แก้ไขบั๊กแสดง 'undefined' ในประวัติการแก้ไขผู้ใช้
  • Event Activity: แก้ไขบั๊กการปั๊มตราที่แสดง Error เนื่องจากรูปแบบเวลาไม่ถูกต้อง
  • Micro-animations: เพิ่ม CSS Animation classes (bounce-in, slide-up, stagger-animation) สำหรับใช้ทั้งระบบ
  • Rank Simulation: เพิ่มโหมดจำลองยศสำหรับ Admin ทดสอบสิทธิ์การเข้าถึงหน้าต่างๆ ได้
  • Summary Report: ปรับแสดงเวลาในรายงานสรุปตามยศเป็นรูปแบบ HH:MM
V. 1.4.4 20 Jan 2026

UI Refinements & System Settings

IMPROVEMENT
  • เพิ่มแท็บ Setting System ใน System Settings สำหรับตั้งชื่อโปรแกรมและปรับสี UI หลัก (Color Picker + Hue/Saturation)
  • ปรับหน้า Summary Report แสดง 'ไม่มีคำขอที่รอดำเนินการ' เมื่อยังไม่เลือกตัวกรอง
  • ปรับ Checkbox UI ในหน้า Budget Management ให้เป็นแบบ Custom Styled
  • ปรับ Pagination ในหน้า User Management เป็นแบบ << < 1 2 3 > >>
  • ปรับการแสดงเวลาเวรใน User Management ให้เป็นข้อความเฉยๆ (ไม่มีกรอบ)
  • ปรับการแสดง Pay Rate ไม่ให้มีทศนิยม .00
  • แก้ไขการอัปโหลดรูปโปรไฟล์ให้ทำได้โดยไม่ต้องส่งข้อมูลยศ
  • แก้ไข session_start warning ในหน้า Changelog
V. 1.4.3 10 Jan 2025

Sidebar & UX Improvements

IMPROVEMENT
  • ปรับ Layout เมนูทางซ้าย (Sidebar) ให้ไอคอนและข้อความอยู่บรรทัดเดียวกัน (Flex-row)
  • ปรับขนาดไอคอนเมนูให้เล็กลง (18px) เพื่อความสมดุลและสวยงาม
  • แก้ไขบั๊กเมนูแจ้งเตือน (Notification Dropdown) ที่กดแล้วปิดเองทันที
  • เพิ่มลิงก์ที่เลขเวอร์ชัน (Footer) ให้สามารถกดดูประวัติการอัปเดตได้ (Changelog)
V. 1.4.2 08 Jan 2025

Modern UI & Dark Mode Polish

IMPROVEMENT
  • อัปเดตไฟล์ CSS (style.css) เป็นเวอร์ชันใหม่ รองรับ Dark Mode ที่สมบูรณ์ขึ้น
  • เพิ่ม Effect พื้นหลังจางๆ (Soft Highlight) เมื่อเอาเมาส์วางบนเมนู
  • ปรับปรุง Animation การเลื่อนเปิด/ปิดเมนูย่อย (Submenu) ให้ลื่นไหล
  • เพิ่มเส้นขอบ (Accent Border) ด้านซ้ายของเมนูที่กำลังใช้งานอยู่
V. 1.4.0 05 Jan 2025

Major System Update (Notification & Refactor)

MAJOR
  • เพิ่มระบบแจ้งเตือน (Notification System) แบบ Real-time (Polling)
  • เพิ่มปุ่มกระดิ่งแจ้งเตือนที่แถบด้านบน แสดงจุดแดงเมื่อมีรายการใหม่
  • Refactor โครงสร้าง API ใหม่ทั้งหมด แยกไฟล์เป็นหมวดหมู่ (api/auth.php, api/users.php, etc.)
  • เพิ่มระบบส่งแจ้งเตือนหา Admin อัตโนมัติเมื่อมีคำขอลา หรือลืมลงเวร
  • รวมเมนูตั้งค่า (Language, Theme, Admin Tools) ไว้ในปุ่มเดียว
V. 1.3.18 01 Jan 2025

Event System Enhancement

FEATURE
  • ปรับปรุงระบบกิจกรรม (Event) ให้คำนวณเวลางานได้แม่นยำขึ้น
  • รองรับการนับเวลางานจากทั้ง 'การเข้าเวรปกติ' และ 'ใบแจ้งลืมลงเวร' ที่อนุมัติแล้ว
  • เพิ่มการตรวจสอบช่วงเวลาทับซ้อน (Overlap Check) ก่อนสร้างกิจกรรมใหม่
  • แก้ไขการแสดงผลปฏิทินกิจกรรมให้รองรับสถานะ 'สำเร็จ', 'รอปั๊ม', 'พลาด' ได้ถูกต้อง
V. 1.3.17 27 Dec 2025

Update

MAJOR
  • UI/UX Overhaul: ปรับโฉมหน้าตาของระบบใหม่ทั้งหมด (Modern UI) ให้ดูทันสมัย สะอาดตา และใช้งานง่ายขึ้น (Login แบบ Glassmorphism, การจัดวางแบบ Card Layout, เมนูและ Tabs ดีไซน์ใหม่)
  • Salary Management: ปรับปรุงหน้ารายงานเงินเดือน แยกยอด Gacha (Auto/Manual) ชัดเจน, เพิ่มรายละเอียดใน Popup ของแพทย์ (ยอดสุทธิ, หักเงิน, หมายเหตุ), และปรับโหมด Read-only สำหรับรายงานที่ปิดงวดแล้ว
  • Approve Work: ปรับดีไซน์หน้าอนุมัติ แยก Tab และตารางให้ดูง่าย พร้อมปุ่ม Bulk Action ที่เด่นชัดขึ้น
  • Calendar Report: ปรับปรุงหน้าปฏิทินและ Timeline รายวันให้ดูง่ายขึ้น และเชื่อมโยงการคลิกแท่งเวลาไปยังหน้าแก้ไขข้อมูล (Summary Admin Edit) ได้ทันที
  • System Core: ขยายเวลา Session Login ให้ค้างอยู่ในระบบได้นานขึ้น (3 วัน) และเพิ่ม Animation การเปลี่ยนหน้าให้ดูลื่นไหล
V. 1.3.16 26 Dec 2025

Update

MINOR
  • Shift & Story Requests: ปรับปรุงหน้าขออนุมัติอัดฉีดและโบนัสสตอรี่ให้เป็นแบบ Modern Form พร้อมระบบเลือกรายชื่อแพทย์แบบใหม่
  • User Management: ปรับปรุงตารางจัดการผู้ใช้งาน เพิ่มการแสดงสถานะ (Active/Non-active) และการเรียงลำดับข้อมูล
  • Summary Report: ปรับปรุงหน้าสรุปผล แยกส่วน Admin Edit ออกเป็น Card ย่อยตามประเภท (Shift, Missed, Sales) เพื่อความสะดวกในการแก้ไข
V. 1.3.15 26 Dec 2025

Update

MINOR
  • Salary Management: ปรับปรุงระบบคำนวณเวรข้ามคืนให้แม่นยำขึ้น, แสดงเวลาที่เข้าไม่ครบ (Missed Time), เปลี่ยนรูปแบบเวลาเป็น HH:MM, และนำช่องกรอก เงินหัก/หมายเหตุ กลับมา
  • Dashboard (Admin & Doctor): ปรับกราฟ Top 10 ให้แสดงข้อมูลผลรวมจริง (ไม่ใช่ค่าเฉลี่ย), แก้ไข Tooltip และแกนเวลาเป็น HH:MM, Admin เพิ่มตัวกรอง Custom Range
  • User Management: ปรับดีไซน์ใหม่ (Modern UI), เพิ่มคอลัมน์ ID, และเพิ่มระบบ Sorting (คลิกหัวตารางเพื่อเรียงลำดับ)
  • Budget & Approve Work: เพิ่มระบบ Bulk Approval/Rejection (อนุมัติ/ปฏิเสธ แบบกลุ่ม) พร้อม Checkbox เลือกรายการ และเพิ่ม Pagination
  • Reports Integration: เชื่อมโยง Calendar Report (คลิกที่แท่งเวลา) ให้ส่งค่า Filter ไปเปิดหน้าแก้ไขข้อมูลใน Summary Report โดยอัตโนมัติ
  • My Salary Report: ปรับปรุง UI หน้ารายละเอียด และเพิ่มระบบ Pagination ในตารางประวัติ
V. 1.3.14 23 Dec 2025

Update

MAJOR
  • Dashboard (Analytics): ปรับปรุงกราฟ Performance Radar ให้เส้น Max (สีเขียว) คือค่าเฉลี่ยของ Top 10 และเส้น Avg (สีส้ม) คงที่เมื่อเปลี่ยนคน
  • Dashboard (Analytics): ปรับ Heatmap ให้แสดงเป็น 'ค่าเฉลี่ย' การเข้าเวร เพื่อความแม่นยำ และเพิ่มโหมดกราฟเส้น
  • Dashboard (Analytics): เพิ่มกราฟ Top 10 เวลาเข้าเวร
  • Dashboard (Analytics): กราฟการเงิน (Financial Trend) ดึงข้อมูลเฉพาะรายงานที่ ปิดงาน (Final) แล้วเท่านั้น และแสดงตามรอบบิลจริง
  • Dashboard (Overview): สรุปยศ (Rank) นับเฉพาะคนที่ เข้าเวรอยู่ (Active) และนำปุ่ม บังคับออกเวร กลับมา
  • Calendar Report: เพิ่ม Tab Timeline (รายวัน) แสดงกราฟแท่งช่วงเวลาเข้าเวร 24 ชม. พร้อมเส้นแดงบอกเวลาปัจจุบัน
  • System-wide: ปรับรูปแบบปีเป็น ค.ศ. (เช่น 2025) ทั้งระบบ
V. 1.3.13 09 Dec 2025

Update

PATCH
  • System Fix: แก้ไขปัญหาการบันทึกข้อมูล รายชื่อที่ซ่อนจากปฏิทิน (Calendar Hidden Users) ไม่ทำงาน
  • Permissions: อนุญาตให้ระดับ Director สามารถบันทึกการตั้งค่าระบบ (ในส่วนปฏิทิน) ได้
  • UI Update: ปรับรูปแบบปีจาก พ.ศ. (เช่น 2568) เป็น ค.ศ. (เช่น 2025) ในทุกหน้าของระบบ (Dashboard, Reports, History, Approvals)
V. 1.3.12 25 Nov 2025

Update

MINOR
  • Core Fix: แก้ไขสิทธิ์ (Permission) ให้ระดับ Doctor สามารถบันทึก/แก้ไข แจ้งลืมลงเวลา ได้
  • Admin Dashboard: เพิ่มยศหลังชื่อแพทย์ในรายการเข้าเวร และแสดงสีตามยศ
  • Admin Dashboard: เพิ่มสรุปจำนวนแพทย์ที่เข้าเวรแยกตามยศ
  • Admin Dashboard: ปรับรูปแบบเวลาในกราฟ Top 10 เป็น HH:MM
  • Budget Management: เพิ่มคอลัมน์ ช่วงเวลา ในตารางอนุมัติ (Story & Shift Incentive)
  • Missed Shift: ปรับฟอร์มแจ้งลืมลงเวลาให้ระบุ วัน-เวลา เริ่มต้น และ สิ้นสุด แยกกันได้ (รองรับข้ามวัน)
  • Summary Report (Admin): เพิ่มระบบ Pagination (แบ่งหน้า) ในตารางแก้ไขข้อมูล
V. 1.3.11 20 Nov 2025

Update

MAJOR
  • เพิ่มระบบ Setting Autofill สำหรับช่วยพิมพ์คำสั่งประกาศ (Story Commands)
  • เพิ่มปุ่ม Filter หมวดหมู่ ในหน้าคำสั่งประกาศ (Tab Use) เพื่อให้หาง่ายขึ้น
  • ปรับปรุงช่องกรอกข้อมูลให้แสดงเฉพาะตัวแปรที่เกี่ยวข้องกับหมวดหมู่ที่เลือก
  • เพิ่ม Datalist ในช่องกรอกตัวแปร ให้เลือกค่าจาก Autofill หรือพิมพ์เองได้
  • เพิ่มปุ่ม ดูรายชื่อแพทย์ (รูปตา) ในหน้าอนุมัติและประวัติ (Budget Management) เพื่อดูรายละเอียดก่อนอนุมัติ
  • เพิ่ม Badge แจ้งเตือน จำนวนคำขอที่รออนุมัติ ในเมนูจัดการโบนัส (Sidebar)
  • แก้ไขปัญหา Tailwind CSS fail to load โดยเพิ่มระบบตรวจสอบ (Polling)
  • แก้ไขปัญหา Clipboard API บน HTTP โดยเพิ่ม Fallback function
V. 1.3.10 15 Nov 2025

Update

MINOR
  • เพิ่มเมนู Story Commands สำหรับจัดการคำสั่งประกาศ
  • เพิ่มเมนู Story Incentive Request สำหรับขออนุมัติโบนัสสตอรี่
  • เพิ่มเมนู Shift Incentive Request สำหรับขออนุมัติอัดฉีดเวร
  • ปรับปรุงระบบจัดการสิทธิ์ (Roles) ให้รองรับเมนูใหม่

© 2026 Sakura Medical