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

Trong công tác quản lý y tế và vận hành các cơ sở khám chữa bệnh, việc tối ưu hóa quy trình tiếp nhận bệnh nhân, đặt lịch khám, quản lý hồ sơ bệnh án và xử lý các nghiệp vụ tài chính đóng vai trò cốt lõi nhằm nâng cao chất lượng dịch vụ. Đề tài "Phân tích thiết kế hệ thống phòng khám" được thực hiện trong khuôn khổ môn học Phân tích thiết kế phần mềm tại Khoa Công nghệ Thông tin, Trường Đại học Ngoại ngữ - Tin học Thành phố Hồ Chí Minh (HUFLIT), dưới sự hướng dẫn của ThS. Nguyễn Tấn Khoa và nhóm sinh viên thực hiện gồm Võ Đình Trường (MSSV: 22DH114029), Võ Văn Thần Thái (MSSV: 22DH114737), Phạm Quốc Huy (MSSV: 22DH111305).

Bối cảnh thực tiễn được tác giả nêu ra là nhu cầu xây dựng một phần mềm quản lý phòng khám toàn diện, phục vụ trực tiếp cho đội ngũ bác sĩ, nhân viên phòng khám và khách hàng (bệnh nhân). Hệ thống hướng tới việc đáp ứng các yêu cầu nghiệp vụ khám chữa bệnh, đăng ký lịch hẹn trực tiếp hoặc trực tuyến, quản trị nhân sự và đảm bảo an toàn, bảo mật thông tin y tế.

Mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm:

  1. Khảo sát và đặc tả toàn bộ các yêu cầu chức năng của hệ thống phòng khám cho từng đối tượng người dùng.
  2. Xây dựng ma trận tác nhân (actor) và ca sử dụng (use case), đồng thời mô tả tóm tắt từng chức năng nghiệp vụ.
  3. Thiết kế hệ thống mô hình hóa phần mềm bằng ngôn ngữ UML, bao gồm biểu đồ ca sử dụng (Use Case Diagram), biểu đồ tuần tự (Sequence Diagram), biểu đồ hoạt động (Activity Diagram) và biểu đồ lớp (Class Diagram).
  4. Lập bảng đặc tả chi tiết cho toàn bộ 20 ca sử dụng của hệ thống, xác định rõ luồng xử lý chuẩn, luồng phụ và các tình huống lỗi.
  5. Thiết kế giao diện phác thảo (mockup) mô phỏng trải nghiệm người dùng trên hệ thống.

Đối tượng nghiên cứu là quy trình phân tích và thiết kế phần mềm quản lý phòng khám đa chức năng. Phạm vi nghiên cứu giới hạn trong tài liệu báo cáo kỹ thuật 52 trang, tập trung vào pha phân tích yêu cầu và thiết kế kiến trúc hệ thống trước khi hiện thực hóa mã nguồn.


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

Đồ án áp dụng phương pháp phân tích và thiết kế hệ thống hướng đối tượng (Object-Oriented Analysis and Design - OOAD) chuẩn hóa thông qua Ngôn ngữ mô hình hóa thống nhất (UML). Các khái niệm, kỹ thuật và công cụ mô hình hóa được tác giả triển khai gồm:

  • Mô hình hóa chức năng và phân quyền: Sử dụng ma trận Actor - Use Case và Use Case Diagram để phân định ranh giới hệ thống, mối quan hệ giữa các tác nhân và chức năng tương ứng.
  • Đặc tả ca sử dụng (Use Case Specification): Chuẩn hóa cấu trúc tài liệu mô tả use case bao gồm: Tên (Name), Mã (Code), Mô tả tóm tắt (Description), Tác nhân (Actor), Sự kiện kích hoạt (Trigger), Điều kiện tiên quyết (Pre-condition), Điều kiện sau (Post-condition), Tình huống lỗi (Error situations), Trạng thái hệ thống khi lỗi (System state in error), Luồng xử lý chuẩn (Standard process) và Luồng thay thế (Alternative flows).
  • Mô hình hóa động (Dynamic Modeling):
    • Biểu đồ tuần tự (Sequence Diagram - SD): Biểu diễn tương tác theo trình tự thời gian giữa các tác nhân, giao diện và các đối tượng xử lý trong hệ thống.
    • Biểu đồ hoạt động (Activity Diagram - AD): Mô hình hóa luồng công việc (workflow), các điểm rẽ nhánh điều kiện và luồng dữ liệu của các nghiệp vụ cụ thể.
  • Mô hình hóa tĩnh (Static Modeling):
    • Biểu đồ lớp (Class Diagram - CD): Xây dựng cấu trúc dữ liệu, các lớp đối tượng, thuộc tính, phương thức và mối quan hệ giữa các lớp trong hệ thống phòng khám.
  • Phương pháp thu thập dữ liệu: Phân tích quy trình nghiệp vụ khám chữa bệnh thực tế tại phòng khám, bao gồm các khâu: tiếp nhận bệnh nhân, đặt lịch khám, khám lâm sàng, chỉ định xét nghiệm/chẩn đoán hình ảnh, kê đơn thuốc, thu ngân, tính lương nhân viên và đánh giá chất lượng dịch vụ.

