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

Trong bối cảnh hệ thống y tế ngày càng đối mặt với áp lực lớn về số lượng người bệnh, việc ứng dụng công nghệ thông tin vào công tác quản trị và khám chữa bệnh đã trở thành một nhu cầu cấp thiết. Đề tài "Xây dựng hệ thống quản lý bệnh nhân" được nhóm sinh viên thuộc Trường Khoa học Máy tính – Trường Đại học Duy Tân thực hiện trong khuôn khổ học phần Đồ án CDIO (mã lớp SE 397 Z) nhằm giải quyết các bất cập trong công tác quản lý thủ công truyền thống tại các cơ sở khám chữa bệnh.

Theo phản ánh trong tài liệu, việc quản trị thủ công hoặc bán tự động đối mặt với nhiều khó khăn: quy trình tiếp nhận thông tin bệnh nhân kéo dài, việc theo dõi lịch sử khám chữa bệnh dễ xảy ra sai sót, việc tổng hợp báo cáo viện phí và phân phối toa thuốc chưa đạt được sự đồng bộ cao. Bối cảnh thực tế đòi hỏi một hệ thống phần mềm có khả năng tự động hóa các quy trình nghiệp vụ, hỗ trợ đội ngũ y bác sĩ tra cứu nhanh chóng dữ liệu lâm sàng, giúp nhân viên viện phí xử lý hóa đơn minh bạch và tạo điều kiện thuận lợi cho người bệnh tiếp cận các dịch vụ y tế.

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. Đề xuất và đánh giá các ý tưởng dự án phần mềm theo quy trình tiếp cận CDIO (Conceive - Design - Implement - Operate).
  2. Khảo sát nghiệp vụ y tế, xác định các tác nhân hệ thống và thu thập các yêu cầu chức năng, yêu cầu phi chức năng.
  3. Mô hình hóa hệ thống thông tin thông qua sơ đồ Use Case tổng quát, đặc tả chi tiết từng Use Case, xây dựng biểu đồ hoạt động và biểu đồ tuần tự.
  4. Thiết kế cơ sở dữ liệu quan hệ và cơ sở dữ liệu mức vật lý phục vụ lưu trữ dữ liệu bệnh viện.
  5. Thiết kế giao diện người dùng và triển khai xây dựng phần mềm quản lý bệnh nhân hoàn chỉnh trên nền tảng công nghệ web.

Về phạm vi và đối tượng nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình quản lý thông tin bệnh nhân, hồ sơ bệnh án, quy trình kê đơn thuốc, quản lý tài khoản nhân viên, phân khoa và thanh toán viện phí trong bệnh viện.
  • Không gian nghiên cứu: Trường Khoa học Máy tính – Trường Đại học Duy Tân, Đà Nẵng.
  • Thời gian thực hiện: Tháng 11 năm 2023 đến tháng 12 năm 2023.

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

Đề tài áp dụng khung quy trình kỹ thuật CDIO nhằm đảm bảo tính toàn diện từ giai đoạn hình thành ý tưởng, thiết kế đến triển khai sản phẩm phần mềm. Cơ sở lý thuyết và các phương pháp được sử dụng bao gồm:

  • Khung kiến thức chuyên ngành:
    • Lập trình cơ sở và Lập trình hướng đối tượng (OOP).
    • Cấu trúc dữ liệu và giải thuật.
    • Phân tích và thiết kế hệ thống thông tin (SADT/UML).
    • Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).
    • Lập trình ứng dụng web trên nền tảng PHP và Vue.js.
  • Phương pháp nghiên cứu:
    • Phương pháp đánh giá đa tiêu chí cá nhân và nhóm: Mỗi thành viên đưa ra ý tưởng sản phẩm độc lập, sau đó cả nhóm tiến hành chấm điểm, đánh giá tính khả thi dựa trên các tiêu chí (kiến thức cần thiết, kỹ năng, đối tượng hưởng lợi, khả năng thu hút đầu tư, độ khó phát triển, thời gian hoàn thành).
    • Phương pháp mô hình hóa UML: Sử dụng sơ đồ Use Case, biểu đồ tuần tự (Sequence Diagram), biểu đồ hoạt động (Activity Diagram) để chuẩn hóa dòng dữ liệu và tương tác giữa các tác nhân.
    • Phương pháp thiết kế cơ sở dữ liệu: Chuẩn hóa dữ liệu, xây dựng mô hình quan hệ thực thể và đặc tả chi tiết các bảng dữ liệu mức vật lý.
    • Phương pháp phát triển phần mềm: Hiện thực hóa kiến trúc giao diện người dùng kết hợp xử lý nghiệp vụ backend.
  • Nguồn dữ liệu: Dữ liệu khảo sát nghiệp vụ thực tế từ quy trình tiếp nhận bệnh nhân, khám bệnh, kê đơn thuốc và thanh toán viện phí tại các cơ sở khám chữa bệnh.

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

