Giới thiệu dự án

Theo thống kê từ Tổ chức Y tế Thế giới (WHO) và Hội Tim mạch học Việt Nam, các bệnh lý tim mạch (Cardiovascular Diseases - CVD) là nguyên nhân gây tử vong hàng đầu trên toàn cầu, chiếm khoảng 31% tổng số ca tử vong. Tại Việt Nam, xu hướng gia tăng bệnh lý tim mạch ở nhóm người béo phì, người lao động nặng và đặc biệt là phụ nữ mang thai (tim mạch thai kỳ) đang đặt ra áp lực lớn đối với các cơ sở y tế ngoại trú. Tuy nhiên, phần lớn các phòng khám tư nhân quy mô vừa và nhỏ vẫn duy trì quy trình quản lý bệnh nhân bằng sổ sách giấy và bảng tính rời rạc, dẫn đến thời gian chờ đợi kéo dài, sai lệch dữ liệu hồ sơ và khó khăn trong theo dõi lịch sử khám bệnh.

Khóa luận tốt nghiệp "Xây dựng hệ thống quản lý hỗ trợ chăm sóc sức khỏe bệnh nhân tim mạch" (Building Cardiovascular Disease Health Care Support System) của tác giả Trần Quốc Hoàng (Khoa Hệ thống Thông tin, Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM), dưới sự hướng dẫn của ThS. Đỗ Thị Minh Phụng và ThS. Đỗ Duy Thanh, tập trung giải quyết triệt để bài toán số hóa toàn diện quy trình tiếp nhận, khám chữa bệnh và quản trị dữ liệu tại Phòng khám Tim mạch Hồng Tâm (105 Thành Thái, Phường 14, Quận 10, TP.HCM).

+-----------------------------------------------------------------------------------+
|                            BỆNH NHÂN / KHÁCH HÀNG                                 |
|  - Tra cứu gói khám tim mạch       - Đăng ký lịch hẹn trực tuyến                  |
|  - Xem cẩm nang y khoa             - Theo dõi tiến trình khám thời gian thực       |
+------------------------------------------+----------------------------------------+
                                           | (HTTP Request / Response)
                                           v
+-----------------------------------------------------------------------------------+
|                     HỆ THỐNG QUẢN TRỊ HỒNG TÂM CLINIC (MVC)                       |
|  [Module Tiếp Nhận]     --> Phê duyệt & Lập phiếu đăng ký                         |
|  [Module Khám Bệnh]     --> Điều phối phòng khám & Nhập kết quả chuyên sâu         |
|  [Module Dịch Vụ]       --> Quản lý danh mục gói khám, bảng giá, bác sĩ            |
|  [Module Thống Kê]      --> Báo cáo doanh thu, lượt khám, xuất dữ liệu Excel/CSV  |
+------------------------------------------+----------------------------------------+
                                           | (DB Query / Eloquent ORM)
                                           v
+-----------------------------------------------------------------------------------+
|                        HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL                            |
|  (Bệnh nhân, Bác sĩ, Phiếu khám, Dịch vụ, Chi tiết dịch vụ, Phân cấp Địa giới)     |
+-----------------------------------------------------------------------------------+

Vấn đề cụ thể và điểm nghẽn thực tế (Pain Points)

  1. Thắt nút cổ chai khâu tiếp nhận: Bệnh nhân phải xếp hàng lấy số, khai báo thông tin hành chính thủ công tốn từ 15–25 phút/lượt.
  2. Nguy cơ sai lệch và thất lạc hồ sơ: Dữ liệu khám lâm sàng, kết quả siêu âm Doppler tim mạch và điện tâm đồ ghi chép phân tán, khó truy vết lịch sử bệnh án khi tái khám.
  3. Quản trị lịch làm việc thiếu đồng bộ: Bác sĩ không nắm trước số lượng ca khám chuyên sâu trong ngày, gây quá tải cục bộ vào các khung giờ cao điểm.
  4. Minh bạch hóa chi phí: Thiếu quy trình tự động tính toán tổng chi phí dịch vụ đi kèm hóa đơn chi tiết, dễ dẫn đến nhầm lẫn trong khâu thu ngân.

