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

Thuốc và các sản phẩm dược phẩm, thực phẩm chức năng đóng vai trò thiết yếu trong việc phòng ngừa, điều trị bệnh và nâng cao sức khỏe cộng đồng. Cùng với sự gia tăng nhu cầu chăm sóc sức khỏe, các chuỗi nhà thuốc xuất hiện ngày càng nhiều với quy mô mở rộng nhanh chóng. Tuy nhiên, việc vận hành và quản lý một hệ thống nhà thuốc đa dạng các mặt hàng (thuốc kê đơn, thuốc không kê đơn, thực phẩm chức năng, thiết bị y tế) gặp phải nhiều thách thức nếu áp dụng phương pháp thủ công:

  • Khó khăn trong việc kiểm soát hóa đơn xuất - nhập - tồn, kiểm kê kho dược và theo dõi hạn sử dụng của từng lô sản phẩm. Việc bán thuốc quá hạn hoặc không đảm bảo chất lượng có thể gây nguy hiểm nghiêm trọng đến sức khỏe người bệnh.
  • Khó khăn trong việc quản lý tập trung nhiều chi nhánh, kiểm soát doanh thu, quản lý nhân viên và hạn chế nguy cơ thất thoát dữ liệu hoặc lộ thông tin khách hàng.
  • Nhu cầu số hóa và thương mại điện tử tăng cao, đặc biệt trong và sau bối cảnh dịch bệnh Covid-19, đòi hỏi các đơn vị kinh doanh dược phẩm phải áp dụng giải pháp trực tuyến nhằm tối ưu hóa quy trình phân phối, bán lẻ và giảm thiểu nguy cơ lây nhiễm dịch bệnh.

Để giải quyết các vấn đề trên, nhóm nghiên cứu tại Trường Công nghệ Thông tin và Truyền thông – Đại học Cần Thơ đã thực hiện đề tài nhằm phân tích và mô hình hóa hệ thống quản lý chuỗi nhà thuốc bằng ngôn ngữ UML.

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

Đề tài xác định các mục tiêu và nhiệm vụ cụ thể bao gồm:

  1. Khảo sát, phân tích ưu điểm và nhược điểm của các hệ thống chuỗi nhà thuốc trực tuyến hiện có trên thị trường Việt Nam.
  2. Xác định các tác nhân (actors), phân định phạm vi chức năng và phân quyền chi tiết cho từng nhóm người dùng trong mô hình quản lý chuỗi nhà thuốc.
  3. Xây dựng tài liệu mô hình hóa phần mềm hoàn chỉnh theo chuẩn UML, bao gồm: sơ đồ ca sử dụng (Use Case Diagram), sơ đồ lớp (Class Diagram), sơ đồ tuần tự (Sequence Diagram) và sơ đồ hoạt động (Activity Diagram) cho các quy trình nghiệp vụ cốt lõi.

Đố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ận hành chuỗi nhà thuốc và mô hình hóa hướng đối tượng các chức năng nghiệp vụ (kê thuốc, bán hàng, quản lý kho theo lô, phân phối chuỗi, quản lý khách hàng và phân quyền).
  • Phạm vi không gian: Mô hình quản lý phân cấp áp dụng cho chuỗi nhà thuốc gồm trụ sở quản lý chuỗi, kho trung tâm, các chi nhánh phân phối và người tiêu dùng.
  • Phạm vi thời gian: Đề tài được hoàn thành và báo cáo vào tháng 11 năm 2022 trong khuôn khổ học phần Ngôn ngữ mô hình hóa (mã học phần CT182, lớp CT182-08) dưới sự hướng dẫn của TS. Nguyễn Thanh Hải.

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

