Bối cảnh và vấn đề nghiên cứu

Bối cảnh thực tiễn và lý do chọn đề tài

Trong lĩnh vực y tế, công tác tiếp nhận và xử lý thông tin giữ vai trò then chốt đối với mọi hoạt động vận hành của bệnh viện và phòng khám. Sự phát triển của công nghệ thông tin đã mang lại giải pháp nâng cao hiệu quả làm việc và giảm tải áp lực quản lý. Tuy nhiên, tại nhiều phòng khám, công tác đặt lịch khám bệnh vẫn duy trì hình thức truyền thống: bệnh nhân phải đến trực tiếp cơ sở y tế để bốc số, xếp hàng chờ đợi theo thứ tự.

Thực trạng này dẫn đến nhiều bất cập được tác giả chỉ ra:

  • Bệnh nhân mất nhiều công sức, thời gian chờ đợi; không thể chủ động sắp xếp thời gian cá nhân hoặc không gặp được bác sĩ mong muốn.
  • Khó khăn trong việc lưu trữ, theo dõi và tra cứu lại lịch sử hồ sơ bệnh án khi bệnh nhân trải qua nhiều lần khám.
  • Cơ sở y tế gặp trở ngại trong việc điều phối nhân sự, kiểm soát lịch làm việc của bác sĩ và thống kê kết quả hoạt động khám chữa bệnh.

Xuất phát từ thực tế trên, đề tài "Thiết kế, xây dựng website hỗ trợ quản lý và đặt lịch cho các phòng khám" được lựa chọn nhằm xây dựng một nền tảng trực tuyến giúp tự động hóa quy trình đăng ký khám bệnh, hỗ trợ phân phối ca khám hợp lý và tối ưu hóa việc quản lý hồ sơ khám chữa bệnh.

Mục tiêu và nhiệm vụ nghiên cứu

Mục tiêu chính của đề tài là xây dựng một hệ sinh thái web thân thiện, trực quan cho mọi lứa tuổi, cho phép người bệnh chủ động đăng ký khám theo bác sĩ và khung giờ định sẵn, đồng thời hỗ trợ nhân viên y tế và quản trị viên quản lý toàn diện quy trình khám chữa bệnh.

Nhiệm vụ nghiên cứu được phân định thành 2 nhóm nội dung:

  1. Nhiệm vụ lý thuyết:
    • Nghiên cứu và làm chủ các công nghệ nền tảng: ReactJS, NodeJS, Express Framework, MongoDB.
    • Khảo sát các giải pháp công nghệ hiện hành trong lĩnh vực y tế và quản lý phòng khám (tiêu biểu như BookingCare, Medpro).
    • Nghiên cứu kiến trúc và nguyên lý xây dựng dịch vụ web theo chuẩn RESTful API.
    • Tìm hiểu công cụ Chatbot AI (nền tảng Coze AI) và phương pháp tích hợp vào hệ thống web.
    • Nghiên cứu phương pháp thu thập, phân tích yêu cầu nghiệp vụ y tế và phân quyền người dùng.
  2. Nhiệm vụ thực hành:
    • Xây dựng phần mềm máy chủ (Backend) bằng NodeJS và Express, cung cấp các API xử lý logic đăng ký, đặt lịch, quản lý tài khoản.
    • Thiết kế và chuẩn hóa cơ sở dữ liệu phi quan hệ (NoSQL) với MongoDB, áp dụng cơ chế xác thực người dùng bằng JSON Web Token (JWT).
    • Phát triển giao diện người dùng (Frontend) tương tác bằng ReactJS với đầy đủ tính năng tra cứu, đăng ký lịch và xem hồ sơ.
    • Tích hợp dịch vụ gửi thư điện tử (email) tự động nhằm xác nhận lịch hẹn, gửi thông báo thay đổi và phiếu tóm tắt kết quả khám.
    • Thiết lập cơ chế kiểm soát truy cập và phân quyền chi tiết cho 3 nhóm đối tượng: Quản trị viên (Admin), Bác sĩ (Doctor), Bệnh nhân (User/Patient).

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Quy trình quản lý và tiếp nhận khám chữa bệnh tại các phòng khám; các giải pháp công nghệ phần mềm hỗ trợ giảm thời gian chờ và quản lý lịch hẹn y tế.
  • Phạm vi không gian: Mô hình nghiên cứu hướng tới khả năng ứng dụng tại các bệnh viện, phòng khám trên toàn quốc, bao gồm cả cơ sở y tế độc lập và hệ thống bệnh viện đa chuyên khoa.
  • Phạm vi thời gian: Đề tài thực hiện trong giai đoạn học kỳ 1 năm học 2024-2025, từ ngày 08/09/2024 đến ngày 12/12/2024.
  • Phạm vi đối tượng sử dụng:
    • Quản trị viên: Giám sát toàn bộ hệ thống, điều phối tài nguyên, quản lý danh mục phòng khám, chuyên khoa, tài khoản người dùng và lịch hẹn.
    • Bác sĩ: Quản lý ca trực, lịch làm việc cá nhân, tiếp nhận danh sách bệnh nhân và cập nhật hồ sơ bệnh án sau khám.
    • Bệnh nhân: Tra cứu thông tin y tế, đặt lịch khám trực tuyến, quản lý lịch sử khám và tương tác hỏi đáp với bác sĩ.
  • Giới hạn đề tài: Tập trung vào các quy trình nghiệp vụ tổng quát trong việc đặt lịch và hỗ trợ hồ sơ khám bệnh ban đầu; không đi sâu vào các phân hệ nghiệp vụ nội bộ phức tạp như quản trị tài chính - kế toán phòng khám, quản lý kho dược phẩm, hoặc kết nối bảo hiểm y tế nhà nước.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ sử dụng