Mục tiêu dự án

  1. Xây dựng cổng thông tin trực tuyến: Cung cấp kiến thức chuyên sâu về bệnh lý tim mạch, dịch vụ khám tim thai kỳ, siêu âm mạch máu và bảng giá công khai.
  2. Tự động hóa quy trình đăng ký & tra cứu: Cho phép bệnh nhân đặt lịch trực tuyến và tra cứu tiến trình khám bệnh thông qua số điện thoại hoặc mã định danh mà không cần tạo tài khoản phức tạp.
  3. Số hóa quy trình nghiệp vụ phòng khám (Clinical Workflow): Thiết lập chuỗi xử lý trạng thái khép kín: Đăng ký $\rightarrow$ Phê duyệt $\rightarrow$ Nộp tiền & In hóa đơn $\rightarrow$ Khám bệnh $\rightarrow$ Cập nhật kết quả.
  4. Tối ưu hóa quản trị: Cung cấp dashboard quản lý lịch trực bác sĩ, phân quyền nhân viên và xuất báo cáo thống kê định dạng CSV/Excel phục vụ vận hành.

Phạm vi và giới hạn (Scope & Limitations)

  • Phạm vi triển khai: Áp dụng cho phòng khám chuyên khoa tim mạch quy mô vừa và nhỏ (khảo sát thực nghiệm tại Hồng Tâm Clinic).
  • Giới hạn kỹ thuật: Hệ thống chưa tích hợp cổng thanh toán trực tuyến (Payment Gateway) và chưa kết nối API với các thiết bị đo y tế IoT; quy trình thanh toán vẫn thực hiện trực tiếp tại quầy thu ngân.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng và thị trường

Tiêu chí Quản lý thủ công / Sổ sách Hệ thống HIS/EHR Bệnh viện lớn Hệ thống Hồng Tâm Clinic
Chi phí đầu tư Thấp (chỉ tốn chi phí văn phòng phẩm) Rất cao (>500 triệu VNĐ, phí duy trì lớn) Tiết kiệm, tối ưu cho phòng khám tư nhân
Thời gian triển khai Tức thì 6 - 12 tháng 2 - 4 tuần
Độ phức tạp vận hành Thấp nhưng dễ sai sót nhân lực Cao, đòi hỏi đào tạo chuyên sâu Giao diện tối giản, phân quyền rõ ràng
Khả năng tra cứu Chậm (tìm kiếm giấy tờ thủ công) Nhanh nội bộ, hạn chế cho bệnh nhân Trực tiếp qua Web theo thời gian thực
Tính linh hoạt Không có khả năng mở rộng Cồng kềnh, khó tùy biến module Kiến trúc MVC Laravel dễ mở rộng

Phân tích yêu cầu theo mô hình MoSCoW

  • Must Have (Bắt buộc có): Module đăng ký khám trực tuyến; Quản lý trạng thái phiếu khám; Phê duyệt và in hóa đơn chi tiết dịch vụ; Nhập kết quả chẩn đoán tim mạch; Cơ sở dữ liệu phân cấp địa giới hành chính (Tỉnh/Thành, Quận/Huyện, Phường/Xã).
  • Should Have (Nên có): Tra cứu tiến trình khám theo thời gian thực; Bộ lọc báo cáo doanh thu theo tháng/năm; Dashboard lịch làm việc bác sĩ; Xuất báo cáo dữ liệu định dạng CSV/Excel.
  • Could Have (Có thể có): Tích hợp Google Maps API chỉ đường đến phòng khám; Thống kê lượt truy cập website; Gợi ý dịch vụ khám kèm theo.
  • Won't Have (Chưa thực hiện): Thanh toán trực tuyến qua thẻ/ví điện tử; Chatbot AI tư vấn triệu chứng tự động.

Thiết kế kiến trúc và Cơ sở dữ liệu

Hệ thống được xây dựng theo kiến trúc Client-Server 3 lớp kết hợp mô hình thiết kế MVC (Model-View-Controller) trên nền tảng PHP Laravel Framework:

[Browser / Client] 
        |  (HTTP GET/POST, JSON / AJAX)
        v
[Routing & Middleware] (web.php / Auth, Sanitize)
        |
        v
[Controllers] (RegisterController, PhieuKhamController, BaocaoController)
        |
        +---> [Views (Blade Engine)] (HTML5, Bootstrap 4, jQuery)
        |
        v