Khung lý thuyết và mô hình sử dụng

  • Ngôn ngữ mô hình hóa thống nhất (UML - Unified Modeling Language): Sử dụng hệ thống ký hiệu chuẩn để trực quan hóa, đặc tả và xây dựng cấu trúc của hệ thống phần mềm.
  • Mô hình hướng đối tượng: Đặc tả các thực thể dữ liệu thông qua thuộc tính, phương thức, phạm vi truy cập (Public +, Private -) và các mối quan hệ cấu trúc (kết tập chia sẻ - Shared Aggregation, hợp thành - Composition, kế thừa).
  • Quy chuẩn giao dịch và thanh toán: Tích hợp quy chuẩn liên quan đến các cổng thanh toán điện tử, thẻ ngân hàng nội địa (ATM) và quốc tế (VISA, MasterCard, JCB).

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

  • Phương pháp khảo sát và phân tích hiện trạng: Tiến hành khảo sát thực tế tính năng và giao diện của 4 hệ thống chuỗi nhà thuốc lớn tại Việt Nam: Pharmacity (pharmacity.vn), Nhà thuốc An Khang (nhathuocankhang.com), Nhà thuốc FPT Long Châu (nhathuoclongchau.com), và Nhà thuốc Trung Sơn (TrungSonCare.com).
  • Phương pháp phân tích - tổng hợp chức năng: Nhận diện và chuẩn hóa 7 nhóm tác nhân chính tham gia vào hệ thống; phân tách quy trình nghiệp vụ từ mức tổng quát đến chi tiết.
  • Phương pháp mô hình hóa hành vi và cấu trúc:
    • Mô tả kịch bản ca sử dụng chi tiết (kịch bản chính và các kịch bản ngoại lệ/thay thế).
    • Thiết kế sơ đồ lớp thể hiện mối liên kết giữa các bảng dữ liệu nghiệp vụ.
    • Thiết kế sơ đồ tuần tự và sơ đồ hoạt động để biểu diễn luồng tương tác giữa các đối tượng trong hệ thống theo thời gian.

Thiết kế và triển khai

Hệ thống được thiết kế hướng tới mô hình web/phần mềm quản lý tập trung với việc phân định rõ ràng các tầng kiến trúc dữ liệu và giao tiếp người dùng.

Phân tích hệ thống hiện có trên thị trường

Hệ thống khảo sát Ưu điểm ghi nhận Hạn chế / Điểm cần cải thiện
Pharmacity (pharmacity.vn) Phân chia danh mục rõ ràng; có chức năng đăng nhập cho khách hàng; nhiều mã giảm giá (voucher); hỗ trợ chat trực tiếp với bác sĩ; cho phép đặt hàng online; có giỏ hàng. Chưa có hệ thống đánh giá để khách hàng nhận biết mức độ hài lòng; danh mục một số loại thuốc còn hạn chế.
Nhà thuốc An Khang (nhathuocankhang.com) Danh mục đa dạng (thuốc, thực phẩm chức năng, mỹ phẩm); nhiều voucher; tìm kiếm theo tên/bệnh/triệu chứng; xem tồn kho theo địa điểm và tìm cửa hàng gần nhất. Chưa tích hợp mục đăng nhập cho khách hàng; chưa có mục đánh giá độ hài lòng.
Long Châu (nhathuoclongchau.com) Có tính năng tìm kiếm nhanh (hot search), tìm theo bảng chữ cái; tra cứu đơn hàng; đa dạng kênh tư vấn (Messenger, hotline); nhiều hình thức thanh toán (ATM, VISA, MasterCard, JCB). Chưa tích hợp tài khoản đăng nhập trực tiếp cho khách hàng.
Trung Sơn (TrungSonCare.com) Chat với dược sĩ qua Zalo; hỗ trợ tư vấn qua số điện thoại để lại; đa dạng phương thức thanh toán; chuyên mục "Góc sức khỏe" cung cấp kiến thức. Chưa có hệ thống đánh giá sự hài lòng của khách hàng đối với dịch vụ/sản phẩm.

Cấu trúc nhóm người dùng và phân quyền chức năng

Báo cáo phân định hệ thống thành 7 nhóm người dùng chính với quyền hạn rõ ràng:

[Nhân viên bán hàng (Dược sĩ)]
[Nhân viên quản lý kho hàng]
[Nhân viên quản trị hệ thống]
  1. Khách hàng chưa có tài khoản: Tra cứu thông tin sản phẩm, xem đánh giá của người dùng trước, nhận tư vấn trực tuyến/hotline, đặt/hủy đơn hàng bằng số điện thoại, đăng ký tài khoản.
  2. Khách hàng có tài khoản: Kế thừa toàn bộ quyền của khách chưa có tài khoản; bổ sung: đăng nhập, đặt hàng qua tài khoản, thanh toán trực tuyến, theo dõi lịch sử đơn hàng, sử dụng mã khuyến mãi, đánh giá sản phẩm/dịch vụ, chỉnh sửa hồ sơ cá nhân.
  3. Nhân viên bán hàng (Dược sĩ quầy): Đăng nhập tài khoản được cấp; tư vấn thuốc và liều lượng qua chat/điện thoại; xác nhận thông tin bệnh nhân; kê đơn/tạo đơn thuốc theo đơn đặt hàng; quản lý và thống kê hóa đơn bán hàng định kỳ.
  4. Nhân viên quản lý chi nhánh: Quản lý thông tin khách hàng tại chi nhánh; quản lý hồ sơ và lịch làm việc của nhân viên; quản lý biến động xuất - nhập - tồn thuốc tại chi nhánh; thống kê doanh thu theo ngày, tuần, tháng, quý, năm; lập báo cáo gửi quản lý chuỗi.
  5. Nhân viên quản lý chuỗi: Kế thừa quyền của quản lý chi nhánh; quản lý điều phối và phân phối thuốc đến các chi nhánh con; điều chuyển nhân sự giữa các cơ sở; giám sát từ xa qua hệ thống camera; thiết lập bảng giá bán lẻ cho từng điểm bán; khởi tạo các chương trình khuyến mãi toàn hệ thống.
  6. Nhân viên quản lý kho hàng: Cập nhật thông tin nhập/xuất kho; quản lý số lô sản xuất, hạn sử dụng; theo dõi cảnh báo thuốc cận hạn và quá hạn; quản lý hồ sơ nhà cung cấp; kiểm tra định mức tồn kho tối thiểu.
  7. Nhân viên quản trị (Admin): Quản lý tài khoản người dùng; phân quyền truy cập cho từng nhóm nhân viên; thực hiện sao lưu (backup) và phục hồi (restore) dữ liệu đảm bảo an toàn thông tin.

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

Chương 1: Tổng quan

Chương 1 trình bày chi tiết về tính cấp thiết của đề tài, các lợi ích mang lại cho từng nhóm đối tượng sử dụng, khảo sát giao diện và tính năng của 4 website nhà thuốc thương mại thực tế tại Việt Nam, đồng thời xác định phạm vi yêu cầu nghiệp vụ của hệ thống quản lý chuỗi nhà thuốc.

Chương 2: Sơ đồ Use Case

Chương này tập trung đặc tả 8 sơ đồ Use Case (từ sơ đồ tổng quát đến sơ đồ chi tiết cho 7 actor) và lập bảng mô tả kịch bản (phiên bản chuẩn hóa 1.5 và 1.2) cho 7 Use Case trọng tâm:

  • Đăng ký tài khoản: Khách hàng nhập thông tin tài khoản, nhận mã xác thực OTP qua số điện thoại, hoàn tất hồ sơ cá nhân. Kịch bản dự phòng xử lý các lỗi: nhập sai định dạng (A1), sai mã OTP/quá hạn thời gian (A2), hoặc người dùng bỏ qua bước cập nhật thông tin cá nhân (A3).
  • Đăng nhập: Hỗ trợ đăng nhập hệ thống; xử lý trường hợp quên mật khẩu qua OTP số điện thoại (A1) hoặc nhập sai thông tin xác thực (A2).
  • Đặt hàng bằng tài khoản: Quy trình 11 bước từ tìm kiếm sản phẩm, thêm vào giỏ, chọn địa chỉ, lựa chọn phương thức thanh toán (tiền mặt, ví điện tử) đến xác nhận hoàn tất; xử lý ngoại lệ số dư ví không đủ (A2).
  • Kê thuốc: Dành cho dược sĩ tiếp nhận đơn hàng chưa xử lý, tạo đơn thuốc, tìm kiếm vị trí thuốc theo lô/kệ trong quầy, bổ sung số lượng và in phiếu xuất kho.
  • Thêm nhân viên bán hàng: Cung cấp cho quản lý chi nhánh/chuỗi tạo hồ sơ nhân sự mới (họ tên, ngày sinh, số điện thoại, địa chỉ, ngạch lương).
  • Phân quyền tài khoản người dùng: Cho phép quản trị viên lựa chọn tài khoản và gán nhóm quyền tương ứng; kiểm tra tính hợp lệ của gói quyền cấp phát.
  • Tìm kiếm sản phẩm: Cho phép tất cả người dùng tìm kiếm theo tên thuốc, mức giá hoặc mã sản phẩm; xử lý thông báo khi không tìm thấy kết quả phù hợp.