Đề tài dựa trên mô hình phát triển ứng dụng web hiện đại (kiến trúc Single Page Application kết hợp RESTful Backend), khai thác các nền tảng công nghệ sau:

Thành phần Công nghệ / Nền tảng Đặc tính kỹ thuật chính được ứng dụng
Frontend ReactJS Thư viện mã nguồn mở xây dựng UI động; sử dụng React Hooks (quản lý state/lifecycle trong Functional Components), Virtual DOM tối ưu hóa render giao diện, cơ chế one-way data binding, cú pháp JSX và kiến trúc hướng thành phần (Component-based).
Backend NodeJS & Express Framework Môi trường runtime JavaScript chạy trên nền tảng V8 Engine, xử lý bất đồng bộ (non-blocking I/O) theo mô hình đơn luồng (single-threaded). Express đóng vai trò khung ứng dụng gọn nhẹ, quản lý middleware, routing (Router object) và xử lý HTTP Request/Response.
Cơ sở dữ liệu MongoDB Hệ quản trị cơ sở dữ liệu hướng tài liệu (Document-oriented NoSQL), lưu trữ dữ liệu dạng BSON/JSON, schema linh hoạt, không yêu cầu phép JOIN phức tạp, hỗ trợ lập chỉ mục (index) và mở rộng ngang (horizontal scaling).
Bảo mật & Xác thực JWT & Cookies Cơ chế JSON Web Token dùng để mã hóa thông tin xác thực, lưu trữ an toàn trong Cookie của trình duyệt nhằm duy trì phiên làm việc cho từng nhóm người dùng.
Trí tuệ nhân tạo Coze AI Nền tảng xây dựng Chatbot tự động dạng kéo thả, hỗ trợ thiết lập kịch bản tư vấn sức khỏe, hướng dẫn người bệnh và giải đáp thắc mắc thường gặp trên giao diện web.
Dịch vụ thông báo Dịch vụ gửi Email tự động Gửi mã thông báo xác nhận đặt lịch hẹn, mã token khôi phục mật khẩu và phiếu kết quả khám bệnh kèm đơn thuốc trực tiếp đến hòm thư người bệnh.

