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

Trong xu thế chuyển đổi số ngành y tế, công nghệ thông tin đóng vai trò then chốt trong việc thay đổi phương thức tiếp cận dịch vụ y tế, chuẩn hóa quy trình khám chữa bệnh và nâng cao hiệu quả quản lý cơ sở y tế. Tuy nhiên, thực tế vận hành tại nhiều cơ sở y tế hiện nay vẫn bộc lộ những bất cập đáng kể, nổi bật là tình trạng quá tải nghiêm trọng tại các khu vực tiếp đón và chờ khám. Người bệnh thường xuyên phải tiêu tốn nhiều thời gian để thực hiện các thủ tục đăng ký, xếp hàng gặp bác sĩ chuyên khoa hoặc chờ đợi nhận kết quả xét nghiệm. Bên cạnh đó, công tác điều phối nhân sự y tế, tổ chức phân ca trực cho bác sĩ và điều dưỡng chưa được tối ưu hóa bằng các công cụ số, dẫn đến hiện tượng mất cân đối cục bộ: quá tải nhân lực tại các khung giờ cao điểm nhưng lại dư thừa hoặc thiếu hụt ở các khung giờ khác. Xuất phát từ thực trạng đó, đề tài "Xây dựng hệ thống quản lý tư vấn và đặt lịch khám chữa bệnh" được thực hiện nhằm giải quyết các điểm nghẽn trong khâu điều phối lịch khám, tối ưu hóa công tác sắp xếp ca trực y tế và số hóa hoạt động tư vấn, kê đơn thuốc điện tử.

Mục tiêu tổng quát của đề tài là xây dựng hoàn chỉnh một nền tảng website kết nối trực tuyến giữa bệnh nhân và đội ngũ chuyên gia y tế, hỗ trợ người bệnh tiếp cận thông tin y khoa chính xác, chủ động đặt lịch khám, tư vấn từ xa và theo dõi lịch sử điều trị. Các nhiệm vụ nghiên cứu cụ thể được xác định bao gồm:

  1. Nghiên cứu cơ sở lý luận về hệ thống tư vấn y tế trực tuyến, các mô hình chăm sóc sức khỏe từ xa, cùng các tiêu chuẩn bảo mật dữ liệu y tế và đạo đức hành nghề y.
  2. Khảo sát thực trạng nhu cầu y tế trực tuyến, phân tích đối tượng sử dụng và đánh giá ưu nhược điểm của các hệ thống đang hoạt động trên thị trường.
  3. Phân tích yêu cầu nghiệp vụ, xây dựng hệ thống 28 Use Case chi tiết và 23 lược đồ tuần tự (Sequence Diagram) mô tả các luồng xử lý tương tác của hệ thống.
  4. Lựa chọn và nghiên cứu hệ thống công nghệ phục vụ xây dựng giải pháp: NestJS, ReactJS, MongoDB, Socket.IO, WebRTC, BullMQ và Firebase Storage.
  5. Thiết kế kiến trúc phần mềm, xây dựng cơ sở dữ liệu gồm 18 tập tài liệu (collections/tables) và thiết kế 40 màn hình giao diện người dùng.
  6. Cài đặt và thực hiện kiểm thử chức năng (functional testing) trên cả ba phân hệ: người dùng (bệnh nhân), bác sĩ và người quản trị.

Về đối tượng nghiên cứu, đề tài hướng đến hai nhóm chủ thể chính:

  • Bệnh nhân: Bao gồm mọi cá nhân có nhu cầu tiếp cận dịch vụ y tế, tra cứu kiến thức sức khỏe, đặt lịch khám trực tiếp hoặc nhận tư vấn từ xa (đối với bệnh nhi cần có phụ huynh hoặc người giám hộ hỗ trợ).
  • Đội ngũ y tế: Bao gồm các bác sĩ chuyên khoa, y tá, nhân viên y tế có chứng chỉ hành nghề, có nhu cầu quản lý ca làm việc, tương tác tư vấn, tra cứu hồ sơ và hỗ trợ người bệnh qua nền tảng số.

