ข้อความ & แชท
ระบบสื่อสารภายในคลินิก 2 รูปแบบ — ข้อความส่วนตัว (DM) สำหรับส่งข้อความระหว่างผู้ใช้ และแชทห้องตรวจ สำหรับสื่อสารระหว่างห้องแบบ real-time
ภาพรวม: 2 ระบบสื่อสาร
ระบบ Alicia มี 2 ช่องทางสื่อสารภายในที่ทำงานแยกกัน เหมาะกับสถานการณ์ที่แตกต่างกัน:
ส่งข้อความแบบ "อีเมลภายใน" ระหว่างผู้ใช้
- มีหัวเรื่อง + เนื้อหา
- แบ่งกล่อง Inbox / Sent
- อ่านแล้ว/ยังไม่อ่าน + ตอบกลับ
- แจ้งเตือนที่ Topbar
- ข้อความยังอยู่จนกว่าจะลบ
เหมาะกับ: แจ้งเรื่องสำคัญ, มอบหมายงาน, บันทึกเป็นลายลักษณ์อักษร
แชทสดระหว่างห้องตรวจ/แผนก แบบ real-time
- ส่งข้อความสั้นๆ ทันที
- แชทกลุ่มหลายห้อง
- DM ระหว่างผู้ใช้ออนไลน์
- แจ้งเตือนด้วยเสียง
- แสดงเฉพาะข้อความวันนี้
เหมาะกับ: สื่อสารระหว่างห้องตรวจ, แจ้งสถานะคนไข้, ประสานงานด่วน
ข้อความส่วนตัว (Internal Messages)
วิธีเข้าถึง
ข้อความส่วนตัวไม่มีเมนูใน Sidebar แต่เข้าถึงได้จาก มุมขวาบนของหน้าจอ:
การส่งข้อความ
แท็บ Inbox / Sent
| แท็บ | แสดงข้อมูล | จำนวนที่แสดง |
|---|---|---|
| Inbox (กล่องข้อความ) | ข้อความที่ได้รับ — แสดงอวาตาร์ผู้ส่ง, หัวเรื่อง, เนื้อหาบางส่วน, เวลา, สถานะอ่าน/ยังไม่อ่าน | 50 ข้อความล่าสุด |
| Sent (ส่งแล้ว) | ข้อความที่ส่งไป — แสดงอวาตาร์ผู้รับ, หัวเรื่อง, เนื้อหาบางส่วน, เวลา | 100 ข้อความล่าสุด |
การจัดการข้อความ
| การดำเนินการ | วิธีทำ | หมายเหตุ |
|---|---|---|
| อ่านข้อความ | คลิกที่ข้อความในรายการ | ระบบจะทำเครื่องหมาย "อ่านแล้ว" อัตโนมัติ พร้อมบันทึกเวลาที่อ่าน |
| ตอบกลับ | กดปุ่ม "ตอบกลับ" ใต้ข้อความ | ระบบจะเปิดฟอร์มส่งข้อความใหม่ โดยใส่ "Re: " นำหน้าหัวเรื่องอัตโนมัติ |
| ลบข้อความ | กดปุ่ม "ลบ" ใต้ข้อความ | Soft-delete — ลบเฉพาะฝั่งของตัวเอง (ผู้ส่ง/ผู้รับ) อีกฝั่งยังเห็นอยู่ |
แชทห้องตรวจ (Room Chat)
ภาพรวม
แชทห้องตรวจเป็นระบบสื่อสารแบบ real-time ที่แสดงเป็น ปุ่มลอย (Floating Action Button) อยู่มุมล่างขวาของหน้าจอ รองรับการสนทนาระหว่างห้องตรวจ แผนก และผู้ใช้ภายในคลินิก
เปิดแชท
เลือกห้อง/ผู้รับ
พิมพ์ข้อความ
ส่ง
ประเภทการสนทนา
| ประเภท | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| Room-to-Room | ส่งข้อความจากห้องตรวจหนึ่งไปยังอีกห้องหนึ่ง (หรือแผนก) | ห้องตรวจ 1 ส่งข้อความไป "ห้องการเงิน" เรื่องส่งคนไข้ไปชำระเงิน |
| Group Chat | สร้างกลุ่มสนทนาหลายห้อง — ส่งข้อความถึงทุกห้องในกลุ่มพร้อมกัน | กลุ่มสนทนา "ห้อง 1 + ห้อง 2 + ห้องการเงิน" สำหรับเคสที่ต้องประสานหลายฝ่าย |
| Direct Message (DM) | ส่งข้อความตรงถึงผู้ใช้คนหนึ่งที่กำลังออนไลน์ | DM ถึง "ทพ.สมชาย" เรื่องนัดด่วน |
ห้องแชทเสมือน (Virtual Rooms)
นอกจากห้องตรวจจริง (Room 1, Room 2, ...) ระบบยังมีห้องแชทเสมือนสำหรับแต่ละแผนก:
| ห้องเสมือน | แสดงในหน้า | คำอธิบาย |
|---|---|---|
| Dashboard | แดชบอร์ด | ข้อความจาก/ถึงเจ้าหน้าที่หน้าเคาน์เตอร์ |
| Billing | การเงิน | ข้อความจาก/ถึงแคชเชียร์ |
| Queue | ห้องตรวจ (คิว) | ข้อความเกี่ยวกับคิวรอตรวจ |
| Patients | ผู้รับบริการ | ข้อความเกี่ยวกับข้อมูลผู้ป่วย |
เมื่อเปิดแชทจากหน้าใด ระบบจะกำหนดห้อง "ต้นทาง" ให้อัตโนมัติตามหน้าที่อยู่
การใช้งานแชท
การแสดงผลข้อความ
| องค์ประกอบ | คำอธิบาย |
|---|---|
| รายการสนทนา | แสดงทุกสนทนาที่เกี่ยวข้องกับห้องของคุณ จัดกลุ่มตามห้อง/กลุ่ม พร้อม badge จำนวนยังไม่อ่าน |
| ชื่อผู้ส่ง | แสดงชื่อผู้ส่งหน้าข้อความ (สำหรับกลุ่มสนทนา) |
| เวลา | แสดงเวลาส่ง (เฉพาะชั่วโมง:นาที) |
| อ่านแล้ว/ยังไม่อ่าน | ข้อความที่ยังไม่อ่านจะมีสีพื้นหลังเน้น + badge ยังไม่อ่าน |
การทำงานแบบ Real-time
แชทห้องตรวจใช้ระบบ AJAX Polling ดึงข้อความใหม่ทุก 5 วินาที:
| กลไก | ความถี่ | คำอธิบาย |
|---|---|---|
| ดึงข้อความใหม่ | ทุก 5 วินาที | เรียก AJAX เพื่อดึงข้อความใหม่ของวันนี้ |
| นับยังไม่อ่าน | ทุก 5 วินาที | อัพเดท badge จำนวนยังไม่อ่านที่ปุ่ม FAB |
| ตรวจผู้ใช้ออนไลน์ | ทุก 5 วินาที | แสดงรายชื่อผู้ใช้ที่ออนไลน์ใน dropdown (สำหรับ DM) |
| เสียงแจ้งเตือน | เมื่อมีข้อความใหม่ | เล่นเสียงที่ตั้งค่าไว้เมื่อตรวจพบข้อความใหม่ |
การตั้งค่าแชท
ตั้งค่าแชทห้องตรวจได้ที่ ตั้งค่าระบบ > แท็บ "ฟีเจอร์":
| ค่า | ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| Room Chat | เปิด / ปิด | เปิด | เปิด/ปิดระบบแชทห้องตรวจทั้งหมด |
| Direct Messages (DM) | เปิด / ปิด | ปิด | เปิดใช้ DM ระหว่างผู้ใช้ออนไลน์ในแชท |
| ตำแหน่งแชท | ซ้าย / ขวา | ขวา | ตำแหน่งของปุ่มลอยและหน้าต่างแชท |
| หน้าที่แสดงแชท | เลือกหลายหน้า | ห้องตรวจ | เลือกว่าจะแสดงปุ่มแชทในหน้าไหนบ้าง: ห้องตรวจ, การเงิน, ห้องตรวจ (คิว), ผู้รับบริการ, แดชบอร์ด |
| เสียงแจ้งเตือน | เลือกจากรายการ | chat | เลือกเสียงที่จะเล่นเมื่อมีข้อความใหม่ |
เสียงแจ้งเตือนที่เลือกได้
เปรียบเทียบ 2 ระบบ
| คุณสมบัติ | ข้อความส่วนตัว (DM) | แชทห้องตรวจ |
|---|---|---|
| รูปแบบ | อีเมลภายใน (หัวเรื่อง + เนื้อหา) | แชทสด (ข้อความสั้นๆ) |
| ส่งถึง | ผู้ใช้รายคน | ห้อง, แผนก, กลุ่ม, หรือผู้ใช้ออนไลน์ |
| แชทกลุ่ม | ไม่รองรับ | รองรับ |
| Real-time | ไม่ (ต้อง refresh) | ใช่ (polling 5 วินาที) |
| เสียงแจ้งเตือน | ไม่มี | ตั้งค่าได้ |
| อ่านแล้ว/ยังไม่อ่าน | รองรับ | รองรับ |
| ตอบกลับ | รองรับ | รองรับ (ตอบในกลุ่ม) |
| ลบข้อความ | Soft-delete ฝั่งเดียว | ไม่รองรับ |
| ข้อความเก่า | เก็บถาวร (จนกว่าจะลบ) | แสดงเฉพาะวันนี้ |
| UI | หน้าเต็มจอ (Full page) | ปุ่มลอย + หน้าต่าง popup |
| เข้าถึงจาก | Topbar (มุมขวาบน) | ปุ่มลอย FAB (มุมล่าง) |
| เปิด/ปิดได้ | เปิดเสมอ | เปิด/ปิดได้ที่ตั้งค่าระบบ |
| ฐานข้อมูล | messages | room_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 — ส่งข้อความถึงผู้ป่วยหลายคนพร้อมกัน