Phần 1: Đề xuất ý tưởng cá nhân và đánh giá ý tưởng (Conceive)

Trong giai đoạn đầu của mô hình CDIO, bốn thành viên trong nhóm nghiên cứu đã đưa ra bốn ý tưởng sản phẩm riêng biệt vào ngày 01/11/2023. Các ý tưởng đều hướng đến việc ứng dụng công nghệ thông tin để số hóa quy trình quản lý thực tiễn:

Thành viên thực hiện MSSV Tên ý tưởng đề xuất Định hướng sản phẩm chính
Lê Đức Huy 27211232296 Quản lý hệ thống nhà ga / Bệnh viện Quản lý bệnh nhân, nhân viên bệnh viện, lịch sử khám và phân quyền bảo mật
Trương Quang Khải 27211222272 Quản lý hệ thống nhà ga Quản lý hành khách, vận chuyển đơn hàng, vận hành thiết bị nhà ga (BMS)
Thái Văn Trọng Thảo 27211234626 Quản lý hệ thống thư viện Quản lý kho sách, nhà xuất bản, tác giả, nghiệp vụ mượn/trả sách
Mai Thanh Đạt 27211201124 Trang game vui giải trí Web game đa nền tảng, tính năng cộng đồng, bảng xếp hạng và bảo mật dữ liệu

Sau khi đưa ra đề xuất, nhóm đã tổ chức đánh giá chéo giữa các thành viên đối với từng ý tưởng thông qua bộ tiêu chí định lượng và định tính:

  • Ý tưởng Quản lý bệnh nhân (Lê Đức Huy): Ước lượng đối tượng hưởng lợi trực tiếp là bác sĩ, y tá, trưởng khoa và người bệnh. Thời gian phát triển thương mại được nhóm ước tính từ 1 đến 2 tháng (hoặc 9 tuần); khả năng thu hút đầu tư được các thành viên đánh giá từ mức Trung bình đến Cao.
  • Ý tưởng Quản lý nhà ga (Trương Quang Khải): Hướng tới nhân viên nhà ga và khách hàng; thời gian phát triển ước tính từ 5 tuần đến 3 tháng; mức độ đầu tư nhận định khả quan.
  • Ý tưởng Quản lý thư viện (Thái Văn Trọng Thảo): Khảo sát chi tiết cấu trúc thực thể sách, tác giả, nhà xuất bản, kho sách, sinh viên mượn; thời gian phát triển ước tính từ 1 tuần đến 2 tháng.
  • Ý tưởng Trang game giải trí (Mai Thanh Đạt): Tập trung vào người chơi, quản trị viên; thời gian phát triển ước tính từ 2 tuần đến 3 tháng.

Dựa trên kết quả tổng hợp phân tích về tính thực tiễn, mức độ khả thi và nhu cầu cấp thiết của xã hội, nhóm đã thống nhất lựa chọn đề tài: “Xây dựng hệ thống quản lý bệnh nhân”.


Phần 2: Thiết kế hệ thống (Design)

Chương này tập trung vào việc chuyển đổi các yêu cầu thực tế thành mô hình kỹ thuật chi tiết của hệ thống thông tin.

1. Xác định tác nhân và phân quyền hệ thống

Hệ thống xác định 3 tác nhân chính tương tác trực tiếp với phần mềm:

  • Quản lý Bệnh Viện: Người dùng nắm quyền quản trị cao nhất, phụ trách quản lý danh sách bác sĩ, quản lý hệ thống khoa phòng và quản lý tài khoản nhân viên.
  • Bác Sĩ: Người dùng chuyên môn y tế, được cấp tài khoản để đăng nhập quản lý danh sách bệnh nhân, xem/lập hồ sơ bệnh án và tạo toa thuốc.
  • Thu Ngân: Người dùng thực hiện các nghiệp vụ tài chính, phụ trách tính viện phí, in xuất hóa đơn, lập báo cáo thống kê và hỗ trợ bệnh nhân (đặt lịch khám, tra cứu lịch khám, tra cứu thông tin bảo hiểm y tế).

