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

Đề tài "Xây dựng Website quản lý khám chữa bệnh tại phòng khám tư nhân" được thực hiện bởi sinh viên Nguyễn Việt Hoàng (MSV: B17DCCN266, Lớp: E17CN01) dưới sự hướng dẫn của TS. Vũ Văn Thỏa tại Khoa Công nghệ Thông tin, Học viện Công nghệ Bưu chính Viễn thông vào năm 2022.

Bối cảnh thực tiễn của nghiên cứu xuất phát từ giai đoạn đại dịch Covid-19 diễn biến phức tạp trên quy mô toàn cầu. Tại Việt Nam, người dân được khuyến cáo hạn chế di chuyển và chỉ đến cơ sở y tế khi có nhu cầu cấp thiết. Điều này dẫn đến khó khăn lớn trong việc tiếp cận dịch vụ thăm khám định kỳ và điều trị các bệnh lý thông thường. Đồng thời, quy trình khám chữa bệnh tại các bệnh viện công và cơ sở y tế tư nhân vừa và nhỏ còn tồn tại nhiều bất cập: bệnh nhân phải tập trung đông người, xếp hàng dài chờ đợi, tạo nguy cơ cao lây nhiễm chéo dịch bệnh. Mặt khác, hệ thống cung ứng và phân phối thuốc trực tuyến uy tín còn rất hạn chế, gây cản trở cho người dân trong việc tự mua thuốc điều trị tại nhà.

Mục tiêu nghiên cứu được xác định rõ ràng:

  1. Xây dựng một hệ thống website phục vụ chuyển đổi số cho các bệnh viện và phòng khám tư nhân vừa và nhỏ.
  2. Cung cấp nền tảng số giúp bệnh nhân chủ động đặt lịch hẹn khám bệnh trước, giảm thiểu tình trạng xếp hàng và tiếp xúc đông người.
  3. Triển khai kênh phân phối và đặt mua thuốc trực tuyến hỗ trợ người bệnh tiếp cận dược phẩm thuận tiện.
  4. Tối ưu hóa năng lực tiếp nhận bệnh nhân của phòng khám và hỗ trợ các y bác sĩ quản lý lịch làm việc, lịch hẹn khám hiệu quả.
  5. Cung cấp bộ công cụ quản trị tập trung cho người quản lý phòng khám bao gồm: quản lý sản phẩm thuốc, quản lý đơn hàng, danh mục thể loại, nhãn hiệu, chương trình khuyến mãi, quản lý người dùng và quyết toán chi phí khám chữa bệnh.

Đối tượng nghiên cứu của đồ án là quy trình tiếp nhận, quản lý lịch hẹn khám bệnh, quy trình bán thuốc và quản trị hoạt động chuyên môn - nghiệp vụ tại các phòng khám tư nhân. Phạm vi nghiên cứu tập trung vào việc phân tích, thiết kế và hiện thực hóa hệ thống ứng dụng web trên nền tảng công nghệ Java (Spring Boot) kết hợp hệ quản trị cơ sở dữ liệu quan hệ MySQL trong môi trường phòng khám tư nhân tại Việt Nam năm 2022.

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