Thiết kế và triển khai

Hệ thống được phân tích và thiết kế xoay quanh 5 nhóm tác nhân (actors) chính với các quyền hạn và vai trò tách biệt rõ ràng:

  1. Admin (Quản trị viên): Chịu trách nhiệm quản lý thông tin nhân viên, quản lý thông tin bác sĩ, quản lý bệnh nhân và quản trị các tài khoản trong hệ thống.
  2. Bác sĩ: Cập nhật thông tin cá nhân, cập nhật lịch làm việc, tra cứu thông tin và lịch sử bệnh của bệnh nhân, thay đổi hoặc hủy lịch hẹn, chỉ định xét nghiệm/chụp phim/siêu âm, đọc kết quả chẩn đoán và kê đơn thuốc.
  3. Khách hàng (Bệnh nhân): Tạo tài khoản, tra cứu thông tin phòng khám, đăng ký lịch khám, thay đổi/hủy lịch hẹn, liên hệ đường dây nóng và gửi đánh giá dịch vụ phòng khám.
  4. Nhân viên kế toán: Tính toán chi phí khám chữa bệnh, xuất bảng chi phí cho bệnh nhân, tính lương và xuất bảng lương cho toàn bộ bác sĩ, nhân viên của phòng khám, thu tiền và xuất hóa đơn.
  5. Nhân viên tư vấn: Tiếp nhận lịch khám đăng ký trực tiếp hoặc trực tuyến, thực hiện đặt lịch giữa bác sĩ và bệnh nhân, hủy/chuyển đổi lịch hẹn theo yêu cầu và liên hệ với bệnh nhân.

Ma trận phân quyền Actor và Use Case

Bảng ma trận thể hiện sự tương tác giữa 4 nhóm tác nhân chính và 20 ca sử dụng trong hệ thống:

Mã UC Tên Ca sử dụng (Use Case) Bác sĩ Khách hàng Admin Kế toán
UC01 Cập nhật thông tin X X X X
UC02 Cập nhật lịch làm việc X X
UC03 Xem thông tin bệnh nhân X
UC04 Thay đổi lịch hẹn X X X
UC05 Hủy lịch hẹn với khách hàng X X
UC06 Xem lịch sử khám bệnh X X
UC07 Yêu cầu sử dụng dịch vụ X
UC08 Đăng kí lịch khám X
UC09 Xem thông tin phòng khám X
UC10 Tạo tài khoản X
UC11 Hủy lịch khám X
UC12 Đánh giá dịch vụ X
UC13 Thay đổi lịch khám X
UC14 Gọi tới đường dây nóng X
UC15 Quản lí thông tin nhân viên X
UC16 Quản lí bác sĩ X
UC17 Quản lí bệnh nhân X
UC18 Quản lí tài khoản X
UC19 Thu tiền X
UC20 Xuất hóa đơn X

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

Phần mở đầu và Giới thiệu chung