Về phạm vi nghiên cứu, đề tài tập trung vào việc phát triển hệ thống phần mềm web chuyên sâu với các module: xác thực và quản lý tài khoản; quản lý hồ sơ bệnh nhân và lịch sử khám chữa bệnh; phân hệ đặt lịch khám trực tuyến theo khung giờ; module giao tiếp thời gian thực (nhắn tin, gọi thoại, video call); diễn đàn trao đổi kiến thức y khoa có kiểm duyệt; phân hệ phân công ca trực, xác nhận chuyển ca của nhân sự y tế; module quản lý danh mục thuốc và kê đơn điện tử. Về không gian và thời gian, khóa luận tốt nghiệp thuộc chuyên ngành Công nghệ phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh; thời gian nghiên cứu và thực hiện kéo dài 15 tuần trong Học kỳ 2 năm học 2024-2025 (tiến độ ghi nhận từ ngày 01/01/2025 đến ngày 03/06/2025).

Cơ sở lý thuyết và công nghệ áp dụng

Đề tài thuộc loại hình thiết kế và xây dựng hệ thống phần mềm, do đó khung cơ sở lý thuyết tập trung vào các công nghệ, giao thức mạng và kiến trúc phần mềm hiện đại:

  • NestJS: Framework phía máy chủ chạy trên môi trường Node.js, sử dụng ngôn ngữ TypeScript kết hợp các nguyên lý lập trình hướng đối tượng (OOP), lập trình hàm (FP) và lập trình phản ứng chức năng (FRP). Kiến trúc NestJS được tổ chức mạch lạc dựa trên Controllers (tiếp nhận HTTP requests), Services (xử lý logic nghiệp vụ và truy vấn dữ liệu), Modules (đóng gói phạm vi thành phần), Providers, Middleware (tiền/hậu xử lý), Pipes (kiểm tra tính hợp lệ và biến đổi dữ liệu) và Guards (xác thực quyền truy cập và kiểm tra token).
  • ReactJS: Thư viện JavaScript mã nguồn mở chuyên biệt cho việc xây dựng giao diện ứng dụng một trang (Single Page Application - SPA). ReactJS vận hành trên kiến trúc dựa trên thành phần (Component-Based Architecture), cơ chế DOM ảo (Virtual DOM) giúp tối ưu tốc độ cập nhật giao diện, luồng dữ liệu một chiều (One-Way Data Binding) và cú pháp JSX.
  • MongoDB: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented), dữ liệu được định dạng dưới dạng BSON tương tự JSON. MongoDB cung cấp cơ chế schema linh hoạt (schema-less), hỗ trợ đánh chỉ mục (indexing) để tăng tốc độ truy vấn, phân tán dữ liệu trên nhiều node (sharding), hỗ trợ sao lưu phục hồi và cơ chế kiểm soát truy cập bảo mật.
  • Socket.IO: Thư viện Node.js thiết lập kênh giao tiếp hai chiều thời gian thực giữa máy chủ và máy khách, vận hành thông qua giao thức WebSockets hoặc tự động dự phòng bằng cơ chế Long Polling. Thư viện hỗ trợ mã hóa truyền dữ liệu nhị phân (ArrayBuffer, Blob), cơ chế kết nối lại tự động cùng khả năng quản lý kết nối linh hoạt qua Namespace (kênh) và Room (phòng).
  • WebRTC (Web Real-Time Communications): Công nghệ mã nguồn mở hỗ trợ truyền thông âm thanh, hình ảnh và dữ liệu trực tiếp ngang hàng (peer-to-peer) giữa các trình duyệt web mà không cần thông qua máy chủ trung gian chuyển tiếp luồng media. Kiến trúc WebRTC bao gồm các API tiêu chuẩn: getUserMedia (thu nhận tín hiệu camera và microphone), RTCPeerConnection (thiết lập, mã hóa và duy trì luồng kết nối ngang hàng bằng TLS/SRTP) và RTCDataChannel (truyền tải dữ liệu tùy chọn).
  • BullMQ: Thư viện quản lý hàng đợi thông điệp (message queue) hiệu năng cao cho Node.js xây dựng trên hệ thống lưu trữ dữ liệu trong bộ nhớ Redis. BullMQ áp dụng mô hình phân tách Producer - Queue - Worker - Scheduler, cung cấp các tính năng quản lý công việc nâng cao như thực thi công việc trì hoãn (Delayed Jobs), tự động thử lại khi gặp sự cố (Retry) và giới hạn tần suất xử lý (Rate Limiting).
  • Firebase Storage: Dịch vụ lưu trữ tệp đám mây xây dựng trên hạ tầng Google Cloud Platform, hỗ trợ quản lý tải lên và tải xuống các nội dung đa phương tiện của người dùng (ảnh hồ sơ, tài liệu bệnh án) kèm siêu dữ liệu (metadata), tích hợp chặt chẽ với cơ chế bảo mật Firebase Authentication.