Phương pháp nghiên cứu

  1. Phương pháp khảo sát hiện trạng:
    • Tiến hành tìm hiểu, phân tích ưu và nhược điểm của các hệ thống đặt khám trực tuyến tiêu biểu tại Việt Nam: BookingCare (bookingcare.vn) và Medpro (medpro.vn) về các tính năng tìm kiếm bác sĩ, đặt chỗ, quản lý hồ sơ và nhắc lịch.
    • Đối chiếu quy trình thực tế tại các phòng khám để phát hiện các điểm nghẽn gây lãng phí thời gian của bệnh nhân và nhân viên quản lý.
  2. Phương pháp phỏng vấn và lấy yêu cầu:
    • Trao đổi ý kiến với các bác sĩ, nhân viên y tế và bệnh nhân nhằm xác định chính xác danh mục chức năng thiết yếu, yêu cầu về độ chính xác thời gian và tính bảo mật của dữ liệu y tế.
  3. Phương pháp mô hình hóa và thiết kế phần mềm:
    • Phân tích nghiệp vụ hệ thống theo phương pháp phân rã công việc (Work Breakdown Structure - WBS).
    • Mô hình hóa chức năng bằng hệ thống biểu đồ Use Case (Actor: Bệnh nhân, Bác sĩ, Quản trị viên) và mô tả chi tiết luồng xử lý (Main Flow, Alternative Flow, Exception Flow).
    • Thiết kế mô hình dữ liệu quan hệ logic cho các Collection trong cơ sở dữ liệu MongoDB.
  4. Phương pháp kiểm thử phần mềm:
    • Thực hiện kiểm thử chức năng (Functional Testing) cho từng API và giao diện; tối ưu hóa luồng tương tác và xử lý ngoại lệ phát sinh trong quá trình chạy thử nghiệm.

Thiết kế và triển khai hệ thống

Kiến trúc phân tầng và tổ chức chương trình

Hệ thống được tổ chức theo mô hình tách biệt giữa giao diện máy khách (Client-side) và dịch vụ máy chủ (Server-side) thông qua giao tiếp RESTful API:

  • Tầng Client (ReactJS): Được tổ chức thành các Component độc lập, tái sử dụng cao (Giao diện đặt lịch, thông tin cá nhân, danh sách chuyên khoa, màn hình quản trị). Trạng thái ứng dụng được điều phối qua React Hooks (useState, useEffect) và cơ chế Props.
  • Tầng Server (NodeJS/Express):
    • app.js: Tệp gốc cấu hình middleware, kết nối cơ sở dữ liệu và khai báo các thiết lập của máy chủ.
    • routes/: Chứa các bộ định tuyến API phân theo đối tượng nghiệp vụ (Người dùng, Bác sĩ, Lịch khám, Chuyên khoa, Phòng khám).
    • Tầng xử lý logic (Controllers/Services): Tiếp nhận yêu cầu, thực hiện xác thực JWT, kiểm tra trùng lặp thời gian khám và gửi thông báo email.
  • Tầng Dữ liệu (MongoDB): Chứa các bộ tài liệu (Collections) phục vụ toàn bộ nghiệp vụ lưu trữ.

Cấu trúc cơ sở dữ liệu

Dữ liệu được tổ chức thành các bảng lưu trữ (Collections) với cấu trúc trường phục vụ cho từng thực thể:

Tên bảng (Collection) Mô tả vai trò và dữ liệu lưu trữ
AccAdmin Lưu thông tin định danh và tài khoản quản trị hệ thống.
BenhNhan Lưu hồ sơ bệnh nhân: họ tên, số điện thoại, email, địa chỉ, ảnh cá nhân và mật khẩu mã hóa.
Doctor Lưu trữ hồ sơ bác sĩ: chuyên khoa, bằng cấp, kinh nghiệm, phòng khám công tác, chức vụ.
PhongKham Lưu trữ dữ liệu về các phòng khám, địa chỉ, số điện thoại và thông tin liên hệ.
ChuyenKhoa Danh mục các chuyên khoa y tế có trong hệ thống kèm mô tả chi tiết.
ChucVu Danh mục chức vụ, học hàm, học vị của đội ngũ y bác sĩ.
Role Thiết lập các vai trò người dùng trong hệ thống phục vụ phân quyền.
KhamBenh Lưu trữ thông tin lịch hẹn, thời gian đăng ký, trạng thái (đã hoàn thành, chưa hoàn thành, đã hủy), kết quả chẩn đoán và đơn thuốc.
ThoiGianGio Danh mục các khung giờ/ca khám định sẵn trong ngày để bác sĩ và bệnh nhân lựa chọn.
Bảng câu hỏi Lưu trữ các câu hỏi tư vấn y khoa của người bệnh gửi đến bác sĩ chuyên khoa và phản hồi tương ứng.