Chương 3: Sơ đồ lớp

Chương 3 xây dựng biểu đồ lớp tổng thể và mô tả chi tiết thuộc tính, phương thức của 13 lớp thực thể. Cấu trúc một số lớp chính được mô tả chi tiết dưới bảng sau:

Tên Lớp Thuộc tính chính (Kiểu dữ liệu, kích thước) Phương thức chính (Kiểu trả về, tham số) Quan hệ cấu trúc
NguoiDung tenTaiKhoan (Public String[30]), matKhau (Private String[16]), hoTen (Private String[30]), soDT (Private String[11]), gioiTinh (Private Boolean), ngaySinh (Private Date), email (Private String[40]) doiMatKhau(), taoNguoiDung(), xemNguoiDung(), kiemTraMaXT(), suaNguoiDung(), dangNhap(), dangXuat(), layDSNguoiDung(), taoMaXT(), kiemTraTK() Lớp cơ sở cho các phân loại người dùng
SanPham maSanPham (Private String[10]), tenSP (Private String[50]), giaSP (Private float), huongDanSuDung (Private String), congDung (Private String) nhapSanPham(), hienThiSanPham(), timKiemSanPham() Kết tập chia sẻ (Shared aggregation) với lớp KhuyenMai
GioHang soLuongMoiSP (Private int[10]) xemGioHang(), chinhSuaGioHang(), thanhTien(), datHang() Liên kết với SanPham và KhachHang
LoSanPham maLo (Private String[10]), donGiaNhap (Private float), ngaySX (Private Date), hanSD (Private Date), ngayNhapLo (Private Date), soLuongSP (Private int) taoLo(), suaLo(), layLo() Quản lý hạn dùng và đơn giá theo lô
NhaCungCap maNhaCC (Private String[10]), tenNhaCC (Private String[30]), soDTNhaCC (Private String[11]), emailNhaCC (Private String[40]) xemNhaCC(), themNhaCC(), xoaNhaCC() Liên kết với việc nhập kho thuốc
KhuyenMai maKM (Private String[10]), tenKH (Private String[50]), noiDungKM (Private String[200]), loaiKM (Private String[50]), thoiHanKM (Private Date) xemKM(), chinhSuaKM(), taoKM(), xoaKM() Kết tập chia sẻ với lớp SanPham
DonHang maHD (Private String[5]), ngayDat (Private Date), ngayNhan (Private Date) inDonHang(), huyDonHang(), thongKeDoanhThu(), xemDonHang(), taoDonHang(), themSanPham(), xemDonThuoc(), layDanhSachDonHang(), luuDonHang(), taoDonThuoc() Hợp thành (Composition) với lớp TrangThai
ThanhPhanSanPham tenThanhPhan (Private String[50]) layThanhPhan() Chi tiết hoạt chất của sản phẩm

(Báo cáo cũng quy định chi tiết các lớp phụ trợ khác gồm: TrangThai, NhanVien, DiaChi, KhachHang, LoaiSanPham).

Chương 4: Sơ đồ tuần tự

Chương 4 trình bày các Sequence Diagram đặc tả thứ tự truyền thông điệp giữa các đối tượng tương ứng với 7 ca sử dụng chính:

  1. Sơ đồ tuần tự "Đăng ký"
  2. Sơ đồ tuần tự "Đăng nhập"
  3. Sơ đồ tuần tự "Đặt hàng"
  4. Sơ đồ tuần tự "Kê thuốc"
  5. Sơ đồ tuần tự "Phân quyền"
  6. Sơ đồ tuần tự "Thêm nhân viên bán hàng"
  7. Sơ đồ tuần tự "Tìm kiếm sản phẩm"

