ข้ามไปที่เนื้อหา

1.2 Patient Registration Management

1.2 Module: Patient Registration Management (ระบบบริหารจัดการลงทะเบียนผู้ป่วย)

อ้างอิง TOR:

  • 3.3 ระบบบริหารจัดการลงทะเบียนผู้ป่วย (ครบทุกข้อ 3.3.1 - 3.3.5)
  • 3.7.1 การเชื่อมต่อข้อมูลผู้ป่วยจาก HIS

วัตถุประสงค์:

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


1.2.1 Feature: Patient LINE OA Registration

1. ระบบลงทะเบียนผ่าน LINE OA

TOR Reference: 3.3.1

คำอธิบาย: ฟีเจอร์สำหรับให้ผู้ป่วยลงทะเบียนผ่าน LINE Official Account เพื่อเชื่อมโยงบัญชี LINE กับข้อมูลผู้ป่วยในระบบ HIS และรับการแจ้งเตือนนัดหมาย ระบบจะใช้ LINE Messaging API ในการสื่อสาร

การทำงาน:

Step 1: ผู้ป่วย Add Friend LINE OA

  1. ผู้ป่วยสแกน QR Code หรือค้นหา LINE OA ของโรงพยาบาล
  2. กดเพิ่มเพื่อน (Add Friend)
  3. ระบบส่ง Welcome Message พร้อมคำแนะนำการลงทะเบียน

Step 2: เริ่มกระบวนการลงทะเบียน

  1. ผู้ป่วยคลิกปุ่ม "ลงทะเบียน" จาก Rich Menu หรือ Quick Reply
  2. ระบบแสดง Flex Message พร้อมฟอร์มกรอกข้อมูล:

  3. เลขบัตรประชาชน 13 หลัก

  4. รหัสโรงพยาบาล (HN)
  5. วันเดือนปีเกิด
  6. เบอร์โทรศัพท์
  7. ชื่อผู้ติดต่อ (ถ้าเป็นญาติที่ลงทะเบียนแทน)

Step 3: ตรวจสอบข้อมูลกับ HIS

  1. ระบบส่งข้อมูลไปตรวจสอบกับ Database HIS
  2. เช็คว่าข้อมูลตรงกันหรือไม่ (เลขบัตร + HN + วันเกิด)
  3. ถ้าข้อมูลถูกต้อง → ดำเนินการจับคู่
  4. ถ้าข้อมูลไม่ถูกต้อง → แสดงข้อความแจ้งเตือนให้ตรวจสอบอีกครั้ง (จำกัด 3 ครั้ง)

Step 4: สร้างการเชื่อมโยง

  1. บันทึก LINE User ID กับ HN ลง Database
  2. บันทึกข้อมูลการลงทะเบียน (วันเวลา, สถานะ)
  3. ตั้งค่าเริ่มต้น: รับการแจ้งเตือน = เปิด
  4. ส่งข้อความยืนยันการลงทะเบียนสำเร็จ

กรณีพิเศษ:

  • ญาติลงทะเบียนแทน: ให้กรอก "ชื่อผู้ติดต่อ" และบันทึกว่าเป็นญาติ
  • ผู้ป่วยไม่มี HN: แจ้งให้ติดต่อเจ้าหน้าที่เพื่อสร้าง HN ก่อน
  • เบอร์โทรไม่ตรงกับในระบบ: แจ้งเตือนและให้เลือกว่าจะอัปเดตในระบบหรือไม่

UI/UX Requirements:

  • Welcome Message: ข้อความต้อนรับพร้อมโลโก้โรงพยาบาล และคำอธิบายสั้นๆ
  • Rich Menu: แสดงปุ่ม "ลงทะเบียน", "นัดหมายของฉัน", "ตั้งค่า", "ติดต่อเรา"
  • Flex Message Form: ออกแบบให้กรอกง่าย มีตัวอย่างชัดเจน (เช่น รูปแบบเลขบัตร: 1-2345-67890-12-3)
  • Input Validation แบบ Real-time: แจ้งเตือนทันทีเมื่อกรอกรูปแบบไม่ถูกต้อง
  • Progress Indicator: แสดงว่าอยู่ขั้นตอนไหนของการลงทะเบียน (1/3, 2/3, 3/3)
  • Error Message: ข้อความชัดเจนเป็นภาษาไทยง่ายๆ เข้าใจง่าย
  • Success Message: พร้อม Emoji ให้ความรู้สึกเป็นมิตร

2. เชื่อมต่อข้อมูล HIS (HN, รหัสบัตร, วันเกิด, เบอร์, ชื่อ)