Phương pháp nghiên cứu thực tế được triển khai bao gồm: phương pháp tổng hợp và phân tích tài liệu kỹ thuật chuyên ngành; phương pháp điều tra, phân tích so sánh các nền tảng y tế sẵn có; phương pháp mô hình hóa nghiệp vụ bằng sơ đồ ca sử dụng (Use Case Modeling) và sơ đồ tuần tự (Sequence Diagram); phương pháp thiết kế cấu trúc dữ liệu NoSQL; và phương pháp thực nghiệm phát triển mã nguồn kết hợp kiểm thử chức năng theo kịch bản phần mềm.

Khảo sát thực trạng các hệ thống y tế trực tuyến

Trong khuôn khổ nghiên cứu, tác giả đã tiến hành khảo sát thực trạng bối cảnh y tế từ xa tại Việt Nam sau đại dịch COVID-19, phân tích hành vi của các nhóm người dùng và đánh giá ưu - nhược điểm của 3 nền tảng y tế trực tuyến tiêu biểu đang vận hành trên thị trường:

Tên nền tảng Ưu điểm nổi bật Hạn chế ghi nhận
Jio Health Cung cấp dịch vụ thăm khám tại nhà; quản lý hồ sơ bệnh án đầy đủ; đội ngũ y bác sĩ chất lượng cao. Chi phí dịch vụ cao hơn so với khám bệnh trực tiếp; phạm vi địa bàn phục vụ còn hạn chế ở một số khu vực nhất định.
Doctor Anywhere Mô hình siêu ứng dụng tích hợp đa dịch vụ: khám bệnh online, xét nghiệm tại nhà, giao thuốc tận nơi; giao diện thân thiện. Mức độ cá nhân hóa trong tư vấn chưa cao; một số dịch vụ y tế yêu cầu các bước xác minh tương đối phức tạp.
Med247 Kết hợp mô hình hybrid giữa khám trực tuyến và hệ thống phòng khám thể chất; hỗ trợ đặt lịch và theo dõi sức khỏe định kỳ. Người bệnh vẫn bắt buộc phải đến phòng khám thực tế trong một số tình huống; chưa bao quát đầy đủ các chuyên khoa đặc thù.

Từ kết quả khảo sát, nghiên cứu rút ra các bài học thực tiễn: hệ thống y tế trực tuyến cần xây dựng giao diện tối giản để hỗ trợ người cao tuổi và nhóm ít tiếp cận công nghệ; đồng thời phải tích hợp khả năng liên kết với quy trình thăm khám thực tế. Bên cạnh đó, hệ thống cần giải quyết 4 thách thức trọng tâm: bảo mật an toàn dữ liệu bệnh án, xóa bỏ rào cản thao tác công nghệ cho người dùng, đảm bảo chất lượng chuyên môn tư vấn y khoa và tạo dựng niềm tin cho cộng đồng sử dụng dịch vụ.

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo kiến trúc phân tầng kết hợp client-server hoàn chỉnh. Phía giao diện người dùng (Front-end) phát triển bằng ReactJS, giao tiếp với máy chủ (Back-end) xây dựng bằng NestJS thông qua giao thức HTTP RESTful API để xử lý các nghiệp vụ quản lý dữ liệu, đồng thời sử dụng kết nối Socket.IO và WebRTC để phục vụ tính năng truyền thông thời gian thực.

