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

Đề tài "Xây dựng Website đặt lịch khám bệnh" là đồ án thuộc học phần CDIO (mã học phần: SE 397 Z), được thực hiện tại Khoa Công nghệ Thông tin, Trường Đại học Duy Tân, thành phố Đà Nẵng dưới sự hướng dẫn của giảng viên Trần Thị Thanh Lan. Đồ án được hoàn thành vào ngày 12 tháng 03 năm 2024 bởi nhóm 5 sinh viên: Trần Công Phát (MSSV: 27211243345), Nguyễn Lê Tấn Phúc (MSSV: 27211234058), Trần Công Thiện Sinh (MSSV: 27211233902), Lê Văn Đăng Khoa (MSSV: 27211200721) và Nguyễn Thân Nguyên Chương (MSSV: 27216227711).

Bối cảnh nghiên cứu xuất phát từ thực trạng người bệnh gặp nhiều khó khăn trong việc tiếp cận và lựa chọn bác sĩ chuyên khoa phù hợp. Để giải quyết vấn đề này, nhóm tác giả đề xuất xây dựng một hệ thống trực tuyến hỗ trợ kết nối bệnh nhân với mạng lưới bác sĩ chuyên khoa. Hệ thống hướng đến việc cung cấp nguồn thông tin được chuẩn hóa và cập nhật định kỳ, bao gồm danh sách cơ sở y tế, phòng khám, chuyên khoa điều trị, kinh nghiệm làm việc, cũng như danh mục các bệnh lý và triệu chứng lâm sàng tương ứng.

Mục tiêu và nhiệm vụ nghiên cứu được xác định theo mô hình kỹ thuật CDIO (Conceive – Design – Implement – Operate):

  1. Đề xuất và đánh giá đa tiêu chí các ý tưởng công nghệ tiềm năng của từng thành viên trong nhóm để lựa chọn đề tài tối ưu.
  2. Xác định các tác nhân tham gia vào 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 yêu cầu hệ thống thông qua việc xây dựng 17 Use Case chi tiết, lập ma trận phân công nhiệm vụ và xây dựng các kịch bản tương tác (đặc tả use case, biểu đồ hoạt động).
  4. Thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh (gồm 11 bảng dữ liệu) và thiết kế chi tiết 17 giao diện chức năng của hệ thống.
  5. Tiến hành thử nghiệm demo sản phẩm và đánh giá khả năng đáp ứng thực tế.

Đối tượng nghiên cứu là quy trình nghiệp vụ đặt lịch khám bệnh trực tuyến, quản lý lịch trình công tác của bác sĩ, quản lý hồ sơ bệnh án và quản lý dữ liệu vận hành y tế. Phạm vi nghiên cứu tập trung vào phân tích, thiết kế hệ thống phần mềm web y tế, thực hiện trong khuôn khổ học phần đồ án công nghệ thông tin tại Đại học Duy Tân năm 2024.


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

Khung lý thuyết nền tảng của đồ án là quy trình phát triển sản phẩm kỹ thuật CDIO, tập trung vào hai giai đoạn trọng tâm được trình bày chi tiết trong văn bản: Giai đoạn Hình thành ý tưởng (Conceive) và Giai đoạn Thiết kế hệ thống (Design).

Phương pháp nghiên cứu bao gồm:

  • Phương pháp đánh giá và sàng lọc ý tưởng: Áp dụng bảng ma trận đánh giá đa chiều trên 5 đề xuất cá nhân dựa trên các tiêu chí: khối lượng kiến thức chuyên ngành yêu cầu, kỹ năng thực hành, đối tượng thụ hưởng, ước lượng quy mô thị trường thụ hưởng, mức độ thu hút vốn đầu tư, vòng đời tồn tại trước khi bị thay thế, nguy cơ từ sản phẩm thay thế, độ khó kỹ thuật và ước lượng thời gian phát triển thương mại.
  • Phương pháp phân tích và thiết kế hướng đối tượng (OOAD): Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng hệ thống biểu đồ Use Case tổng quát, đặc tả luồng sự kiện (dòng sự kiện chính, điều kiện trước, điều kiện sau) và mô hình hóa luồng xử lý thông qua biểu đồ hoạt động (Activity Diagram).
  • Phương pháp thiết kế cơ sở dữ liệu quan hệ (RDBMS): Xác định các thực thể, thuộc tính, khóa chính (Primary Key), khóa ngoại (Foreign Key) và kiểu dữ liệu vật lý để quản lý thông tin người dùng, lịch hẹn, bệnh án, phòng khám và danh mục hệ thống.