TOR Reference: 3.3.3, 3.7.1

คำอธิบาย: ระบบต้องเชื่อมต่อกับ Database ของ HIS (Hospital Information System) เพื่อดึงและตรวจสอบข้อมูลผู้ป่วย โดยใช้วิธี Database Connection โดยตรง หรือผ่าน API ที่ HIS จัดเตรียมไว้

ข้อมูลที่ดึงจาก HIS (ตาม TOR 3.7.1):

  • HN (Hospital Number): รหัสผู้ป่วยในระบบโรงพยาบาล
  • เลขบัตรประชาชน: สำหรับยืนยันตัวตน
  • ชื่อ-นามสกุล: ข้อมูลผู้ป่วย
  • วันเดือนปีเกิด: สำหรับยืนยันตัวตนและคำนวณอายุ
  • เพศ: สำหรับการรายงาน
  • เบอร์โทรศัพท์: สำหรับติดต่อฉุกเฉิน

การทำงาน:

การเชื่อมต่อ HIS Database:

  1. ระบบมี Configuration สำหรับตั้งค่าการเชื่อมต่อ:

  2. Server Address

  3. Database Name
  4. Username/Password (เข้ารหัส)
  5. Port
  6. Connection Timeout

  7. ใช้ Read-Only Connection (เพื่อความปลอดภัย ไม่ให้แก้ไขข้อมูลใน HIS)

  8. Connection Pool สำหรับจัดการ Connection ให้มีประสิทธิภาพ

Query ข้อมูลผู้ป่วย:

  1. รับ Input จากผู้ลงทะเบียน (เลขบัตร, HN, วันเกิด)
  2. Query ตาราง Patient หรือ Person ใน HIS
  3. ตรวจสอบว่าข้อมูลตรงกัน 100% หรือไม่
  4. ดึงข้อมูลเพิ่มเติม (ชื่อ, เพศ, เบอร์)
  5. Return ผลลัพธ์กลับไปยัง Registration Process

การจัดการข้อผิดพลาด:

  • HIS ไม่ตอบสนอง: Retry 3 ครั้ง แล้วแจ้งผู้ใช้ให้ลองใหม่ภายหลัง
  • ข้อมูลไม่ตรงกัน: แสดงข้อความแนะนำให้ตรวจสอบข้อมูล
  • Connection Timeout: แสดง Error Message และบันทึก Log

UI/UX Requirements:

  • Loading Indicator: แสดงขณะตรวจสอบข้อมูลกับ HIS (ข้อความ: "กำลังตรวจสอบข้อมูล...")
  • Error Handling: ข้อความชัดเจนเมื่อเกิดปัญหา พร้อมคำแนะนำแก้ไข

  • "ไม่พบข้อมูลในระบบ กรุณาตรวจสอบเลขบัตรและ HN อีกครั้ง"

  • "วันเกิดไม่ตรงกับในระบบ กรุณาระบุวันเกิดให้ถูกต้อง"

  • ข้อมูลที่ดึงมา: แสดงข้อมูลที่ได้จาก HIS ให้ผู้ใช้ยืนยัน (ชื่อ-สกุล) ก่อน Confirm

  • หน้าจอ Back Office: แสดงสถานะการเชื่อมต่อ HIS (Online/Offline) แบบ Real-time

3. ระบบจับคู่ LINE User กับ HN

TOR Reference: 3.3.2

คำอธิบาย: กระบวนการสร้างความสัมพันธ์ (Linking) ระหว่าง LINE User ID กับ HN (รหัสผู้ป่วย) เพื่อให้ระบบสามารถส่งการแจ้งเตือนไปยัง LINE ของผู้ป่วยได้ โดยต้องมีความปลอดภัยและตรวจสอบได้

การทำงาน:

การจับคู่ (Linking):

  1. เมื่อผู้ป่วยกรอกข้อมูลและยืนยันตัวตนสำเร็จ
  2. ระบบบันทึก Mapping ระหว่าง:

  3. LINE User ID (จาก LINE Messaging API)

  4. HN (รหัสผู้ป่วยในระบบ)
  5. วันเวลาที่ลงทะเบียน
  6. สถานะการลงทะเบียน (Active)

  7. เก็บข้อมูลเพิ่มเติม:

  8. ชื่อ LINE Display Name

  9. รูปโปรไฟล์ (Picture URL)
  10. เบอร์โทรที่ให้ไว้
  11. ชื่อผู้ติดต่อ (ถ้าเป็นญาติ)

