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

Trong bối cảnh chất lượng cuộc sống ngày càng nâng cao, nhu cầu chăm sóc sức khỏe làn da và thẩm mỹ diện mạo ghi nhận sự gia tăng rõ rệt ở cả hai giới. Các bệnh lý và vấn đề da liễu phổ biến như mụn trứng cá, thâm nám, lão hóa và dị ứng da đòi hỏi quy trình tư vấn, điều trị mang tính chuyên môn cao. Tuy nhiên, quy trình thăm khám truyền thống tại các phòng khám da liễu bộc lộ nhiều điểm bất cập như tốn thời gian di chuyển, chờ đợi lịch hẹn thủ công, thiếu công cụ theo dõi tiến trình hồi phục và hạn chế về kênh tương tác liên tục giữa bác sĩ với người bệnh. Xuất phát từ thực tiễn đó, đồ án "Xây dựng website đặt lịch thăm khám da mặt kết hợp mạng xã hội chia sẻ thông tin về chăm sóc da mặt" được thực hiện bởi sinh viên Nguyễn Trần Tuấn Đạt và Nguyễn Sơn Hào, dưới sự hướng dẫn của TS. Mai Anh Thơ tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.

Đề cương khóa luận xác định 5 nhiệm vụ nghiên cứu và phát triển cụ thể:

  1. Phân tích yêu cầu thực tế và hành vi người dùng đối với dịch vụ chăm sóc da; xác định các yêu cầu chức năng cốt lõi (tìm kiếm bác sĩ, đặt lịch hẹn, quản lý hồ sơ khám, kê đơn thuốc trực tuyến) và phi chức năng (trải nghiệm người dùng UX, tính mở rộng, bảo mật dữ liệu).
  2. Thiết kế hệ thống theo mô hình phân tầng Client - Server sử dụng RESTful API; thiết kế cơ sở dữ liệu quan hệ MySQL; ứng dụng cơ chế xác thực JWT cùng hạ tầng WebSocket và RabbitMQ hỗ trợ nhắn tin thời gian thực.
  3. Triển khai backend bằng framework Spring Boot, tích hợp Redis nhằm tối ưu hóa quản lý phiên và truy vấn; xây dựng frontend bằng ReactJS kết hợp thư viện giao diện MUI.
  4. Tích hợp các giải pháp công nghệ ngoại vi: nền tảng ZEGOCLOUD phục vụ nhắn tin và gọi video trực tiếp, trợ lý ảo Coze AI hỗ trợ người dùng 24/7, dịch vụ Cloudinary lưu trữ đa phương tiện.
  5. Thực hiện kiểm thử toàn diện trên các thành phần hệ thống (API, giao diện người dùng) để đảm bảo độ tin cậy và an toàn thông tin.

Đối tượng nghiên cứu của đề tài là quy trình tin học hóa việc đặt lịch khám da liễu, hoạt động tư vấn - kê đơn từ xa và mô hình mạng xã hội trao đổi kiến thức chăm sóc da. Phạm vi thời gian thực hiện nghiên cứu kéo dài từ tháng 01/2025 đến tháng 05/2025. Phạm vi chức năng bao quát 4 nhóm tác nhân trong hệ thống: Khách vãng lai, Khách hàng (bệnh nhân), Bác sĩ/Chuyên gia da liễu và Quản trị viên (Admin).

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

Đồ án ứng dụng các khái niệm và nguyên lý công nghệ phần mềm hiện đại, bao gồm mô hình kiến trúc MVC (Model - View - Controller), kiến trúc dịch vụ RESTful API, các mẫu thiết kế hướng đối tượng (Design Patterns) theo nghiên cứu của Erich Gamma cùng các cộng sự (1993) và quy trình kỹ thuật phần mềm hướng đối tượng theo giáo trình của Bernd Bruegge và Allen H. Dutoit (2009).