Cơ sở dữ liệu NoSQL MongoDB của hệ thống được chuẩn hóa với 18 tập tài liệu (collections/tables) nhằm quản lý toàn diện các thực thể nghiệp vụ:

  • User: Lưu trữ thông tin tài khoản người dùng, thông tin xác thực và phân quyền truy cập.
  • Doctor: Lưu trữ thông tin chi tiết của bác sĩ (chuyên khoa, bằng cấp, chứng chỉ hành nghề, giới thiệu).
  • Post: Chứa nội dung bài viết chia sẻ thông tin y học trên diễn đàn cộng đồng.
  • Speciality: Danh mục các chuyên khoa khám chữa bệnh trong hệ thống.
  • Comment: Lưu trữ các phản hồi, bình luận và thảo luận dưới bài viết y khoa.
  • Chat: Thông tin phiên hội thoại kết nối giữa người dùng và bác sĩ.
  • Message: Lưu trữ chi tiết nội dung tin nhắn trao đổi theo thời gian thực.
  • Appointment: Quản lý thông tin đặt lịch hẹn khám bệnh và lịch tư vấn y tế.
  • Notification: Quản lý các thông báo tự động phát sinh gửi đến các tài khoản người dùng.
  • RecordPatient: Hồ sơ y tế cá nhân của bệnh nhân phục vụ quá trình khám chữa bệnh.
  • ResultRegistration: Ghi nhận trạng thái và kết quả đăng ký khám bệnh.
  • MedExamService: Danh mục các gói và dịch vụ khám chữa bệnh do cơ sở cung cấp.
  • Shift: Định nghĩa cấu trúc các ca làm việc của nhân viên y tế trong ngày.
  • Shift_Assignment: Dữ liệu phân công ca trực cụ thể cho từng bác sĩ.
  • ShiftSegment: Chi tiết các khung giờ phân đoạn bên trong từng ca trực.
  • DrugType: Danh mục phân loại nhóm thuốc và dược phẩm.
  • Drug: Thông tin chi tiết các loại thuốc, hoạt chất và hướng dẫn sử dụng.
  • MedExamHistory: Lưu trữ lịch sử các lần khám bệnh, kết quả chẩn đoán và đơn thuốc đã kê.

Công tác kiểm thử ứng dụng được tiến hành bằng phương pháp kiểm thử chức năng (functional testing) theo các kịch bản ca sử dụng đã mô hình hóa, chia tách độc lập trên 3 phân hệ:

  1. Phân hệ người dùng: Kiểm thử các luồng đăng ký tài khoản, đăng nhập, quên mật khẩu, cập nhật hồ sơ cá nhân, tìm kiếm bác sĩ, đặt lịch khám theo dịch vụ/thời gian, tham gia diễn đàn (tạo bài viết, bình luận), nhắn tin và thực hiện cuộc gọi tư vấn WebRTC.
  2. Phân hệ bác sĩ: Kiểm thử các luồng tra cứu lịch trực cá nhân, yêu cầu chuyển ca trực, truy xuất hồ sơ bệnh nhân, tra cứu danh mục thuốc, ghi nhận kết quả khám và thực hiện kê đơn thuốc điện tử.
  3. Phân hệ người quản trị (Admin): Kiểm thử các chức năng phân công ca trực, duyệt yêu cầu chuyển ca của bác sĩ, quản lý khung giờ khám, quản lý danh mục chuyên khoa, quản lý danh mục thuốc, quản lý dịch vụ khám và phân quyền duyệt bài viết chuyên môn cho bác sĩ.

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

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