การจัดการกรณีพิเศษ:

  • HN หนึ่งสามารถเชื่อมกับหลาย LINE ได้: กรณีญาติหลายคนต้องการรับการแจ้งเตือน
  • LINE User หนึ่งสามารถเชื่อมกับหลาย HN ได้: กรณีคนเดียวดูแลผู้ป่วยหลายคน
  • การยกเลิกการเชื่อม (Unlink):

  • ผู้ใช้สามารถยกเลิกได้เองผ่าน LINE Menu

  • เจ้าหน้าที่สามารถยกเลิกได้ผ่าน Back Office
  • เมื่อผู้ใช้ Block LINE OA ระบบอัปเดตสถานะเป็น Inactive

  • การเชื่อมใหม่: หากเคยเชื่อมแล้วยกเลิก สามารถเชื่อมใหม่ได้โดยผ่านกระบวนการยืนยันตัวตนอีกครั้ง

การตรวจสอบสถานะ:

  • ระบบเช็คสถานะการเชื่อมก่อนส่งแจ้งเตือน
  • หาก LINE User Unlink หรือ Block Bot จะไม่ส่งแจ้งเตือน
  • บันทึก Log ทุกครั้งที่มีการเชื่อม/ยกเลิก

UI/UX Requirements:

  • ข้อความยืนยันการเชื่อม: แสดงข้อมูลที่จับคู่ชัดเจน

  • "เชื่อมบัญชี LINE สำเร็จ"

  • "ชื่อ: นายสมชาย ใจดี"
  • "HN: 12345678"
  • "คุณจะได้รับการแจ้งเตือนนัดหมายผ่าน LINE นี้"

  • หน้าจอจัดการการเชื่อม (Back Office):

  • แสดงรายการผู้ลงทะเบียนทั้งหมด

  • คอลัมน์: HN, ชื่อผู้ป่วย, LINE Display Name, วันที่ลงทะเบียน, สถานะ
  • ปุ่มยกเลิกการเชื่อม (สำหรับเจ้าหน้าที่)
  • ตัวกรองตามสถานะ (Active/Inactive)

  • หน้าจอผู้ใช้ LINE:

  • เมนู "บัญชีที่เชื่อม" แสดง HN ทั้งหมดที่เชื่อมไว้

  • ปุ่มยกเลิกการเชื่อมแต่ละ HN
  • Confirmation Dialog ก่อนยกเลิก

1.2.2 Feature: Patient Data Management

1. แสดง/ค้นหาข้อมูลผู้ป่วยที่ลงทะเบียน

TOR Reference: 3.3.4

คำอธิบาย: ฟีเจอร์สำหรับเจ้าหน้าที่ดูและค้นหาข้อมูลผู้ป่วยที่ลงทะเบียนผ่าน LINE OA เพื่อตรวจสอบสถานะ จัดการข้อมูล และแก้ไขปัญหา

การทำงาน:

การแสดงรายการ:

  1. เจ้าหน้าที่เข้าสู่หน้า "จัดการผู้ลงทะเบียน"
  2. ระบบแสดงรายการผู้ป่วยทั้งหมดที่ลงทะเบียนแล้ว
  3. แสดงข้อมูล:

  4. HN

  5. ชื่อ-สกุล
  6. เบอร์โทรศัพท์
  7. LINE Display Name
  8. วันที่ลงทะเบียน
  9. สถานะการรับแจ้งเตือน (เปิด/ปิด)
  10. สถานะการเชื่อม (Active/Inactive)

  11. รองรับ Pagination (แสดง 20-50 รายการต่อหน้า)

การค้นหา:

  1. Quick Search: ช่องค้นหาแบบเดียว รองรับ:

  2. HN

  3. เลขบัตรประชาชน
  4. ชื่อ-สกุล (ค้นหาแบบบางส่วนได้)
  5. เบอร์โทรศัพท์

  6. Advanced Search: ค้นหาหลายเงื่อนไข:

  7. ช่วงวันที่ลงทะเบียน

  8. สถานะการรับแจ้งเตือน
  9. สถานะการเชื่อม
  10. เพศ
  11. ช่วงอายุ

  12. การค้นหาแบบ Auto-complete สำหรับชื่อและ HN

การแสดงรายละเอียด:

  1. คลิกที่รายการเพื่อดูรายละเอียดเต็ม
  2. แสดง:

  3. ข้อมูลส่วนตัวทั้งหมด

  4. ประวัติการลงทะเบียน
  5. ประวัติการรับแจ้งเตือน (5 ครั้งล่าสุด)
  6. LINE Profile (รูป, ชื่อ)
  7. ข้อมูลญาติผู้ติดต่อ (ถ้ามี)

