Tháng 9, 2026 - Hiện tại • Nền tảng Đặt lịch Khám bệnh Trực tuyến (Next.js 15 & Supabase)

Tổng quan
BookingCare là nền tảng y tế số hóa đặt lịch khám bệnh trực tuyến hiện đại kết nối bệnh nhân, bác sĩ chuyên khoa và ban quản trị. Hệ thống triển khai kiến trúc Server Components & Actions trong Next.js 15, phân quyền RBAC 3 vai trò (Patient, Doctor, Admin), tích hợp thuật toán sinh lịch khám hàng loạt (Bulk Schedule Generator), bộ giả lập Offline Mock Engine và xuất biên nhận điện tử kèm mã QR check-in.
Kiến trúc Hệ thống
Next.js 15 App Router phân tầng module hóa với Service Layer chuyên biệt (`src/lib/services/`). Route Guarding bảo mật đa cấp thông qua Supabase SSR Session Middleware tại Edge và Row Level Security (RLS) ở mức cơ sở dữ liệu.
Dữ liệu & Cơ sở dữ liệu
Cơ sở dữ liệu PostgreSQL (Supabase Cloud) chuẩn hóa quan hệ giữa bệnh nhân, bác sĩ, lịch khám, hồ sơ bệnh án và đánh giá. Sử dụng Database Triggers đồng bộ `auth.users`, partial unique constraints và truy vấn cập nhật nguyên tử ngăn ngừa race conditions.
Thách thức Kỹ thuật & Giải pháp cốt lõi
- 01
1. Chống đặt trùng lịch đồng thời (Anti-Race Condition Concurrency Booking):
Triển khai truy vấn cập nhật nguyên tử (Atomic UPDATE WHERE status = 'AVAILABLE') kết hợp partial unique constraints; bảo đảm chỉ một giao dịch chiếm giữ slot thành công dưới tải truy cập đồng thời cao.
- 02
2. Quản lý lịch khám quy mô lớn với Bulk Schedule Generator:
Thiết kế thuật toán sinh slot theo mảng ngày và ca làm việc (Sáng/Chiều) với batch upsert an toàn vào PostgreSQL, tự động bảo lưu trạng thái các slot đã có người đặt trước (BOOKED).
- 03
3. Phân quyền đa cấp bảo mật sâu kết hợp SSR Session & RLS:
Kết hợp Next.js Middleware kiểm tra session cookies với các chính sách Row Level Security (RLS) trên PostgreSQL, đảm bảo bệnh nhân chỉ xem hồ sơ của mình và bác sĩ chỉ thao tác trên ca được phân công.