Đồ án xây dựng nền tảng phát triển dựa trên các khung lý thuyết kiến trúc phần mềm và hệ sinh thái công nghệ chuẩn trong công nghệ thông tin:

  • Mô hình kiến trúc MVC (Model - View - Controller): Đồ án áp dụng kiến trúc phân tầng để phân tách các thành phần chức năng của ứng dụng. Model chịu trách nhiệm mô hình hóa đối tượng và tương tác dữ liệu; Controller tiếp nhận yêu cầu từ máy khách (Client), xử lý logic nghiệp vụ và điều hướng luồng dữ liệu; View đảm nhận việc kết xuất và hiển thị giao diện đồ họa cho người dùng qua trình duyệt.
  • Hệ sinh thái Spring Framework và Spring Boot: Sử dụng hai nguyên tắc thiết kế cốt lõi là Tiêm phụ thuộc (Dependency Injection - DI) và Lập trình hướng khía cạnh (Aspect Oriented Programming - AOP). Spring Boot cung cấp mô hình phát triển ứng dụng nhanh (Rapid Application Development - RAD), tích hợp sẵn các máy chủ nhúng (Tomcat, Jetty, Undertow) và loại bỏ hoàn toàn việc cấu hình phức tạp bằng XML.
  • Tầng truy cập dữ liệu và ORM: Sử dụng chuẩn giao tiếp Java Persistence API (JPA) và framework Hibernate để thực hiện ánh xạ quan hệ - đối tượng (Object Relational Mapping - ORM). Module Spring Data JPA được ứng dụng nhằm giảm thiểu mã nguồn trung gian thông qua các giao diện CrudRepository và PagingAndSortingRepository.
  • Template Engine Thymeleaf: Được lựa chọn làm công cụ xử lý giao diện phía máy chủ (Server-side rendering), hỗ trợ các tệp HTML tự nhiên (Natural Templates), có khả năng kết xuất trực tiếp trên trình duyệt mà không cần chạy máy chủ và hỗ trợ cơ chế bộ nhớ đệm (cache) linh hoạt.
  • Hệ quản trị cơ sở dữ liệu MySQL: Cơ sở dữ liệu quan hệ (RDBMS) hoạt động theo mô hình Client - Server, sử dụng ngôn ngữ SQL để quản lý các bảng và thiết lập quan hệ ràng buộc dữ liệu.
  • Nền tảng ảo hóa Docker: Sử dụng công nghệ đóng gói Container (viết bằng Golang) nhằm chuẩn hóa môi trường thực thi theo triết lý "Build once, run anywhere", hỗ trợ cô lập dịch vụ và mở rộng hệ thống độc lập.
Thành phần công nghệ Công nghệ lựa chọn Mục đích sử dụng
Kiến trúc phần mềm Model - View - Controller (MVC) Phân tách lớp dữ liệu, logic xử lý và giao diện
Backend Framework Spring Boot (Spring Framework) Xây dựng logic nghiệp vụ, quản lý DI, AOP, REST endpoint
Tầng ORM / Data Access JPA / Hibernate / Spring Data JPA Ánh xạ thực thể cơ sở dữ liệu sang POJO, xử lý truy vấn tự động
Frontend / View Engine Thymeleaf Kết xuất dữ liệu động trên nền tảng HTML thuần
Cơ sở dữ liệu MySQL (RDBMS) Lưu trữ thông tin bệnh nhân, lịch khám, đơn hàng, danh mục thuốc
Triển khai / Môi trường Docker Đóng gói ứng dụng và cơ sở dữ liệu thành các container độc lập

Phương pháp nghiên cứu thực tế bao gồm phương pháp phân tích yêu cầu phần mềm, mô hình hóa hệ thống bằng ngôn ngữ UML (vẽ biểu đồ Use Case tổng quát và phân rã, biểu đồ lớp pha thiết kế, biểu đồ tuần tự cho từng chức năng), thiết kế lược đồ cơ sở dữ liệu quan hệ và phương pháp thực nghiệm cài đặt hệ thống phần mềm hoàn chỉnh. Nguồn dữ liệu phục vụ nghiên cứu là các khảo sát nghiệp vụ thực tế về quy trình đăng ký khám, kê đơn, bán thuốc và quản trị phòng khám.

Thiết kế và triển khai

Hệ thống được thiết kế theo hướng module hóa hoàn chỉnh, phân định rõ ràng quyền hạn và luồng tương tác giữa các tác nhân (Actors).

Phân tích tác nhân và phân quyền hệ thống