Nguồn dữ liệu của đồ án là các thông tin đặc tả nghiệp vụ quản lý khám chữa bệnh, bao gồm dữ liệu phân quyền người dùng, dữ liệu thông tin bác sĩ, lịch trình khám bệnh, danh mục chuyên khoa, cơ sở phòng khám và lịch sử khám bệnh của bệnh nhân.


Thiết kế và triển khai

Hệ thống được thiết kế hướng tới việc phân định rõ ràng quyền hạn của 3 nhóm tác nhân chính:

Tác nhân Định nghĩa và vai trò trong hệ thống
Admin Người điều hành và duy trì hoạt động của hệ thống; sử dụng toàn bộ chức năng quản trị như tạo tài khoản, phân quyền, thêm mới bác sĩ, quản lý phòng khám, quản lý chuyên khoa, lên lịch khám bệnh, quản lý thanh toán - thống kê và theo dõi Dashboard.
Doctor Bác sĩ tham gia hệ thống; thực hiện vai trò lên lịch khám bệnh, quản lý bệnh nhân khám bệnh, quản lý hồ sơ bệnh án và kê đơn thuốc cho bệnh nhân.
Patients Bệnh nhân sử dụng hệ thống; có quyền tìm kiếm thông tin, xem thông tin y tế, đặt lịch khám bệnh, thực hiện thanh toán, tương tác qua chatbox, chuyển đổi ngôn ngữ và thực hiện thích/chia sẻ/bình luận.

Yêu cầu phi chức năng của hệ thống gồm 4 tiêu chí: tốc độ tải nhanh chóng, tương thích đa thiết bị, giao diện trực quan và đảm bảo khả năng hỗ trợ truy cập đồng thời.

Cơ sở dữ liệu vật lý của hệ thống bao gồm 11 bảng dữ liệu quan hệ:

  1. AllCodes: Bảng từ điển hệ thống, lưu trữ các mã cấu hình chung gồm các trường key (Varchar 255, Khóa chính), type, valueEn, valueVi.
  2. Bookings: Quản lý thông tin đặt lịch khám, gồm bookingId (Int 11, Khóa chính), statusId, doctorId (Khóa ngoại tham chiếu bảng Users), patientId (Khóa ngoại tham chiếu bảng Patients), date, timeType (timestamp).
  3. Clinics: Quản lý cơ sở phòng khám, gồm clinicId (Int 11, Khóa chính), name, address, image (longblob), descriptionHTML (text), descriptionMarkdown (text).
  4. doctor_info: Lưu trữ chi tiết thông tin hành nghề của bác sĩ, gồm doctor_infor_Id (Int 11, Khóa chính), doctorId (Khóa ngoại tham chiếu bảng Users), specialtyId (Khóa ngoại tham chiếu bảng specialties), clinicId (Khóa ngoại tham chiếu bảng Clinics), priceId, addressClinic, provinceId, paymentId, nameClinic, note, count.
  5. histories: Lưu lịch sử khám bệnh, gồm historyId (Int 11, Khóa chính), patientId (Khóa ngoại tham chiếu bảng Patients), doctorId (Khóa ngoại tham chiếu bảng Users), email, statusId (text), timeType, diagnose.
  6. doctor_intro: Chứa bài giới thiệu chi tiết về bác sĩ, gồm doctor_intro_Id (Int 11, Khóa chính), contentHTML (longtext), contentMarkdown (longtext), description (longtext), doctorId, specialtyId, clinicId.
  7. Patients: Quản lý hồ sơ thông tin bệnh nhân, gồm patientId (Int 11, Khóa chính), email, fullName, address, phoneNumber, gender, roleId.
  8. Schedules: Quản lý kế hoạch lịch khám, gồm scheduleId (Int 11, Khóa chính), currentNumber, maxNumber (Int 11), date, timeType (timestamp), keyMap (Khóa ngoại tham chiếu AllCodes), doctorId (Khóa ngoại tham chiếu Users).
  9. Users: Bảng tài khoản người dùng hệ thống (Admin, Doctor), gồm userId (Int 11, Khóa chính), email, password, firstName, lastName, address, phoneNumber, gender, image (blob), roleId, keyMap (Khóa ngoại tham chiếu AllCodes).
  10. black_list: Danh sách hạn chế/chặn, gồm blockedId (Int 11, Khóa chính), patientId (Khóa ngoại tham chiếu Patients), doctorId (Khóa ngoại tham chiếu Users), statusId, timeType (timestamp), keyMap.
  11. specialties: Quản lý danh mục chuyên khoa, gồm specialtyId (Int 11, Khóa chính), name, image (longblob), clinicId (Khóa ngoại tham chiếu Clinics), descriptionHTML (text), descriptionMarkdown (text).

