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

Trong xu hướng chuyển đổi số y tế, việc tối ưu hóa quy trình tiếp đón, chẩn đoán, kê đơn và cấp phát thuốc đóng vai trò quyết định đến hiệu suất vận hành của các cơ sở khám chữa bệnh. Bệnh viện eHealthCare là một đơn vị y tế mới thành lập, đặt ra bài toán cấp thiết là xây dựng một hệ thống thông tin hoàn chỉnh phục vụ người dân từ khâu tiếp nhận ban đầu đến khi hoàn tất nhận thuốc và thanh toán viện phí.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Khảo sát toàn diện bài toán nghiệp vụ khám chữa bệnh và phát thuốc tại bệnh viện eHealthCare, phân tích các đối tượng quản lý bao gồm bệnh nhân, bác sĩ, dược sĩ, thu ngân và quản trị viên.
  2. Xác định và phân loại chi tiết các yêu cầu chức năng theo 3 phân khu nghiệp vụ trọng tâm (Nơi đăng ký khám bệnh, Phòng khám bệnh, Quầy phát thuốc và thu ngân) cùng các yêu cầu phi chức năng về giao diện cảm ứng và tính khả dụng.
  3. Áp dụng phương pháp phân tích và thiết kế hướng đối tượng (OOAD) để mô hình hóa toàn bộ hệ thống thông qua ngôn ngữ UML: xây dựng biểu đồ Use-case tổng quát và phân rã, lập bảng đặc tả Use-case, thiết kế biểu đồ tuần tự (Sequence Diagram), biểu đồ hoạt động (Activity Diagram), biểu đồ lớp và mô hình quan hệ thực thể (ERD).
  4. Thiết kế cấu trúc cơ sở dữ liệu quan hệ chi tiết và phác thảo hệ thống giao diện người dùng trực quan cho từng tác nhân trong bệnh viện.

Phạm vi nghiên cứu của đề tài:

  • Không gian và tổ chức: Nghiên cứu được thực hiện tại Khoa Tin học, Trường Đại học Sư phạm – Đại học Đà Nẵng, áp dụng cho mô hình vận hành của bệnh viện eHealthCare.
  • Thời gian: Báo cáo hoàn thành và nghiệm thu vào ngày 15 tháng 10 năm 2021 bởi nhóm tác giả thuộc lớp 18CNTT1.

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

Đề tài áp dụng nền tảng lý thuyết phân tích và thiết kế hệ thống thông tin hướng đối tượng kết hợp với ngôn ngữ mô hình hóa thống nhất (UML). Các công cụ mô hình hóa được sử dụng để chuyển đổi các quy tắc nghiệp vụ thành tài liệu kỹ thuật chuẩn xác.

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: Phân rã quy trình khám chữa bệnh thực tế thành các luồng sự kiện chính và sự kiện thay thế, xác định rõ các điều kiện tiên quyết (Pre-conditions) và hậu điều kiện (Post-conditions).
  • Phương pháp mô hình hóa hướng đối tượng:
    • Mô hình hóa chức năng: Xác định 5 tác nhân (Actor) và xây dựng biểu đồ Use-case tổng thể cùng 10 biểu đồ Use-case thành phần.
    • Mô hình hóa hành vi: Thiết lập 12 biểu đồ tuần tự và 9 biểu đồ hoạt động nhằm mô tả chính xác tương tác giữa tác nhân, giao diện và các đối tượng xử lý nghiệp vụ.
    • Mô hình hóa cấu trúc: Xây dựng biểu đồ lớp và mô hình quan hệ thực thể nhằm chuẩn hóa dữ liệu thành 12 bảng quan hệ.
  • Nguồn dữ liệu: Dữ liệu khảo sát nghiệp vụ thực tế từ mô hình bệnh viện eHealthCare, bao gồm cấu trúc phân bổ 5 ca trực mỗi ngày (sáng, trưa, chiều, tối, khuya), quy định chi trả của 2 gói bảo hiểm y tế nội bộ và các chỉ số sức khỏe định kỳ của bệnh nhân (nhóm máu, hệ Rh, cân nặng, chiều cao, nhịp tim).

Thiết kế và triển khai

Hệ thống eHealthCare được thiết kế xoay quanh 5 tác nhân chính với các vai trò và quyền hạn phân định rõ ràng trong quy trình khám chữa bệnh:

Tác nhân (Actor) Trách nhiệm và quyền hạn trên hệ thống
Bệnh nhân Quẹt thẻ bảo hiểm tại máy cảm ứng, xem thông tin cá nhân, chọn chuyên khoa và bác sĩ trực, nhận số thứ tự, xem phiếu khám, đóng tiền viện phí và nhận thuốc.
Bác sĩ Đăng nhập hệ thống, xem lịch ca trực và phòng khám được phân công, tiếp nhận danh sách bệnh nhân chờ, theo dõi hồ sơ y tế/lịch sử khám, tạo phiếu khám, chẩn đoán bệnh và kê đơn thuốc.
Dược sĩ Tiếp nhận phiếu khám và đơn thuốc, kiểm tra danh mục thuốc, quản lý kho thuốc (thêm/sửa/xóa thông tin thuốc), thống kê tồn kho, xuất thuốc và xác nhận cấp phát thuốc.
Thu ngân Tiếp nhận phiếu khám từ bệnh nhân, tính toán tổng chi phí khám và tiền thuốc dựa trên mức hỗ trợ của thẻ bảo hiểm, lập hóa đơn, in hóa đơn và xác nhận thanh toán.
Quản trị viên Quản trị tài khoản người dùng (phân quyền, thêm, sửa, xóa, khóa trạng thái), quản lý thông tin nhân sự y tế, quản lý thẻ bảo hiểm, phân công lịch trực/phòng khám cho bác sĩ và trích xuất báo cáo thống kê.

Quy định xử lý quyền lợi bảo hiểm y tế nội bộ được thiết kế tích hợp tự động trong module tính tiền:

Tiêu chí Bảo hiểm Loại 1 Bảo hiểm Loại 2
Phí đóng định kỳ 100.000 VNĐ / tháng 300.000 VNĐ / tháng
Tỷ lệ bệnh viện chi trả 50% chi phí phát sinh 80% chi phí phát sinh
Hạn mức chi trả tối đa Không quá 500.000 VNĐ / lần khám Không quá 1.000.000 VNĐ / lần khám

Hệ thống cơ sở dữ liệu được tổ chức thành 12 bảng thực thể liên kết chặt chẽ:

  1. NHÂN VIÊN: Lưu trữ thông tin định danh, chức vụ của nhân sự bệnh viện.
  2. BÁC SĨ: Lưu trữ thông tin chuyên môn, chuyên khoa trực thuộc của bác sĩ.
  3. CHUYÊN KHOA: Quản lý danh mục các chuyên khoa khám bệnh.
  4. PHÒNG KHÁM: Quản lý danh sách các phòng khám tại bệnh viện.
  5. BỆNH NHÂN: Quản lý thông tin hành chính, nhân thân của người khám.
  6. BẢO HIỂM: Quản lý mã từ, loại bảo hiểm, thời hạn và trạng thái thẻ.
  7. THÔNG TIN Y TẾ: Lưu trữ các chỉ số cơ bản (nhóm máu, Rh+, Rh-, chiều cao, cân nặng, nhịp tim) cập nhật định kỳ hàng năm.
  8. HỒ SƠ BỆNH ÁN: Tập hợp lịch sử khám chữa bệnh tổng quát của từng cá nhân.
  9. PHIẾU KHÁM: Lưu chẩn đoán chi tiết, chỉ dẫn của bác sĩ và liên kết đơn thuốc.
  10. THUỐC: Danh mục thuốc, đơn vị tính, số lượng tồn kho và hướng dẫn sử dụng.
  11. HÓA ĐƠN: Lưu trữ chi tiết giao dịch thanh toán viện phí và tiền thuốc.
  12. CHI PHÍ KHÁM: Bảng định mức giá dịch vụ khám theo từng chuyên khoa.

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

Chương 1: Tổng quan

Chương này trình bày chi tiết bối cảnh thành lập bệnh viện eHealthCare và mục tiêu xây dựng hệ thống phần mềm quản lý khám bệnh và phát thuốc. Bài toán quản lý đặt ra các quy định cụ thể:

  • Mỗi bệnh nhân sở hữu một thẻ bảo hiểm từ chứa thông tin cá nhân và thông tin liên lạc người nhà. Bệnh viện áp dụng 2 gói bảo hiểm (Loại 1 và Loại 2) với các mức đóng phí và mức trần bảo lãnh viện phí khác nhau.
  • Trước khi đăng ký dịch vụ, bệnh nhân được khám sức khỏe ban đầu để ghi nhận thông tin y tế nền tảng (giới tính, nhóm máu, Rh, cân nặng, chiều cao, nhịp tim).
  • Cơ chế phân ca làm việc của bác sĩ gồm 5 ca mỗi ngày (sáng, trưa, chiều, tối, khuya) và hỗ trợ khả năng thay đổi linh hoạt số lượng/độ dài ca trực trong tương lai.