Hệ thống xác định 3 nhóm tác nhân chính:

  1. Quản lý (Admin): Đảm nhiệm toàn bộ việc quản trị hệ thống, bao gồm quản lý thông tin sản phẩm thuốc, thể loại (category), nhãn hàng, chương trình khuyến mãi (coupon), đơn hàng, bản tin (blog), tài khoản người dùng, dịch vụ khám bệnh và thực hiện quyết toán viện phí đăng ký khám.
  2. Bác sĩ (Doctor): Tiếp nhận thông tin khám bệnh, theo dõi và quản lý các cuộc hẹn đã được phân công, thiết lập và cập nhật lịch làm việc cá nhân.
  3. Khách hàng / Bệnh nhân (Customer/Patient): Thực hiện đăng ký tài khoản, đăng nhập, tìm kiếm thông tin phòng khám, đăng ký lịch khám bệnh trực tuyến (chọn bác sĩ, chọn dịch vụ, chọn khung giờ), đặt mua thuốc trực tuyến, quản lý giỏ hàng, thanh toán trực tuyến qua cổng MoMo và tra cứu lịch sử khám bệnh/đơn hàng.

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống được chuẩn hóa nhằm đảm bảo tính toàn vẹn dữ liệu giữa các phân hệ quản lý khám bệnh và thương mại điện tử dược phẩm. Các thực thể chính bao gồm:

  • Bảng phân quyền và người dùng: ROLE, USER_ROLE, lưu trữ tài khoản, mật khẩu và vai trò hệ thống.
  • Bảng chuyên môn y tế: WORKING_PLAN (kế hoạch làm việc), DOCTOR_WORK (phân công ca làm việc của bác sĩ), lưu trữ lịch hẹn và phân ca.
  • Bảng nghiệp vụ tài chính và hóa đơn: INVOICE (hóa đơn thanh toán khám chữa bệnh và đơn thuốc).
  • Bảng quản lý sản phẩm và bán hàng: ORDER_ITEM (chi tiết sản phẩm trong đơn thuốc), ORDER_PROMOTION (khuyến mãi áp dụng cho đơn hàng), PRODUCT_PROMOTION (khuyến mãi áp dụng cho từng sản phẩm).

Đặc tả luồng xử lý và giao diện

Hệ thống hiện thực hóa 11 ca sử dụng trọng tâm với các kịch bản chi tiết:

  • Quy trình đặt khám trực tuyến: Bệnh nhân truy cập hệ thống -> chọn dịch vụ khám -> chọn bác sĩ phụ trách -> chọn khung thời gian phù hợp -> kiểm tra thông tin tổng hợp của cuộc hẹn -> xác nhận đăng ký khám.
  • Quy trình mua thuốc và thanh toán: Khách hàng tìm kiếm sản phẩm thuốc -> xem chi tiết (thông số, hình ảnh, giá bán đầu/cuối, bảo hành, quy cách đóng gói) -> thêm vào giỏ hàng -> chọn phương thức thanh toán (hỗ trợ tích hợp cổng thanh toán trực tuyến MoMo) -> hoàn tất đơn hàng và nhận thông báo giao dịch.
  • Quy trình quản trị nghiệp vụ: Quản trị viên sử dụng giao diện quản lý để tạo mới/chỉnh sửa/xóa các danh mục thuốc (nhập tên, slug, mô tả, hình ảnh), quản lý sản phẩm (nhập tên, mã SKU, nhãn hiệu, giá bán, thời hạn bảo hành, kích thước đóng gói, thẻ meta title/keyword/description hỗ trợ SEO), quản lý mã giảm giá coupon và duyệt danh sách quyết toán khám bệnh.

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

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

Chương 1 tập trung trình bày tổng quan các kiến thức nền tảng và công nghệ được sử dụng để xây dựng hệ thống:

  • Giới thiệu bản chất, vai trò và luồng xử lý của mô hình kiến trúc MVC trong ứng dụng web.
  • Phân tích cấu trúc hệ sinh thái Spring Framework với các tầng Core Container, AOP, Data Access/Integration, Web (Spring MVC) và Module kiểm thử (Test với JUnit/TestNG).
  • Trình bày các ưu điểm nổi bật của Spring Boot: cơ chế phát triển ứng dụng nhanh (RAD), loại bỏ cấu hình XML, tích hợp máy chủ nhúng sẵn (Tomcat, Jetty, Undertow) và hỗ trợ tự động cấu hình các thành phần.
  • Làm rõ mối quan hệ giữa Java Persistence API (JPA), Hibernate và Spring Data JPA trong việc trừu tượng hóa thao tác với cơ sở dữ liệu.
  • So sánh chi tiết công cụ tạo mẫu giao diện Thymeleaf với các công nghệ truyền thống như JSP (JavaServer Pages) và JSF (JavaServer Faces), chỉ ra tính ưu việt của Thymeleaf nhờ khả năng kết xuất mã HTML tự nhiên mà không phá vỡ mô hình MVC.
  • Trình bày nguyên lý hoạt động 3 bước của hệ quản trị cơ sở dữ liệu MySQL và lợi ích của giải pháp ảo hóa ứng dụng bằng Docker Container.