Phương pháp nghiên cứu thực tế được nhóm tác giả triển khai thông qua ba hướng tiếp cận:

  • Phương pháp nghiên cứu thực tiễn: Tiến hành khảo sát, phân tích ưu nhược điểm của các hệ thống đặt lịch y tế và diễn đàn da liễu thực tế tại Việt Nam gồm BookingCare, O2Skin và Sheis. Từ đó, nhóm rút ra kinh nghiệm để thiết kế quy trình đặt hẹn, cấu trúc giao diện tương tác và giải pháp thông báo xác nhận kết quả.
  • Phương pháp phân tích: Phân rã cấu trúc hệ thống thành hai mảng nghiệp vụ chính: phân hệ đặt lịch khám (đăng ký, tìm kiếm bác sĩ theo tiêu chí, đặt lịch, đánh giá, quản lý hồ sơ bệnh án) và phân hệ mạng xã hội chăm sóc da (đăng bài chia sẻ hình ảnh trước/sau điều trị, bình luận, kiểm duyệt nội dung).
  • Phương pháp mô phỏng: Ứng dụng ngôn ngữ mô hình hóa UML để xây dựng sơ đồ use case tổng quát và chi tiết, biểu đồ tuần tự (Sequence Diagram), sơ đồ quan hệ thực thể cơ sở dữ liệu và mô phỏng giao diện UI/UX trước khi tiến hành viết mã nguồn.

Nguồn dữ liệu của nghiên cứu bao gồm tài liệu kỹ thuật chính thức từ nhà phát triển Spring Boot, MySQL Documentation, cổng phát triển Railway, tài liệu API ZEGOCLOUD và nền tảng bot Coze AI.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc Client - Server giao tiếp thông qua giao thức HTTP/HTTPS với các RESTful API độc lập, kết hợp cơ chế truyền thông hai chiều thời gian thực. Toàn bộ hạ tầng công nghệ sử dụng trong đồ án được tổng hợp cụ thể tại bảng sau:

Tầng kiến trúc / Thành phần Công nghệ / Nền tảng áp dụng Vai trò và chức năng kỹ thuật
Frontend (Giao diện người dùng) ReactJS, MUI (Material-UI) Ứng dụng mô hình Single Page Application (SPA), sử dụng Virtual DOM tối ưu hóa tốc độ tải trang, chuẩn hóa giao diện theo Material Design
Backend (Máy chủ xử lý logic) Java Spring Boot, Spring Security Xử lý logic nghiệp vụ, phân luồng dữ liệu, tự động cấu hình qua starter dependencies, kiểm soát truy cập và phòng chống tấn công CSRF, XSS, Session Hijacking
Xác thực & Lưu phiên JSON Web Token (JWT), Redis Xác thực không lưu trạng thái (stateless authentication), quản lý phiên đăng nhập và bộ nhớ đệm giúp giảm tải truy vấn cơ sở dữ liệu
Cơ sở dữ liệu quan hệ MySQL Lưu trữ cấu trúc người dùng, lịch hẹn, hồ sơ bệnh án, đơn thuốc và bài viết mạng xã hội với tính toàn vẹn dữ liệu cao
Truyền thông tin nhắn WebSocket, RabbitMQ Đảm bảo hàng đợi thông điệp và truyền nhận dữ liệu văn bản theo thời gian thực
Tương tác âm thanh & hình ảnh ZEGOCLOUD Cung cấp giải pháp nhúng phòng gọi video call và voice call chất lượng cao, độ trễ thấp phục vụ quá trình thăm khám từ xa
Lưu trữ đa phương tiện Cloudinary Lưu trữ, tối ưu hóa dung lượng hình ảnh và video trước/sau điều trị mà không làm giảm chất lượng hiển thị
Trợ lý ảo thông minh Coze AI Tích hợp chatbot xử lý ngôn ngữ tự nhiên (NLP) phục vụ hướng dẫn thao tác và giải đáp thắc mắc người dùng 24/7
Môi trường triển khai Railway, Environment Variables Đóng gói và lưu trữ mã nguồn, quản lý các biến môi trường cấu hình của hệ thống