2. Phân loại yêu cầu hệ thống

  • Yêu cầu chức năng:
    • Phân hệ Quản lý: Quản lý bác sĩ, Quản lý tài khoản, Quản lý khoa.
    • Phân hệ Bác sĩ: Quản lý bệnh nhân, Kê toa thuốc, Quản lý hồ sơ bệnh án.
    • Phân hệ Thu ngân: Quản lý viện phí, Thống kê doanh thu/bệnh nhân, Hỗ trợ (đặt lịch khám bệnh, tra cứu lịch khám bệnh, tra cứu bảo hiểm bệnh nhân).
  • Yêu cầu phi chức năng:
    • Bảo mật & Phân quyền: Bảo vệ thông tin bệnh nhân và nhân viên bệnh viện khỏi truy cập trái phép; cấp phát tài khoản và đổi mật khẩu an toàn.
    • Tính khả dụng & Độ ổn định: Hệ thống sẵn sàng vận hành liên tục 24/24.
    • Giao diện: Thiết kế trực quan, dễ thao tác, phù hợp với môi trường y tế.
    • Tính pháp lý: Tuân thủ đầy đủ các quy định, văn bản pháp luật hiện hành của Nhà nước Việt Nam về quản lý y tế và dữ liệu cá nhân.

3. Mô hình hóa Use Case và dòng sự kiện chính

Nhóm nghiên cứu xây dựng sơ đồ Use Case tổng quát gồm 9 Use Case chính từ UC01 đến UC09, đi kèm đặc tả chi tiết và biểu đồ hoạt động:

Mã Use Case Tên Use Case Tác nhân chính Mô tả luồng sự kiện chính
UC01 Quản lý Bác sĩ Quản lý Đăng nhập tài khoản Quản lý $\rightarrow$ Chọn danh mục Quản lý Bác sĩ $\rightarrow$ Thêm, cập nhật, xóa, tìm kiếm thông tin bác sĩ $\rightarrow$ Hệ thống phản hồi kết quả.
UC02 Quản lý Khoa Quản lý Đăng nhập $\rightarrow$ Chọn danh mục Quản lý Khoa $\rightarrow$ Thực hiện thao tác thêm, sửa, xóa, tra cứu khoa phòng $\rightarrow$ Hệ thống cập nhật cơ sở dữ liệu.
UC03 Quản lý Tài khoản Quản lý Chọn danh mục Quản lý Tài khoản $\rightarrow$ Thực hiện cấp mới, cập nhật thông tin, phân quyền hoặc xóa tài khoản nhân viên.
UC04 Quản lý Bệnh nhân Bác sĩ Bác sĩ đăng nhập $\rightarrow$ Vào danh mục Quản lý Bệnh nhân $\rightarrow$ Thêm mới, cập nhật hồ sơ, theo dõi tình trạng bệnh án.
UC05 Toa thuốc Bác sĩ Bác sĩ truy cập chức năng $\rightarrow$ Xem, thêm mới, điều chỉnh, xóa danh mục đơn thuốc của bệnh nhân $\rightarrow$ Lưu trữ toa thuốc.
UC06 Quản lý Hồ sơ bệnh nhân Bác sĩ Quản lý chi tiết lịch sử khám chữa bệnh, chẩn đoán lâm sàng và hình ảnh.
UC07 Hỗ trợ Thu ngân Thu ngân chọn chức năng hỗ trợ $\rightarrow$ Đặt lịch khám, xem lịch khám bệnh, hỗ trợ bệnh nhân tra cứu thời hạn và thông tin bảo hiểm y tế.
UC08 Viện phí Thu ngân Thu ngân truy cập chức năng Viện phí $\rightarrow$ Hệ thống kết xuất thông tin chi phí $\rightarrow$ Xác nhận thanh toán và in/xuất hóa đơn.
UC09 Thống kê Thu ngân / Quản lý Tổng hợp dữ liệu khám bệnh, viện phí và báo cáo tình hình vận hành bệnh viện.

Phần 3: Xây dựng hệ thống (Implement)

Trong giai đoạn hiện thực hóa, nhóm nghiên cứu đã lựa chọn và cài đặt môi trường công nghệ phù hợp để xây dựng các module:

  • Ngôn ngữ lập trình Backend: PHP (xử lý logic phía máy chủ, kết nối cơ sở dữ liệu và xử lý các ràng buộc dữ liệu).
  • Ngôn ngữ lập trình Frontend: Vue.js (xây dựng giao diện tương tác động, mang lại trải nghiệm mượt mà cho người dùng).
  • Công cụ phát triển (IDE): Visual Studio Code.
  • Hệ cơ sở dữ liệu: Thiết kế cơ sở dữ liệu quan hệ và hiện thực hóa các bảng dữ liệu mức vật lý.