Yêu cầu chức năng được nhóm tác giả phân chia rõ ràng theo 3 phân khu:

  • Nơi đăng ký khám bệnh: Trang bị máy quét thẻ bảo hiểm từ kết hợp màn hình cảm ứng; hệ thống nhận diện độ tuổi, giới tính để đưa ra câu chào phù hợp; hiển thị danh sách chuyên khoa, danh sách bác sĩ đang trực kèm số thứ tự hiện tại và số lượng người đang chờ để in phiếu số thứ tự cho bệnh nhân.
  • Phòng khám bệnh: Bác sĩ gọi bệnh nhân theo số thứ tự; nhập kết luận chẩn đoán và đơn thuốc (ghi rõ liều lượng sáng, trưa, chiều, tối, uống trước hay sau ăn); nhấn nút chuyển số thứ tự tiếp theo khi kết thúc lượt khám.
  • Quầy phát thuốc và thu ngân: Tiếp nhận phiếu khám; tự động tính tổng viện phí gồm giá khám theo chuyên khoa và giá thuốc sau khi đã khấu trừ bảo hiểm; in hóa đơn, xác nhận thanh toán và giao thuốc cho bệnh nhân.

Yêu cầu phi chức năng nhấn mạnh phân hệ đăng ký phải hoạt động mượt mà trên thiết bị màn hình cảm ứng và đảm bảo giao diện thân thiện, dễ sử dụng.

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

Chương 2 là nội dung trọng tâm của đề tài, thực hiện chuyển đổi toàn bộ yêu cầu nghiệp vụ thành các mô hình kỹ thuật chi tiết:

  1. Mô hình hóa Use-case: Xây dựng Biểu đồ Use-case tổng quát và 10 biểu đồ Use-case phân hệ chuyên biệt: Quản lý Tài khoản, Quản lý bệnh nhân, Quản lý nhân sự, Quản lý thuốc, Quản lý Hóa đơn, Quản lý Hồ sơ bệnh nhân, Quản lý khám, Quản lý thẻ Bảo hiểm, Đăng ký thẻ bảo hiểm, Thống kê.
  2. Đặc tả Use-case và Biểu đồ tuần tự (Sequence Diagram): Nhóm tác giả xây dựng bảng đặc tả chi tiết kèm sơ đồ tuần tự tương ứng cho 12 Use-case trọng điểm:
    • Đăng nhập: Kiểm tra tính hợp lệ của email, mật khẩu và quyền truy cập của từng vai trò người dùng.
    • Đăng ký khám bệnh (UC-02): Đọc mã thẻ từ, hiển thị lời chào, điều hướng chọn khoa, chọn bác sĩ trực và in số thứ tự xếp hàng.
    • Tạo phiếu khám: Hiển thị danh sách chờ của bác sĩ, mở form nhập liệu chẩn đoán và kê đơn thuốc từ danh mục hệ thống.
    • Đăng ký bảo hiểm: Tiếp nhận thông tin bệnh nhân mới, kiểm tra trùng lặp và cấp thẻ bảo hiểm.
    • Nhóm Use-case quản trị tài khoản: Thêm tài khoản, Cập nhật tài khoản, Xóa tài khoản, Thay đổi trạng thái tài khoản và Xem tài khoản.
    • Thống kê: Cho phép quản trị viên xem báo cáo định kỳ theo tháng về tài khoản, bảo hiểm, hồ sơ và chi phí.
    • Xem lịch sử khám: Cho phép bác sĩ tra cứu toàn bộ hồ sơ bệnh án, các toa thuốc và viện phí của những lần khám trước.
    • Thanh toán và nhận thuốc: Tương tác liên hoàn giữa Bệnh nhân, Thu ngân (lập hóa đơn, in phiếu, thu tiền) và Dược sĩ (kiểm tra đơn, trừ kho thuốc, đóng gói và phát thuốc).
  3. Biểu đồ hoạt động (Activity Diagram): Mô hình hóa luồng xử lý nghiệp vụ cho 9 tiến trình: Đăng nhập, Thêm tài khoản, Cập nhật tài khoản, Xóa tài khoản, Thay đổi trạng thái tài khoản, Đăng ký khám, Tạo phiếu khám, Đăng ký thẻ bảo hiểm, Thanh toán và nhận thuốc.
  4. Biểu đồ lớp và Thiết kế CSDL: Xây dựng biểu đồ lớp chi tiết, mô hình quan hệ thực thể và thiết kế cấu trúc chi tiết cho 12 bảng dữ liệu phục vụ lưu trữ toàn bộ hệ thống.

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