Chương 2: Phân tích, thiết kế hệ thống

Chương 2 phản ánh quá trình phân tích nghiệp vụ và thiết kế chi tiết toàn bộ phần mềm:

  • Phân tích thực trạng khám chữa bệnh và mua bán thuốc trong điều kiện thực tế, từ đó đề xuất hai giải pháp trọng tâm: bãi bỏ xếp hàng bằng đặt lịch hẹn trước và xây dựng cổng mua thuốc trực tuyến.
  • Xác định danh mục 11 yêu cầu chức năng nghiệp vụ của hệ thống.
  • Định nghĩa rõ ràng phạm vi trách nhiệm của 3 tác nhân: Quản lý, Bác sĩ và Khách hàng.
  • Xây dựng biểu đồ Use Case tổng quát và 11 biểu đồ Use Case phân rã cho từng chức năng (quản lý trang tin, thể loại, sản phẩm, khuyến mãi, nhãn hàng, người dùng, cập nhật đơn hàng, quyết toán đăng ký khám, đặt lịch làm việc bác sĩ, quản lý cuộc hẹn, đặt khám trực tuyến, mua thuốc trực tuyến).
  • Xây dựng hệ thống bảng kịch bản ca sử dụng chi tiết (tiền điều kiện, hậu điều kiện, luồng sự kiện chính, ngoại lệ) cho các thao tác Thêm/Sửa/Xóa/Xem chi tiết trên từng thực thể nghiệp vụ.
  • Thiết lập sơ đồ lớp thiết kế và hệ thống sơ đồ tuần tự (Sequence Diagram) mô tả chi tiết tương tác giữa các lớp Controller, Service, Repository và Database.
  • Thiết kế chi tiết lược đồ cơ sở dữ liệu quan hệ với đầy đủ các bảng dữ liệu chuyên biệt.

Chương 3: Cài đặt hệ thống

Chương 3 trình bày việc hiện thực hóa các phân tích thiết kế thành ứng dụng phần mềm thực tế:

  • Thiết lập môi trường cài đặt phần mềm và cấu hình triển khai.
  • Cài đặt và chụp ảnh minh chứng cho toàn bộ giao diện chức năng của hệ thống bao gồm:
    • Phân hệ người dùng/bệnh nhân: Giao diện đăng nhập, đăng ký, đổi mật khẩu, cập nhật thông tin cá nhân, lịch sử đặt hàng, trang chủ, thời gian biểu cuộc hẹn, lịch sử đặt khám, màn hình chọn bác sĩ, chọn dịch vụ khám, chọn thời gian khám, thông tin tổng hợp cuộc hẹn, cửa hàng trực tuyến, chi tiết sản phẩm, tìm kiếm sản phẩm, giỏ hàng, giao diện thanh toán đơn hàng và cổng thanh toán MoMo.
    • Phân hệ thông tin: Trang tin tức và giao diện xem bài viết/bản tin y tế.
    • Phân hệ quản trị và nhân viên y tế: Giao diện bảng điều khiển chính quản trị viên, quyết toán hóa đơn đăng ký khám, quản lý dịch vụ khám (thêm/sửa), quản lý sản phẩm (thêm/sửa thông tin, SKU, giá, kích thước), quản lý đơn hàng, quản lý mã khuyến mãi, quản lý nhãn hiệu, quản lý thể loại, quản lý bản tin, quản lý tài khoản người dùng, thời gian biểu làm việc của bác sĩ và danh sách đăng ký khám bệnh.

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

