BN chuyển sang chi nhánh khác

Bệnh nhân từng điều trị tại chi nhánh Tây Hồ, giờ muốn chuyển sang chi nhánh Cầu Giấy (vì nhà đổi). Lễ tân chi nhánh mới mở Patient 360 → timeline cũ vẫn thấy (không cắt), nhưng visit mới sẽ belong chi nhánh Cầu Giấy.

Ảnh minh hoạ
Patient 360 hiển thị toàn bộ timeline (CN Tây Hồ + Cầu Giấy). Mỗi visit có source branch riêng, không thay đổi.

Bối cảnh

DentIQ cho phép BN có visits ở nhiều chi nhánh trong cùng phòng khám. Timeline của BN gồm mọi sự kiện từ tất cả nhánh (CI-03: active branch là filter, không cắt). Tuy vậy, mỗi visit, charge, payment thuộc chi nhánh gốc vĩnh viễn (CI-01: source branch ownership).

Diễn viên & quyền cần

Vai tròQuyền cầnNhiệm vụ
Lễ tân CN cũpatient.readKhi BN thông báo chuyển, ghi chú trong hệ thống (optional)
Lễ tân CN mớipatient.read, visit.create, visit.manageMở Patient 360 BN, tạo visit mới ở CN Cầu Giấy
Bác sĩ CN cũtreatment_plan.manageNếu có plan dang dở, quyết định transfer hoặc close
Bác sĩ CN mớidiagnosis.manage, treatment_plan.manageTiếp nhận BN, tạo plan mới nếu cần

Quy trình từng bước

  1. BN thông báo chuyển:
    • BN gọi hoặc đến quầy CN cũ: "Em muốn chuyển hồ sơ sang chi nhánh Cầu Giấy"
    • Lễ tân CN cũ confirm: "Vâng, chúng tôi sẽ chuẩn bị hồ sơ. Anh có file X-quang hay ghi chú nào không?"
  2. Chuẩn bị hồ sơ (CN cũ):
    • Lễ tân CN cũ mở Patient 360 BN → export hồ sơ: diagnosis, files, treatment plan history, payment history
    • Print (nếu cần) hoặc lưu PDF → gửi cho BN hoặc CN mới
    • Nếu có treatment plan ONGOING ở CN cũ: bác sĩ CN cũ quyết định: (a) complete plan trước khi chuyển, hoặc (b) transfer plan cho bác sĩ CN mới
  3. BN mở hồ sơ tại CN mới:
    • Lễ tân CN mới search BN bằng SĐT hoặc mã → mở Patient 360 (đã tồn tại)
    • Verify: "Tên anh là …? Tuổi …? Tôi có đúng hồ sơ không ạ?"
    • CN mới có thể thấy toàn bộ timeline cũ (visit, X-quang, diagnosis) — CI-03 không cắt (CI-01)
  4. Tạo visit mới ở CN mới:
    • Patient 360 → tab Visits → click "Tạo visit mới"
    • Hệ thống tự set: branchId = Cầu Giấy (từ lễ tân's active branch), visitDate = hôm nay
    • BS CN mới kiểm tra tooth chart cũ, ghi diagnosis/findings mới nếu cần
  5. Treatment plan: 3 trường hợp
    • Plan CN cũ đã COMPLETED: Bác sĩ CN mới có thể tạo plan mới nếu BN cần tiếp tục
    • Plan CN cũ còn IN_PROGRESS: (a) BS CN cũ đóng plan (COMPLETED hoặc CANCELED) rồi CN mới tạo plan mới, hoặc (b) BS CN mới tiếp tục plan cũ (assign doctor mới, continue stages)
    • Plan CN cũ DRAFT: CN mới có thể accept plan đó (BN ký) hoặc BS mới tạo plan mới thay thế
  6. CN mới tiếp tục điều trị:
    • Mọi visit mới, charge mới, payment mới tại CN mới sẽ có branchId = Cầu Giấy
    • Timeline vẫn hiển thị visit cũ ở Tây Hồ (source branch immutable, CI-01)
    • Patient 360 active branch filter có thể là CN mới, nhưng timeline không cắt visit cũ

Kết quả mong đợi

  • BN có hồ sơ thống nhất trên hệ thống, không bị mất data khi chuyển
  • Timeline CT riêng biệt (CN cũ vs CN mới), nhưng Patient 360 hiển thị toàn bộ (CI-03)
  • Không có duplicate BN → SĐT/mã BN unique
  • Visit/charge/payment cũ thuộc CN cũ vĩnh viễn (CI-01) → warranty, commission tính đúng
  • CN mới có thể xem toàn bộ lịch sử lâm sàn + tài chính cũ → clinical context rõ
  • Nếu có transfer plan: doctor mới có thể tiếp tục hoặc close + tạo mới

Khi nào hỏng & cách xử lý

Vấn đềNguyên nhânCách checkCách fix
Tạo visit mới nhưng branchId sai (ghi CN cũ thay vì CN mới)Lễ tân CN mới quên chuyển active branch trước, hoặc UI mặc định saiMở visit detail, check branchId fieldNếu chưa có charge, có thể xoá visit + tạo lại. Nếu có charge, liên hệ admin để transfer (complex operation, nên tránh)
BN duplicate: có 2 record BN cùng SĐT (CN cũ tạo lại + CN mới tạo lại)Lễ tân CN mới tưởng BN mới, tạo record thay vì search cái cũPatients → search SĐT, filter by clinic → thấy 2 recordMở BN mới (sai) → Menu → Merge into… → chọn BN gốc. Timeline sẽ merge vào, BN sai sẽ archive
Treatment plan CN cũ không transfer đượcPlan ở ACCEPTED hoặc ONGOING status, và business logic không cho cross-branch transferKiểm tra plan status, xem next stage doctor's branchBS CN cũ complete stage cuối cùng, close plan (COMPLETED). CN mới tạo plan mới nếu cần tiếp tục
Timeline cutoff: BN chỉ thấy visit CN mới, không thấy CN cũActive branch filter được apply nhầm lên timeline (bug CI-03 violation)Check Patient 360 timeline, filter tất cả branchRefresh page. Nếu vẫn mất, liên hệ support — đây là cache invalidation issue (CI-04)

Dấu vết để lại (audit & branch ownership)

Source branch immutable (CI-01, CI-03): Visit CN cũ sẽ mãi thuộc CN cũ. Charge/payment CN cũ sẽ mãi thuộc CN cũ. Active branch ở CN mới chỉ filter danh sách, không thay đổi ownership cũ.

Audit trail:

  • BN update log: transfer note (if any), timestamp
  • Visit create log (CN mới): branch, doctor, timestamp
  • Plan transfer log (if applicable): from branch, to branch, actor, timestamp
  • BN merge log (if duplicate happened): old BN ID, target BN ID, actor, timestamp
Active branch vs Source branch (CI-01, CI-03)

Dễ nhầm: Active branch = nơi bạn đang "nhìn" (chip ở header). Source branch = nơi record được tạo. Patient 360 active branch filter danh sách BN, nhưng timeline KHÔNG bị cắt. Mỗi visit cứ mãi ghi nhớ branch gốc nó, không bao giờ đổi.