Quy trình kiểm thử được triển khai trực tiếp trên hai nhóm đối tượng chính thông qua bảng kịch bản kiểm thử chức năng cho khách hàng và bác sĩ. Nội dung kiểm thử bao quát toàn bộ các luồng thao tác: kiểm tra tính hợp lệ của biểu mẫu đăng ký, tính chính xác khi lọc danh sách bác sĩ, kiểm tra việc đặt trùng khung giờ, khả năng sinh tệp đơn thuốc định dạng PDF, truyền nhận dữ liệu cuộc gọi video qua ZEGOCLOUD và khả năng phản hồi của trợ lý ảo Coze AI.

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

Phần mở đầu

Phần mở đầu xác lập tính cấp thiết của đề tài xuất phát từ nhu cầu thực tiễn về chăm sóc sắc đẹp làn da. Tác giả trình bày chi tiết mục tiêu, nhiệm vụ nghiên cứu, phương pháp tiếp cận và kế hoạch thực hiện gồm 7 giai đoạn cụ thể kéo dài từ ngày 02/01/2025 đến ngày 06/06/2025. Phần này cũng làm rõ ý nghĩa khoa học và thực tiễn của giải pháp đối với người bệnh, đội ngũ bác sĩ và cơ sở phòng khám.

Chương 1: Cơ sở lý thuyết

Nội dung chương tập trung giới thiệu mô hình kiến trúc phân tầng MVC và nguyên lý giao tiếp API giữa frontend và backend. Tác giả đi sâu vào các đặc tính kỹ thuật của từng công nghệ lựa chọn:

  • ReactJS với cơ chế Virtual DOM giúp tăng hiệu năng render giao diện.
  • Thư viện MUI cung cấp hệ thống thành phần UI nhất quán.
  • Spring Boot và Spring Security cung cấp giải pháp bảo mật phân quyền đa cấp, tích hợp chuẩn xác thực JWT.
  • Hệ quản trị MySQL tối ưu cho các truy vấn quan hệ có khối lượng lớn.
  • Các dịch vụ hỗ trợ gồm Cloudinary (lưu trữ tệp đa phương tiện), ZEGOCLOUD (giải pháp gọi thoại/video độ trễ thấp) và Coze AI (trợ lý chatbot thông minh).

Chương 2: Xác định và mô hình hóa yêu cầu

Chương 2 mô tả hệ thống yêu cầu chức năng và phi chức năng, phân định nhiệm vụ cho 4 nhóm tác nhân: Khách vãng lai, Khách hàng, Bác sĩ và Quản trị viên (Admin). Chương này trình bày chi tiết hệ thống biểu đồ use case tổng thể, biểu đồ use case cho từng tác nhân và đặc tả chi tiết hơn 30 use case nghiệp vụ (từ UC_001 đến UC_016+):

  • UC_001 (Đăng ký): Ràng buộc định dạng email, mật khẩu tối thiểu 8 ký tự, số điện thoại chuẩn 10 chữ số và bắt buộc kích hoạt qua liên kết gửi về email cá nhân.
  • UC_002 (Tìm kiếm chuyên gia): Hỗ trợ bộ lọc đa tiêu chí theo tên, khu vực địa lý (tỉnh, huyện) và giá khám tăng hoặc giảm dần.
  • UC_003 (Đặt lịch khám): Khách hàng chọn chuyên gia, lọc lịch khám theo ngày và chọn khung giờ trống, điền triệu chứng và nhận thông báo xác nhận qua email.
  • UC_004 (Xem lịch sử khám bệnh): Hiển thị chi tiết kết quả khám của từng buổi hẹn và cho phép xuất/tải đơn thuốc dưới dạng tệp PDF về thiết bị.
  • UC_005 và UC_006 (Đánh giá và Chỉnh sửa đánh giá): Chỉ kích hoạt khi lịch khám đã chuyển sang trạng thái hoàn tất ("completed"); cho phép xếp hạng từ 1 đến 5 sao, viết nhận xét và đính kèm hình ảnh thực tế.
  • UC_009 (Hỏi đáp chatbot): Hỗ trợ trực tiếp thông qua cửa sổ Coze AI; tự động thông báo giới hạn tri thức nếu câu hỏi nằm ngoài phạm vi được huấn luyện.
  • UC_010 và UC_011 (Nhắn tin và Video Call): Khách hàng và bác sĩ trao đổi tin nhắn trực tiếp hoặc tạo phòng gọi video trực tuyến kèm chia sẻ camera/micro để phục vụ việc quan sát bề mặt da từ xa.
  • UC_012 (Quản lý lịch khám bệnh): Bác sĩ thiết lập hoặc hủy bỏ các khung giờ làm việc từ thứ Hai đến Chủ nhật; hệ thống gửi thông báo hủy tự động đến bệnh nhân nếu khung giờ bị hủy đã có người đặt trước.
  • UC_013 (Quản lý cuộc hẹn): Bác sĩ chuyển đổi trạng thái lịch hẹn (chưa xác nhận, đã xác nhận, đã hoàn tất, đã hủy); bắt buộc nhập lý do bằng văn bản khi chọn hủy lịch.
  • UC_014 và UC_015 (Kê đơn thuốc và Gửi đơn thuốc): Bác sĩ nhập tên thuốc, dạng bào chế, số lượng, hướng dẫn sử dụng, kết quả thăm khám và lời dặn; hệ thống kết xuất bản xem trước PDF và gửi trực tiếp tới email của bệnh nhân.
  • Phân hệ Quản trị viên: Quản lý tài khoản khách hàng, phê duyệt tài khoản bác sĩ dựa trên bằng cấp chuyên môn, kiểm duyệt tin tức và theo dõi thống kê số lượt khám của các chuyên gia nổi bật.