Đồ án đã đạt được các kết quả cụ thể và đóng góp thiết thực cho quá trình chuyển đổi số y tế cơ sở:

  1. Xây dựng hoàn chỉnh hệ thống phần mềm: Triển khai thành công ứng dụng web quản lý phòng khám tư nhân hoạt động ổn định với kiến trúc Spring Boot - Thymeleaf - MySQL.
  2. Số hóa quy trình đặt lịch khám: Cung cấp quy trình khép kín từ khâu chọn dịch vụ, chọn bác sĩ, ấn định khung giờ khám đến khâu tổng hợp thông tin cuộc hẹn và phân ca trực cho bác sĩ, loại bỏ hoàn toàn việc xếp hàng truyền thống.
  3. Hiện thực hóa kênh bán lẻ dược phẩm trực tuyến: Xây dựng đầy đủ các chức năng thương mại điện tử chuyên ngành y tế bao gồm quản lý kho thuốc, phân loại danh mục, quản lý nhãn hiệu, kiểm soát khuyến mãi (coupon), giỏ hàng và tích hợp cổng thanh toán trực tuyến MoMo.
  4. Tối ưu hóa quản trị phòng khám: Thiết lập bảng điều khiển quản trị tập trung, cho phép thực hiện quyết toán hóa đơn khám bệnh và xử lý trạng thái đơn hàng trực tuyến một cách chính xác, minh bạch.
Nhóm chức năng Các tính năng cụ thể đã hoàn thành Kết quả nghiệp vụ đạt được
Quản lý khám bệnh Đặt lịch khám online, chọn bác sĩ, chọn dịch vụ, chọn giờ, quản lý thời gian biểu bác sĩ Giảm thiểu thời gian chờ đợi, hạn chế tiếp xúc đông người
Thương mại điện tử thuốc Danh mục thuốc, chi tiết sản phẩm, giỏ hàng, thanh toán MoMo, lịch sử mua hàng Hỗ trợ người dân mua thuốc điều trị từ xa an toàn, tiện lợi
Quản trị hệ thống Quản lý người dùng, sản phẩm, nhãn hiệu, danh mục, blog tin tức, coupon, quyết toán hóa đơn Tự động hóa vận hành, quản lý doanh thu và tồn kho chính xác

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

  • Hạn chế của đề tài: Hệ thống được thiết kế và triển khai tập trung cho quy mô phòng khám tư nhân vừa và nhỏ; kênh thanh toán trực tuyến mới tích hợp thử nghiệm qua ví điện tử MoMo; hệ thống vận hành chủ yếu trên nền tảng web ứng dụng, chưa phát triển phiên bản ứng dụng di động chuyên biệt.
  • Hướng phát triển tiếp theo: Mở rộng tích hợp thêm nhiều cổng thanh toán điện tử và ngân hàng nội địa khác; phát triển ứng dụng di động (Mobile App) trên hệ điều hành Android/iOS; tích hợp module quản lý bệnh án điện tử chi tiết và liên kết dữ liệu với các hệ sinh thái y tế diện rộng.

Giá trị tham khảo

Đồ án tốt nghiệp này mang lại giá trị tham khảo chuyên môn cao cho các nhóm đối tượng:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu mẫu hữu ích về quy trình xây dựng đồ án tốt nghiệp chuẩn mực, từ khảo sát yêu cầu, mô hình hóa UML (Use Case, Sequence Diagram, Class Diagram) đến lập trình thực tế với Java Spring Boot, Spring Data JPA, Thymeleaf và MySQL.
  • Lập trình viên phát triển web Java: Cung cấp giải pháp mẫu về việc áp dụng kiến trúc MVC không cần cấu hình XML, cách thức tổ chức tầng dữ liệu với Hibernate/JPA và kỹ thuật tích hợp thanh toán trực tuyến trong các bài toán thương mại điện tử kết hợp dịch vụ y tế.
  • Nhà quản lý phòng khám tư nhân: Tham khảo cấu trúc luồng nghiệp vụ và quy trình số hóa dịch vụ khám chữa bệnh nhằm nâng cao hiệu quả vận hành và chất lượng phục vụ bệnh nhân.

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