Chương 5: Sơ đồ hoạt động

Chương 5 mô hình hóa luồng điều khiển, rẽ nhánh điều kiện và các trạng thái xử lý song song thông qua Activity Diagram cho 7 quy trình nghiệp vụ: Đăng ký, Đăng nhập, Đặt hàng, Kê thuốc, Phân quyền, Thêm nhân viên bán hàng, Tìm kiếm sản phẩm.

Chương 6: Kết luận

Chương 6 tổng kết các kết quả thu hoạch của nhóm sinh viên sau khi hoàn thành đề tài:

  • Về mặt kiến thức: Nắm vững phương pháp luận phân tích và thiết kế hệ thống hướng đối tượng; hiểu sâu các quy chuẩn biểu diễn sơ đồ UML trong công nghệ phần mềm; nắm bắt quy trình vận hành và quản lý đặc thù của chuỗi kinh doanh dược phẩm.
  • Về mặt kỹ năng: Rèn luyện kỹ năng làm việc nhóm, phân công công việc chi tiết; kỹ năng khảo sát và tổng hợp yêu cầu phần mềm từ thực tế; kỹ năng thiết kế tài liệu kỹ thuật hoàn chỉnh.

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

Kết quả chính đạt được

  • Khảo sát và lập bảng so sánh tính năng thực tế của 4 hệ thống chuỗi nhà thuốc trực tuyến hàng đầu tại Việt Nam.
  • Thiết kế hoàn chỉnh 8 sơ đồ Use Case phân cấp, 7 bảng kịch bản Use Case chuẩn hóa với đầy đủ luồng chính và luồng rẽ nhánh ngoại lệ.
  • Xây dựng sơ đồ lớp chi tiết bao gồm 13 lớp thực thể với hơn 26 bảng đặc tả chi tiết về kiểu dữ liệu, ràng buộc kích thước, phạm vi truy cập của thuộc tính và phương thức.
  • Xây dựng 7 sơ đồ tuần tự và 7 sơ đồ hoạt động mô tả chính xác hoạt động tương tác thời gian thực và luồng dữ liệu cho các chức năng nghiệp vụ trọng yếu.

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

  • Đề xuất mô hình phân cấp quản lý chuỗi hoàn chỉnh, giải quyết bài toán đặc thù của ngành dược như: quản lý thuốc theo số lô sản xuất, theo dõi hạn sử dụng, cảnh báo thuốc cận hạn/hết hạn, và quy trình kê đơn thuốc trực tuyến cho dược sĩ.
  • Tích hợp tính năng quản lý đánh giá sự hài lòng của khách hàng và phân hệ đăng nhập thành viên – đây là hai điểm hạn chế lớn được nhóm chỉ ra từ các hệ thống thương mại thực tế tại thời điểm khảo sát.

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

  • Hạn chế: Báo cáo tập trung vào giai đoạn phân tích và thiết kế hệ thống thông qua ngôn ngữ mô hình hóa UML trong phạm vi môn học, chưa triển khai lập trình mã nguồn thực tế (coding), chưa xây dựng cơ sở dữ liệu vật lý và chưa thực hiện kiểm thử trên môi trường thực nghiệm.
  • Hướng mở rộng: Chuyển đổi mô hình thiết kế UML thành hệ thống phần mềm thực tế bằng cách lựa chọn các framework công nghệ hiện đại, xây dựng hệ thống cơ sở dữ liệu quan hệ/phi quan hệ tương ứng với sơ đồ lớp, đồng thời tích hợp cổng thanh toán trực tuyến và module giám sát camera cho hệ thống chi nhánh.

Giá trị tham khảo