UI/UX Requirements:

  • หน้ารายการหลัก: ออกแบบเป็น Table พร้อม:

  • Header ที่สามารถ Sort ได้ (เรียงตาม HN, ชื่อ, วันที่)

  • ช่องค้นหาเด่นชัดด้านบน (Search icon + placeholder ชัดเจน)
  • ปุ่มกรองข้อมูล (Filter icon) เปิด Panel ด้านข้าง
  • Badge แสดงสถานะ (สีเขียว=Active, สีเทา=Inactive)

  • หน้ารายละเอียด:

  • Layout แบบ 2 คอลัมน์ (ซ้าย=ข้อมูลหลัก, ขวา=ประวัติ)

  • Card design สำหรับแต่ละส่วนข้อมูล
  • Timeline แสดงประวัติการแจ้งเตือน

  • Responsive: รองรับการใช้งานบนแท็บเล็ต

  • Export: ปุ่ม Export รายการเป็น Excel (ตามเงื่อนไขที่กรอง)

2. จัดการการตั้งค่ารับ/ไม่รับการแจ้งเตือน

TOR Reference: 3.3.5

คำอธิบาย: ให้ผู้ป่วยและเจ้าหน้าที่สามารถจัดการการตั้งค่าการรับการแจ้งเตือนได้ เพื่อเคารพในความต้องการของผู้ป่วยและปฏิบัติตาม PDPA (พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล)

การทำงาน:

สำหรับผู้ป่วย (ผ่าน LINE):

  1. ผู้ป่วยเปิด LINE OA และเข้าเมนู "ตั้งค่า"
  2. เห็นตัวเลือก "การแจ้งเตือน"
  3. สามารถเลือกได้:

  4. เปิดการแจ้งเตือนทั้งหมด (Default)

  5. ปิดการแจ้งเตือนทั้งหมด
  6. เลือกประเภทการแจ้งเตือน (Advanced):

    • แจ้งเตือนนัดหมาย
    • ข่าวสารจากโรงพยาบาล
    • การแจ้งเตือนเร่งด่วน (บังคับเปิด)
  7. เมื่อเปลี่ยนการตั้งค่า ระบบแสดง Confirmation

  8. บันทึกการเปลี่ยนแปลงพร้อม Timestamp

สำหรับเจ้าหน้าที่ (ผ่าน Back Office):

  1. เข้าสู่หน้ารายละเอียดผู้ป่วย
  2. เห็นสถานะการรับแจ้งเตือนปัจจุบัน
  3. สามารถเปลี่ยนแปลงได้ (กรณีผู้ป่วยขอผ่านเจ้าหน้าที่)
  4. ต้องระบุเหตุผลในการเปลี่ยนแปลง
  5. บันทึก Activity Log

การทำงานของระบบ:

  1. ก่อนส่งแจ้งเตือน เช็คการตั้งค่าของผู้ป่วยทุกครั้ง
  2. หากปิดการแจ้งเตือน → ข้าม ไม่ส่ง
  3. บันทึกว่าไม่ได้ส่งเพราะผู้ใช้ปิด (เพื่อ Reporting)
  4. การแจ้งเตือนฉุกเฉิน ยังคงส่งแม้จะปิด (แจ้งเรื่องสำคัญมาก)

กรณีพิเศษ:

  • ยกเลิกการลงทะเบียน: มีปุ่มแยกต่างหาก ต้อง Confirm 2 ครั้ง
  • ปิดชั่วคราว: สามารถตั้งเวลาปิดการแจ้งเตือนชั่วคราว (เช่น 1 สัปดาห์)
  • ประวัติการเปลี่ยนแปลง: เก็บ Log ทุกครั้งที่เปลี่ยนการตั้งค่า

UI/UX Requirements:

  • หน้าจอ LINE:

  • Toggle Switch ใหญ่ชัดเจนสำหรับเปิด/ปิด

  • ไอคอนระฆัง (🔔 เปิด, 🔕 ปิด)
  • ข้อความอธิบายสั้นๆ ว่าจะได้รับการแจ้งเตือนอะไรบ้าง
  • Confirmation Dialog พร้อมคำเตือน "คุณอาจพลาดการแจ้งเตือนนัดหมายสำคัญ"

  • หน้าจอ Back Office:

  • แสดงสถานะเด่นชัด (Badge สีเขียว/แดง)

  • ปุ่ม Toggle พร้อม Modal ให้ใส่เหตุผล
  • แสดงประวัติการเปลี่ยนแปลง (Timeline)
  • Filter ผู้ป่วยที่ปิดการแจ้งเตือนทั้งหมด

  • ข้อความยืนยัน:

  • "เปิดการแจ้งเตือนแล้ว คุณจะได้รับข้อความเมื่อมีนัดหมาย"

  • "ปิดการแจ้งเตือนแล้ว คุณจะไม่ได้รับข้อความนัดหมาย (ยกเว้นเรื่องเร่งด่วน)"