Chương cuối tổng kết toàn bộ kết quả nghiên cứu và trình bày thiết kế giao diện minh họa (UI Prototype) gồm 13 màn hình chức năng chính:

  • Nhóm giao diện Kiosk tiếp đón bệnh nhân: Giao diện nhập mã bảo hiểm, Thông báo thẻ hết hạn, Thông báo thẻ không tồn tại, Lời chào hệ thống (cá nhân hóa xưng hô), Giao diện chọn Khoa, Giao diện chọn Bác sĩ, Giao diện xem chi tiết thông tin bác sĩ, Giao diện xác nhận đăng ký, Thông báo đăng ký thành công.
  • Nhóm giao diện nhân viên y tế: Giao diện đăng nhập dành cho nhân viên, Giao diện trang ca trực, Giao diện quản lý khám, Giao diện tạo phiếu khám và kê đơn.
  • Phần cuối của chương là Bảng tổng kết phân công và đánh giá mức độ hoàn thành công việc của từng thành viên trong nhóm nghiên cứu.

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

Nghiên cứu đã hoàn thành toàn diện nhiệm vụ phân tích và thiết kế một hệ thống quản lý y tế hướng đối tượng với các kết quả cụ thể:

  • Hệ thống sơ đồ thiết kế kỹ thuật hoàn chỉnh: Xây dựng thành công 11 biểu đồ Use-case, 12 kịch bản đặc tả chi tiết đi kèm 12 biểu đồ tuần tự (Sequence Diagram), 9 biểu đồ hoạt động (Activity Diagram), 1 biểu đồ lớp tổng thể và mô hình quan hệ thực thể ERD.
  • Chuẩn hóa cơ sở dữ liệu y tế: Thiết kế hoàn chỉnh 12 bảng dữ liệu nghiệp vụ bao quát mọi mắt xích vận hành từ nhân sự, bác sĩ, phòng khám, hồ sơ y tế, bảo hiểm đến kho thuốc và hóa đơn viện phí.
  • Mô hình hóa quy trình tự động hóa tiếp đón bệnh nhân: Đưa ra giải pháp quẹt thẻ từ tự động kết hợp màn hình cảm ứng, giúp tự động phân luồng bệnh nhân theo chuyên khoa và bác sĩ trực, hiển thị trực quan số lượng người đang chờ khám để giảm tải cho quầy tiếp nhận truyền thống.
  • Đóng góp thực tiễn: Cung cấp bộ tài liệu phân tích thiết kế phần mềm hoàn chỉnh theo chuẩn UML cho bài toán bệnh viện thông minh, có thể trực tiếp chuyển giao sang giai đoạn lập trình và triển khai phần mềm.

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

Dựa trên phạm vi và nội dung văn bản báo cáo, đề tài còn tồn tại một số hạn chế và định hướng phát triển:

  • Hạn chế: Báo cáo tập trung vào giai đoạn phân tích và thiết kế hướng đối tượng (OOAD) cùng giao diện mẫu (UI Prototype), chưa đi sâu vào việc cài đặt mã nguồn thực tế, kiểm thử tải hệ thống hay xây dựng cơ chế bảo mật cơ sở dữ liệu phân tán.
  • Hướng nghiên cứu tiếp:
    • Hoàn thiện module cấu hình ca trực linh hoạt, cho phép bệnh viện tùy biến số lượng ca (ngoài 5 ca cố định hiện tại) và điều chỉnh độ dài thời gian của từng ca theo nhu cầu thực tế.
    • Tích hợp thêm các phương thức thanh toán trực tuyến bên cạnh quầy thu ngân truyền thống và mở rộng các gói bảo hiểm đa dạng hơn.

Giá trị tham khảo

Báo cáo là nguồn tài liệu hữu ích cho sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin quản lý trong quá trình học tập môn Phân tích và Thiết kế hướng đối tượng (OOAD) hoặc thực hiện đồ án chuyên ngành.