Hệ thống thiết kế 17 giao diện tương tác tương ứng với các phân hệ chức năng: Đăng nhập, Tìm kiếm, Đăng xuất, Quản lý tài khoản, Thông tin bệnh nhân, Chatbox, Chi tiết bác sĩ, Quản lý hồ sơ bệnh án, Thanh toán – Thống kê, Dashboard, Quản lý phòng khám, Quản lý chuyên khoa, Quản lý lịch khám bệnh nhân, Chuyển đổi ngôn ngữ, Điền thông tin khám bệnh (Đặt lịch), Thông tin thanh toán và Thông tin cảm ơn quý khách hàng.


Nội dung chính theo từng phần

Báo cáo đồ án được cấu trúc thành 4 phần chính phản ánh toàn bộ vòng đời phân tích và thiết kế của dự án.

Phần 1: Ý tưởng (Conceive)

Phần 1 trình bày quá trình đề xuất ý tưởng cá nhân của 5 thành viên trong nhóm nghiên cứu:

  • Thành viên 1 (Trần Công Phát): Đề xuất ý tưởng "Website đặt lịch khám bệnh" với mục tiêu kết nối người bệnh và bác sĩ chuyên khoa dựa trên thông tin minh bạch.
  • Thành viên 2 (Lê Văn Đăng Khoa): Đề xuất ý tưởng "Quản lý thư viện" nhằm xây dựng mô hình tổ chức và giải pháp quản lý hoạt động thư viện tại Việt Nam.
  • Thành viên 3 (Trần Công Thiện Sinh): Đề xuất ý tưởng "Ứng dụng quản lý tài chính" hỗ trợ theo dõi thu chi, tài khoản ngân hàng, lập thống kê và kế hoạch tài chính cá nhân.
  • Thành viên 4 (Nguyễn Lê Tấn Phúc): Đề xuất ý tưởng "Website thương mại điện tử chuyên biệt về thực phẩm" cung cấp thực phẩm tươi sống, chế biến sẵn và thực phẩm chức năng.
  • Thành viên 5 (Nguyễn Thân Nguyên Chương): Đề xuất ý tưởng "Ứng dụng thiết kế đồ nội thất 3D" hỗ trợ người dùng lên ý tưởng và thiết kế không gian sống cá nhân hóa.

Nhóm tiến hành đánh giá chi tiết 5 ý tưởng thông qua hệ thống bảng so sánh:

Tiêu chí đánh giá Ý tưởng 1 (Đặt lịch khám) Ý tưởng 2 (Quản lý thư viện) Ý tưởng 3 (Quản lý tài chính) Ý tưởng 4 (TMĐT thực phẩm) Ý tưởng 5 (Nội thất 3D)
Kiến thức chuyên ngành Lập trình web, Thiết kế đồ họa Quản lý thông tin, Quản lý thư viện, Quản lý lưu trữ An toàn thông tin, Cài đặt & phát triển ứng dụng, Cơ sở dữ liệu Lập trình ứng dụng, Phát triển ứng dụng, Marketing trực tuyến Lập trình, Thiết kế đồ họa
Kỹ năng cần thiết Tư duy, Sáng tạo Phần mềm quản lý thư viện, Quản lý dữ liệu, Giao tiếp Lập trình ứng dụng, Phát triển ứng dụng, Thiết kế giao diện Lập trình web, Thiết kế web, Marketing trực tuyến Tư duy lập trình, Thiết kế đồ họa
Đối tượng thụ hưởng Người bị bệnh, Người sáng tạo phần mềm, Bệnh nhân có vấn đề sức khỏe Khách hàng, Nhân viên, Người quản lý Khách hàng, Ngân hàng Người tiêu dùng phổ thông, Người kinh doanh, Doanh nghiệp Chủ thầu, Người chủ nhà
Ước lượng người hưởng lợi 20 triệu người Tất cả người liên quan thư viện và khách hàng 15 triệu người 20 triệu người 15 triệu người
Khả năng đầu tư vốn Cao Không Trung bình Cao Rất cao
Vòng đời tồn tại ước lượng 10 năm Không nêu 7 năm 15 năm Không nêu
Sản phẩm thay thế tiềm năng ChatGPT Không nêu Blockchain Không nêu Không nêu
Độ khó phát triển Cao Không Trung bình Cao Rất cao
Thời gian phát triển (thương mại) 2 năm Không nêu 1 năm 1 năm 1 năm

Dựa trên kết quả phân tích tổng hợp các nguồn lực và tiềm năng ứng dụng, nhóm đã thống nhất lựa chọn ý tưởng: "Xây dựng Website đặt lịch khám bệnh".

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

Phần 2 tập trung vào việc mô hình hóa cấu trúc và hành vi của hệ thống phần mềm:

  • Phân rã yêu cầu chức năng:
    • Nhóm chức năng Bệnh nhân (9 chức năng): Đăng nhập, Đăng xuất, Tìm kiếm, Xem thông tin, Thanh toán, Chatbox, Thích/chia sẻ/bình luận, Đặt lịch khám bệnh, Chuyển đổi ngôn ngữ.
    • Nhóm chức năng Bác sĩ (5 chức năng): Đăng nhập, Đăng xuất, Quản lý lịch khám bệnh, Quản lý bệnh nhân khám bệnh, Quản lý hồ sơ bệnh án.
    • Nhóm chức năng Quản trị viên (8 chức năng): Đăng nhập, Đăng xuất, Quản lý bác sĩ, Quản lý phòng khám, Quản lý chuyên khoa, Quản lý tài khoản, Quản lý thanh toán - thống kê, Dashboard.
  • Phân công xây dựng 17 Use Case:
    • Trần Công Phát phụ trách: UC01 (Tìm kiếm), UC02 (Đăng nhập), UC03 (Đăng xuất).
    • Trần Công Thiện Sinh phụ trách: UC04 (Quản lý tài khoản), UC05 (Quản lý phòng khám), UC06 (Quản lý chuyên khoa), UC07 (Quản lý lên lịch khám bệnh), UC08 (Chuyển đổi ngôn ngữ).
    • Nguyễn Lê Tấn Phúc phụ trách: UC09 (Đặt lịch khám bệnh), UC10 (Thanh toán), UC11 (Thích, chia sẻ, bình luận).
    • Nguyễn Thân Nguyên Chương phụ trách: UC12 (Quản lý hồ sơ bệnh án), UC13 (Quản lý thanh toán thống kê), UC14 (Dashboard).
    • Lê Văn Đăng Khoa phụ trách: UC15 (Xem thông tin), UC16 (Chatbox), UC17 (Quản lý bác sĩ).
  • Đặc tả Use Case then chốt: Tài liệu mô tả chi tiết dòng sự kiện tương tác giữa tác nhân và hệ thống, bao gồm điều kiện tiên quyết và điều kiện sau. Ví dụ: UC09 (Đặt lịch khám bệnh) quy định bệnh nhân chọn bác sĩ và lịch khám, nhập email/số điện thoại để nhận liên kết xác thực hoặc thông báo; UC10 (Thanh toán) hỗ trợ chọn hình thức trả trước qua thẻ (xác thực mã OTP gửi về điện thoại) hoặc thanh toán sau điều trị; UC02 (Đăng nhập) tích hợp cơ chế khôi phục tài khoản qua email hoặc số điện thoại.
  • Thiết kế cơ sở dữ liệu và giao diện: Trình bày chi tiết cấu trúc 11 bảng cơ sở dữ liệu quan hệ và đặc tả các trường dữ liệu trên 17 form giao diện người dùng.
  • Biểu đồ hoạt động: Mô hình hóa các luồng nghiệp vụ thực thi của hệ thống gồm Đăng nhập, Quản lý tài khoản (Thêm tài khoản, Cập nhật tài khoản), Tìm kiếm, Đăng xuất và Quản lý thông tin bác sĩ (Thêm bác sĩ, Cập nhật bác sĩ).