Đặc tả các Use Case cốt lõi

Hệ thống xử lý tương tác qua các Use Case đã được đặc tả chi tiết:

  • Đăng ký tài khoản bệnh nhân: Bệnh nhân nhập thông tin (Họ tên, email, số điện thoại, mật khẩu). Hệ thống kiểm tra nếu email đã tồn tại thì báo lỗi; nếu hợp lệ, tiến hành mã hóa mật khẩu, ghi nhận vào cơ sở dữ liệu và trả về kết quả đăng ký thành công.
  • Đăng nhập và quản lý phiên: Người dùng nhập email và mật khẩu. Sau khi đối soát tính chính xác, hệ thống khởi tạo mã xác thực (token) và gán vào cookie của trình duyệt để duy trì phiên làm việc cho từng nhóm quyền.
  • Quên mật khẩu: Người dùng nhập email đã đăng ký. Hệ thống kiểm tra dữ liệu, tự động khởi tạo mật khẩu ngẫu nhiên mới và chuyển qua email của người dùng kèm hướng dẫn truy cập lại.
  • Đặt lịch khám bệnh: Bệnh nhân lựa chọn chuyên khoa, bác sĩ và khung giờ trống khả dụng; điền lý do khám, hình thức thanh toán. Hệ thống kiểm tra điều kiện trùng lịch; nếu không trùng, lưu lịch khám, cập nhật trạng thái ca khám của bác sĩ và tự động gửi email thông báo xác nhận lịch hẹn.
  • Hủy lịch khám bệnh: Bệnh nhân cung cấp mã định danh lịch hẹn cần hủy. Hệ thống đối soát trạng thái, cập nhật bản ghi thành "Đã hủy" và xuất thông báo xác nhận.

Nội dung chính theo từng chương

Mở đầu

Phần mở đầu tập trung luận giải tính cấp thiết của việc áp dụng phần mềm vào bài toán giảm tải thời gian chờ khám bệnh tại các cơ sở y tế. Tác giả trình bày mục tiêu xây dựng website đặt lịch thân thiện, phân tích phạm vi áp dụng trên quy mô toàn quốc đối với các phòng khám và bệnh viện, đồng thời chỉ rõ giới hạn kỹ thuật của đề tài. Phần này cũng phân tích hai giải pháp thực tế gồm BookingCare và Medpro để làm căn cứ đề xuất các tính năng cốt lõi.

CHƯƠNG 1. Tổng quan công nghệ

Chương này tổng hợp các kiến thức nền tảng về ngăn xếp công nghệ được ứng dụng trong đề tài:

  • ReactJS: Giới thiệu lịch sử hình thành (Facebook, 2013), cơ chế hoạt động của Virtual DOM, nguyên lý luồng dữ liệu một chiều (one-way data binding), cú pháp JSX, cấu trúc vòng đời Component (khởi tạo, cập nhật, hủy) và cách quản lý trạng thái qua Props và State, React Hooks.
  • NodeJS & Express Framework: Phân tích kiến trúc JavaScript V8 Engine, cơ chế non-blocking I/O, mô hình đơn luồng giải phóng bộ nhớ đệm, giấy phép MIT. Đồng thời, chương này làm rõ vai trò của ExpressJS trong quản lý tệp cấu hình, router và cấu trúc thư mục tiêu chuẩn.
  • MongoDB: Phân tích sự vượt trội của hệ quản trị NoSQL so với RDBMS truyền thống: khả năng lưu trữ không cần định dạng cấu trúc cố định (schema-less), lưu trữ tài liệu JSON/BSON, hạn chế thao tác JOIN phức tạp, tối ưu hóa bộ nhớ đệm và tính linh hoạt cao trong mở rộng ngang.
  • Chatbot Coze AI: Nêu bật ưu điểm của công cụ tạo bot kéo thả miễn phí, hỗ trợ tích hợp đa kênh (website, Zalo, Messenger) để tự động hóa tư vấn y tế.