Các phần có giá trị tham khảo cao bao gồm:

  • Mẫu đặc tả Use-case chuẩn mực với đầy đủ luồng sự kiện chính và luồng thay thế.
  • Cách ánh xạ logic từ bài toán nghiệp vụ y tế sang hệ thống biểu đồ tuần tự (Sequence Diagram) và biểu đồ hoạt động (Activity Diagram).
  • Cấu trúc thiết kế 12 bảng cơ sở dữ liệu quan hệ cho bài toán quản lý phòng khám và phát thuốc.

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

1. Hệ thống eHealthCare phân loại các gói thẻ bảo hiểm y tế như thế nào và chính sách chi trả ra sao?
Hệ thống quản lý 2 loại thẻ bảo hiểm:

  • Loại 1: Khách hàng đóng phí 100.000 VNĐ/tháng, bệnh viện hỗ trợ chi trả 50% chi phí phát sinh nhưng không vượt quá 500.000 VNĐ cho một lần khám.
  • Loại 2: Khách hàng đóng phí 300.000 VNĐ/tháng, bệnh viện hỗ trợ chi trả 80% chi phí phát sinh nhưng không vượt quá 1.000.000 VNĐ cho một lần khám.

2. Quy trình đăng ký khám bệnh tự động tại máy cảm ứng diễn ra gồm những bước nào?
Bệnh nhân thực hiện: Quẹt thẻ bảo hiểm tại máy đọc mã từ $\rightarrow$ Hệ thống kiểm tra thẻ, truy xuất thông tin và hiển thị lời chào cá nhân hóa theo tuổi/giới tính $\rightarrow$ Hiển thị danh sách chuyên khoa để chọn $\rightarrow$ Hiển thị danh sách bác sĩ đang trực kèm số thứ tự hiện tại và số người đang chờ $\rightarrow$ Bệnh nhân chọn bác sĩ và xác nhận đăng ký $\rightarrow$ Hệ thống in số thứ tự và lưu bệnh nhân vào hàng đợi của phòng khám.

3. Bác sĩ thực hiện những thao tác nghiệp vụ nào trong Use-case "Tạo phiếu khám"?
Bác sĩ đăng nhập $\rightarrow$ Chọn chức năng "Quản lý khám" để xem danh sách bệnh nhân chờ $\rightarrow$ Chọn bệnh nhân cần khám để mở form chi tiết $\rightarrow$ Nhập chẩn đoán bệnh, ghi chú chỉ dẫn và kê đơn thuốc theo danh mục có sẵn của hệ thống $\rightarrow$ Nhấn nút "Lưu" để cập nhật phiếu khám vào hồ sơ bệnh án và chuyển tiếp lượt khám tiếp theo.

4. Dược sĩ và Thu ngân phối hợp thực hiện quy trình phát thuốc và thu tiền như thế nào?
Bệnh nhân nộp phiếu khám tại quầy $\rightarrow$ Thu ngân mở giao diện "Tạo hóa đơn", tính tổng viện phí (gồm tiền khám theo khoa và tiền thuốc sau khi áp dụng mức giảm trừ của bảo hiểm), in hóa đơn và nhận tiền $\rightarrow$ Sau khi thanh toán thành công, Dược sĩ mở giao diện "Quản lý thuốc", kiểm tra đơn thuốc, cập nhật trừ số lượng trong kho, tiến hành lấy thuốc và phát cho bệnh nhân.

5. Thông tin sức khỏe y tế nào của bệnh nhân được lưu trữ ban đầu và cập nhật hàng năm?
Trước khi đăng ký dịch vụ, bệnh nhân được khám sức khỏe để lưu trữ vào bảng THÔNG TIN Y TẾ các chỉ số: giới tính, nhóm máu, hệ kháng nguyên (Rh+ hoặc Rh-), cân nặng, chiều cao và nhịp tim.


Kết luận

Đồ án "Dự án phát triển hệ thống khám bệnh & phát thuốc eHealthCare" của nhóm sinh viên Khoa Tin học, Trường Đại học Sư phạm – Đại học Đà Nẵng đã hoàn thành xuất sắc việc mô hình hóa bài toán y tế theo phương pháp phân tích thiết kế hướng đối tượng. Công trình cung cấp hệ thống tài liệu thiết kế phần mềm bài bản, từ đặc tả 12 Use-case, hệ thống biểu đồ UML động/tĩnh đến thiết kế chi tiết 12 bảng cơ sở dữ liệu và giao diện người dùng. Đây là bản thiết kế hoàn chỉnh, tạo nền tảng vững chắc cho việc lập trình và triển khai ứng dụng quản lý khám chữa bệnh tự động trong thực tế.