Chương 3: Phân tích và thiết kế hệ thống

Nội dung chương trình bày kiến trúc cơ sở dữ liệu quan hệ hoàn chỉnh và sơ đồ luồng dữ liệu của các use case trọng điểm như Đặt lịch khám (SD<003>), Đánh giá bác sĩ (SD<005>), Xem lịch sử khám (SD<004>), Quản lý lịch khám (SD<009>), Quản lý cuộc hẹn (SD<010>), Kê đơn thuốc (SD<011>) và Quản lý lịch sử khám (SD<013>). Bên cạnh đó, chương cung cấp thiết kế trực quan của 31 màn hình chức năng từ giao diện tìm kiếm bác sĩ, biểu mẫu đặt hẹn, quản lý ca trực, màn hình kê đơn thuốc, modal gọi video call, giao diện chatbot Coze AI đến hệ thống bảng biểu thống kê dữ liệu của quản trị viên.

Chương 4: Cài đặt và thử nghiệm

Chương 4 mô tả quá trình thiết lập môi trường vận hành, tích hợp các bộ thư viện frontend/backend, cấu hình thông số kết nối API ZEGOCLOUD, Coze AI, Cloudinary và dịch vụ thư điện tử. Tác giả trình bày các bảng kết quả kiểm thử chức năng thực tế trên hai phân hệ khách hàng và bác sĩ, xác nhận hệ thống vận hành đúng theo các kịch bản luồng chính, luồng phụ và luồng ngoại lệ đã thiết kế.

Phần kết luận

Tác giả tổng hợp các kết quả lý thuyết và sản phẩm thực tế đã xây dựng thành công; thẳng thắn nêu ra các mặt hạn chế còn tồn tại của ứng dụng và đề xuất định hướng nâng cấp trong tương lai.

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

Về mặt lý thuyết, đề tài giúp nhóm tác giả nắm vững và vận dụng hiệu quả quy trình phân tích thiết kế hướng đối tượng bằng UML vào một bài toán y tế thực tế; làm chủ kỹ thuật xây dựng ứng dụng phân tán với Spring Boot, ReactJS, quản lý bảo mật qua Spring Security/JWT và tích hợp các nền tảng truyền thông đám mây.