CHƯƠNG 2 – Khảo sát hiện trạng và xác định yêu cầu

Chương 2 mô tả chi tiết phương pháp phỏng vấn, khảo sát thực tế để thiết lập 23 nhóm chức năng nghiệp vụ của website, bao gồm:

  1. Xem thông tin trang chủ.
  2. Xem chi tiết thông tin bệnh viện.
  3. Xem chi tiết thông tin bác sĩ.
  4. Xem chi tiết chuyên khoa khám bệnh.
  5. Xem lịch sử khám bệnh.
  6. Đăng nhập và phân quyền (Admin, Bác sĩ, Bệnh nhân).
  7. Đăng ký tài khoản người dùng mới.
  8. Quên mật khẩu qua mã xác thực email.
  9. Cập nhật thông tin cá nhân.
  10. Quản lý hồ sơ bệnh nhân của bác sĩ.
  11. Quản lý ca khám bệnh của bác sĩ.
  12. Chọn ngày khám trên giao diện hệ thống.
  13. Quản lý tài khoản hệ thống của quản trị viên.
  14. Quản lý kế hoạch khám bệnh của bác sĩ.
  15. Quản lý danh mục phòng khám.
  16. Quản lý danh mục chuyên khoa.
  17. Thống kê tổng số lượng bác sĩ.
  18. Quản lý lịch hẹn khám bệnh toàn hệ thống.
  19. Tích hợp Chatbot tư vấn bệnh nhân.
  20. Quản lý tài khoản bệnh nhân dành cho Admin.
  21. Gửi thông tin xác nhận và kết quả khám qua email.
  22. Khóa và xóa tài khoản bệnh nhân vi phạm.
  23. Đặt câu hỏi trực tuyến cho bác sĩ chuyên khoa.

CHƯƠNG 3 – Phân tích thiết kế hệ thống

Chương 3 trình bày các mô hình kỹ thuật chi tiết:

  • Biểu đồ phân rã công việc WBS tổ chức các giai đoạn phát triển.
  • Sơ đồ ca sử dụng (Use Case) cho 3 tác nhân chính: Bệnh nhân (User), Quản trị viên (Admin), Bác sĩ (Doctor) và sơ đồ quy trình xử lý đăng ký lịch khám.
  • Đặc tả chi tiết từng Use Case với đầy đủ điều kiện tiên quyết, chuỗi sự kiện chính và luồng xử lý ngoại lệ.
  • Mô tả chi tiết cấu trúc 10 bảng dữ liệu trong MongoDB (AccAdmin, BenhNhan, ChucVu, ChuyenKhoa, Doctor, KhamBenh, PhongKham, Role, ThoiGianGio, Bảng câu hỏi).

CHƯƠNG 4 – Giao diện website

Chương 4 tài liệu hóa hệ thống màn hình chức năng được xây dựng trên ReactJS theo 3 nhóm phân quyền:

  • Phân quyền Bệnh nhân (19 giao diện): Trang chủ, đăng ký, đăng nhập, quên mật khẩu, danh sách/chi tiết chuyên khoa, danh sách/chi tiết bác sĩ, danh sách/chi tiết phòng khám, chọn ca khám, đặt lịch, xem lịch hẹn đã đặt, xem bệnh án, cửa sổ Chatbot Coze AI, giao diện đặt câu hỏi cho bác sĩ, giao diện chờ và xác nhận qua email.
  • Phân quyền Bác sĩ (9 giao diện): Đăng nhập, theo dõi lịch hẹn, xem thông tin bệnh nhân đã đăng ký, chọn/chỉnh sửa lịch trình ca làm việc, cập nhật hồ sơ cá nhân, đổi mật khẩu, xem và gửi câu trả lời tư vấn cho bệnh nhân.
  • Phân quyền Quản trị viên (17 giao diện): Bảng điều khiển quản trị, quản lý/thêm/sửa bác sĩ, phân bổ kế hoạch khám bệnh, quản lý/thêm/sửa phòng khám, quản lý/thêm mới chức vụ y khoa, quản lý chuyên khoa, quản lý danh sách bệnh nhân và giám sát trạng thái lịch hẹn.