Nội dung chương tập trung giới thiệu và làm rõ nền tảng kỹ thuật được lựa chọn để xây dựng hệ thống. Tác giả phân tích chuyên sâu về NestJS bao gồm đặc điểm nổi bật, giao diện dòng lệnh CLI và cấu trúc phân tầng (Controllers, Services, Modules, Providers, Middleware, Pipes và Guards). Tiếp đó, chương trình bày thư viện ReactJS với kiến trúc Component, cơ chế đồng bộ DOM ảo (Virtual DOM), ràng buộc dữ liệu một chiều và JSX. Đối với lưu trữ dữ liệu, chương làm rõ nguyên lý cơ sở dữ liệu hướng tài liệu của MongoDB, cấu trúc Document JSON/BSON và cơ chế Indexing. Về truyền thông thời gian thực, chương phân tích Socket.IO với các cơ chế Long Polling, WebSocket, phân vùng Namespace/Room; công nghệ WebRTC với các API getUserMedia, RTCPeerConnection, RTCDataChannel; thư viện hàng đợi tác vụ BullMQ xây dựng trên Redis; và dịch vụ lưu trữ đám mây Firebase Storage.

CHƯƠNG 2: KHẢO SÁT VẤN ĐỀ

Chương 2 trình bày bối cảnh thực tiễn, phân tích nhu cầu cấp thiết về dịch vụ y tế trực tuyến tại Việt Nam sau đại dịch COVID-19. Tác giả chỉ rõ lợi ích của nền tảng đối với cả bệnh nhân (tiếp cận bác sĩ nhanh chóng, giảm thời gian chờ đợi, quản lý hồ sơ thuận tiện) và bác sĩ (tối ưu hóa quy trình làm việc, linh hoạt tư vấn). Chương tiến hành phân tích 3 nhóm đối tượng sử dụng (bệnh nhân, bác sĩ, cơ sở y tế) và đánh giá các yếu tố ảnh hưởng từ hạ tầng công nghệ, thiết bị di động đến khung pháp lý bảo mật y tế. Điểm nhấn của chương là bảng đánh giá so sánh chi tiết ưu - nhược điểm của 3 nền tảng thực tế: Jio Health, Doctor Anywhere và Med247, từ đó xác định rõ 4 thách thức kỹ thuật - nghiệp vụ then chốt cần giải quyết.

CHƯƠNG 3: MÔ HÌNH HÓA YÊU CẦU

Chương 3 thực hiện mô hình hóa chi tiết toàn bộ các yêu cầu nghiệp vụ của hệ thống. Tác giả xây dựng lược đồ Use Case tổng thể với 28 ca sử dụng chi tiết (từ Bảng 1 đến Bảng 28): Đăng nhập, Đăng ký, Quên mật khẩu, Đặt lịch hẹn, Quản lý lịch làm việc, Phân công ca trực, Quản lý khung giờ, Xác nhận chuyển ca, Quản lý dịch vụ khám, Quản lý danh mục thuốc, Quản lý thuốc, Tạo yêu cầu chuyển ca, Xem lịch trực và khám bệnh, Ghi nhận kết quả khám bệnh, Tra cứu hồ sơ bệnh nhân, Tra cứu thuốc, Xem lịch hẹn, Tìm kiếm, Nhắn tin, Gọi điện, Đặt lịch hẹn tư vấn, Đăng bài viết, Xem chi tiết bài viết, Bình luận và phản hồi, Quản lý danh mục khoa, Cấp quyền bác sĩ kiểm duyệt bài viết, Cập nhật thông tin cá nhân và Kiểm duyệt bài viết. Mỗi Use Case đều được đặc tả đầy đủ về tiền điều kiện, hậu điều kiện, luồng sự kiện chính, luồng phụ và luồng ngoại lệ. Đồng thời, chương cung cấp 23 lược đồ tuần tự (Sequence Diagram từ Hình 11 đến Hình 33) mô tả tương tác luồng dữ liệu giữa các thành phần, cùng 18 bảng mô tả cấu trúc dữ liệu chi tiết của hệ thống (từ Bảng 29 đến Bảng 46).

CHƯƠNG 4: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ

Chương 4 mô tả toàn bộ quá trình hiện thực hóa giao diện người dùng và kịch bản xử lý tương ứng trên hệ thống website thông qua 40 màn hình giao diện (từ Hình 36 đến Hình 76) và 40 bảng mô tả chức năng (từ Bảng 47 đến Bảng 86). Nội dung thiết kế bao gồm: các màn hình xác thực tài khoản; màn hình dành cho bệnh nhân (đặt lịch khám theo dịch vụ/bác sĩ/thời gian, tạo và quản lý hồ sơ bệnh nhân, chọn phương thức thanh toán, diễn đàn bài viết, màn hình chat và giao diện cuộc gọi video WebRTC); màn hình dành cho bác sĩ (tổng quan thống kê, ghi nhận kết quả khám bệnh, tra cứu hồ sơ và kho thuốc, xem lịch trực cá nhân, yêu cầu đổi ca trực); và màn hình dành cho người quản trị (phân công ca trực, xác nhận chuyển ca, quản lý khung giờ, quản lý dịch vụ khám, quản lý danh mục thuốc, quản lý chuyên khoa và cấp quyền kiểm duyệt bài viết).

CHƯƠNG 5: CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG

Chương 5 trình bày việc cài đặt môi trường thực thi, cấu hình kết nối giữa NestJS, ReactJS, MongoDB, Redis (BullMQ), Socket.IO và Firebase Storage. Sau quá trình cài đặt, tác giả triển khai kiểm thử chức năng toàn diện cho ứng dụng, được cấu trúc chi tiết trong 3 bảng kiểm thử lớn:

  • Bảng 87: Kiểm thử chức năng phân hệ người dùng (bao gồm các ca kiểm thử đăng ký, đăng nhập, quên mật khẩu, cập nhật hồ sơ, đặt lịch khám, chọn phương thức thanh toán, nhắn tin, gọi video và tương tác trên diễn đàn).
  • Bảng 88: Kiểm thử chức năng phân hệ người quản trị (kiểm thử các chức năng phân công ca trực, phê duyệt chuyển ca, quản lý dịch vụ khám, quản lý danh mục thuốc, quản lý chuyên khoa và phân quyền kiểm duyệt).
  • Bảng 89: Kiểm thử chức năng phân hệ bác sĩ (kiểm thử việc tra cứu hồ sơ bệnh nhân, xem lịch làm việc, gửi yêu cầu chuyển ca, ghi nhận kết quả chẩn đoán và thực hiện kê đơn thuốc điện tử).

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

Về kết quả thực hiện, khóa luận đã xây dựng hoàn chỉnh website hệ thống quản lý tư vấn và đặt lịch khám chữa bệnh đáp ứng các yêu cầu đặt ra:

  • Thiết lập đầy đủ chức năng kết nối giữa bác sĩ và người bệnh: hỗ trợ đặt lịch khám trực tuyến theo chuyên khoa, khung giờ và dịch vụ; tích hợp phương thức thanh toán; lưu trữ hồ sơ bệnh nhân trực tuyến.
  • Hiện thực hóa thành công kênh tư vấn y tế từ xa đa phương tiện: hỗ trợ trao đổi qua tin nhắn thời gian thực (Socket.IO) và cuộc gọi thoại/video chất lượng cao (WebRTC).
  • Xây dựng mạng xã hội y tế thu nhỏ: cho phép đăng tải bài viết, bình luận, đặt câu hỏi thảo luận với cơ chế phân quyền kiểm duyệt chuyên môn nghiêm ngặt từ đội ngũ bác sĩ.
  • Số hóa quy trình quản trị nội bộ tại cơ sở y tế: hỗ trợ quản trị viên phân công ca trực, quản lý danh mục thuốc, quản lý dịch vụ khám; hỗ trợ bác sĩ theo dõi lịch trực, tạo yêu cầu đổi ca, tra cứu dữ liệu bệnh án và thực hiện kê đơn thuốc điện tử.
  • Hoàn thiện hệ thống tài liệu phân tích thiết kế phần mềm với 28 Use Case chi tiết, 23 lược đồ tuần tự, 18 bảng cấu trúc dữ liệu và 40 màn hình giao diện được kiểm thử chức năng đầy đủ trên 3 phân hệ người dùng.

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

  • Ý nghĩa khoa học: Đóng góp vào lĩnh vực nghiên cứu ứng dụng công nghệ thông tin trong y tế, cụ thể hóa giải pháp tích hợp các công nghệ truyền thông thời gian thực (Socket.IO, WebRTC) và hệ thống xử lý tác vụ nền tảng (BullMQ/Redis) vào một kiến trúc web dịch vụ y tế hoàn chỉnh, thúc đẩy tiến trình chuyển đổi số trong công tác chăm sóc sức khỏe.
  • Ý nghĩa thực tiễn:
    • Đối với bệnh nhân: Giúp tiết kiệm thời gian, tối ưu chi phí đi lại, tạo điều kiện thuận lợi để tiếp cận tư vấn chuyên môn từ bác sĩ một cách nhanh chóng và quản lý hồ sơ sức khỏe có hệ thống.
    • Đối với đội ngũ bác sĩ: Hỗ trợ quy trình làm việc khoa học, quản lý danh sách bệnh nhân và lịch hẹn hiệu quả, chủ động điều chỉnh lịch làm việc và giảm thiểu các sai sót trong nghiệp vụ kê đơn thuốc.
    • Đối với cơ sở y tế: Giảm thiểu áp lực quá tải cục bộ tại bộ phận tiếp đón, tối ưu hóa việc phân bổ nhân sự y tế theo các ca trực và hiện đại hóa quy trình cung cấp dịch vụ y tế.