[Models (Eloquent ORM)] <---> [MySQL Database] (InnoDB Engine, UTF8mb4)
-- Thiết kế lược đồ bảng dữ liệu cốt lõi của hệ thống
CREATE TABLE benhnhan (
    id_bn INT AUTO_INCREMENT PRIMARY KEY,
    ten_bn VARCHAR(100) NOT NULL,
    cmnd INT,
    sdt INT NOT NULL,
    email VARCHAR(100),
    gioitinh INT,
    nghenghiep VARCHAR(100),
    dc_tinh VARCHAR(50),
    dc_huyen VARCHAR(50),
    dc_xa VARCHAR(50),
    dc_duong VARCHAR(150),
    INDEX (sdt)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE phieudkkhamvien (
    id_phieudk INT AUTO_INCREMENT PRIMARY KEY,
    id_bn INT NOT NULL,
    id_dv INT NOT NULL,
    id_bs INT,
    id_nv INT,
    ngaytoi DATE NOT NULL,
    tong_gia FLOAT NOT NULL,
    state INT DEFAULT 0 COMMENT '0: Chờ duyệt, 1: Đã xác nhận, 2: Đã đóng tiền, 3: Đang khám, 4: Hoàn thành',
    FOREIGN KEY (id_bn) REFERENCES benhnhan(id_bn) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE phieukham (
    id_phieukham INT AUTO_INCREMENT PRIMARY KEY,
    id_phieudk INT NOT NULL,
    sophong VARCHAR(20),
    id_ctdv INT,
    ketqua TEXT,
    state INT DEFAULT 0,
    FOREIGN KEY (id_phieudk) REFERENCES phieudkkhamvien(id_phieudk) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Công nghệ sử dụng và phiên bản

  • Backend: PHP 7.4+ / Laravel 8.x Framework (Hỗ trợ Artisan CLI, Blade Template, Eloquent ORM).
  • Database: MySQL 5.7 / 8.0 (Storage Engine InnoDB, quản lý toàn vẹn khóa ngoại).
  • Frontend: HTML5, CSS3, Bootstrap 4.6 (Responsive Design), JavaScript (ES6), jQuery 3.5.
  • Công cụ thiết kế & quản trị: Lucidchart (UML Use Case, Sequence Diagram), Navicat Premium, SourceTree (Git Version Control).
  • External API: Google Maps JavaScript API (Hiển thị vị trí phòng khám).

Implementation và kết quả

Quy trình phát triển và Xử lý nghiệp vụ cốt lõi

Quy trình phát triển được chia làm 4 giai đoạn chính: Khảo sát thu thập yêu cầu tại Hồng Tâm Clinic $\rightarrow$ Thiết kế CSDL và lược đồ UML $\rightarrow$ Xây dựng Module chức năng theo chuẩn MVC $\rightarrow$ Kiểm thử và đóng gói triển khai.

Trong tầng Controller, logic tiếp nhận đăng ký khám và tự động khởi tạo hồ sơ bệnh nhân được xử lý bằng Database Transaction nhằm đảm bảo tính toàn vẹn dữ liệu:

namespace App\Http\Controllers\Client;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Models\BenhNhan;
use App\Models\PhieuDangKy;

class RegisterController extends Controller
{
    public function postRegister(Request $request)
    {
        // 1. Validation dữ liệu đầu vào
        $validatedData = $request->validate([
            'ten_bn'    => 'required|string|max:100',
            'sdt'       => 'required|numeric',
            'id_dv'     => 'required|integer',
            'ngaytoi'   => 'required|date|after_or_equal:today',
            'tong_gia'  => 'required|numeric'
        ]);

        DB::beginTransaction();
        try {
            // 2. Kiểm tra hoặc tạo mới Bệnh nhân dựa trên Số điện thoại
            $benhNhan = BenhNhan::firstOrCreate(
                ['sdt' => $request->input('sdt')],
                [
                    'ten_bn'     => $request->input('ten_bn'),
                    'cmnd'       => $request->input('cmnd'),
                    'email'      => $request->input('email'),
                    'gioitinh'   => $request->input('gioitinh'),
                    'nghenghiep' => $request->input('nghenghiep'),
                    'dc_tinh'    => $request->input('dc_tinh'),
                    'dc_huyen'   => $request->input('dc_huyen'),
                    'dc_xa'      => $request->input('dc_xa'),
                    'dc_duong'   => $request->input('dc_duong')
                ]
            );

            // 3. Khởi tạo Phiếu đăng ký khám với trạng thái ban đầu (state = 0: Chờ duyệt)
            $phieuDk = new PhieuDangKy();
            $phieuDk->id_bn    = $benhNhan->id_bn;
            $phieuDk->id_dv    = $request->input('id_dv');
            $phieuDk->ngaytoi  = $request->input('ngaytoi');
            $phieuDk->tong_gia = $request->input('tong_gia');
            $phieuDk->state    = 0; 
            $phieuDk->save();

            DB::commit();
            return response()->json([
                'status'  => 'success',
                'message' => 'Đăng ký lịch khám thành công!',
                'data'    => ['id_phieudk' => $phieuDk->id_phieudk]
            ], 200);

        } catch (\Exception $e) {
            DB::rollBack();
            return response()->json([
                'status'  => 'error',
                'message' => 'Lỗi hệ thống: ' . $e->getMessage()
            ], 500);
        }
    }
}

Tại giao diện phía Client, hệ thống sử dụng jQuery AJAX để tra cứu lịch sử và trạng thái phiếu khám mà không cần tải lại toàn bộ trang:

// Xử lý tra cứu hồ sơ bệnh nhân qua AJAX
$('#btn-tra-cuu').on('click', function(e) {
    e.preventDefault();
    let sdtValue = $('#input-sdt').val().trim();
    
    if (sdtValue === '') {
        alert('Vui lòng nhập số điện thoại để tra cứu!');
        return;
    }

    $.ajax({
        url: '/tra-cuu-thong-tin',
        type: 'POST',
        data: {
            _token: $('meta[name="csrf-token"]').attr('content'),
            sdt: sdtValue
        },
        dataType: 'json',
        beforeSend: function() {
            $('#loading-spinner').show();
        },
        success: function(response) {
            $('#loading-spinner').hide();
            if (response.status === 'success') {
                renderTimeline(response.data.state);
                $('#patient-history-table tbody').html(response.htmlContent);
            } else {
                $('#result-container').html('<div class="alert alert-warning">Không tìm thấy dữ liệu!</div>');
            }
        },
        error: function(xhr) {
            $('#loading-spinner').hide();
            console.error('Lỗi truy vấn:', xhr.responseText);
        }
    });
});

Kết quả kiểm thử và Đánh giá hiệu năng

+-----------------------------------------------------------------------------------+
|                        KẾT QUẢ KIỂM THỬ VÀ HIỆU NĂNG HỆ THỐNG                     |
+-----------------------------------------------------------------------------------+
| [Thời gian phản hồi trang chủ]        : 850 ms (Chuẩn Google Web Vitals < 1.2s)    |
| [Thời gian tra cứu phiếu khám AJAX]   : 180 ms (Truy vấn tối ưu qua Index SDT)    |
| [Dung lượng RAM trung bình / Request] : ~24.5 MB (PHP-FPM Worker)                 |
| [Độ phủ kịch bản kiểm thử (Test Case)]: 48/48 Test cases ĐẠT (100% Passed)        |
| [Tỷ lệ lỗi phát sinh (Defect Rate)]   : < 1.5% trong giai đoạn UAT thử nghiệm     |
+-----------------------------------------------------------------------------------+
  1. Hiệu năng hệ thống: Khả năng đáp ứng tải đồng thời lên đến 250 requests/giây mà không xảy ra tình trạng tràn bộ nhớ (Memory Leak) nhờ sử dụng Eloquent Chunking và DB Indexing.
  2. Độ chính xác dữ liệu: 100% các phiếu đăng ký được đồng bộ chính xác với bảng chi tiết dịch vụ và thông tin bác sĩ phụ trách.
  3. Mức độ hài lòng của người dùng (UAT): Đạt điểm đánh giá 4.6/5.0 từ đội ngũ bác sĩ và nhân viên tiếp tân tại Phòng khám Hồng Tâm về độ tiện dụng, tốc độ in ấn hóa đơn và quản lý lịch trình.

Đổi mới và đóng góp

  1. Chuẩn hóa chu trình khám chữa bệnh đa trạng thái (State Machine Workflow): Thay vì quản lý rời rạc, hệ thống số hóa quy trình theo máy trạng thái 5 bước: Chờ duyệt (0) $\rightarrow$ Đã xác nhận (1) $\rightarrow$ Đã đóng tiền (2) $\rightarrow$ Đang khám (3) $\rightarrow$ Hoàn thành (4). Trạng thái này được cập nhật tức thì giúp bác sĩ và bệnh nhân đồng bộ thông tin tại phòng khám.
  2. Cơ chế tra cứu định danh không mật khẩu (Frictionless Patient Portal): Đối tượng khám tim mạch phần lớn là người trung niên, cao tuổi hoặc thai phụ. Giải pháp tra cứu thông qua Số điện thoại + Mã hồ sơ giúp loại bỏ rào cản quên mật khẩu/tài khoản, tăng 65% tỷ lệ bệnh nhân tự tra cứu kết quả tại nhà.
  3. Module tích hợp in biên lai & phiếu khám đồng thời: Chỉ với 1 thao tác phê duyệt, hệ thống tự động xuất bảng kê viện phí kèm barcode và danh sách phòng khám chuyên sâu, giảm 70% thời gian xử lý thủ công tại quầy tiếp đón.
  4. Hiệu quả thực tiễn: Giúp phòng khám tiết kiệm ước tính 40 giờ công lao động/tháng cho nhân viên hành chính và giảm 85% sai sót thất lạc bệnh án.

Ứng dụng thực tế và triển khai

Kịch bản sử dụng thực tế (Use Case Scenarios)

  • Kịch bản 1 - Bệnh nhân khám tim mạch thai kỳ: Thai phụ truy cập website trên điện thoại di động $\rightarrow$ Đọc bài viết cảnh báo rối loạn nhịp tim thai kỳ $\rightarrow$ Chọn dịch vụ "Khám tim mạch thai kỳ" $\rightarrow$ Chọn ngày khám và nhập thông tin cá nhân $\rightarrow$ Nhận mã số đăng ký trực tuyến.
  • Kịch bản 2 - Bác sĩ chuyên khoa chẩn đoán: Bác sĩ đăng nhập tài khoản quản trị $\rightarrow$ Mở danh sách "Phiếu khám bệnh" $\rightarrow$ Lọc danh sách bệnh nhân đang chờ tại phòng Siêu âm Doppler tim $\rightarrow$ Nhập kết quả đo đạc và phác đồ điều trị $\rightarrow$ Nhấn "Hoàn thành" để lưu vào bệnh án điện tử và đồng bộ cho bệnh nhân.
[Bệnh nhân đăng ký Web] 
         |
         v
[Lễ tân duyệt phiếu] ---> [In Hóa đơn & Chỉ định phòng]
                                    |
                                    v
                         [Bác sĩ khám & Nhập kết quả]
                                    |
                                    v
                         [Hệ thống cập nhật Hoàn thành] <--- [Bệnh nhân tra cứu Online]

Yêu cầu triển khai hệ thống (System Requirements)

  • Phần cứng máy chủ (Server): CPU 2 Cores 2.4 GHz trở lên, RAM 4GB, Ổ cứng SSD 40GB trống.
  • Môi trường phần mềm: Hệ điều hành Ubuntu 20.04 LTS / CentOS 7+, Web Server Nginx hoặc Apache 2.4, PHP >= 7.4 với các extensions (pdo_mysql, mbstring, openssl, tokenizer, xml, ctype, json), MySQL Server >= 5.7.
  • Môi trường Client: Mọi trình duyệt web hiện đại (Google Chrome, Mozilla Firefox, Microsoft Edge, Safari) hỗ trợ HTML5 và JavaScript.

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

Hạn chế kỹ thuật

  • Hệ thống chưa tích hợp chữ ký số y tế (Digital Signature) và quy chuẩn định dạng truyền tải dữ liệu y tế quốc tế HL7/DICOM cho hình ảnh siêu âm.
  • Chưa hỗ trợ đa ngôn ngữ (chỉ mới hỗ trợ tiếng Việt).
  • Chưa có cơ chế gửi tin nhắn tự động (SMS Brandname / Zalo ZNS) nhắc lịch khám cho bệnh nhân.

Hướng nâng cấp tương lai

  1. Tích hợp Mobile Application: Phát triển ứng dụng di động (Flutter / React Native) dành riêng cho bệnh nhân theo dõi huyết áp và nhịp tim định kỳ tại nhà.
  2. Ứng dụng Trí tuệ nhân tạo (AI Engine): Tích hợp mô hình Machine Learning phân tích các chỉ số nguy cơ (BMI, huyết áp, tiền sử bệnh) để hỗ trợ bác sĩ đưa ra cảnh báo sớm về nguy cơ đột quỵ và nhồi máu cơ tim.
  3. Mở rộng chuỗi phòng khám: Nâng cấp kiến trúc cơ sở dữ liệu sang dạng Multi-tenancy để triển khai cho chuỗi nhiều chi nhánh phòng khám tim mạch trên toàn quốc.

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------------+
|                            ĐỐI TƯỢNG HƯỞNG LỢI TRỰC TIẾP                          |
+---------------------+-------------------------------------------------------------+
| Sinh viên CNTT / IS | Tham khảo kiến trúc đồ án MVC chuẩn mực, thiết kế CSDL      |
|                     | phân cấp và cách chuyển hóa quy trình y tế thành phần mềm.   |
+---------------------+-------------------------------------------------------------+
| Lập trình viên Web  | Mẫu code hoàn chỉnh về Laravel Eloquent Transaction,         |
|                     | xử lý bất đồng bộ AJAX và kỹ thuật responsive Bootstrap 4.  |
+---------------------+-------------------------------------------------------------+
| Chủ phòng khám y tế | Giải pháp quản trị số hóa chi phí thấp, tối ưu năng suất     |
|                     | vận hành và nâng cao trải nghiệm chăm sóc bệnh nhân.        |
+---------------------+-------------------------------------------------------------+
| Bệnh nhân & Xã hội  | Tiếp cận kiến thức y khoa chuẩn xác, giảm thiểu thời gian   |
|                     | chờ khám và chủ động theo dõi lịch sử sức khỏe tim mạch.     |
+---------------------+-------------------------------------------------------------+

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

1. Cần chuẩn bị cấu hình máy chủ tối thiểu như thế nào để triển khai hệ thống?

Hệ thống yêu cầu máy chủ VPS hoặc Cloud Server chạy Linux (Ubuntu Server 20.04 LTS), cài đặt ngăn xếp LEMP/LAMP (Nginx/Apache, MySQL 5.7+, PHP 7.4+) với cấu hình tối thiểu 2 vCPU, 4GB RAM và 30GB dung lượng lưu trữ SSD để đảm bảo khả năng xử lý mượt mà cho 1.000–2.000 lượt truy cập/ngày.

2. Hệ thống có khả năng chịu tải và mở rộng quy mô (Scalability) ra sao?

Nhờ kiến trúc MVC tách biệt trên nền tảng Laravel, hệ thống dễ dàng mở rộng theo chiều ngang (Horizontal Scaling) bằng cách tách riêng máy chủ cơ sở dữ liệu MySQL và bổ sung Redis Cache để lưu phiên làm việc (Session) cùng dữ liệu cache danh mục dịch vụ khi lượng truy cập tăng đột biến.

3. Dữ liệu y tế và thông tin cá nhân của bệnh nhân được bảo mật bằng cách nào?

Hệ thống sử dụng cơ chế mã hóa mật khẩu Bcrypt cho tài khoản bác sĩ/nhân viên, bảo vệ toàn bộ form nhập liệu bằng CSRF Token chống tấn công giả mạo, sử dụng PDO Prepared Statements chống lỗi SQL Injection và cơ chế lọc Sanitization dữ liệu đầu vào chống khai thác XSS.

4. Chi phí vận hành và bảo trì hệ thống ước tính khoảng bao nhiêu?

Chi phí duy trì hệ thống rất thấp, chỉ bao gồm phí duy trì tên miền (.vn hoặc .com) khoảng 300.000 – 700.000 VNĐ/năm và chi phí thuê máy chủ Cloud VPS khoảng 150.000 – 300.000 VNĐ/tháng, phù hợp tuyệt đối với ngân sách của các phòng khám vừa và nhỏ.

5. Khả năng tích hợp thêm cổng thanh toán trực tuyến (VNPAY, Momo) trong tương lai có phức tạp không?

Kiến trúc Controller của Laravel cho phép dễ dàng tích hợp thêm Payment Gateway thông qua việc cài đặt các gói SDK hoặc viết Service Provider riêng biệt, liên kết với trạng thái state = 2 (Đã đóng tiền) trong bảng phieudkkhamvien mà không làm thay đổi cấu trúc bảng CSDL hiện hữu.


Kết luận

Đồ án khóa luận tốt nghiệp "Xây dựng hệ thống quản lý hỗ trợ chăm sóc sức khỏe bệnh nhân tim mạch" của sinh viên Trần Quốc Hoàng đã giải quyết trọn vẹn bài toán số hóa quy trình khám chữa bệnh ngoại trú tại Phòng khám Tim mạch Hồng Tâm. Bằng việc kết hợp chặt chẽ giữa phân tích nghiệp vụ y tế thực tế và kiến trúc phần mềm hiện đại (PHP Laravel, MySQL, Bootstrap, AJAX), hệ thống đã chứng minh được tính ứng dụng cao, khả năng vận hành ổn định và tiềm năng nhân rộng lớn trong việc nâng cao chất lượng dịch vụ y tế kỹ thuật số tại Việt Nam.