CHƯƠNG 5 – Cài đặt

Chương này tổng kết môi trường triển khai thực tế của ứng dụng, sự phối hợp giữa thư viện ReactJS, nền tảng NodeJS, cơ sở dữ liệu MongoDB và cấu trúc các lớp phần mềm. Chương này cũng báo cáo kết quả kiểm thử chức năng và đánh giá mức độ hoàn thiện các mục tiêu đã đề ra trong đề cương luận văn.


Kết quả và đóng góp

Kết quả kỹ thuật và tính năng

Căn cứ trên các hạng mục đã hoàn thành trong kế hoạch thực hiện đề tài (từ 08/09/2024 đến 12/12/2024), tác giả đã đạt được các kết quả cụ thể:

  • Về mặt công nghệ:
    • Hoàn thiện hệ thống Backend bằng NodeJS và Express Framework, cấu hình đầy đủ các RESTful API cho phép giao tiếp dữ liệu an toàn với cơ sở dữ liệu MongoDB.
    • Xây dựng hệ thống bảo mật phân quyền 3 cấp (Admin, Doctor, Patient) dựa trên cơ chế JWT và Cookie.
    • Triển khai thành công giao diện Single Page Application bằng ReactJS, ứng dụng React Hooks và Virtual DOM giúp tốc độ phản hồi nhanh.
    • Tích hợp thành công dịch vụ gửi email tự động (xác nhận đặt lịch, gửi đơn thuốc/bệnh án, cấp lại mật khẩu) và trợ lý ảo Chatbot Coze AI hỗ trợ tương tác trên website.
  • Về tính năng nghiệp vụ:
    • Hệ thống vận hành đầy đủ 23 chức năng đề ra: cho phép bệnh nhân tra cứu thông tin theo phòng khám/bác sĩ/chuyên khoa, lựa chọn khung giờ khám theo ca trống của bác sĩ mà không bị trùng lặp.
    • Hỗ trợ bác sĩ theo dõi số lượng ca khám trong ngày, quản lý bệnh án sau khám và trả lời câu hỏi trực tuyến.
    • Cung cấp công cụ quản trị tập trung cho phép Admin theo dõi danh sách lịch hẹn, thống kê tổng số bác sĩ và quản lý các danh mục cơ sở y tế.

Đóng góp của đề tài

So với quy trình tiếp nhận khám chữa bệnh thủ công hoặc các nghiên cứu khảo sát trước đó, đề tài mang lại những đóng góp:

  • Xây dựng một quy trình khép kín từ lúc người bệnh tìm kiếm bác sĩ, đặt chỗ trực tuyến, nhận email xác nhận, đến lúc khám bệnh và nhận hồ sơ kết quả điện tử qua email.
  • Tự động hóa việc phân bổ ca khám, loại bỏ hoàn toàn tình trạng bệnh nhân phải xếp hàng chờ đợi lấy số thứ tự tại cơ sở y tế.
  • Tích hợp tính năng hỏi đáp trực tuyến theo chuyên khoa và trợ lý chatbot, tăng cường kênh giao tiếp sơ bộ giữa bệnh nhân và đội ngũ y tế trước khi đến khám trực tiếp.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của hệ thống

