ข้อความ & แชท

16

ข้อความ & แชท

ระบบสื่อสารภายในคลินิก 2 รูปแบบ — ข้อความส่วนตัว (DM) สำหรับส่งข้อความระหว่างผู้ใช้ และแชทห้องตรวจ สำหรับสื่อสารระหว่างห้องแบบ real-time

ภาพรวม: 2 ระบบสื่อสาร

ระบบ Alicia มี 2 ช่องทางสื่อสารภายในที่ทำงานแยกกัน เหมาะกับสถานการณ์ที่แตกต่างกัน:

ข้อความส่วนตัว (Internal Messages)

ส่งข้อความแบบ "อีเมลภายใน" ระหว่างผู้ใช้

  • มีหัวเรื่อง + เนื้อหา
  • แบ่งกล่อง Inbox / Sent
  • อ่านแล้ว/ยังไม่อ่าน + ตอบกลับ
  • แจ้งเตือนที่ Topbar
  • ข้อความยังอยู่จนกว่าจะลบ

เหมาะกับ: แจ้งเรื่องสำคัญ, มอบหมายงาน, บันทึกเป็นลายลักษณ์อักษร

แชทห้องตรวจ (Room Chat)

แชทสดระหว่างห้องตรวจ/แผนก แบบ real-time

  • ส่งข้อความสั้นๆ ทันที
  • แชทกลุ่มหลายห้อง
  • DM ระหว่างผู้ใช้ออนไลน์
  • แจ้งเตือนด้วยเสียง
  • แสดงเฉพาะข้อความวันนี้

เหมาะกับ: สื่อสารระหว่างห้องตรวจ, แจ้งสถานะคนไข้, ประสานงานด่วน

ข้อความส่วนตัว (Internal Messages)

วิธีเข้าถึง

ข้อความส่วนตัวไม่มีเมนูใน Sidebar แต่เข้าถึงได้จาก มุมขวาบนของหน้าจอ:

ไอคอนซองจดหมาย (Topbar) คลิกไอคอนซองจดหมายที่แถบด้านบน จะเห็น dropdown แสดง 10 ข้อความล่าสุด + badge จำนวนยังไม่อ่าน
คลิก "ดูทั้งหมด" เปิดหน้าข้อความเต็มจอที่แบ่งเป็นแท็บ Inbox และ Sent

การส่งข้อความ

กดปุ่ม "เขียนข้อความ" เปิด Modal สำหรับเขียนข้อความใหม่
เลือกผู้รับ เลือกผู้ใช้ที่ต้องการส่งถึงจาก dropdown (ไม่สามารถส่งถึงตัวเองได้)
พิมพ์หัวเรื่องและเนื้อหา ระบุหัวเรื่อง (subject) และเนื้อหาข้อความ (body)
กดส่ง ข้อความจะถูกส่งไปยังกล่องข้อความของผู้รับทันที พร้อมแจ้งเตือนที่ Topbar

แท็บ Inbox / Sent

แท็บแสดงข้อมูลจำนวนที่แสดง
Inbox (กล่องข้อความ) ข้อความที่ได้รับ — แสดงอวาตาร์ผู้ส่ง, หัวเรื่อง, เนื้อหาบางส่วน, เวลา, สถานะอ่าน/ยังไม่อ่าน 50 ข้อความล่าสุด
Sent (ส่งแล้ว) ข้อความที่ส่งไป — แสดงอวาตาร์ผู้รับ, หัวเรื่อง, เนื้อหาบางส่วน, เวลา 100 ข้อความล่าสุด

การจัดการข้อความ

การดำเนินการวิธีทำหมายเหตุ
อ่านข้อความ คลิกที่ข้อความในรายการ ระบบจะทำเครื่องหมาย "อ่านแล้ว" อัตโนมัติ พร้อมบันทึกเวลาที่อ่าน
ตอบกลับ กดปุ่ม "ตอบกลับ" ใต้ข้อความ ระบบจะเปิดฟอร์มส่งข้อความใหม่ โดยใส่ "Re: " นำหน้าหัวเรื่องอัตโนมัติ
ลบข้อความ กดปุ่ม "ลบ" ใต้ข้อความ Soft-delete — ลบเฉพาะฝั่งของตัวเอง (ผู้ส่ง/ผู้รับ) อีกฝั่งยังเห็นอยู่
Soft-delete: การลบข้อความจะไม่ลบออกจากระบบจริง เพียงแค่ซ่อนจากมุมมองของคุณเท่านั้น หากเป็นผู้ส่งลบ ผู้รับยังเห็นข้อความอยู่ และในทางกลับกัน
ตัวอย่างหน้ากล่องข้อความ (Inbox) + Modal เขียนข้อความ

แชทห้องตรวจ (Room Chat)

ภาพรวม