Phần 3: Demo sản phẩm

Phần 3 ghi nhận nội dung thực thi và minh họa trực quan kết quả triển khai sản phẩm website đặt lịch khám bệnh dựa trên các thiết kế giao diện và cơ sở dữ liệu đã xây dựng.

Phần 4: Kết luận (Conclusion)

Phần 4 tổng kết lại toàn bộ kết quả đạt được của quá trình thực hiện đồ án CDIO, đánh giá mức độ hoàn thành so với mục tiêu ban đầu và định hình tiềm năng phát triển của hệ thống website y tế.


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

Đồ án ghi nhận các kết quả và đóng góp cụ thể sau:

  • Hoàn thành đầy đủ hồ sơ thiết kế kỹ thuật cho hệ thống website đặt lịch khám bệnh theo chuẩn mực CDIO, bao gồm: 17 Use Case chức năng được đặc tả chi tiết, 11 bảng cơ sở dữ liệu quan hệ được chuẩn hóa kiểu dữ liệu vật lý, 17 biểu mẫu giao diện người dùng và 5 biểu đồ hoạt động nghiệp vụ trọng yếu.
  • Đưa ra giải pháp phân quyền và luồng nghiệp vụ y tế chặt chẽ, kết hợp tính năng xác thực lịch hẹn đa kênh (liên kết qua email và thông báo số điện thoại), thanh toán tích hợp xác thực OTP, cùng cơ chế hỗ trợ đa ngôn ngữ (tiếng Việt và tiếng Anh).
  • Thiết lập quy trình đánh giá sàng lọc ý tưởng có hệ thống trong giai đoạn Conceive, cung cấp các số liệu ước tính thực tế về quy mô thụ hưởng (20 triệu bệnh nhân tiềm năng), khả năng thu hút đầu tư ở mức Cao, vòng đời dự kiến 10 năm và lộ trình phát triển thương mại trong vòng 2 nă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:

  • Đồ án tập trung phần lớn dung lượng vào giai đoạn phân tích yêu cầu và thiết kế kỹ thuật (Design) với các đặc tả Use Case, thiết kế cơ sở dữ liệu và giao diện người dùng; tài liệu chưa trình bày chi tiết về kiến trúc mã nguồn phía server, framework lập trình cụ thể hay các kịch bản kiểm thử hiệu năng chịu tải đồng thời trong môi trường thực tế.
  • Các hướng nghiên cứu và hoàn thiện tiếp theo gồm việc lập trình hoàn thiện toàn bộ các module backend/frontend, tiến hành kiểm thử thực tế về tốc độ tải trang trên đa thiết bị, đo lường khả năng xử lý truy cập đồng thời và hoàn thiện các tính năng nâng cao như tương tác thời gian thực qua Chatbox và tích hợp cổng thanh toán trực tuyến.

Giá trị tham khảo