Dựa trên phạm vi và giới hạn nghiên cứu được văn bản công bố, hệ thống còn tồn tại một số điểm hạn chế:

  • Hệ thống chỉ mới dừng lại ở việc quản lý thông tin ở mức tổng quát; chưa đi sâu giải quyết các nghiệp vụ đặc thù riêng biệt theo từng quy mô phòng khám lớn (như kết nối hệ sinh thái thiết bị y tế chuyên dụng).
  • Chưa tích hợp hệ thống thanh toán viện phí trực tuyến chuyên sâu, chưa hỗ trợ cổng thanh toán bảo hiểm y tế nhà nước hoặc bảo hiểm bảo lãnh tư nhân.
  • Chưa xây dựng phân hệ quản lý tài chính doanh thu chi tiết, hóa đơn điện tử pháp lý và các thủ tục hành chính nội bộ của cơ sở y tế.

Hướng phát triển tiếp theo

Tác giả xác định các nội dung cần tiếp tục nghiên cứu và hoàn thiện trong tương lai:

  • Mở rộng kết nối các cổng thanh toán điện tử (VNPay, MoMo, thẻ ngân hàng) nhằm cho phép thanh toán chi phí khám chữa bệnh trực tiếp trên website.
  • Nghiên cứu cơ chế đồng bộ dữ liệu bệnh án với hệ thống quản lý bệnh viện tổng thể (HIS) và cổng bảo hiểm y tế.
  • Xây dựng ứng dụng di động (Mobile App) trên nền tảng Android và iOS để nâng cao tính tiện lợi cho bệnh nhân và bác sĩ khi quản lý lịch hẹn.
  • Nâng cấp năng lực xử lý thông minh của Chatbot thông qua việc huấn luyện sâu dữ liệu y khoa để hỗ trợ sàng lọc triệu chứng sơ bộ chuẩn xác hơn.

Giá trị tham khảo

Báo cáo khóa luận tốt nghiệp này là tài liệu tham khảo hữu ích cho các nhóm đối tượng sau:

  • Sinh viên ngành Công nghệ thông tin và Công nghệ phần mềm: Đặc biệt là sinh viên đang thực hiện đồ án tốt nghiệp hoặc các môn học chuyên ngành liên quan đến phát triển ứng dụng web Full-stack theo ngăn xếp ReactJS, NodeJS, Express và MongoDB.
  • Người nghiên cứu các hệ thống quản lý y tế và đặt lịch: Tài liệu cung cấp cách tiếp cận thực tế về cấu trúc cơ sở dữ liệu NoSQL, cách phân rã chức năng nghiệp vụ đặt lịch (Booking engine), quản lý ca khám trống và quy trình kiểm soát xung đột thời gian khám của bác sĩ.
  • Các phần nội dung đáng tham khảo:
    • Chương 2 và Chương 3: Là tài liệu mẫu về khảo sát yêu cầu thực tế, phân rã công việc (WBS), thiết kế biểu đồ ca sử dụng (Use Case Diagram) và bảng đặc tả Use Case chi tiết.
    • Thiết kế cơ sở dữ liệu: Cung cấp cấu trúc tham chiếu cho các bảng nghiệp vụ y tế (bác sĩ, bệnh nhân, lịch hẹn, chuyên khoa, khung giờ).
    • Phương pháp tích hợp giải pháp phụ trợ: Cách thức kết nối cơ chế xác thực JWT, dịch vụ gửi email tự động và nền tảng chatbot trí tuệ nhân tạo vào ứng dụng thực tế.

Câu hỏi thường gặp

1. Khóa luận này sử dụng ngăn xếp công nghệ (tech stack) cụ thể nào để xây dựng website?
Website được xây dựng dựa trên công nghệ JavaScript toàn diện (Full-stack): Frontend sử dụng thư viện ReactJS (khai thác React Hooks và Virtual DOM); Backend sử dụng NodeJS kết hợp khung ứng dụng ExpressJS; Cơ sở dữ liệu sử dụng hệ quản trị NoSQL MongoDB; Xác thực người dùng thông qua JSON Web Token (JWT) kết hợp Cookie; cùng với Chatbot Coze AI và hệ thống gửi thư điện tử tự động.