แชทห้องตรวจเป็นระบบสื่อสารแบบ real-time ที่แสดงเป็น ปุ่มลอย (Floating Action Button) อยู่มุมล่างขวาของหน้าจอ รองรับการสนทนาระหว่างห้องตรวจ แผนก และผู้ใช้ภายในคลินิก


เปิดแชท

เลือกห้อง/ผู้รับ

พิมพ์ข้อความ

ส่ง

ประเภทการสนทนา

ประเภทคำอธิบายตัวอย่าง
Room-to-Room ส่งข้อความจากห้องตรวจหนึ่งไปยังอีกห้องหนึ่ง (หรือแผนก) ห้องตรวจ 1 ส่งข้อความไป "ห้องการเงิน" เรื่องส่งคนไข้ไปชำระเงิน
Group Chat สร้างกลุ่มสนทนาหลายห้อง — ส่งข้อความถึงทุกห้องในกลุ่มพร้อมกัน กลุ่มสนทนา "ห้อง 1 + ห้อง 2 + ห้องการเงิน" สำหรับเคสที่ต้องประสานหลายฝ่าย
Direct Message (DM) ส่งข้อความตรงถึงผู้ใช้คนหนึ่งที่กำลังออนไลน์ DM ถึง "ทพ.สมชาย" เรื่องนัดด่วน
DM ในแชทห้องตรวจ เป็นฟีเจอร์แยก ต้องเปิดใช้งานที่ ตั้งค่าระบบ > ฟีเจอร์ > "Direct Messages (DM)" จึงจะเห็นรายชื่อผู้ใช้ออนไลน์ในตัวเลือกผู้รับ

ห้องแชทเสมือน (Virtual Rooms)

นอกจากห้องตรวจจริง (Room 1, Room 2, ...) ระบบยังมีห้องแชทเสมือนสำหรับแต่ละแผนก:

ห้องเสมือนแสดงในหน้าคำอธิบาย
Dashboardแดชบอร์ดข้อความจาก/ถึงเจ้าหน้าที่หน้าเคาน์เตอร์
Billingการเงินข้อความจาก/ถึงแคชเชียร์
Queueห้องตรวจ (คิว)ข้อความเกี่ยวกับคิวรอตรวจ
Patientsผู้รับบริการข้อความเกี่ยวกับข้อมูลผู้ป่วย

เมื่อเปิดแชทจากหน้าใด ระบบจะกำหนดห้อง "ต้นทาง" ให้อัตโนมัติตามหน้าที่อยู่

การใช้งานแชท

คลิกปุ่มลอย (FAB) มุมล่างขวา ปุ่มสีเขียวรูปซองจดหมาย — หากมีข้อความใหม่จะแสดงจุดแดง
เลือกห้อง/ผู้รับ ใช้ dropdown multi-select เลือกห้องตรวจ, แผนก, หรือผู้ใช้ออนไลน์ (DM) ที่ต้องการส่งถึง — เลือกได้หลายห้องพร้อมกันเพื่อสร้างกลุ่มสนทนา
พิมพ์ข้อความ + กด Enter หรือปุ่มส่ง ข้อความจะถูกส่งทันที ฝั่งผู้รับจะเห็นข้อความใหม่ภายใน 5 วินาที พร้อมเสียงแจ้งเตือน

การแสดงผลข้อความ

องค์ประกอบคำอธิบาย
รายการสนทนาแสดงทุกสนทนาที่เกี่ยวข้องกับห้องของคุณ จัดกลุ่มตามห้อง/กลุ่ม พร้อม badge จำนวนยังไม่อ่าน
ชื่อผู้ส่งแสดงชื่อผู้ส่งหน้าข้อความ (สำหรับกลุ่มสนทนา)
เวลาแสดงเวลาส่ง (เฉพาะชั่วโมง:นาที)
อ่านแล้ว/ยังไม่อ่านข้อความที่ยังไม่อ่านจะมีสีพื้นหลังเน้น + badge ยังไม่อ่าน
ข้อความวันนี้เท่านั้น: แชทห้องตรวจจะแสดงเฉพาะข้อความของวันนี้ ข้อความเก่าจะไม่แสดง (ยังเก็บในฐานข้อมูล แต่ไม่โหลดมาแสดง)
ตัวอย่าง Chat Widget — ปุ่มลอย FAB + หน้าต่างแชท

การทำงานแบบ Real-time

แชทห้องตรวจใช้ระบบ AJAX Polling ดึงข้อความใหม่ทุก 5 วินาที:

กลไกความถี่คำอธิบาย
ดึงข้อความใหม่ ทุก 5 วินาที เรียก AJAX เพื่อดึงข้อความใหม่ของวันนี้
นับยังไม่อ่าน ทุก 5 วินาที อัพเดท badge จำนวนยังไม่อ่านที่ปุ่ม FAB
ตรวจผู้ใช้ออนไลน์ ทุก 5 วินาที แสดงรายชื่อผู้ใช้ที่ออนไลน์ใน dropdown (สำหรับ DM)
เสียงแจ้งเตือน เมื่อมีข้อความใหม่ เล่นเสียงที่ตั้งค่าไว้เมื่อตรวจพบข้อความใหม่