Báo cá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, Kỹ thuật phần mềm đang thực hiện đồ án môn học CDIO, đồ án tốt nghiệp hoặc các học phần Phân tích thiết kế hệ thống thông tin và Cơ sở dữ liệu.
  • Các nhóm phát triển phần mềm muốn tham khảo mẫu cấu trúc phân tích nghiệp vụ, ma trận đánh giá ý tưởng công nghệ ở giai đoạn khởi động dự án.
  • Những người xây dựng hệ thống quản lý y tế hoặc dịch vụ đặt lịch trực tuyến, đặc biệt có thể tham khảo trực tiếp cấu trúc thiết kế 11 bảng cơ sở dữ liệu quan hệ (AllCodes, Bookings, Clinics, doctor_info, histories, doctor_intro, Patients, Schedules, Users, black_list, specialties) và đặc tả chi tiết 17 Use Case trong đồ án.

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

1. Nhóm tác giả thực hiện đồ án gồm những ai và thuộc đơn vị đào tạo nào?
Đồ án do nhóm 5 sinh viên Khoa Công nghệ Thông tin, Đại học Duy Tân thực hiện dưới sự hướng dẫn của giảng viên Trần Thị Thanh Lan, gồm: Trần Công Phát, Nguyễn Lê Tấn Phúc, Trần Công Thiện Sinh, Lê Văn Đăng Khoa và Nguyễn Thân Nguyên Chương.

2. Trong giai đoạn Conceive, nhóm tác giả đã đề xuất và so sánh những ý tưởng nào?
Nhóm đã đề xuất và đánh giá 5 ý tưởng cá nhân: Website đặt lịch khám bệnh (Trần Công Phát), Quản lý thư viện (Lê Văn Đăng Khoa), Ứng dụng quản lý tài chính (Trần Công Thiện Sinh), Website thương mại điện tử chuyên biệt về thực phẩm (Nguyễn Lê Tấn Phúc) và Ứng dụng thiết kế đồ nội thất 3D (Nguyễn Thân Nguyên Chương). Ý tưởng đặt lịch khám bệnh được lựa chọn sau khi đối sánh đa tiêu chí.

3. Hệ thống phân chia những nhóm tác nhân nào và bao gồm bao nhiêu use case?
Hệ thống xác định 3 nhóm tác nhân gồm Admin (Quản trị viên), Doctor (Bác sĩ) và Patients (Bệnh nhân), với tổng cộng 17 Use Case chức năng được mã hóa từ UC01 đến UC17 và phân chia cho 5 thành viên phụ trách.

4. Cơ sở dữ liệu của hệ thống gồm bao nhiêu bảng và hỗ trợ lưu trữ những thông tin gì?
Cơ sở dữ liệu vật lý gồm 11 bảng quan hệ: AllCodes, Bookings, Clinics, doctor_info, histories, doctor_intro, Patients, Schedules, Users, black_list và specialties. Hệ thống hỗ trợ lưu trữ toàn diện từ tài khoản, thông tin phòng khám, chuyên khoa, thông tin bác sĩ, lịch trình khám, đặt chỗ đến lịch sử bệnh án và danh sách chặn.

5. Quy trình xác thực khi bệnh nhân thực hiện đặt lịch khám (UC09) và thanh toán (UC10) được quy định như thế nào?
Khi đặt lịch (UC09), bệnh nhân nhập thông tin kèm email hoặc số điện thoại; hệ thống sẽ gửi đường dẫn xác thực qua email hoặc thông báo qua số điện thoại để bệnh nhân nhấn liên kết xác nhận. Khi thanh toán (UC10), người dùng có thể chọn thanh toán qua thẻ hoặc thanh toán sau điều trị; nếu thanh toán qua thẻ, hệ thống sẽ gửi mã OTP về số điện thoại để người dùng nhập xác nhận giao dịch.


Kết luận

Đồ án "Xây dựng Website đặt lịch khám bệnh" của nhóm sinh viên Đại học Duy Tân là một công trình phân tích và thiết kế hệ thống phần mềm y tế bài bản theo quy trình kỹ thuật CDIO. Báo cáo cung cấp đầy đủ các luận cứ đánh giá ý tưởng, tài liệu đặc tả 17 Use Case, thiết kế cơ sở dữ liệu quan hệ 11 bảng và 17 mẫu giao diện người dùng chi tiết. Đây là tài liệu tham khảo có giá trị cao cho việc nghiên cứu, học tập và triển khai các hệ thống thông tin quản lý y tế và đặt lịch trực tuyến.