Phần này trình bày thông tin hành chính của đề tài, lời cảm ơn gửi đến giảng viên hướng dẫn ThS. Nguyễn Tấn Khoa, cùng phần giới thiệu khái quát về mục đích phát triển phần mềm quản lý phòng khám. Tài liệu khẳng định mục tiêu phần mềm là phục vụ việc đăng ký khám chữa bệnh, hỗ trợ tác nghiệp cho đội ngũ y bác sĩ, nhân viên phòng khám và bệnh nhân, bảo đảm tính an toàn và bảo mật dữ liệu.

Phần II: Phân tích thiết kế hệ thống

Đây là nội dung trọng tâm của đồ án, được chia thành 5 phân mục kỹ thuật chi tiết:

1. Đặc tả hệ thống

Tài liệu phân định chi tiết các chức năng cụ thể theo từng nhóm tác nhân (Admin, Kế toán, Khách hàng, Bác sĩ, Nhân viên tư vấn), làm cơ sở đầu vào để thiết lập danh mục ca sử dụng.

2. Ma trận actor và use case

Trình bày bảng ma trận đối chiếu giữa các Actor và 20 Use Case, đồng thời cung cấp bảng mô tả tóm tắt ngắn gọn chức năng của từng ca sử dụng từ UC1 đến UC20.

Danh mục 20 ca sử dụng được chuẩn hóa:
- UC1: Cập nhật thông tin (Cho phép xóa, sửa thông tin cá nhân)
- UC2: Cập nhật lịch làm việc (Cho phép bác sĩ cập nhật lịch làm việc)
- UC3: Xem thông tin bệnh nhân (Cho phép bác sĩ xem thông tin bệnh nhân)
- UC4: Thay đổi lịch hẹn (Cho phép bác sĩ thay đổi lịch hẹn với khách hàng)
- UC5: Hủy lịch hẹn (Cho phép bác sĩ hủy lịch hẹn)
- UC6: Xem lịch sử khám bệnh (Cho phép bác sĩ xem lịch sử khám bệnh)
- UC7: Yêu cầu sử dụng dịch vụ (Cho phép bác sĩ yêu cầu sử dụng dịch vụ)
- UC8: Đăng kí lịch khám (Cho phép khách hàng đăng kí lịch khám)
- UC9: Xem thông tin phòng khám (Cho phép khách hàng xem thông tin phòng khám)
- UC10: Tạo tài khoản (Cho phép khách hàng tạo tài khoản)
- UC11: Hủy lịch hẹn (Cho phép khách hàng hủy lịch hẹn)
- UC12: Đánh giá dịch vụ (Cho phép khách hàng đánh giá dịch vụ)
- UC13: Thay đổi lịch hẹn khám (Cho phép khách hàng thay đổi lịch hẹn khám)
- UC14: Gọi tới đường dây nóng (Cho phép khách hàng gọi tới đường dây nóng)
- UC15: Quản lý thông tin nhân viên (Cho phép admin quản lý thông tin nhân viên)
- UC16: Quản lý Bác sĩ (Cho phép admin quản lý Bác sĩ)
- UC17: Quản lý bệnh nhân (Cho phép admin quản lý bệnh nhân)
- UC18: Quản lý tài khoản (Cho phép admin quản lý tài khoản)
- UC19: Thu tiền (Cho phép kế toán thu tiền)
- UC20: Xuất hóa đơn (Cho phép kế toán xuất hóa đơn)

3. Actor và use case