Hệ thống đã triển khai thiết kế và chạy thử nghiệm (Demo) các màn hình giao diện cốt lõi:

  1. Giao diện Đăng nhập hệ thống (xác thực và phân quyền người dùng).
  2. Giao diện Quản lý bác sĩ (hiển thị danh sách, thêm/sửa thông tin bác sĩ).
  3. Giao diện Quản lý khoa phòng bệnh viện.
  4. Giao diện Quản lý tài khoản người dùng nội bộ.
  5. Giao diện Quản lý thông tin bệnh nhân.
  6. Giao diện Kê và quản lý toa thuốc.
  7. Giao diện Thanh toán viện phí và xuất biên lai.
  8. Giao diện Báo cáo thống kê.

Thiết kế và triển khai

Hệ thống quản lý bệnh nhân được xây dựng dựa trên kiến trúc phân lớp ứng dụng web với sự phân định rõ ràng giữa tầng hiển thị và tầng xử lý dữ liệu:

  • Tầng Client (Giao diện người dùng): Sử dụng framework Vue.js giúp hiển thị trực quan các biểu mẫu nhập liệu bệnh nhân, danh sách khoa phòng, danh mục thuốc và giao diện viện phí. Nhờ cơ chế reactivity của Vue.js, các thao tác tra cứu bảo hiểm, đặt lịch khám hay chỉnh sửa đơn thuốc được phản hồi nhanh chóng trên trình duyệt.
  • Tầng Server (Logic nghiệp vụ): Sử dụng ngôn ngữ PHP để điều hướng yêu cầu, xử lý các logic phân quyền chặt chẽ giữa 3 nhóm tác nhân (Quản lý, Bác sĩ, Thu ngân), đồng thời kiểm tra tính hợp lệ của dữ liệu đầu vào trước khi lưu trữ.
  • Tầng Dữ liệu: Cơ sở dữ liệu quan hệ lưu trữ có cấu trúc các thực thể: Bác sĩ, Khoa phòng, Tài khoản, Bệnh nhân, Hồ sơ bệnh án, Toa thuốc, Hóa đơn viện phí và Lịch hẹn.

Kiến trúc này đảm bảo tính nhất quán của dữ liệu y tế, hỗ trợ vận hành liên tục 24/24 và bảo vệ thông tin bệnh nhân theo các tiêu chuẩn kỹ thuật phần mềm.


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

Đồ án đã hoàn thành các mục tiêu đề ra theo chuẩn CDIO với các kết quả cụ thể:

  • Kết quả đạt được:
    • Thiết lập hoàn chỉnh ma trận đề xuất và đánh giá 4 ý tưởng kỹ thuật phần mềm độc lập từ các thành viên.
    • Xác định rõ ràng 3 tác nhân hệ thống và xây dựng 9 Use Case nghiệp vụ y tế then chốt.
    • Thiết kế thành công hệ thống biểu đồ phân tích (Use Case, Biểu đồ hoạt động, Biểu đồ tuần tự) và mô hình cơ sở dữ liệu vật lý.
    • Xây dựng hoàn chỉnh prototype hệ thống trên nền tảng PHP và Vue.js với 8 phân hệ giao diện chức năng đã được demo.
  • Đóng góp thực tiễn:
    • Cung cấp giải pháp số hóa quy trình quản lý bệnh nhân tại bệnh viện, giảm thiểu thời gian chờ đợi và giảm sai sót trong khâu kê đơn, lập hóa đơn.
    • Tự động hóa các nghiệp vụ tra cứu thông tin bảo hiểm y tế, lịch sử khám chữa bệnh và lịch khám.
    • Minh chứng quy trình làm việc nhóm bài bản của sinh viên ngành Công nghệ phần mềm tại Đại học Duy Tân thông qua việc ứng dụng phương pháp luận CDIO.

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

  • Hạn chế:
    • Dữ liệu khảo sát và các ước lượng về mặt thương mại (thời gian lưu hành, số lượng người mua, khả năng đầu tư) trong giai đoạn Conceive chủ yếu dựa trên nhận định nội bộ của các thành viên trong nhóm, chưa có dữ liệu đo lường thị trường quy mô lớn.
    • Hệ thống tập trung chủ yếu vào các chức năng quản lý nội bộ cơ bản (Bác sĩ, Bệnh nhân, Khoa, Toa thuốc, Viện phí), chưa tích hợp sâu các nghiệp vụ chẩn đoán hình ảnh phức tạp (PACS/DICOM) hoặc kết nối cổng bảo hiểm xã hội thời gian thực.
  • Hướng nghiên cứu tiếp:
    • Mở rộng hệ thống để tích hợp hồ sơ bệnh án điện tử (EMR) nâng cao.
    • Tích hợp cổng thanh toán viện phí trực tuyến không dùng tiền mặt và liên thông dữ liệu bảo hiểm y tế quốc gia.
    • Phát triển phiên bản ứng dụng di động dành riêng cho bệnh nhân để theo dõi đơn thuốc và nhận kết quả khám trực tuyến.