1. Đồ án sử dụng những công nghệ và framework chính nào để phát triển hệ thống? Hệ thống sử dụng ngôn ngữ lập trình Java kết hợp Spring Boot làm nền tảng backend chính; Spring Data JPA và Hibernate để quản lý tầng truy cập dữ liệu và ánh xạ đối tượng; MySQL làm hệ quản trị cơ sở dữ liệu quan hệ; Thymeleaf làm Java template engine để xử lý giao diện phía máy chủ trên nền HTML thuần; và Docker để hỗ trợ đóng gói, ảo hóa môi trường triển khai.

2. Hệ thống xác định những nhóm tác nhân nào và vai trò của từng tác nhân là gì? Hệ thống xác định 3 tác nhân:

  • Quản lý (Admin): Quản trị toàn bộ dữ liệu hệ thống (sản phẩm, đơn hàng, danh mục, nhãn hiệu, khuyến mãi, bản tin, người dùng, dịch vụ khám) và quyết toán hóa đơn.
  • Bác sĩ: Xem và quản lý danh sách cuộc hẹn khám bệnh được phân công, quản lý và cập nhật lịch làm việc cá nhân.
  • Khách hàng/Bệnh nhân: Đăng ký, đăng nhập, đặt lịch khám trực tuyến theo bác sĩ/dịch vụ/khung giờ, đặt mua thuốc online, thanh toán qua MoMo và tra cứu lịch sử khám bệnh/đơn hàng.

3. Chức năng đặt khám trực tuyến và mua thuốc online giải quyết vấn đề thực tiễn nào? Hai chức năng này giải quyết trực tiếp tình trạng bệnh nhân phải xếp hàng chờ đợi kéo dài tại các cơ sở y tế trong giai đoạn dịch bệnh Covid-19, giảm thiểu nguy cơ lây nhiễm chéo; đồng thời tháo gỡ khó khăn trong việc tiếp cận các nguồn thuốc điều trị tại nhà uy tín thông qua kênh phân phối và thanh toán trực tuyến.

4. Tại sao tác giả lựa chọn Thymeleaf thay vì các công nghệ như JSP hay JSF? Thymeleaf sử dụng các tệp HTML thuần túy (Natural Templates), cho phép hiển thị và kiểm tra giao diện trực tiếp trên trình duyệt mà không bắt buộc phải khởi chạy máy chủ web. Thymeleaf hỗ trợ cơ chế bộ nhớ đệm (cache) tốt và không cần nhúng mã Java phức tạp qua JSTL như JSP (vốn dễ phá vỡ cấu trúc MVC và tiềm ẩn rủi ro bảo mật), đồng thời dễ tùy biến giao diện hơn so với các thành phần đóng gói sẵn của JSF.

5. Cơ sở dữ liệu của hệ thống được thiết kế với những bảng dữ liệu trọng tâm nào? Cơ sở dữ liệu bao gồm các bảng phân quyền và tài khoản (ROLE, USER_ROLE), bảng quản lý thời gian biểu và phân công công việc y tế (WORKING_PLAN, DOCTOR_WORK), bảng quản lý thanh toán viện phí (INVOICE), cùng hệ thống các bảng quản lý bán lẻ dược phẩm và khuyến mãi (ORDER_ITEM, ORDER_PROMOTION, PRODUCT_PROMOTION).

Kết luận

Đồ án tốt nghiệp "Xây dựng Website quản lý khám chữa bệnh tại phòng khám tư nhân" của sinh viên Nguyễn Việt Hoàng đã giải quyết thành công bài toán chuyển đổi số thiết thực trong lĩnh vực y tế cơ sở bối cảnh đại dịch. Thông qua việc ứng dụng chuẩn xác các công nghệ hiện đại gồm Spring Boot, Spring Data JPA, Thymeleaf và MySQL, tác giả đã xây dựng hoàn chỉnh một nền tảng ứng dụng web tích hợp đồng bộ giữa dịch vụ đặt lịch khám bệnh trực tuyến và hệ thống phân phối thuốc thương mại điện tử. Công trình thể hiện quy trình phân tích, thiết kế phần mềm chặt chẽ, mang lại giá trị học thuật và ứng dụng thực tiễn cao cho công tác phát triển phần mềm y tế.