Hạn chế và hướng phát triển

Dựa trên nội dung đánh giá và phạm vi nghiên cứu được tác giả trình bày trong văn bản:

  • Hạn chế: Do thời gian thực hiện đề tài giới hạn trong khuôn khổ đồ án tốt nghiệp 15 tuần, hệ thống tập trung chủ yếu vào việc giải quyết quy trình cốt lõi của phòng khám và hệ thống tư vấn trực tuyến, chưa bao quát toàn diện các quy chuẩn phức tạp của các bệnh viện đa khoa quy mô lớn; đồng thời các tính năng phân tích dữ liệu chuyên sâu chưa được hiện thực hóa ở giai đoạn này.
  • Hướng phát triển tiếp theo:
    1. Ứng dụng trí tuệ nhân tạo (AI) để phân tích dữ liệu lịch sử khám chữa bệnh của người bệnh, hỗ trợ bác sĩ dự đoán các xu hướng bệnh lý tiềm ẩn và đề xuất các phác đồ điều trị tối ưu.
    2. Mở rộng kết nối và tích hợp nền tảng với các ứng dụng, thiết bị thông minh theo dõi sức khỏe cá nhân (IoT y tế), hỗ trợ thu thập dữ liệu sinh hiệu tự động để nâng cao hiệu quả chăm sóc sức khỏe liên tục từ xa.

Giá trị tham khảo

Báo cáo khóa luận tốt nghiệp là tài liệu tham khảo có giá trị chuyên môn cao cho các đối tượng:

  • Sinh viên, học viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin đang thực hiện đồ án tốt nghiệp hoặc các dự án công nghệ liên quan đến lĩnh vực y tế số (HealthTech).
  • Các kỹ sư phần mềm cần tìm hiểu tài liệu mẫu mực về phân tích, thiết kế hệ thống hướng đối tượng: tài liệu cung cấp hệ thống 28 Use Case đặc tả đầy đủ các luồng sự kiện cùng 23 lược đồ tuần tự (Sequence Diagram) chuẩn hóa.
  • Lập trình viên phát triển ứng dụng Full-stack muốn tham khảo mô hình kiến trúc kết hợp giữa NestJS, ReactJS, cơ sở dữ liệu MongoDB và các công nghệ truyền thông thời gian thực (WebRTC, Socket.IO, BullMQ).

Phần có giá trị tham khảo chuyên sâu nhất là Chương 3 (Mô hình hóa yêu cầu với hệ thống lược đồ tuần tự chi tiết của từng nghiệp vụ y tế) và Chương 4 (Thiết kế chi tiết 40 màn hình giao diện gắn liền với các kịch bản xử lý phân hệ Người dùng - Bác sĩ - Quản trị viên).

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