Phần này triển khai chi tiết các mô hình thiết kế UML:

  • 3.1 Use Case Diagram: Thiết lập 5 biểu đồ ca sử dụng theo từng phân hệ chức năng:
    • UCD_Đặt lịch khám: Mô hình hóa quy trình tiếp nhận và phân bổ lịch hẹn.
    • UCD_Khám bệnh: Mô hình hóa các chức năng khám, xem bệnh án, chỉ định dịch vụ của bác sĩ.
    • UCD_Quản lí khách hàng: Mô hình hóa tương tác giữa bệnh nhân và hệ thống.
    • UCD_Quản lí nhân sự: Mô hình hóa nghiệp vụ quản lý bác sĩ, nhân viên của Admin.
    • UCD_Quản lí tài chính: Mô hình hóa nghiệp vụ tính chi phí, thu tiền và lập hóa đơn của Kế toán.
  • 3.2 Đặc tả Usecase: Lập bảng đặc tả chi tiết toàn diện từ UC1 đến UC20, xác định luồng thao tác tuần tự (Standard flow), điều kiện kích hoạt, điều kiện tiên quyết và các nhánh xử lý ngoại lệ khi gặp lỗi hệ thống (mất kết nối máy chủ, sai thông tin, không thể lưu dữ liệu).
  • 3.3 Sequence Diagram: Thiết kế 6 biểu đồ trình tự thể hiện luồng truyền thông điệp giữa Actor, Boundary, Control và Entity:
    • sd Xem thông tin bệnh nhân
    • sd Thay đổi lịch hẹn
    • sd Đánh giá phòng khám
    • sd Quản lí bác sĩ
    • sd Quản lí lịch khám
    • sd Xem lịch sử khám bệnh
  • 3.4 Activity Diagram: Xây dựng 10 biểu đồ hoạt động thể hiện quy trình nghiệp vụ chi tiết:
    • ad Quản lí thông tin nhân viên
    • ad Quản lí bệnh viện
    • ad Thanh toán
    • ad Đánh giá phòng khám
    • ad Quản lí doanh thu
    • ad Xem lịch sử khám bệnh
    • ad Quản lí lịch khám
    • ad Xuất hóa đơn
    • ad Tạo tài khoản
    • ad Gọi tới đường dây nóng
  • 3.5 Class Diagram: Xây dựng biểu đồ lớp tổng thể cd Quản lí phòng khám định nghĩa các thực thể dữ liệu và mối quan hệ cấu trúc giữa các bảng dữ liệu trong hệ thống.

4. Giao diện mockup

Trình bày các mẫu thiết kế giao diện đồ họa phác thảo (Mockup) cho hệ thống phòng khám, phân công thực hiện bởi các thành viên:

  • Phần mockup do sinh viên Võ Đình Trường phụ trách.
  • Phần mockup do sinh viên Phạm Quốc Huy phụ trách.

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

Kết quả chính của đồ án

  • Hoàn thành đầy đủ hồ sơ thiết kế phân tích hệ thống phần mềm phòng khám với quy mô 52 trang tài liệu kỹ thuật.
  • Xác định và chuẩn hóa chức năng cho 5 nhóm tác nhân nghiệp vụ y tế.
  • Đặc tả chi tiết 20 Use Case bao quát toàn bộ các khâu vận hành từ tiếp nhận, khám chữa bệnh, chỉ định kỹ thuật y tế đến kế toán tài chính và quản trị hệ thống.
  • Xây dựng hệ thống sơ đồ UML đồng bộ bao gồm: 5 biểu đồ Use Case phân hệ, 6 biểu đồ Sequence, 10 biểu đồ Activity, và 1 biểu đồ Class tổng thể.
  • Xây dựng bộ giao diện Mockup mô phỏng trực quan các luồng thao tác của người dùng.

Giải pháp đề xuất

Nhóm tác giả đề xuất giải pháp số hóa quy trình quản lý phòng khám thông qua việc tích hợp đa tác nhân trên cùng một nền tảng:

  • Cho phép bệnh nhân chủ động đăng ký, thay đổi lịch hẹn, xem lịch sử khám và đánh giá dịch vụ.
  • Hỗ trợ bác sĩ theo dõi hồ sơ bệnh nhân, ra y lệnh dịch vụ cận lâm sàng (xét nghiệm, siêu âm, chụp phim) và kê đơn thuốc trực tiếp trên hệ thống.
  • Tự động hóa khâu tính toán chi phí khám chữa bệnh, xuất hóa đơn và tính lương nhân sự cho bộ phận kế toán.

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