3. อัปเดตข้อมูลผู้ป่วย

TOR Reference: 3.3.4

คำอธิบาย: ฟีเจอร์สำหรับอัปเดตข้อมูลผู้ป่วยที่เปลี่ยนแปลง เช่น เบอร์โทรศัพท์ใหม่ หรือชื่อผู้ติดต่อ โดยข้อมูลบางส่วนต้องซิงค์กับ HIS

การทำงาน:

ข้อมูลที่อนุญาตให้แก้ไขได้:

  • เบอร์โทรศัพท์
  • ชื่อผู้ติดต่อ (กรณีญาติ)
  • การตั้งค่าการแจ้งเตือน

ข้อมูลที่ไม่อนุญาตให้แก้ไข:

  • HN (ห้ามแก้ไข ต้องลงทะเบียนใหม่)
  • เลขบัตรประชาชน (ห้ามแก้ไข)
  • ชื่อ-สกุล (แก้ไขที่ HIS แล้วซิงค์มา)
  • วันเกิด (แก้ไขที่ HIS)

กระบวนการอัปเดต:

สำหรับผู้ป่วย (ผ่าน LINE):

  1. เข้าเมนู "ข้อมูลของฉัน"
  2. เห็นข้อมูลที่ลงทะเบียนไว้
  3. คลิกปุ่ม "แก้ไข" ที่ช่องที่แก้ไขได้
  4. กรอกข้อมูลใหม่
  5. ยืนยันการเปลี่ยนแปลง
  6. ระบบบันทึกและส่ง Confirmation

สำหรับเจ้าหน้าที่ (ผ่าน Back Office):

  1. เข้าสู่หน้ารายละเอียดผู้ป่วย
  2. คลิกปุ่ม "แก้ไขข้อมูล"
  3. แก้ไขข้อมูลที่ต้องการ
  4. ระบุเหตุผลในการแก้ไข (บังคับกรอก)
  5. บันทึกพร้อม Activity Log

การซิงค์กับ HIS:

  1. ข้อมูลบางส่วน (ชื่อ, อายุ) ดึงจาก HIS แบบ One-way
  2. ถ้าข้อมูลใน HIS เปลี่ยน ระบบอัปเดตอัตโนมัติ
  3. มีตัวเลือก "ซิงค์ข้อมูลจาก HIS ใหม่" สำหรับเจ้าหน้าที่

UI/UX Requirements:

  • หน้าจอ LINE:

  • แสดงข้อมูลปัจจุบันเป็น Card

  • ไอคอนดินสอสำหรับช่องที่แก้ไขได้
  • ไอคอนล็อคสำหรับช่องที่แก้ไขไม่ได้ (พร้อมคำอธิบาย)
  • Inline Editing หรือ Modal Form

  • หน้าจอ Back Office:

  • ฟอร์มแก้ไขแบบ Inline หรือ Modal

  • แสดงข้อมูลเดิมและข้อมูลใหม่เปรียบเทียบกัน
  • Validation แบบ Real-time
  • ปุ่ม "ซิงค์จาก HIS" เด่นชัด
  • แสดงวันเวลาที่ซิงค์ล่าสุด

  • ประวัติการแก้ไข:

  • Timeline แสดงการเปลี่ยนแปลงทั้งหมด

  • แสดง Before/After
  • แสดงผู้แก้ไขและเหตุผล

สรุป Module 1.2: Patient Registration Management

ความสำคัญ: Module นี้เป็นสะพานเชื่อมระหว่าง LINE OA กับระบบ HIS เป็นส่วนสำคัญที่ทำให้ผู้ป่วยสามารถรับการแจ้งเตือนได้ ต้องให้ความสำคัญกับความถูกต้องของข้อมูลและความปลอดภัย ครอบคลุมทุกข้อกำหนดใน TOR 3.3 (3.3.1 - 3.3.5) และ 3.7.1

Timeline Summary:

  • SA: 17 ชั่วโมง
  • UI Design: 21 ชั่วโมง
  • Backend Dev: 70 ชั่วโมง
  • Frontend Dev: 42 ชั่วโมง
  • Testing: 84 ชั่วโมง
  • PM: 15 ชั่วโมง
  • Marketing Officer: 2 ชั่วโมง (สำหรับออกแบบ LINE Rich Menu และข้อความ)