ข้ามไปยังเนื้อหาหลัก
ProgrammerThailand

ไอเดีย (Idea) idea clinic line health

ไอเดีย #46: ระบบนัดหมายคลินิกและเตือนนัดผ่าน LINE

คลินิกทันตกรรมเล็ก ๆ แถวบ้านผมมีสมุดนัดเล่มหนาวางอยู่หน้าเคาน์เตอร์ พนักงานต้องโทรเตือนคนไข้ทีละคนทุกเย็น ใครไม่รับสายก็ส่งข้อความตามอีกรอบ แต่ก็ยังมีคนลืมนัด ปล่อยเก้าอี้ทำฟันว่างไปทั้งชั่วโมง ขณะที่คนอื่นอยากได้คิวกลับต้องรอเป็นสัปดาห์ ในเมื่อคนไข้เกือบทุกคนมี LINE อยู่แล้ว ระบบนัดหมายที่เตือนและให้ยกเลิกเองได้ผ่าน LINE จึงเป็นโปรเจกต์ที่ขายคลินิกได้จริง

ใครจะใช้

  • คนไข้ — จองนัด รับการเตือน ยืนยัน เลื่อน หรือยกเลิกผ่าน LINE OA
  • พนักงานต้อนรับ — ดูตารางรายวัน รับนัดทางโทรศัพท์ และจัดการคิวว่าง
  • แพทย์/ทันตแพทย์ — กำหนดตารางออกตรวจ วันลา และระยะเวลาต่อหัตถการ
  • เจ้าของคลินิก — ดูอัตราการมาตามนัด และภาระงานของแต่ละคน

ฟีเจอร์ขั้นต่ำ (MVP)

  • ตั้งตารางเวลาทำงานของแพทย์แต่ละคน และระยะเวลาของบริการ เช่น ขูดหินปูน หรือ ตรวจทั่วไป
  • คนไข้เลือกบริการ แพทย์ และช่วงเวลาที่ว่างจริง ผ่าน LIFF หรือหน้าเว็บ
  • ผูกบัญชี LINE กับเวชระเบียนด้วยเบอร์โทรและ OTP
  • เตือนนัดอัตโนมัติก่อนหนึ่งวันและก่อนสองชั่วโมง ผ่าน LINE Messaging API พร้อมปุ่มยืนยันหรือยกเลิก
  • ยกเลิกหรือเลื่อนเองได้ตามนโยบาย เช่น ต้องแจ้งล่วงหน้าอย่างน้อยกี่ชั่วโมง
  • เมื่อมีคนยกเลิก แจ้งคนที่อยู่ในรายการรอคิวช่วงนั้น
  • หน้าปฏิทินสำหรับพนักงาน ลากเลื่อนนัดได้ และบันทึกสถานะ มาตามนัด / ไม่มา

ต่อยอดได้อีก

  • นัดติดตามผลอัตโนมัติ เช่น ครบหกเดือนแล้วชวนกลับมาตรวจ
  • เก็บมัดจำผ่าน PromptPay QR สำหรับหัตถการที่ใช้เวลานาน
  • แบบสอบถามความพึงพอใจหลังรับบริการ
  • รองรับคลินิกหลายสาขา และแพทย์ที่ออกตรวจหลายที่

โครงข้อมูลตั้งต้น

  • patients — id, hn, name, phone, line_user_id, consent_at
  • doctors — id, name, specialty, active
  • schedules — id, doctor_id, weekday, start_time, end_time, valid_from, valid_to
  • services — id, name, duration_min
  • appointments — id, patient_id, doctor_id, service_id, start_at, end_at, status, cancelled_reason
  • reminders — id, appointment_id, send_at, channel, sent_at, response

ระดับความยาก และสิ่งที่จะได้เรียนรู้

ระดับ ปานกลาง ใช้ Yii2 หรือ Laravel + PostgreSQL/MySQL ร่วมกับ LINE Messaging API และ LIFF สิ่งที่จะได้เรียนรู้:

  • คำนวณช่วงเวลาว่างจากตารางแพทย์ ลบด้วยนัดที่มีอยู่และวันลา
  • รับ webhook จาก LINE ตรวจ signature และจัดการปุ่ม postback
  • ตั้ง cron หรือ scheduled job ส่งเตือน และกันส่งซ้ำ
  • จัดการ timezone และแสดงวันที่แบบ พ.ศ.

ข้อควรระวัง

  • ถ้าสองคนจองช่องเวลาเดียวกันพร้อมกัน จะเกิดนัดซ้อน ควรใช้ exclusion constraint หรือ lock ใน transaction
  • ชื่อบริการและอาการเป็นข้อมูลสุขภาพ ซึ่งเป็นข้อมูลอ่อนไหวตาม PDPA ข้อความเตือนผ่าน LINE ควรเขียนกลาง ๆ ไม่ระบุโรค และต้องขอความยินยอมก่อน
  • ข้อความ push มีโควตาตามแพ็กเกจของ LINE OA ควรคำนวณจำนวนข้อความต่อเดือนให้คลินิกรู้ล่วงหน้า

มีใครเคยทำระบบนัดให้คลินิกจริงบ้างครับ จัดการเรื่องคนไข้ไม่มาตามนัดยังไง เก็บมัดจำหรือใช้วิธีอื่น แล้วถ้าเป็นคุณจะใช้ LIFF หรือให้คนไข้คุยกับ chatbot ทั้งหมด มาเล่าหรือโพสต์ผลงานไว้ในบอร์ดนี้ได้เลย

0 คะแนน

0 คำตอบ

ยังไม่มีคำตอบ

รู้คำตอบ? ช่วยแบ่งปันได้เลย

ตอบคำถามนี้

เข้าสู่ระบบเพื่อตอบคำถามและโหวต

เข้าสู่ระบบ สมัครสมาชิก