Giá trị tham khảo

Đồ án CDIO "Xây dựng hệ thống quản lý bệnh nhân" có giá trị tham khảo thiết thực cho:

  • Sinh viên ngành Công nghệ phần mềm, Hệ thống thông tin: Làm tài liệu tham khảo mẫu về quy trình thực hiện một đồ án CDIO hoàn chỉnh từ khâu lên ý tưởng, lập bảng ma trận đánh giá ý tưởng đến thiết kế phân tích hệ thống (UML, Database) và hiện thực hóa mã nguồn (PHP, Vue.js).
  • Người phát triển phần mềm quản lý y tế (HIS): Tham khảo quy trình phân rã chức năng nghiệp vụ bệnh viện thành các Use Case cụ thể và phân quyền chi tiết cho các đối tượng Bác sĩ, Quản lý, Thu ngân.

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

1. Đồ án này do nhóm sinh viên nào thực hiện và thuộc học phần nào?
Đề tài do nhóm 4 sinh viên lớp SE 397 Z gồm: Lê Đức Huy (MSSV: 27211232296), Thái Văn Trọng Thảo (MSSV: 27211234626), Trương Quang Khải (MSSV: 27211222272), Mai Thanh Đạt (MSSV: 27211201124) thực hiện dưới sự hướng dẫn của giảng viên Trần Thị Thanh Lan, tại Trường Khoa học Máy tính – Trường Đại học Duy Tân (tháng 12/2023).

2. Nhóm đã đề xuất những ý tưởng ban đầu nào trước khi chọn đề tài quản lý bệnh nhân?
Nhóm đã đề xuất 4 ý tưởng cá nhân vào ngày 01/11/2023 gồm: Quản lý bệnh nhân/nhà ga (Lê Đức Huy), Quản lý hệ thống nhà ga (Trương Quang Khải), Quản lý hệ thống thư viện (Thái Văn Trọng Thảo) và Trang game vui giải trí (Mai Thanh Đạt). Sau khi đánh giá đa tiêu chí, nhóm thống nhất chọn hệ thống quản lý bệnh nhân.

3. Hệ thống quản lý bệnh nhân phân chia quyền hạn cho các tác nhân như thế nào?
Hệ thống xác định 3 tác nhân:

  • Quản lý: Quản lý bác sĩ, quản lý khoa phòng, quản lý tài khoản nhân viên.
  • Bác sĩ: Quản lý bệnh nhân, kê đơn/toa thuốc, quản lý hồ sơ bệnh án.
  • Thu ngân: Tính và xuất hóa đơn viện phí, báo cáo thống kê, hỗ trợ đặt lịch khám, tra cứu lịch khám và tra cứu bảo hiểm y tế.

4. Các yêu cầu phi chức năng then chốt của hệ thống là gì?
Hệ thống đòi hỏi khả năng hoạt động liên tục 24/24, bảo mật dữ liệu người bệnh và nhân viên tránh truy cập trái phép, giao diện thân thiện dễ thao tác và phải tuân thủ đúng các quy định văn bản pháp luật hiện hành của Nhà nước Việt Nam.

5. Công nghệ và công cụ nào được sử dụng để xây dựng phần mềm?
Hệ thống được phát triển bằng ngôn ngữ PHP (xử lý phía máy chủ), Vue.js (xây dựng giao diện người dùng), hệ quản trị cơ sở dữ liệu quan hệ và sử dụng môi trường phát triển Visual Studio Code.


Kết luận

Đồ án "Xây dựng hệ thống quản lý bệnh nhân" của nhóm sinh viên Trường Đại học Duy Tân là một công trình thực hành kỹ thuật phần mềm bám sát quy trình chuẩn CDIO. Báo cáo đã thể hiện rõ ràng các giai đoạn từ đề xuất, đánh giá ý tưởng, phân tích yêu cầu, mô hình hóa hệ thống bằng UML đến thiết kế cơ sở dữ liệu và xây dựng giao diện ứng dụng trên nền tảng PHP và Vue.js. Kết quả nghiên cứu không chỉ đáp ứng tốt yêu cầu học phần mà còn cung cấp tài liệu tham khảo hữu ích cho việc xây dựng các hệ thống quản lý thông tin y tế quy mô vừa và nhỏ.