การตั้งค่าแชท

ตั้งค่าแชทห้องตรวจได้ที่ ตั้งค่าระบบ > แท็บ "ฟีเจอร์":

ค่าตัวเลือกค่าเริ่มต้นคำอธิบาย
Room Chat เปิด / ปิด เปิด เปิด/ปิดระบบแชทห้องตรวจทั้งหมด
Direct Messages (DM) เปิด / ปิด ปิด เปิดใช้ DM ระหว่างผู้ใช้ออนไลน์ในแชท
ตำแหน่งแชท ซ้าย / ขวา ขวา ตำแหน่งของปุ่มลอยและหน้าต่างแชท
หน้าที่แสดงแชท เลือกหลายหน้า ห้องตรวจ เลือกว่าจะแสดงปุ่มแชทในหน้าไหนบ้าง: ห้องตรวจ, การเงิน, ห้องตรวจ (คิว), ผู้รับบริการ, แดชบอร์ด
เสียงแจ้งเตือน เลือกจากรายการ chat เลือกเสียงที่จะเล่นเมื่อมีข้อความใหม่

เสียงแจ้งเตือนที่เลือกได้

chat chat2 room room2 room3 room4 alert alert2 alert3 none (ปิดเสียง)

เปรียบเทียบ 2 ระบบ

คุณสมบัติข้อความส่วนตัว (DM)แชทห้องตรวจ
รูปแบบอีเมลภายใน (หัวเรื่อง + เนื้อหา)แชทสด (ข้อความสั้นๆ)
ส่งถึงผู้ใช้รายคนห้อง, แผนก, กลุ่ม, หรือผู้ใช้ออนไลน์
แชทกลุ่มไม่รองรับรองรับ
Real-timeไม่ (ต้อง refresh)ใช่ (polling 5 วินาที)
เสียงแจ้งเตือนไม่มีตั้งค่าได้
อ่านแล้ว/ยังไม่อ่านรองรับรองรับ
ตอบกลับรองรับรองรับ (ตอบในกลุ่ม)
ลบข้อความSoft-delete ฝั่งเดียวไม่รองรับ
ข้อความเก่าเก็บถาวร (จนกว่าจะลบ)แสดงเฉพาะวันนี้
UIหน้าเต็มจอ (Full page)ปุ่มลอย + หน้าต่าง popup
เข้าถึงจากTopbar (มุมขวาบน)ปุ่มลอย FAB (มุมล่าง)
เปิด/ปิดได้เปิดเสมอเปิด/ปิดได้ที่ตั้งค่าระบบ
ฐานข้อมูลmessagesroom_chat, chat_group, chat_group_member, chat_group_read

สิทธิ์การเข้าถึง

ระบบสิทธิ์ที่ต้องการหมายเหตุ
ข้อความส่วนตัว ล็อกอินเท่านั้น ไม่มีสิทธิ์เฉพาะ — ผู้ใช้ทุกคนที่ล็อกอินแล้วสามารถส่ง/รับข้อความได้
แชทห้องตรวจ ล็อกอินเท่านั้น ไม่มีสิทธิ์เฉพาะ — ควบคุมการแสดงผลผ่านค่า feature_room_chat + room_chat_pages ในตั้งค่า
DM ในแชท ล็อกอินเท่านั้น ต้องเปิดฟีเจอร์ feature_dm_chat ในตั้งค่าระบบ
ตั้งค่าแชท Admin เท่านั้น เปิด/ปิดฟีเจอร์แชท ตั้งค่าเสียง ตำแหน่ง ฯลฯ
ทั้งสองระบบข้อความไม่มีสิทธิ์เฉพาะโมดูล (ไม่มี messages.view) ผู้ใช้ทุก Role สามารถส่งและรับข้อความได้โดยไม่ต้องกำหนดสิทธิ์เพิ่ม

การเชื่อมต่อ LINE

ระบบ Alicia รองรับการส่งแจ้งเตือนผ่าน LINE Messaging API สำหรับแจ้งเตือนนัดหมายโดยเฉพาะ ซึ่งเป็นฟีเจอร์แยกจากระบบข้อความภายใน:

  • LINE Push — ส่งข้อความแจ้งเตือนนัดหมายถึงผู้ป่วยโดยตรง
  • LINE Multicast — ส่งข้อความถึงผู้ป่วยหลายคนพร้อมกัน
LINE ใช้สำหรับแจ้งเตือนนัดหมายถึงผู้ป่วยเท่านั้น ไม่ใช่ระบบแชทภายในคลินิก การตั้งค่า LINE อยู่ที่ ตั้งค่าระบบ > เว็บคลินิก