ประวัติเวอร์ชัน

16

ประวัติเวอร์ชัน

สรุปสิ่งที่เปลี่ยนในแต่ละเวอร์ชัน ดึงมาจากบันทึกการเปลี่ยนแปลงจริงของทั้งสองผลิตภัณฑ์

AliciaAlicia+
เวอร์ชันล่าสุด2.7.83.1.9
วันที่ออก16 ส.ค. 256927 ส.ค. 2569
จำนวนเวอร์ชันสะสม78120
ตรวจและติดตั้งเวอร์ชันใหม่ได้ที่ ตั้งค่า › อัพเดทระบบ — สำรองข้อมูลก่อนอัพเดททุกครั้ง และเลือกช่วงเวลาที่คลินิกไม่ได้ให้บริการ

Alicia — 15 เวอร์ชันล่าสุด

2.7.8 16 ส.ค. 2569
อัพเดทระบบเคยโยนไฟล์ตั้งค่าการเชื่อมต่อฐานข้อมูลทิ้งทุกครั้ง — แพตช์หลายเวอร์ชันจึงไม่เคยถึงเครื่องลูกค้า
  • แก้ไข ตัวอัพเดทระบบโยนไฟล์ config/database.php ทิ้งทุกครั้งโดยไม่บอก — ไฟล์นี้ถูกใส่ไว้ในรายการ "ห้ามเขียนทับ" ถาวรตั้งแต่แรก ทั้งที่มันเป็นไฟล์โค้ด ไม่ใช่ไฟล์ตั้งค่าเฉพาะเครื่อง (รหัสเชื่อมต่อย้ายไปอยู่ที่ config/database.loc…
  • เพิ่ม หน้าอัพเดทระบบแสดงรายการ "ไฟล์ที่ถูกข้าม" พร้อมเหตุผทุกครั้งที่อัพเดท — เดิมเก็บรายการนี้ไว้แต่ไม่เคยแสดงออกมา การข้ามไฟล์จึงเงียบสนิทและไม่มีใครรู้ว่าการแก้ไขบางอย่างไม่ได้ถูกติดตั้งจริง
2.7.7 10 ส.ค. 2569
ปิดช่องโหว่ทันตแพทย์ได้สิทธิ์ผู้ดูแลระบบเต็ม + โน้ตที่พิมพ์ขึ้นบรรทัดใหม่แสดงผลถูกต้อง
  • แก้ไข ปิดช่องโหว่สิทธิ์: ทันตแพทย์ได้สิทธิ์ "ผู้ดูแลระบบ" เต็มระบบโดยไม่ตั้งใจ — ระบบมีตัวช่วยผูกบทบาทให้ผู้ใช้ที่ยังไม่ได้กำหนดบทบาท แต่ใช้เกณฑ์เก่า "ประเภทผู้ใช้ตั้งแต่ 2 ขึ้นไป = ผู้ดูแลระบบ" ทำให้ทันตแพทย์ (ประเภท 2) พอเข้…
  • ปรับปรุง ตัวช่วยผูกบทบาททำงานเฉพาะกับผู้ใช้ที่ "ยังไม่มีบทบาท" เท่านั้น และเพิ่มเงื่อนไขกันเขียนทับไว้ในคำสั่งอัปเดตอีกชั้น — ผู้ใช้ที่ผูกบทบาทไว้แล้ว (รวมถึงคนที่เคยถูกเขียนเป็นผู้ดูแลระบบไปก่อนหน้านี้) จะไม่ถูกแตะต้อง ต้องการเป…
  • แก้ไข บันทึกการรักษาที่พิมพ์ขึ้นบรรทัดใหม่ แล้วเวลาแสดงผลข้อความไหลมาต่อกันเป็นย่อหน้าเดียว (เช่น CC: / I-O: / Tx: ที่พิมพ์แยกบรรทัดกลับมาอยู่บรรทัดเดียวในประวัติการรักษา) — เกิดจากโน้ตเก็บการขึ้นบรรทัดเป็นอักขระขึ้นบรรทัดธรรม…
2.7.6 6 ส.ค. 2569
ค้างในห้องตรวจ: นับเฉพาะตั้งแต่วันที่กดเปิดสวิตช์ ของค้างเก่าไม่โผล่ขึ้นบอร์ด
  • ปรับปรุง สวิตช์ "ค้างผู้รับบริการไว้ในห้องตรวจ": ระบบจะจำวันที่กดเปิดไว้ แล้วค้างเฉพาะนัดตั้งแต่วันนั้นเป็นต้นไป — เดิม (v2.7.5) พอเปิดสวิตช์จะดึงนัดที่ค้างสถานะ "อยู่ในห้องตรวจ" ขึ้นมาทั้งหมดไม่จำกัดย้อนหลัง ทำให้รายการเก่าที่ค้…
  • เพิ่ม ตั้งค่า > การใช้งาน: ใต้สวิตช์จะขึ้นบรรทัด "เริ่มนับตั้งแต่ <วันที่>" ให้เห็นว่าระบบนับจากวันไหน อัปเดตทันทีที่กดเปิด/ปิด. กดปิดแล้วเปิดใหม่ = เริ่มนับวันใหม่ (ล้างของค้างที่สะสมไว้ทิ้ง) ส่วนการบันทึกตั้งค่าอื่น ๆ ซ้ำจะไ…
  • ปรับปรุง ตัวนับ "ในห้องตรวจ" บนแถบสถานะใช้เงื่อนไขวันที่ชุดเดียวกับบอร์ด ตัวเลขจึงตรงกับจำนวนที่เห็นเสมอ. คลินิกที่เปิดสวิตช์นี้ค้างไว้ตั้งแต่ v2.7.5 ระบบจะประทับวันที่อัพเดทเป็นวันเริ่มนับให้อัตโนมัติ ของค้างเก่าจึงหายไปจากบอร์ด…
2.7.5 2 ส.ค. 2569
สวิตช์ใหม่: ค้างผู้รับบริการไว้ในห้องตรวจจนกว่าจะส่งออก แม้ข้ามวัน (ค่าเริ่มต้น = ปิด)
  • เพิ่ม ตั้งค่า > การใช้งาน: เพิ่มสวิตช์ "ค้างผู้รับบริการไว้ในห้องตรวจ" (ค่าเริ่มต้น = ปิด). เมื่อเปิด ผู้รับบริการที่ถูกดึงเข้าห้องตรวจแล้วจะค้างอยู่บนบอร์ดห้องตรวจจนกว่าจะถูกส่งออก (ไปการเงิน / เสร็จสิ้น / ยกเลิก) ต่อให้วันนี…
  • เพิ่ม ห้องตรวจ: ผู้รับบริการที่ค้างข้ามวันจะมีป้ายสีส้มบอกวันที่นัดเดิมกำกับไว้ทั้งมุมมองการ์ดและมุมมองรายการ จะได้ไม่เข้าใจผิดว่าเป็นคิวของวันนี้
  • ปรับปรุง ห้องตรวจ: ตัวนับ "ในห้องตรวจ" บนแถบสถานะนับคนที่ค้างข้ามวันด้วยเมื่อเปิดสวิตช์นี้ เพื่อให้ตรงกับจำนวนที่เห็นบนบอร์ด ส่วนตัวนับ "รอเรียก" / "รอชำระ" / "เสร็จแล้ว" ยังยึดตามวันนี้เหมือนเดิม. คิว "รอเรียก" ก็ยังยึดตามวันนี้…
2.7.4 1 ส.ค. 2569
แก้ประวัติการรักษาไม่ขึ้นกับผู้รับบริการบางคน (โน้ตยาวเกินขีดจำกัดของ MySQL) + ดึงประวัติใหม่ให้เองเบื้องหลังเมื่อโหลดไม่สำเร็จ
  • แก้ไข ประวัติการรักษาไม่ขึ้นกับผู้รับบริการบางคน — เจอต้นเหตุจริงแล้ว: ค่า group_concat_max_len ของ MySQL ตั้งมาที่ 1024 ไบต์ ซึ่งสั้นเกินไปสำหรับคนไข้ที่มีโน้ตการรักษาเยอะ พอรวมโน้ตแล้วยาวเกิน 1024 ไบต์ MySQL จะตัดข้อมูลกลางค…
  • เพิ่ม ห้องตรวจ > ประวัติการรักษา: ถ้าดึงข้อมูลไม่สำเร็จ ระบบจะ "ลองใหม่ให้เองเบื้องหลัง" (2 → 4 → 8 → 15 → 30 วินาที) โดยไม่ค้างหน้าจอและไม่รบกวนการใช้งานส่วนอื่น ระหว่างนั้นจะขึ้นข้อความ "ดึงประวัติไม่สำเร็จ กำลังลองใหม่อัตโน…
  • ปรับปรุง ห้องตรวจ > ประวัติการรักษา: แยก "ไม่มีข้อมูล" ออกจาก "ดึงข้อมูลไม่สำเร็จ" — เดิมพอ fetch พังจะไปแสดงว่า "ยังไม่มีประวัติการรักษา" เหมือนกันหมด ทำให้เข้าใจผิดว่าคนไข้ไม่เคยมารักษา ตอนนี้ถ้าดึงไม่สำเร็จจะบอกตรง ๆ ว่า "โหลด…
2.7.3 29 ก.ค. 2569
เปิด persistent connection (ตามที่เซิร์ฟเวอร์แนะนำ) + ลดภาระฐานข้อมูล + หน้าอัพเดทระบบแจ้ง error ชัดขึ้น
  • ปรับปรุง การเชื่อมต่อฐานข้อมูล: เปิดใช้ persistent connection ตามที่ทีมเซิร์ฟเวอร์แนะนำ — ใช้การเชื่อมต่อเดิมซ้ำแทนการเชื่อมต่อใหม่ทุกครั้ง ช่วยลดอาการ "ต่อฐานข้อมูลไม่ติด / Operation not permitted" เวลามีคนใช้งานพร้อมกันเยอะ. ⚠️…
  • เพิ่ม รองรับ persistent connection อย่างปลอดภัย: เพราะการเชื่อมต่อถูกใช้ซ้ำข้าม request ระบบจะ (1) ล้างรายการค้าง (transaction) ที่หลงเหลือจากคำสั่งก่อนหน้าทิ้งก่อนเสมอ กันไม่ให้ไปถือล็อกต่อจนงานอื่นค้าง และ (2) ตั้งค่าโซนเวลา…
  • ลดภาระฐานข้อมูล: เดิมทุกครั้งที่เปิดหน้าเว็บ ระบบยิงคำสั่งเขียนตาราง system_info ทุก request (แย่งล็อกแถวเดิมตลอดเวลาโดยไม่จำเป็น) เปลี่ยนเป็นอ่านค่ามาเทียบก่อน แล้วเขียนเฉพาะตอนค่าไม่ตรงจริง ๆ
  • แก้ไข หน้าตั้งค่า > อัพเดทระบบ (modules/settings/system_update.php): แก้ข้อความ error ที่อ่านไม่รู้เรื่อง เช่น "เกิดข้อผิดพลาด: Unexpected token ไ ... is not valid JSON" — เกิดตอนที่เซิร์ฟเวอร์ตอบกลับมาไม่ใช่ JSON แล้วโค้ดเรีย…
2.7.2 28 ก.ค. 2569
ทนต่อฐานข้อมูลหลุดชั่วคราว: ลองเชื่อมต่อใหม่อัตโนมัติ + หน้าแจ้งเตือนใหม่
  • เพิ่ม ทนต่อฐานข้อมูลหลุดชั่วคราว + หน้าแจ้งเตือนใหม่ (config/database.php): เดิมถ้าเชื่อมต่อฐานข้อมูลไม่ได้แม้แค่วูบเดียว ระบบจะขึ้นข้อความเปล่า ๆ "ไม่สามารถเชื่อมต่อฐานข้อมูลได้..." บรรทัดเดียวแล้วจบ ผู้ใช้ต้องกด refresh เอง …
2.7.1 25 ก.ค. 2569
แจ้งเตือน LINE: เลื่อนนัดแล้วส่งเตือนก่อนวันนัดใหม่ + แสดงหมายเหตุจากห้องตรวจถึงการเงินในประวัติการนัดหมาย
  • เพิ่ม หน้าประวัติผู้รับบริการ แท็บ "นัดหมาย" (ตารางประวัติการนัดหมาย ใน modules/patients/view.php): แสดงหมายเหตุที่ห้องตรวจส่งถึงการเงิน (appointment.apm_cashier_note — บันทึกตอนห้องตรวจส่งคนไข้ไปการเงิน apm_status=3) ในคอลัมน…
  • แก้ไข ห้องตรวจ (ความเสถียรฐานข้อมูล): ปิดช่องโหว่ transaction ค้างตอนลบบันทึกการรักษา — เดิมไม่มีการดักข้อผิดพลาด ถ้าลบไม่สำเร็จ (เช่นชนคิวรี่อื่น/ตารางถูกล็อกชั่วคราว) รายการจะค้างถือล็อกไว้จนจบคำสั่ง และผู้ใช้เห็นหน้าจอค้าง/…
  • แก้ไข แจ้งเตือน LINE เมื่อเลื่อนนัด: คนไข้ที่ถูกเลื่อนนัดจะไม่ได้รับข้อความเตือนก่อนถึงวันนัดใหม่ — เพราะระบบจำว่า "เคยส่งเตือนไปแล้ว" (apm_noti_status) จากวันนัดเดิม เลยไม่ส่งซ้ำอีก. ตอนนี้เมื่อเลื่อนวัน/เวลานัด ระบบจะรีเซ็ตส…
2.7.0 25 ก.ค. 2569
ลบรูปผู้รับบริการได้ (แก้ปุ่มลบรูปไม่ขึ้น + กดลบแล้วรูปเดิมกลับมา)
  • แก้ไข แก้ไขข้อมูลผู้รับบริการ: ลบรูปไม่ได้ (เช่นสแกนบัตรผิดคน) — เจอ 2 ปัญหาซ้อนกัน: (1) ปุ่ม "ลบรูป" ไม่เคยแสดงเลยแม้มีรูปอยู่ (โค้ดสั่งโชว์ปุ่มด้วยค่าว่าง ซึ่งตกกลับไปใช้ CSS ที่ซ่อนปุ่มไว้) ตอนนี้ปุ่มขึ้นให้เห็นข้าง ๆ "ถ่าย…
2.6.9 24 ก.ค. 2569
แก้บักรายชื่อผู้รอชำระเงินหายไปบางราย (ใบเสร็จค้างที่ยังไม่ได้ออกเลขที่) + เอาคำนำหน้า "ทพ." ออกจากชื่อแพทย์ในเอกสาร + ใบเสร็จ EN: ชื่อคลินิก 2 ภาษา + ชื่อรายการภาษาอังกฤษ
  • เพิ่ม ใบเสร็จ A4/A5 (modules/billing/receipt.php): เพิ่มช่อง "ชื่อคลินิก (หัวใบเสร็จ)" แยก 2 ภาษาในหน้าตั้งค่า > ใบเสร็จ (ฝั่งไทย + English) — เดิมชื่อคลินิกบนหัวใบเสร็จดึงจาก clinic_title (ไทยอย่างเดียว) ตายตัว ทำให้ใบเสร็จภา…
  • แก้ไข ใบเสร็จภาษาอังกฤษ (receipt.php?lang=en): แสดงชื่อรายการเป็นภาษาอังกฤษแทนภาษาไทย — เดิมดึงแค่ items_list.item_name (ไทย) เสมอ. เปลี่ยนเป็นถ้าเป็นใบเสร็จภาษาอังกฤษให้ใช้ item_name_en (ถ้ามี) ถ้ารายการไหนยังไม่ได้ใส่ชื่ออัง…
  • ปรับปรุง เอกสาร/ใบเสร็จ/ใบรับรอง: เอาคำนำหน้า "ทพ." (และ "Dr.") ที่เติมให้อัตโนมัติออกจากชื่อทันตแพทย์ ให้แสดงตามชื่อที่บันทึกไว้จริง — (1) กล่องรายละเอียดใบเสร็จในหน้าแก้ไขใบเสร็จ (modules/billing/edit_receipt.php) และหน้ายกเลิก…
  • แก้ไข หน้าการเงิน แท็บ "รายชื่อผู้รอชำระเงิน" มีผู้รับบริการหายไปบางราย (เทียบระบบเดิมควรมี 7 ราย แต่แสดง 6) — สาเหตุ: เงื่อนไขกรอง "ยังไม่ได้ออกใบเสร็จ" ใช้ NOT EXISTS หาแถวใน finance_header ที่ผูกกับนัดหมายนั้นแบบไม่มีเงื่อน…
2.6.8 22 ก.ค. 2569
เอกสารประกอบการรักษา: จัดหมวดในแท็บ X-ray หน้าผู้รับบริการ + ปุ่มดูเอกสารในห้องตรวจ + แก้ปฏิทินนัดหมายว่างเปล่า
  • แก้ไข ปฏิทินนัดหมาย (modules/appointments/index.php มุมมองวัน): แก้บักปฏิทินแสดงว่างเปล่าทั้งที่หัวตารางนับนัดหมายได้ (เช่น "3 รายการ" + ตัวเลขบน header แพทย์ แต่ไม่มีบล็อกนัดในตาราง และแกนเวลาหดเหลือช่องเดียว เช่น 09:00-09:05…
  • ปรับปรุง หน้าประวัติผู้รับบริการ แท็บ "ไฟล์ X-ray" (modules/patients/view.php): จัดไฟล์เป็นหมวดหมู่ชัดเจน — ไฟล์ X-Ray / เอกสารการรักษา / อื่นๆ — พร้อมหัวข้อสี+ไอคอน+จำนวนของแต่ละหมวด (สไตล์เดียวกับแท็บเอกสารประกอบการรักษาในห้องต…
  • เพิ่ม ห้องตรวจ (modules/medical_records/treatment.php): เพิ่มปุ่ม "เอกสารประกอบการรักษา" (พร้อมจำนวน) ข้างปุ่ม X-Ray ที่หัวการ์ดข้อมูลการรักษา — แสดงเฉพาะเมื่อผู้รับบริการมีเอกสารประเภทที่ไม่ใช่ X-ray (treatdc_type != 2) กดแล้…
2.6.7 18 ก.ค. 2569
ตารางเวรแพทย์: สลับมุมมองรายสัปดาห์/รายเดือนได้ + แสดงหมายเหตุนัดหมายเต็ม
  • เพิ่ม ตารางเวรแพทย์ (modules/management/doctor_schedule.php): เพิ่มปุ่มสลับมุมมอง "รายสัปดาห์ / รายเดือน" ที่แถบเครื่องมือ (ข้างปุ่มเลื่อนวัน) — เดิมมีแค่มุมมองรายสัปดาห์ 7 วัน. มุมมองรายเดือนแสดงปฏิทินทั้งเดือน (จันทร์–อาทิตย…
  • ปรับปรุง แสดงหมายเหตุนัดหมายแบบเต็ม(ไม่ตัดด้วย ...) ใน 2 จุด: (1) รายการนัดหมายแบบลิสต์แยกตามแพทย์ (modules/appointments/index.php ?tab=list) เดิมตัดที่ 50 ตัวอักษร (2) ตารางประวัติการนัดหมายในหน้าผู้รับบริการ (modules/patients/v…
2.6.6 3 ก.ค. 2569
รายงานส่วนแบ่งทันตแพทย์: เพิ่มบรรทัดสรุปยอดรวมรายวัน + ตัวอ่านบัตรประชาชนในหน้าแก้ไขผู้ป่วย/เพิ่มนัดหมาย/หน้าหลัก + แก้บัก LINE OA
  • เพิ่ม รายงานส่วนแบ่งทันตแพทย์ (modules/reports/doctor_share.php): เพิ่มบรรทัด "รวม + วันที่" แสดงยอดรวมส่วนแบ่งของแต่ละวันแยกจากยอดรวมทั้งหมดของแพทย์ — แสดงเฉพาะกรณีแพทย์คนนั้นมีข้อมูลมากกว่า 1 วันในช่วงที่เลือก (เลือกวันเดียว…
  • เพิ่ม ตัวอ่านบัตรประชาชน (Thai ID card reader) เพิ่มใน 2 จุดใหม่ — พอร์ตมาจาก alicia_plus ที่มีอยู่แล้ว: (1) หน้าแก้ไขประวัติผู้ป่วย (modules/patients/add.php โหมดแก้ไข) กรอกอัตโนมัติทั้งคำนำหน้า/ชื่อ/นามสกุล/ชื่อกลาง/เพศ/วันเ…
  • เพิ่ม ปุ่ม "อ่านบัตรประชาชน" ใหม่ในหน้าหลัก (modules/dashboard/index.php sidebar — วางไว้บนสุด ก่อนปุ่ม "เพิ่มผู้รับบริการใหม่", ไอคอน id-card) — กดแล้วอ่านบัตรทันทีโดยไม่ต้องเปิด modal อื่นก่อน จากนั้นค้นหาในระบบด้วยเลขบัตรปร…
  • แก้ไข แก้บักกล่อง "เครื่องอ่านบัตรประชาชน — คู่มือ & แก้ปัญหา" (แท็บ "กรณีเว็บ HTTPS") เด้งขึ้นมาเองซ้ำๆ ในโมดัลเพิ่มผู้รับบริการใหม่ (modules/patients/_modal_new_patient.php) — เดิมเวลาสแกนหาเครื่องอ่านบัตรไม่เจอบนเว็บ HTTPS …
  • แก้ไข แก้บัก X-Ray/เอกสารประกอบการรักษาอัพโหลดแล้วไม่เห็นรูป thumbnail (โมดัล "X-Ray ทั้งหมด" + preview) — สาเหตุคือ query โหลด $allXrays ในหน้ารักษา (modules/medical_records/treatment.php) ไม่ได้ SELECT td.pat_key มาด้วย ทำให…
  • แก้ไข แก้บักแชทระหว่างห้องมีเสียงเตือนดังเองซ้ำๆ บนมือถือทั้งที่ไม่มีข้อความใหม่ (เคยแก้ด้วย cache-busting ใน v ก่อนหน้าแต่ยังไม่หาย) — รากปัญหาที่แท้จริงคือ checkUnread() ใน includes/chat_widget.php ดังเสียงเมื่อ "จำนวน unrea…
  • แก้ไข ระบบ LINE OA แก้บัก "ยืนยัน/เลื่อน/ยกเลิกนัดหมาย" จากปุ่มใน LINE ไม่ทำงาน — เทียบกับ alicia_plus แล้วพบว่า api/line_callback.php เขียนค่าลงคอลัมน์ appointment_flag ซึ่งไม่มีจริง (เป็นชื่อตารางรายการสถานะ ไม่ใช่คอลัมน์ในต…
2.6.5 1 ก.ค. 2569
ส่วนแบ่งทันตแพทย์: รายรับ/รายจ่ายเพิ่มเติมผูกกับวันที่จริง (แก้บักดูเหมือนข้อมูลหาย)
  • แก้ไข ส่วนแบ่งทันตแพทย์ (จัดการ > ส่วนแบ่งทันตแพทย์ + รายงานสรุปส่วนแบ่ง): แก้บัก "รายรับเพิ่มเติม/รายจ่าย" ดูเหมือนหายไปเมื่อเข้าดูข้ามเดือน — เดิมรายการผูกกับข้อความช่วงวันที่ที่กรอกไว้ตอนเพิ่ม (dci_period/dco_period แบบ "จา…
  • เพิ่ม โมดัล "เพิ่มรายรับ"/"เพิ่มรายจ่าย" (จัดการ > ส่วนแบ่งทันตแพทย์): เพิ่มช่องระบุวันที่ (ค่าเริ่มต้น = วันนี้ แก้ไขได้) สำหรับกรณีคีย์ย้อนหลัง + แสดงคอลัมน์วันที่ในตารางรายรับ/รายจ่ายแต่ละแพทย์. เพิ่ม i18n key mgmt.dc.lbl_i…
  • แก้ไข ปุ่ม Excel ในทุกหน้ารายงาน (18 จุด): แก้บักเปิดไฟล์แล้วข้อมูลไปกองอยู่คอลัมน์ A ช่องเดียวไม่แยกคอลัมน์ — ไฟล์เดิมเป็นข้อความคั่นด้วย tab แต่ตั้งชื่อไฟล์ .xls และ Content-Type แบบ Excel เก่า (application/vnd.ms-excel) หลอ…
2.6.4 29 มิ.ย. 2569
แก้ไขใบเสร็จ: แก้ยอดชำระหลายช่องทาง (breakdown) แล้วกดบันทึกไม่ได้/ไม่บันทึก + หน้าหลัก: บังคับบันทึกสัญญาณชีพก่อนเข้าห้องตรวจ + รายงานส่วนแบ่งทันตแพทย์เพิ่มรายรับ/รายจ่าย/ยอดสุทธิ
  • เพิ่ม รายงานสรุปส่วนแบ่งทันตแพทย์ (modules/reports/doctor_share_summary.php — โหมดสรุปแยกตามแพทย์): เพิ่มคอลัมน์ "รายรับเพิ่มเติม" + "รายจ่าย" + "ยอดสุทธิ" ต่อแพทย์ พร้อมยอดรวมทั้งสิ้นของแต่ละคอลัมน์ (เดิมมีแค่ส่วนแบ่งจากการรั…
  • เพิ่ม หน้าหลัก (dashboard): ปุ่ม "ห้องตรวจ" — ถ้าผู้รับบริการคนนั้นยังไม่ได้บันทึกสัญญาณชีพ (vital signs) ระบบจะเปิดกล่องบันทึกสัญญาณชีพให้กรอกก่อน (มีข้อความแจ้ง "กรุณาบันทึกสัญญาณชีพก่อนเข้าห้องตรวจ") พอบันทึกเสร็จจะพาเข้าห้…
  • แก้ไข หน้าแก้ไขใบเสร็จ (modules/billing/edit_receipt.php): เมื่อใบเสร็จเป็น "ชำระหลายช่องทาง" (type 6) อยู่แล้ว แล้วแก้เฉพาะยอดแต่ละช่องทาง (เงินสด/บัตร/โอน/ประกัน/ค้างชำระ) ในกล่อง "เปลี่ยนช่องทางชำระเงิน" — ปุ่มบันทึกหลักไม่…

Alicia+ — 15 เวอร์ชันล่าสุด

3.1.9 27 ส.ค. 2569
อยู่ระหว่างพัฒนา
3.1.8 19 ส.ค. 2569
นำเข้าสินค้าคลังกลางจาก Excel + สิทธิ์แก้ใบเสร็จเฉพาะวันนี้แก้ส่วนแบ่งได้
  • เพิ่ม สินค้าคลังกลาง: เพิ่มปุ่ม "นำเข้าจาก Excel" — อัปโหลดไฟล์รายชื่อสินค้า (.xlsx หรือ .csv) แล้วสร้างสินค้าทีเดียวหลายร้อยรายการ ไม่ต้องคีย์ทีละตัว ระบบจับคู่คอลัมน์จากชื่อหัวตาราง (รหัสสินค้า/ชื่อสินค้า/หน่วย/ราคาต้นทุน/รา…
  • เพิ่ม หน้านำเข้ามีขั้นตอนดูตัวอย่างก่อนบันทึกเสมอ บอกทีละบรรทัดว่ารายการไหนจะ "เพิ่มใหม่" "อัปเดตของเดิม" (รหัสซ้ำ) หรือ "ข้าม" พร้อมเหตุผล เช่นไม่มีชื่อสินค้า หรือรหัสซ้ำกันเองในไฟล์ และเลือกได้ว่ารายการที่รหัสซ้ำจะให้อัปเดตท…
  • เพิ่ม การนำเข้าไม่แตะสต๊อก — สินค้าใหม่เริ่มที่ 0 และสินค้าเดิมที่ถูกอัปเดตยอดคงเหลือไม่เปลี่ยน เพราะการรับสต๊อกต้องระบุจำนวน/ผู้จัดจำหน่าย/วันหมดอายุต่อ lot ให้ไปทำที่หน้า "นำเข้า (lot)" เหมือนเดิม ตอนอัปเดตของเดิม ช่องที่เว้…
  • เพิ่ม ใช้สิทธิ์ "แก้ไข" ของเมนูขายสินค้าคลังกลาง — คนที่ดูได้อย่างเดียวจะไม่เห็นปุ่มและเข้าหน้านี้ไม่ได้
  • ปรับปรุง สิทธิ์ "แก้ไขใบเสร็จเฉพาะวันนี้" แก้ส่วนแบ่งทันตแพทย์ของใบเสร็จวันนั้น ๆ ได้แล้ว (เพิ่ม/แก้/ลบ) เดิมแท็บส่วนแบ่งถูกซ่อนไว้ทั้งหมดเพราะถือเป็นงานผู้จัดการ ทำให้พนักงานที่แก้ใบเสร็จวันนี้ได้ กลับแก้ส่วนแบ่งที่คีย์ผิดในวันเ…
3.1.7 19 ส.ค. 2569
แก้รายงานส่วนแบ่งทันตแพทย์ ช่องรวมราคาไม่คูณจำนวน + ส่วนแบ่งแบบบาทคิดตรงกันทุกหน้า
  • แก้ไข ส่วนแบ่งทันตแพทย์แบบ "บาท" (จำนวนเงินคงที่) คิดไม่ตรงกันระหว่างหน้า — หน้าห้องตรวจให้ยอดเดียวไม่คูณจำนวน เช่นตั้งไว้ 200 บาท ทำ 3 ชิ้นก็ได้ 200 ขณะที่หน้าการเงินและหน้าแก้ไขใบเสร็จคูณจำนวนให้ (ได้ 600) ปรับให้หน้าห้องตรว…
  • แก้ไข รายงานส่วนแบ่งทันตแพทย์: ช่อง "รวมราคา" ของรายการที่มีจำนวนมากกว่า 1 แสดงยอดขาด — โชว์ราคาต่อหน่วยแทนที่จะเป็นราคาคูณจำนวน เช่น ติด Bracket 2 ชิ้น ชิ้นละ 300 โชว์ 300 ทั้งที่ต้องเป็น 600 ทำให้ยอดรวมราคาของหมอแต่ละคนต่ำกว…
  • แก้ไข ต้นเหตุ: หน้าการเงินบันทึกราคาต่อหน่วยลงช่องที่รายงานเอาไปใช้เป็นยอดรวม ขณะที่หน้าห้องตรวจและหน้าแก้ไขใบเสร็จบันทึกเป็นยอดรวมทั้งบรรทัดถูกต้องอยู่แล้ว จึงเจอเฉพาะรายการที่คีย์จากหน้าการเงินและมีจำนวนมากกว่า 1
  • แก้ไข เพิ่ม migration ไล่แก้ข้อมูลเดิมย้อนหลังให้อัตโนมัติตอนอัปเดต — คำนวณยอดรวมใหม่จากจำนวนคูณราคาต่อหน่วย เฉพาะแถวที่บันทึกผิดจริงเท่านั้น (จำนวนมากกว่า 1 และค่าที่เก็บอยู่เท่ากับราคาต่อหน่วยพอดี) ไม่แตะแถวที่ถูกอยู่แล้ว แล…
3.1.6 16 ส.ค. 2569
อัพเดทระบบเคยโยนไฟล์ตั้งค่าการเชื่อมต่อฐานข้อมูลทิ้งทุกครั้ง — แพตช์หลายเวอร์ชัน
  • แก้ไข ตัวอัพเดทระบบโยนไฟล์ config/database.php ทิ้งทุกครั้งโดยไม่บอก — ไฟล์นี้ถูกใส่ไว้ในรายการ "ห้ามเขียนทับ" ถาวรตั้งแต่แรก ทั้งที่มันเป็นไฟล์โค้ด ไม่ใช่ไฟล์ตั้งค่าเฉพาะเครื่อง (รหัสเชื่อมต่อย้ายไปอยู่ที่ config/database.loc…
  • เพิ่ม หน้าอัพเดทระบบแสดงรายการ "ไฟล์ที่ถูกข้าม" พร้อมเหตุผทุกครั้งที่อัพเดท — เดิมเก็บรายการนี้ไว้แต่ไม่เคยแสดงออกมา การข้ามไฟล์จึงเงียบสนิทและไม่มีใครรู้ว่าการแก้ไขบางอย่างไม่ได้ถูกติดตั้งจริง
3.1.5 9 ส.ค. 2569
เพิ่มปุ่มลบประวัติผู้รับบริการ (ซ่อน ไม่ได้ลบข้อมูลจริง)
  • เพิ่ม เพิ่มปุ่ม "ลบประวัติ" ในหน้าแก้ไขข้อมูลผู้รับบริการ — เป็นการลบแบบซ่อน ไม่ได้ลบข้อมูลออกจากระบบจริง (ตั้งสถานะเป็น 2 แบบเดียวกับตอนรวมประวัติซ้ำ) คนไข้จะไม่ขึ้นในรายชื่อ การค้นหา แดชบอร์ด รายงานคนไข้ใหม่ และการแจ้งเตือน …
  • เพิ่ม ปุ่มลบประวัติมีหน้าต่างยืนยันก่อน แสดงชื่อและ CN ของคนไข้ให้เห็นชัดกันกดผิดคน และบันทึกลงประวัติการใช้งานว่าใครเป็นคนลบ
  • เพิ่ม ปุ่มลบประวัติขึ้นเฉพาะผู้ที่ได้รับสิทธิ์ "ลบ" ของเมนูผู้รับบริการเท่านั้น (ตั้งได้ในหน้าจัดการผู้ใช้ — ปกติพนักงานทั่วไปจะไม่ได้สิทธิ์นี้) และฝั่งเซิร์ฟเวอร์ตรวจซ้ำอีกชั้น ต่อให้ยิงคำสั่งตรงมาก็ลบไม่ได้ถ้าไม่มีสิทธิ์
3.1.4 8 ส.ค. 2569
เปิด/พิมพ์ใบเสร็จเก่าที่ถูกย้ายไปเก็บถาวรได้แล้ว (เดิมขึ้น Not found)
  • แก้ไข แก้ปัญหากดพิมพ์ใบเสร็จเก่าแล้วขึ้น "Not found" ทั้งที่ข้อมูลยังอยู่ครบ — ใบเสร็จที่ระบบย้ายไปเก็บถาวรแล้ว หน้าพิมพ์ยังค้นหาจากตารางปัจจุบันอย่างเดียว ตอนนี้ถ้าไม่เจอในตารางปัจจุบันจะไปค้นในตารางเก็บถาวรให้อัตโนมัติ (ใบเส…
  • แก้ไข ใบเสร็จเก่าที่เปิดจากตารางเก็บถาวร ดึงรายการรักษามาแสดงครบถ้วนด้วย (ถ้าดึงจากตารางปัจจุบันอย่างเดียวจะได้ใบเสร็จเปล่าไม่มีรายการ)
  • แก้ไข แก้ปัญหาโครงสร้างตารางเก็บถาวรไม่ตรงกับตารางปัจจุบัน — ตารางหลักมีการเพิ่มคอลัมน์ใหม่ตามเวลา แต่ตารางเก็บถาวรสร้างไว้ตั้งแต่ก่อนหน้า (เช่น treatments_expense มี user_key แต่ฝั่งเก็บถาวรไม่มี) ทำให้ทั้ง "การย้ายข้อมูลเข้า…
  • ทำให้การอ่านข้อมูลแบบรวมตารางปัจจุบัน+ตารางเก็บถาวร ทนต่อคอลัมน์ไม่ตรงกัน คอลัมน์ที่ฝั่งเก็บถาวรไม่มีจะแสดงเป็นค่าว่างแทนที่จะทำให้ทั้งหน้าพัง — เครื่องที่ยังไม่ได้รัน migration ก็เปิดใบเสร็จเก่าได้ทันที
3.1.3 6 ส.ค. 2569
แก้สต๊อกยาเด้งกลับ/งอกสองเท่า หลังตัดจำหน่ายและโอนคลัง
  • แก้ไข แก้ต้นตอ "สต๊อกยาไม่ตรงกับประวัติ" — หน้าตัดจำหน่ายยา (WOF) และหน้าโอนคลังฝั่งจ่ายออก (TRF) บันทึกจำนวนลงประวัติไม่ครบ (ลงช่องจำนวนที่จ่ายออกไว้ แต่ช่องจำนวนหน่วยคลังใส่เป็น 0) ตอนตัด/โอน ยอดคงเหลือลดถูกต้อง แต่พอมีคนกดป…
  • แก้ไข อาการที่เจอจากบั๊กนี้: (1) ยาที่ตัดจำหน่ายไปแล้ว ประวัติขึ้น "นำเข้า 10 / จ่ายออก 10 / คงเหลือ 0" แต่ในตารางยังโชว์คงเหลือ 10 (2) ยาที่โอนระหว่างคลัง จำนวนงอกเป็นสองเท่า เพราะคลังปลายทางบันทึกรับเข้าไว้ถูก แต่คลังต้นทางไ…
  • ปุ่ม "ปรับยอดสต๊อกให้ตรง" ฉลาดขึ้น: ถ้าเจอรายการเคลื่อนไหวที่ช่องจำนวนหน่วยคลังเป็น 0 แต่มีจำนวนนำเข้า/จ่ายออกจริง จะใช้จำนวนจริงแทน — ข้อมูลเก่าที่บันทึกผิดไปแล้วจึงคำนวณถูกทันที ไม่ต้องแก้ข้อมูลย้อนหลัง กดปุ่มนี้หนึ่งค…
  • ปรับปรุง เวชภัณฑ์ (ตัดจำหน่าย/โอนคลัง) ตรวจแล้วบันทึกถูกต้องอยู่เดิม ไม่ได้รับผลกระทบจากบั๊กนี้
3.1.2 5 ส.ค. 2569
สรุปยอดรายได้: ช่องก่อนหักส่วนลดรวมค่าบริการเพิ่ม + แยกส่วนลดของบิลขายสินค้า
  • แก้ไข รายงานสรุปยอดรายได้: คอลัมน์ "ก่อนหักส่วนลด" รวมค่าบริการเพิ่มเข้ามาแล้ว เดิมนับเฉพาะค่ารายการ ทำให้ตารางอ่านแล้วไม่ลงตัว — ต้องบวกค่าบริการกลับเองถึงจะได้ยอดสุทธิ ตอนนี้ทุกแถวเป็นไปตามสูตรตรง ๆ คือ สุทธิ = ก่อนหักส่วนลด…
  • แก้ไข รายงานสรุปยอดรายได้: บิลขายสินค้าแยกส่วนลด/ค่าบริการเพิ่มออกมาแสดงแล้ว เดิมยัดยอดสุทธิลงช่อง "ก่อนหักส่วนลด" ตรง ๆ ส่วนลดของบิลขายจึงไม่ปรากฏในรายงานเลย (บิลขายเก่าที่ยังไม่มีข้อมูลยอดก่อนหักส่วนลดเก็บไว้ ระบบจะใช้ยอดสุท…
  • แก้ไข รายงานสรุปยอดรายได้: ส่วนลดของบิลขายสินค้าในรายละเอียดรายบิล เดิมติดป้ายว่า "สิทธิ์การรักษา" ทั้งที่การขายสินค้าไม่มีสิทธิ์การรักษา แก้เป็น "ส่วนลดทั่วไป" ให้ตรงความจริง
3.1.1 2 ส.ค. 2569
แก้ไขใบเสร็จขายสินค้าได้จากหน้าการเงิน (รายการ/ส่วนลด/ค่าบริการเพิ่ม) + อัปเดตสต๊อกตามอัตโนมัติ
  • เพิ่ม แก้ไขใบเสร็จขายสินค้า: ปรับ "ส่วนลด" และ "ค่าใช้จ่ายเพิ่มเติม" ได้แล้ว เลือกได้ทั้งแบบจำนวนเงินคงที่และแบบเปอร์เซ็นต์ ยอดสุทธิคำนวณให้ทันทีตอนพิมพ์ (เดิมช่องนี้ถูกซ่อนไว้ ระบบใช้ส่วนลดเดิมของบิลเสมอ ถ้าอยากเปลี่ยนต้องยกเ…
  • ปรับปรุง หน้าแก้ไขใบเสร็จขายสินค้าแสดงเฉพาะช่องที่ใช้ได้จริง — ซ่อน "สิทธิ์การรักษา" กับ "ส่วนลดทั่วไป" ที่เป็นของใบค่ารักษาออก เหลือ "ส่วนลด" ชุดเดียวเหมือนหน้าขายสินค้า จะได้ไม่สับสนว่าต้องกรอกช่องไหน
  • แก้ไข แก้ยอด "ค่าใช้จ่ายเพิ่มเติม" ที่แสดงบนหน้าจอไม่ตรงกับยอดที่บันทึกจริง เมื่อค่าบริการมากกว่ายอดบิล — หน้าจอเดิมตัดยอดไม่ให้เกินยอดบิล (เป็นกติกาของส่วนลด ไม่ใช่ค่าบริการเพิ่ม) ทำให้ยอดสุทธิที่เห็นก่อนกดบันทึกน้อยกว่าที่บั…
  • เพิ่ม หน้าการเงิน: เพิ่มปุ่มแก้ไขใบเสร็จให้ "ใบเสร็จขายสินค้า" ด้วย (เดิมมีแต่ปุ่มพิมพ์ TH/EN ต้องยกเลิกบิลแล้วขายใหม่ทั้งใบ) ตอนนี้แก้จำนวน/ราคา ลบรายการ หรือเพิ่มรายการในบิลเดิมได้เลย ใช้สิทธิ์เดียวกับแก้ไขใบเสร็จค่ารักษา (ร…
  • แก้ไข แก้ไขใบเสร็จขายสินค้าแล้วสต๊อกอัปเดตตามให้อัตโนมัติ: ลดจำนวน/ลบรายการ = คืนสต๊อก, เพิ่มจำนวน/เพิ่มรายการ = ตัดสต๊อก และบันทึกลงประวัติการเบิกจ่ายให้ตรงกันด้วย ของเดิมแก้แล้วอัปเดตแค่ยอดคงเหลือหน้าคลัง แต่ "ประวัติการเบิก…
  • ปรับปรุง ระบบคำนวณสต๊อกใหม่แบบ "คืนของเดิมทั้งใบแล้วตัดใหม่ตามรายการล่าสุด" กดบันทึกซ้ำกี่รอบ หรือแก้กลับไปกลับมากี่ครั้ง สต๊อกก็ไม่บวก/ลบเกิน (ทดสอบกดบันทึกซ้ำ 3 รอบแล้วตัวเลขนิ่ง) และใช้ตรรกะชุดเดียวกับหน้าขายสินค้า จึงตัดคลังเ…
  • เพิ่ม เพิ่มรายการในใบเสร็จขายสินค้า จะเลือกได้เฉพาะรายการที่มีสต๊อกในคลัง (ชุดเดียวกับหน้าขายสินค้า) กันเผลอเพิ่มค่าบริการ/ค่ารักษาเข้าไปในบิลขายสินค้าแล้วสต๊อกเพี้ยน
3.1.0 2 ส.ค. 2569
ส่งไฟล์ตั้งค่าการเชื่อมต่อฐานข้อมูลไปด้วย เผื่อเซิร์ฟเวอร์ที่ข้ามการติดตั้งเวอร์ชัน 3.0.7/3.0.8
  • ปรับปรุง ส่งไฟล์ config/database.php มาพร้อมอัพเดทนี้ด้วย เพื่อกันกรณีเซิร์ฟเวอร์ข้ามการติดตั้งเวอร์ชัน 3.0.7/3.0.8 แล้วยังได้หน้าแจ้ง "เชื่อมต่อฐานข้อมูลไม่ได้" แบบข้อความเปล่าบรรทัดเดียวของเดิมอยู่ (ตัวไฟล์ไม่มีการแก้โค้ดเพิ่มจ…
3.0.9 31 ก.ค. 2569
แก้ไฟล์ Excel ของรายงาน เปิดแล้วข้อมูลกองคอลัมน์เดียว (แก้ครบ 17 จุด)
  • แก้ไข แก้ปัญหาไฟล์ Excel ที่โหลดจากรายงาน เปิดแล้วข้อมูลทั้งแถวไปกองอยู่ในคอลัมน์ A ช่องเดียว อ่านยาก คัดกรอง/รวมยอดไม่ได้ — เปลี่ยนรูปแบบไฟล์ให้ Excel แยกคอลัมน์ได้ถูกต้องทุกเครื่อง แก้ครบทั้ง 17 จุด (รายงานส่วนแบ่งแพทย์, สรุ…
  • ไฟล์ Excel อ่านง่ายขึ้น: มีหัวตารางแบบตัวหนาพื้นสีอ่อน มีเส้นตาราง และปรับความกว้างของแต่ละคอลัมน์ให้พอดีกับข้อมูลจริงอัตโนมัติ ไม่ต้องมานั่งลากขยายช่องเอง
  • แก้ไข ตัวเลขในไฟล์ Excel เป็นตัวเลขจริง เอาไปรวมยอด/เรียงลำดับ/ทำกราฟต่อได้ทันที ส่วนรหัสและเบอร์โทร (เช่น CN 12-3456 หรือ 081-234-5678) ถูกกำหนดเป็นข้อความ Excel จะไม่แปลงเป็นวันที่หรือตัดเลข 0 นำหน้าทิ้งอีกต่อไป
3.0.8 29 ก.ค. 2569
เปิด persistent connection (ตามที่เซิร์ฟเวอร์แนะนำ) + ลดภาระฐานข้อมูล + หน้าอัพเดทระบบแจ้ง error ชัดขึ้น
  • ปรับปรุง การเชื่อมต่อฐานข้อมูล: เปิดใช้ persistent connection ตามที่ทีมเซิร์ฟเวอร์แนะนำ — ใช้การเชื่อมต่อเดิมซ้ำแทนการเชื่อมต่อใหม่ทุกครั้ง ช่วยลดอาการ "ต่อฐานข้อมูลไม่ติด / Operation not permitted" เวลามีคนใช้งานพร้อมกันเยอะ. ⚠️…
  • เพิ่ม รองรับ persistent connection อย่างปลอดภัย: เพราะการเชื่อมต่อถูกใช้ซ้ำข้าม request ระบบจะ (1) ล้างรายการค้าง (transaction) ที่หลงเหลือจากคำสั่งก่อนหน้าทิ้งก่อนเสมอ กันไม่ให้ไปถือล็อกต่อจนงานอื่นค้าง และ (2) ตั้งค่าโซนเวลา…
  • ลดภาระฐานข้อมูล: เดิมทุกครั้งที่เปิดหน้าเว็บ ระบบยิงคำสั่งเขียนตาราง system_info ทุก request (แย่งล็อกแถวเดิมตลอดเวลาโดยไม่จำเป็น) เปลี่ยนเป็นอ่านค่ามาเทียบก่อน แล้วเขียนเฉพาะตอนค่าไม่ตรงจริง ๆ
  • แก้ไข หน้าตั้งค่า > อัพเดทระบบ (modules/settings/system_update.php): แก้ข้อความ error ที่อ่านไม่รู้เรื่อง เช่น "เกิดข้อผิดพลาด: Unexpected token ไ ... is not valid JSON" — เกิดตอนที่เซิร์ฟเวอร์ตอบกลับมาไม่ใช่ JSON แล้วโค้ดเรีย…
3.0.7 28 ก.ค. 2569
ทนต่อฐานข้อมูลหลุดชั่วคราว: ลองเชื่อมต่อใหม่อัตโนมัติ + หน้าแจ้งเตือนใหม่
  • เพิ่ม ทนต่อฐานข้อมูลหลุดชั่วคราว + หน้าแจ้งเตือนใหม่ (config/database.php): เดิมถ้าเชื่อมต่อฐานข้อมูลไม่ได้แม้แค่วูบเดียว ระบบจะขึ้นข้อความเปล่า ๆ "ไม่สามารถเชื่อมต่อฐานข้อมูลได้..." บรรทัดเดียวแล้วจบ ผู้ใช้ต้องกด refresh เอง …
3.0.6 26 ก.ค. 2569
ปิดช่องโหว่ transaction ค้างในห้องตรวจ
  • แก้ไข ห้องตรวจ (ความเสถียรฐานข้อมูล): ปิดช่องโหว่ transaction ค้าง 2 จุด — ตอนลบบันทึกการรักษา และลบรายการค่าใช้จ่าย เดิมไม่มีการดักข้อผิดพลาด ถ้าลบไม่สำเร็จ (เช่นชนคิวรี่อื่น/ตารางถูกล็อกชั่วคราว) รายการจะค้างถือล็อกไว้จนจบคำ…
3.0.5 26 ก.ค. 2569
แก้สรุปรายรับยอดขาด (ไม่ได้รวมยอดขายสินค้า)
  • แก้ไข รายงานสรุปรายรับ: บางวันยอดขาดหายไป ไม่ตรงกับรายงานรายได้/วัน — สาเหตุคือสรุปรายรับดึงเฉพาะใบเสร็จค่ารักษา ไม่ได้รวม "บิลขายสินค้า" เข้าไปด้วย วันไหนมีการขายสินค้ายอดจึงขาดไปเท่ากับยอดขายวันนั้น (วันที่ไม่มีการขายสินค้าจ…

เวอร์ชันเก่ากว่านั้น

ประวัติฉบับเต็มทุกเวอร์ชันดูได้ในระบบที่ ตั้งค่า › อัพเดทระบบ ซึ่งแสดงรายละเอียดครบทุกบรรทัดโดยไม่ตัดข้อความ

ความหมายของป้ายกำกับ

ป้ายหมายถึง
เพิ่มฟีเจอร์หรือหน้าจอใหม่ที่เพิ่มเข้ามา
ปรับปรุงพฤติกรรมเดิมที่ถูกปรับให้ดีขึ้น
แก้ไขข้อผิดพลาดที่ถูกแก้
ถอดออกสิ่งที่ถูกถอดออกจากระบบ