2. Hệ thống phân chia quyền hạn của các nhóm người dùng như thế nào?
Hệ thống thiết lập 3 nhóm tác nhân (Actors) với các quyền hạn cụ thể:

  • Bệnh nhân: Xem thông tin bác sĩ, bệnh viện, chuyên khoa; đặt lịch khám; xem lịch sử khám và bệnh án cá nhân; đặt câu hỏi cho bác sĩ và tương tác với chatbot.
  • Bác sĩ: Quản lý lịch làm việc cá nhân, cập nhật ca khám trống, tiếp nhận danh sách bệnh nhân đã đăng ký, lập phiếu kết quả khám bệnh và trả lời câu hỏi chuyên khoa. Không có quyền thêm, xóa, sửa tài khoản người dùng khác.
  • Quản trị viên: Nắm toàn quyền hệ thống; quản lý toàn bộ tài khoản người dùng (bao gồm khóa, xóa); quản lý thông tin phòng khám, chuyên khoa, chức vụ; điều phối lịch làm việc của bác sĩ và theo dõi trạng thái toàn bộ lịch hẹn.

3. Làm thế nào hệ thống giải quyết vấn đề trùng lặp lịch khám của bác sĩ?
Trong quy trình đặt lịch khám, hệ thống tổ chức bảng dữ liệu ThoiGianGio và ca khám của bác sĩ. Khi bệnh nhân chọn một khung giờ và gửi yêu cầu, hệ thống sẽ tiến hành kiểm tra (validation) trạng thái của ca khám đó trong cơ sở dữ liệu. Nếu khung giờ đã được người khác đặt trước, hệ thống cảnh báo trùng lịch và yêu cầu bệnh nhân chọn lại; nếu khung giờ còn trống, hệ thống mới ghi nhận lịch hẹn vào bảng KhamBenh, chuyển trạng thái khung giờ và gửi thông báo xác nhận qua email.

4. Dữ liệu trong hệ thống được tổ chức thành những bảng nào trong MongoDB?
Cơ sở dữ liệu của hệ thống gồm 10 bảng (Collections) chính: AccAdmin (tài khoản quản trị), BenhNhan (thông tin người bệnh), Doctor (thông tin bác sĩ), PhongKham (thông tin cơ sở y tế), ChuyenKhoa (danh mục chuyên khoa), ChucVu (chức vụ bác sĩ), Role (vai trò phân quyền), KhamBenh (chi tiết lịch hẹn và kết quả khám), ThoiGianGio (danh mục khung giờ khám) và bảng lưu trữ các câu hỏi tư vấn gửi về cho bác sĩ.

5. Đề tài giới hạn không giải quyết các khía cạnh nghiệp vụ nào của phòng khám?
Theo công bố của tác giả, đề tài chỉ tập trung tối ưu quy trình quản lý lịch khám và hỗ trợ bệnh án tổng quát. Đề tài giới hạn, không đi sâu vào các nghiệp vụ kế toán - tài chính chi tiết, không tích hợp thanh toán bảo hiểm y tế nhà nước và không giải quyết các thủ tục hành chính nội bộ riêng biệt của từng cơ sở y tế.


Kết luận

Đồ án tốt nghiệp "Thiết kế, xây dựng website hỗ trợ quản lý và đặt lịch cho các phòng khám" của sinh viên Trần Hoàng Quân (Trường Đại học Sư phạm Kỹ thuật TP.HCM) đã giải quyết trọn vẹn bài toán tự động hóa quy trình đăng ký khám bệnh trực tuyến nhằm giảm thời gian chờ đợi cho người bệnh.

Thông qua việc kết hợp nền tảng công nghệ ReactJS, NodeJS, Express và MongoDB, hệ sinh thái phần mềm đã đáp ứng đầy đủ 23 tính năng nghiệp vụ với sự phân quyền chặt chẽ giữa Quản trị viên, Bác sĩ và Bệnh nhân.

Mặc dù còn một số hạn chế về mặt tích hợp thanh toán chuyên sâu và kết nối bảo hiểm y tế, đề tài đã mang lại một mô hình ứng dụng hoàn chỉnh, đạt tính ứng dụng thực tiễn cao và là tài liệu kỹ thuật có giá trị tham khảo tốt cho sinh viên ngành Công nghệ phần mềm.