1. Khóa luận sử dụng những công nghệ nào để phát triển hệ thống và xử lý giao tiếp thời gian thực?
Hệ thống sử dụng NestJS (TypeScript) để xây dựng ứng dụng phía máy chủ (backend), ReactJS để xây dựng giao diện người dùng ứng dụng một trang (frontend) và MongoDB làm cơ sở dữ liệu hướng tài liệu NoSQL. Để xử lý các tác vụ thời gian thực, hệ thống tích hợp Socket.IO (nhắn tin, thông báo), WebRTC (truyền thông âm thanh và cuộc gọi video trực tiếp ngang hàng giữa bác sĩ và bệnh nhân), BullMQ trên nền tảng Redis (quản lý hàng đợi công việc nền) và Firebase Storage (lưu trữ tệp đa phương tiện).

2. Cơ sở dữ liệu của hệ thống được tổ chức thành những bảng/thực thể chính nào?
Cơ sở dữ liệu MongoDB của hệ thống được thiết kế gồm 18 tập tài liệu (collections) chính: User, Doctor, Post, Speciality, Comment, Chat, Message, Appointment, Notification, RecordPatient, ResultRegistration, MedExamService, Shift, Shift_Assignment, ShiftSegment, DrugType, Drug và MedExamHistory.

3. Khảo sát thực tế trong khóa luận đã đánh giá và so sánh những nền tảng y tế trực tuyến nào?
Tác giả đã khảo sát, đối chiếu ưu và nhược điểm của 3 nền tảng y tế trực tuyến đang hoạt động: Jio Health (thế mạnh khám tại nhà và quản lý bệnh án nhưng chi phí cao, giới hạn địa bàn), Doctor Anywhere (mô hình siêu ứng dụng tích hợp khám online và giao thuốc nhưng cá nhân hóa chưa cao, xác minh phức tạp) và Med247 (mô hình kết hợp online và offline nhưng chưa hỗ trợ đầy đủ các chuyên khoa đặc thù).

4. Quá trình kiểm thử ứng dụng được tổ chức trên những phân hệ chức năng nào?
Hoạt động kiểm thử chức năng được triển khai độc lập trên 3 phân hệ theo kịch bản sử dụng:

  • Phân hệ người dùng (Bảng 87): Kiểm thử đăng ký, đăng nhập, đặt lịch khám, chọn phương thức thanh toán, trao đổi tin nhắn, gọi video và tương tác bài viết.
  • Phân hệ người quản trị (Bảng 88): Kiểm thử phân công ca trực, phê duyệt chuyển ca, quản lý khung giờ, dịch vụ khám, danh mục thuốc, chuyên khoa và cấp quyền duyệt bài.
  • Phân hệ bác sĩ (Bảng 89): Kiểm thử tra cứu hồ sơ bệnh nhân, quản lý lịch làm việc, gửi yêu cầu chuyển ca, ghi nhận kết quả khám và kê đơn thuốc.

5. Đề tài xác định những hướng phát triển mở rộng nào trong tương lai?
Đề tài định hướng hai nội dung nâng cấp chính: nghiên cứu ứng dụng trí tuệ nhân tạo (AI) để phân tích dữ liệu lịch sử khám bệnh nhằm dự đoán xu hướng bệnh lý và đề xuất phác đồ điều trị tối ưu; đồng thời mở rộng tích hợp hệ thống với các ứng dụng và thiết bị theo dõi sức khỏe cá nhân để thu thập dữ liệu chăm sóc sức khỏe liên tục.

Kết luận

Khóa luận tốt nghiệp của sinh viên Nguyễn Đức Phú và Nguyễn Trọng Phúc đã nghiên cứu và phát triển hoàn chỉnh hệ thống quản lý tư vấn và đặt lịch khám chữa bệnh trên nền tảng web hiện đại. Bằng việc kết hợp hiệu quả giữa NestJS, ReactJS, MongoDB cùng các giải pháp truyền thông thời gian thực Socket.IO và WebRTC, hệ thống đã giải quyết đồng bộ từ quy trình đặt lịch khám trực tuyến, tư vấn từ xa đến bài toán điều phối ca trực y tế và quản lý đơn thuốc điện tử. Kết quả nghiên cứu cung cấp một giải pháp ứng dụng thiết thực, có cấu trúc thiết kế chuẩn mực và tạo tiền đề khả thi cho việc tích hợp thêm các công nghệ thông minh trong tương lai.