Báo cáo là tài liệu tham khảo phù hợp cho:

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm, Hệ thống thông tin đang theo học các học phần về Phân tích thiết kế hệ thống, Phân tích thiết kế hướng đối tượng (OOAD), và Ngôn ngữ mô hình hóa (UML).
  • Nhóm sinh viên thực hiện đồ án môn học hoặc khóa luận tốt nghiệp có đề tài liên quan đến xây dựng phần mềm quản lý bán lẻ, quản lý chuỗi cung ứng hoặc hệ thống thương mại điện tử ngành dược phẩm.
  • Phần đáng tham khảo nhất: Hệ thống bảng đặc tả chi tiết thuộc tính - phương thức của Sơ đồ lớp (Chương 3) và kịch bản Use Case chi tiết có phân tích các luồng ngoại lệ (Chương 2).

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

1. Hệ thống phân chia người dùng thành bao nhiêu nhóm và có những ai?
Hệ thống xác định 7 nhóm tác nhân (actor) chính gồm: Khách hàng chưa có tài khoản, Khách hàng có tài khoản, Nhân viên bán hàng (thường là dược sĩ), Nhân viên quản lý chi nhánh, Nhân viên quản lý chuỗi, Nhân viên quản lý kho hàng và Nhân viên quản trị hệ thống.

2. Điểm khác biệt chính giữa khách hàng chưa có tài khoản và khách hàng đã có tài khoản trong hệ thống là gì?
Khách hàng chưa có tài khoản chỉ có thể tra cứu thông tin thuốc, xem đánh giá, nhận tư vấn và đặt/hủy hàng qua số điện thoại (không nhận được ưu đãi). Khách hàng có tài khoản được bổ sung các quyền: đặt hàng trực tiếp bằng tài khoản, thanh toán trực tuyến qua thẻ ngân hàng/ví điện tử, xem lịch sử đơn hàng, nhận mã khuyến mãi, quản lý thông tin cá nhân và viết đánh giá sản phẩm.

3. Trong sơ đồ lớp, các mối quan hệ cấu trúc đặc biệt nào được thiết lập giữa các thực thể?
Báo cáo chỉ rõ hai mối quan hệ đặc biệt:

  • Quan hệ kết tập chia sẻ (Shared Aggregation) giữa lớp SanPham và lớp KhuyenMai.
  • Quan hệ hợp thành (Composition) giữa lớp DonHang và lớp TrangThai.

4. Quy trình kê thuốc của nhân viên bán hàng được mô hình hóa gồm những bước cơ bản nào?
Quy trình gồm 14 bước: Dược sĩ truy cập mục "Kê thuốc" -> Chọn danh sách đơn hàng chưa kê -> Chọn đơn hàng cụ thể -> Khởi tạo đơn thuốc -> Tìm kiếm vị trí sản phẩm theo lô/kệ -> Chọn sản phẩm và số lượng -> Xem lại thông tin đơn thuốc -> Hoàn tất và in đơn thuốc. Nếu cần kê thêm, hệ thống cung cấp luồng rẽ nhánh (A1) quay lại bước tìm kiếm sản phẩm.

5. Nhân viên quản lý kho hàng đảm nhiệm những chức năng đặc thù nào đối với sản phẩm thuốc?
Nhân viên kho quản lý số lô sản xuất (maLo), ngày sản xuất (ngaySX), ngày nhập lô (ngayNhapLo), hạn sử dụng (hanSD), theo dõi và cảnh báo thuốc cận hạn hoặc quá hạn sử dụng, kiểm tra định mức tồn kho tối thiểu, và quản lý danh mục nhà cung cấp dược phẩm.


Kết luận

Báo cáo "Mô hình hóa UML hệ thống quản lý nhà thuốc" của nhóm sinh viên Trường Công nghệ Thông tin và Truyền thông – Đại học Cần Thơ đã hoàn thành việc khảo sát, phân tích và mô hình hóa toàn diện một hệ thống quản lý chuỗi nhà thuốc hiện đại. Tài liệu thể hiện chi tiết các đặc tả ca sử dụng, sơ đồ lớp với các ràng buộc dữ liệu chặt chẽ, cùng hệ thống sơ đồ tuần tự và sơ đồ hoạt động phản ánh sát thực tế vận hành ngành dược. Đây là tài liệu kỹ thuật có giá trị tham khảo học thuật rõ ràng cho sinh viên chuyên ngành công nghệ thông tin trong việc rèn luyện kỹ năng phân tích và thiết kế phần mềm hướng đối tượng.