Về mặt sản phẩm phần mềm, đồ án đã hoàn thiện một hệ thống web đáp ứng đầy đủ các quy trình nghiệp vụ đã đề ra:

  • Phân hệ thăm khám y tế: Thiết lập quy trình đặt lịch khám theo khung giờ linh hoạt; tích hợp chức năng tư vấn trực tuyến từ xa qua cuộc gọi video và tin nhắn tức thời nhờ ZEGOCLOUD; chuẩn hóa quy trình kê đơn thuốc điện tử và tự động chuyển đổi thành tệp PDF gửi về hộp thư điện tử của bệnh nhân.
  • Phân hệ mạng xã hội chuyên ngành: Xây dựng không gian tương tác trực tuyến cho phép người dùng đăng bài viết, chia sẻ hình ảnh và video về quá trình cải thiện da trước và sau điều trị; cung cấp tính năng bình luận, bày tỏ cảm xúc và cơ chế đánh giá sao minh bạch kèm ảnh chụp kết quả.
  • Phân hệ hỗ trợ và quản trị: Tích hợp thành công chatbot Coze AI hỗ trợ tự động 24/7; xây dựng bảng điều khiển quản trị cho phép kiểm duyệt nội dung, xác thực bằng cấp bác sĩ và theo dõi các chỉ số hoạt động của phòng khám.

Đóng góp nổi bật của đề tài so với các nghiên cứu trước đây là việc kết hợp đồng thời mô hình quản lý đặt khám y tế truyền thống với một mạng xã hội da liễu khép kín, tạo ra kênh kết nối trực tiếp hai chiều giữa bệnh nhân và chuyên gia da liễu trên cùng một nền tảng số.

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

Khóa luận tự chỉ ra một số hạn chế kỹ thuật dựa trên phạm vi triển khai thực tế:

  • Trải nghiệm giao diện người dùng (UX) ở một số phân hệ quản lý chuyên sâu vẫn cần tiếp tục tinh chỉnh để đạt độ tối ưu cao hơn.
  • Tri thức của chatbot tích hợp Coze AI vẫn phụ thuộc vào tập dữ liệu kịch bản được nạp trước; khi người dùng đặt những câu hỏi chuyên sâu ngoài phạm vi huấn luyện, chatbot chỉ có thể đưa ra thông báo giới hạn hỗ trợ.
  • Hệ thống mới dừng lại ở việc vận hành trên nền tảng trình duyệt web máy tính, chưa được xây dựng thành ứng dụng di động độc lập; quy trình thanh toán chi phí khám bệnh trực tuyến chưa được tích hợp cổng thanh toán tự động.

Hướng phát triển tiếp theo của đề tài được xác định bao gồm:

  • Phát triển ứng dụng di động (Mobile App) đa nền tảng trên iOS và Android để người dùng dễ dàng theo dõi lịch hẹn và gọi video tiện lợi hơn.
  • Mở rộng kho ngữ liệu y khoa và huấn luyện chuyên sâu cho chatbot AI nhằm nâng cao khả năng phân loại triệu chứng ban đầu.
  • Tích hợp các cổng thanh toán điện tử trực tuyến nhằm tự động hóa hoàn toàn quy trình đặt hẹn và thu phí khám bệnh.

Giá trị tham khảo

Tài liệu khóa luận mang lại giá trị tham khảo thiết thực cho các đối tượng sau:

  • Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Tài liệu cung cấp ví dụ thực tế về việc kết hợp framework Java Spring Boot và ReactJS trong một dự án hoàn chỉnh từ khâu phân tích yêu cầu, thiết kế UML đến triển khai.
  • Người nghiên cứu các hệ thống y tế số (Telemedicine) và đặt lịch hẹn trực tuyến: Đồ án là nguồn tài liệu tham khảo chi tiết về kỹ thuật đặc tả use case, xử lý ràng buộc thời gian khám bệnh, sinh tài liệu PDF tự động và nhúng các dịch vụ bên thứ ba như ZEGOCLOUD (video call) và Coze AI (trợ lý ảo).
  • Các chương đáng chú ý nhất bao gồm Chương 2 (với hệ thống đặc tả use case đầy đủ luồng chính, luồng phụ, biệt lệ) và Chương 3 (với thiết kế cơ sở dữ liệu quan hệ và sơ đồ tuần tự chi tiết).

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