Hạn chế

  • Nội dung tài liệu chỉ dừng lại ở giai đoạn phân tích và thiết kế mô hình (UML diagrams và Mockup giao diện), chưa đi vào lập trình hiện thực hóa mã nguồn (Implementation).
  • Chưa có thiết kế chi tiết lược đồ cơ sở dữ liệu vật lý (Physical Database Schema) và các ràng buộc toàn vẹn dữ liệu cụ thể.
  • Chưa tiến hành cài đặt thử nghiệm và kiểm thử phần mềm trên môi trường thực tế để đánh giá hiệu năng chịu tải và tính an toàn bảo mật.

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

  • Dựa trên các sơ đồ Class, Sequence và Activity đã thiết kế để triển khai lập trình hệ thống (Frontend và Backend) trên nền tảng web hoặc ứng dụng di động.
  • Hiện thực hóa cơ sở dữ liệu quan hệ, tích hợp các giải pháp bảo mật dữ liệu y tế theo tiêu chuẩn.
  • Tích hợp thêm cổng thanh toán trực tuyến và cổng thông báo tự động (SMS/Email) khi đặt lịch khám thành công.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Nắm bắt phương pháp trình bày một bài báo cáo phân tích thiết kế phần mềm hoàn chỉnh, từ khâu xác định yêu cầu, lập ma trận Actor - Use Case đến cách vẽ và liên kết các biểu đồ UML (Use Case, Sequence, Activity, Class).
  • Nhóm nghiên cứu và phát triển phần mềm y tế: Tham khảo danh mục chức năng nghiệp vụ chuẩn cho một phòng khám vừa và nhỏ, đặc biệt là cấu trúc đặc tả 20 use case với các kịch bản lỗi và luồng thay thế.

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

1. Đồ án xác định những tác nhân (Actor) nào tham gia vào hệ thống phòng khám?
Hệ thống gồm 5 tác nhân chính: Admin (Quản trị viên), Bác sĩ, Khách hàng (Bệnh nhân), Nhân viên kế toán và Nhân viên tư vấn.

2. Tác nhân Bác sĩ có những quyền hạn và chức năng gì trong hệ thống?
Bác sĩ có quyền: cập nhật thông tin cá nhân, cập nhật lịch làm việc, xem thông tin và lịch sử bệnh của bệnh nhân, thay đổi hoặc hủy lịch hẹn, yêu cầu thực hiện dịch vụ cận lâm sàng (xét nghiệm, chụp phim, siêu âm), đọc kết quả và kê đơn thuốc.

3. Đồ án xây dựng bao nhiêu Use Case và những sơ đồ UML nào?
Đồ án xây dựng 20 Use Case (từ UC1 đến UC20), được mô hình hóa qua: 5 biểu đồ Use Case phân hệ, 6 biểu đồ Sequence (tuần tự), 10 biểu đồ Activity (hoạt động) và 1 biểu đồ Class (lớp) tổng thể.

4. Khách hàng (Bệnh nhân) có thể thực hiện những thao tác nào trên hệ thống?
Khách hàng có thể: tạo tài khoản, xem thông tin phòng khám, đăng ký lịch khám, thay đổi lịch hẹn, hủy lịch hẹn, gọi tới đường dây nóng, đánh giá dịch vụ phòng khám và xem lịch sử khám bệnh của mình.

5. Đồ án được thực hiện bởi ai và thuộc cơ sở đào tạo nào?
Đồ án do nhóm sinh viên gồm Võ Đình Trường, Võ Văn Thần Thái và Phạm Quốc Huy thực hiện dưới sự hướng dẫn của ThS. Nguyễn Tấn Khoa, thuộc Khoa Công nghệ Thông tin - Trường Đại học Ngoại ngữ - Tin học Thành phố Hồ Chí Minh (HUFLIT).


Kết luận

Đồ án môn học "Phân tích thiết kế hệ thống phòng khám" của nhóm sinh viên Trường Đại học Ngoại ngữ - Tin học TP.HCM đã hoàn thành việc mô hình hóa toàn diện các yêu cầu nghiệp vụ và cấu trúc của một hệ thống quản lý phòng khám y tế. Thông qua 20 ca sử dụng cùng hệ thống sơ đồ UML chi tiết (Use Case, Sequence, Activity, Class Diagram) và giao diện mockup, tài liệu đã cung cấp một bản thiết kế hệ thống có cấu trúc rõ ràng, logic. Đây là tài liệu kỹ thuật nền tảng quan trọng, tạo tiền đề trực tiếp cho giai đoạn lập trình và triển khai ứng dụng thực tế.