1. Khách hàng và bác sĩ thực hiện tư vấn thăm khám từ xa trên website bằng giải pháp kỹ thuật nào?
Hệ thống sử dụng giải pháp nhúng của nền tảng ZEGOCLOUD. Người dùng sau khi đăng nhập và chọn bác sĩ sẽ truy cập tính năng nhắn tin để khởi tạo phòng video call, bật camera, micro và gửi liên kết phòng trực tiếp qua khung chat để bác sĩ tham gia quan sát tình trạng da mặt trực quan theo thời gian thực.

2. Quy trình kê đơn và chuyển giao đơn thuốc cho bệnh nhân được thực hiện như thế nào?
Sau khi buổi khám hoàn tất, bác sĩ vào trang "Lịch sử khám", chọn bệnh nhân và mở biểu mẫu kê đơn thuốc. Bác sĩ nhập tên thuốc, dạng thuốc, số lượng, hướng dẫn sử dụng, kết quả chẩn đoán và lưu ý điều trị. Hệ thống lưu trữ thông tin vào cơ sở dữ liệu MySQL, tự động tạo đơn thuốc dưới dạng tệp PDF xem trước và gửi trực tiếp bản PDF này đến email đã đăng ký của bệnh nhân.

3. Cơ chế kiểm soát đánh giá bác sĩ trên hệ thống được quy định ra sao để tránh đánh giá ảo?
Hệ thống chỉ cho phép khách hàng thực hiện đánh giá (UC_005) khi lịch hẹn thăm khám đã hoàn tất và trạng thái cuộc hẹn được chuyển sang "completed". Khách hàng truy cập đường liên kết đánh giá gửi qua email sau buổi khám để cho điểm từ 1 đến 5 sao, viết nhận xét và tải hình ảnh thực tế; người dùng cũng có quyền chỉnh sửa lại đánh giá đã đăng (UC_006).

4. Khi đăng ký tài khoản khách hàng mới, hệ thống áp dụng những ràng buộc xác thực dữ liệu nào?
Biểu mẫu đăng ký (UC_001) yêu cầu nhập họ tên, email, mật khẩu, xác nhận mật khẩu, địa chỉ và số điện thoại. Hệ thống kiểm tra: email đúng định dạng và chưa tồn tại, mật khẩu tối thiểu 8 ký tự, mật khẩu xác nhận trùng khớp và số điện thoại phải đủ 10 chữ số. Sau khi gửi thông tin, hệ thống gửi đường link xác nhận về email và chỉ kích hoạt tài khoản khi người dùng nhấp vào liên kết này.

5. Chatbot Coze AI đóng vai trò gì và xử lý ra sao khi gặp câu hỏi ngoài phạm vi?
Chatbot Coze AI được nhúng tại góc dưới màn hình ứng dụng để chào đón và hỗ trợ giải đáp thắc mắc của người dùng 24/7. Nếu người dùng nhập câu hỏi nằm ngoài phạm vi tri thức hoặc dữ liệu được huấn luyện, chatbot sẽ kích hoạt luồng ngoại lệ và đưa ra thông báo: "Câu hỏi nằm ngoài phạm vi kiến thức tôi có thể trả lời".

Kết luận

Đồ án tốt nghiệp của sinh viên Nguyễn Trần Tuấn Đạt và Nguyễn Sơn Hào đã hiện thực hóa thành công một nền tảng web tích hợp giữa nghiệp vụ đặt lịch thăm khám da mặt y tế và mạng xã hội chia sẻ kiến thức chăm sóc da. Bằng việc phối hợp các công nghệ tiêu biểu gồm Spring Boot, ReactJS, MySQL, ZEGOCLOUD và Coze AI, đề tài giải quyết trọn vẹn quy trình kết nối bệnh nhân - bác sĩ từ khâu tìm kiếm, đặt lịch, khám video trực tuyến đến kê đơn thuốc điện tử. Báo cáo khóa luận được trình bày mạch lạc, tuân thủ chặt chẽ các bước kỹ thuật phần mềm hướng đối tượng và là tài liệu tham khảo có giá trị chuyên môn cao cho các đồ án phát triển ứng dụng web phân tán.