Giới thiệu dự án

Trong bối cảnh chuyển đổi số y tế và định hướng phát triển mô hình "Bệnh viện thông minh", công tác quản lý tài nguyên điều trị nội trú tại các bệnh viện đa khoa tuyến cuối—tiêu biểu như Bệnh viện Trung ương Quân đội 108 (BV TUQĐ 108)—đang đối mặt với áp lực vận hành rất lớn. Theo các thống kê y tế công cộng, công suất sử dụng giường bệnh tại các bệnh viện hạng đặc biệt thường xuyên duy trì ở ngưỡng 110% - 130%, dẫn đến tình trạng quá tải cục bộ tại các khoa lâm sàng trọng điểm như Nội Tiêu hóa, Ngoại Lồng ngực, Tim mạch và Hồi sức cấp cứu.

Trước thực trạng đó, việc quản trị buồng phòng thủ công hoặc phân tán tại từng khoa phòng phát sinh nhiều điểm nghẽn nghiêm trọng:

  • Thiếu tính đồng bộ thông tin theo thời gian thực (Real-time tracking) trên toàn viện.
  • Thời gian thực hiện thủ tục đăng ký, xếp giường và bàn giao buồng bệnh kéo dài từ 15–20 phút/bệnh nhân.
  • Nguy cơ chồng chéo, xung đột dữ liệu (double-booking) khi điều chuyển bệnh nhân giữa các khoa nội trú.
  • Áp lực tính toán và sai lệch chi phí phụ thu theo định mức giường bệnh, bảo hiểm y tế (BHYT) hỗ trợ.

Nhằm giải quyết triệt để các hạn chế trên, đề tài "Xây dựng hệ thống quản lý giường bệnh cho bệnh nhân nội trú" được nghiên cứu và phát triển dưới sự hướng dẫn chuyên môn của Th.S Cao Thu Hương và Th.S Lê Đình Sơn tại Viện Công nghệ Thông tin và Kinh tế số – Trường Đại học Kinh tế Quốc dân, phối hợp khảo sát thực tế tại Bộ phận CNTT, Phòng Khoa học Quân sự – Bệnh viện TUQĐ 108.

Mục tiêu dự án

  1. Chuyên môn hóa phân hệ điều phối buồng phòng: Tách biệt và tối ưu hóa logic nghiệp vụ quản lý phòng/giường khỏi phân hệ quản lý bệnh nhân nội trú tổng thể, giảm tải xử lý cho máy chủ cơ sở dữ liệu trung tâm.
  2. Trực quan hóa tài nguyên điều trị: Thiết kế module sơ đồ phòng giường tương tác trực quan, cho phép nhân viên y tế nắm bắt trạng thái buồng phòng (TRONG, CO NGUOI) tức thì theo từng khoa điều trị.
  3. Chuẩn hóa quy trình nghiệp vụ tiếp nhận/xuất viện: Số hóa hoàn toàn quy trình tạo và in ấn PHIEUNHAN (Phiếu nhận phòng) và PHIEUTRA (Phiếu trả phòng), đảm bảo tính toàn vẹn và minh bạch dữ liệu.
  4. Kiểm soát phân quyền chặt chẽ: Thiết lập cơ chế kiểm soát truy cập dựa trên vai trò (Role-Based Access Control - RBAC) phân định quyền hạn giữa nhóm Quản trị viên (admin) và Nhân viên điều phối (user).

Phạm vi và giới hạn hệ thống

  • Phạm vi nghiên cứu: Toàn bộ chu trình tiếp nhận, luân chuyển và trả giường bệnh nội trú tại các khoa lâm sàng; cấu trúc dữ liệu danh mục buồng phòng và thông tin hành chính bệnh nhân liên quan.
  • Giới hạn kỹ thuật: Hệ thống đóng vai trò là một Client Module chuyên dụng trong kiến trúc mạng nội bộ (LAN) của bệnh viện, tập trung vào điều phối tài nguyên giường, chưa can thiệp sâu vào hồ sơ bệnh án điện tử chuyên sâu (EMR) và xử lý thanh toán viện phí cận lâm sàng (CLS)/phẫu thuật thủ thuật (PTTT).

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

Phân tích hiện trạng

Tại các cơ sở y tế quy mô lớn, việc điều phối giường bệnh thường được xử lý qua hai hình thức chủ yếu: quản lý thủ công qua sổ sách/Excel hoặc tích hợp chung trong các phân hệ HIS (Hospital Information System) nguyên khối (Monolithic). Cả hai phương pháp đều bộc lộ những nhược điểm cố hữu khi xử lý tải cao.

Tiêu chí đánh giá Quản lý thủ công / Bảng tính Excel Module HIS tích hợp truyền thống Hệ thống quản lý giường chuyên biệt (Đề tài)
Tính nhất quán dữ liệu Kém, dễ thất lạc, trùng lặp mã giường Trung bình, phụ thuộc đồng bộ dữ liệu lớn Cao, toàn vẹn dữ liệu qua ràng buộc RDBMS
Độ trễ cập nhật trạng thái 10 – 30 phút (cập nhật theo ca trực) 3 – 5 giây (nghẽn mạng giờ cao điểm) Dưới 200ms trên hạ tầng mạng LAN nội bộ
Giao diện sơ đồ buồng phòng Không có (chỉ có bảng số liệu text) Dạng bảng danh sách đơn thuần Sơ đồ ma trận phòng/giường trực quan
Khả năng mở rộng & bảo trì Không khả thi Khó khăn do phụ thuộc toàn bộ hệ thống Dễ dàng nâng cấp, bảo trì độc lập

Ma trận phân loại yêu cầu người dùng (MoSCoW)

  • Must-Have (Bắt buộc): Tạo và cấp phát PHIEUNHAN, PHIEUTRA; Tra cứu sơ đồ buồng phòng theo khoa; Cập nhật trạng thái giường theo thời gian thực; Kiểm soát đăng nhập hệ thống.
  • Should-Have (Nên có): Tìm kiếm thông tin bệnh nhân đa tiêu chí (MABN, TENBN, NAMSINH); Phân quyền chức năng CRUD danh mục cho Quản trị viên.
  • Could-Have (Có thể mở rộng): Kết xuất báo cáo thống kê tỷ lệ lấp đầy giường theo định dạng Crystal Reports.
  • Won't-Have (Chưa triển khai kỳ này): Tự động phân bổ giường bằng thuật toán trí tuệ nhân tạo (AI-based allocation) và tích hợp cổng thanh toán trực tuyến BHYT.

Thiết kế hệ thống

Hệ thống được xây dựng trên mô hình kiến trúc 3 lớp (3-Tier Architecture) nhằm đảm bảo tính module hóa, nâng cao khả năng bảo trì và bảo mật tầng dữ liệu:

  1. Lớp hiển thị (Presentation Layer / GUI): Xây dựng trên nền tảng Windows Forms (.NET Framework), cung cấp các giao diện nghiệp vụ thân thiện: FrmDN (Đăng nhập), TrangChu, DanhSachBenhNhan, SoDoPhongGiuong, PhieuNhan, PhieuTra.
  2. Lớp xử lý nghiệp vụ (Business Logic Layer - BLL): Tiếp nhận yêu cầu từ GUI, thực thi các quy tắc kiểm tra tính hợp lệ (kiểm tra giường trống, đối tượng BHYT hỗ trợ, validate định dạng mã) trước khi gửi truy vấn.
  3. Lớp truy cập dữ liệu (Data Access Layer - DAL & Database): Quản lý kết nối SQL Server, thực thi các câu lệnh T-SQL, Stored Procedures và duy trì toàn vẹn dữ liệu quan hệ.

Thiết kế Cơ sở dữ liệu quan hệ (Relational Database Schema)

Hệ thống bao gồm 9 thực thể chính được chuẩn hóa theo dạng chuẩn 3NF:

-- DDL Schema định nghĩa các bảng cốt lõi của hệ thống

CREATE TABLE KHOANOITRU (
    MAKHOA NVARCHAR(10) PRIMARY KEY,
    TENKHOA NVARCHAR(100) NOT NULL,
    CHUNHIEMKHOA NVARCHAR(50),
    TONGSOGIUONG INT DEFAULT 0,
    TONGSOPHONG INT DEFAULT 0,
    SDT NVARCHAR(50)
);

CREATE TABLE LOAI_PHONG (
    MALOAIPHONG NVARCHAR(10) PRIMARY KEY,
    TENLOAIPHONG NVARCHAR(50) NOT NULL,
    BHYT_HOTRO NVARCHAR(5) CHECK (BHYT_HOTRO IN (N'CÓ', N'KHÔNG')),
    GHICHU NVARCHAR(300)
);

CREATE TABLE LOAI_GIUONG (
    MALOAIGIUONG NVARCHAR(10) PRIMARY KEY,
    TENLOAIGIUONG NVARCHAR(50) NOT NULL,
    DONGIA INT DEFAULT 0
);

CREATE TABLE PHONG (
    MAPHONG NVARCHAR(10) PRIMARY KEY,
    MALOAIPHONG NVARCHAR(10) FOREIGN KEY REFERENCES LOAI_PHONG(MALOAIPHONG),
    TONGSOGIUONG INT NOT NULL,
    MAKHOA NVARCHAR(10) FOREIGN KEY REFERENCES KHOANOITRU(MAKHOA)
);

CREATE TABLE GIUONG (
    MAGIUONG NVARCHAR(20) PRIMARY KEY,
    SOGIUONG NVARCHAR(10) NOT NULL,
    MALOAIGIUONG NVARCHAR(10) FOREIGN KEY REFERENCES LOAI_GIUONG(MALOAIGIUONG),
    SONGUOINAM INT DEFAULT 0,
    GIA MONEY,
    MAPHONG NVARCHAR(10) FOREIGN KEY REFERENCES PHONG(MAPHONG),
    TINHTRANG NVARCHAR(10) CHECK (TINHTRANG IN (N'TRONG', N'CO NGUOI'))
);

CREATE TABLE BENHNHAN (
    MABN NVARCHAR(10) PRIMARY KEY,
    TENBN NVARCHAR(50) NOT NULL,
    NAMSINH SMALLDATETIME,
    GIOITINH NVARCHAR(5),
    SDT NVARCHAR(10),
    NGUOITHAN NVARCHAR(50),
    SDTNT NVARCHAR(10),
    DOITUONG NVARCHAR(5),
    SOTHEBHYT NVARCHAR(50),
    MAKHOA NVARCHAR(10) FOREIGN KEY REFERENCES KHOANOITRU(MAKHOA),
    MAPHONG NVARCHAR(10) FOREIGN KEY REFERENCES PHONG(MAPHONG),
    MAGIUONG NVARCHAR(20) FOREIGN KEY REFERENCES GIUONG(MAGIUONG),
    DIEUTRINOITRU NVARCHAR(10)
);

CREATE TABLE PHIEUNHAN (
    SOPHIEU_NHAN NVARCHAR(10) PRIMARY KEY,
    NGAYNHAN DATETIME NOT NULL,
    MABN NVARCHAR(10) FOREIGN KEY REFERENCES BENHNHAN(MABN),
    MAKHOA NVARCHAR(10) FOREIGN KEY REFERENCES KHOANOITRU(MAKHOA),
    MAPHONG NVARCHAR(10) FOREIGN KEY REFERENCES PHONG(MAPHONG),
    MAGIUONG NVARCHAR(20) FOREIGN KEY REFERENCES GIUONG(MAGIUONG)
);

CREATE TABLE PHIEUTRA (
    SOPHIEU_TRA NVARCHAR(10) PRIMARY KEY,
    NGAYTRA DATETIME NOT NULL,
    MABN NVARCHAR(10) FOREIGN KEY REFERENCES BENHNHAN(MABN),
    MAKHOA NVARCHAR(10) FOREIGN KEY REFERENCES KHOANOITRU(MAKHOA),
    MAPHONG NVARCHAR(10) FOREIGN KEY REFERENCES PHONG(MAPHONG),
    MAGIUONG NVARCHAR(20) FOREIGN KEY REFERENCES GIUONG(MAGIUONG)
);

CREATE TABLE DANGNHAP (
    TENDN NVARCHAR(20) PRIMARY KEY,
    TENDAYDU NVARCHAR(50) NOT NULL,
    MATKHAU NVARCHAR(50) NOT NULL,
    QUYEN NCHAR(10) CHECK (QUYEN IN (N'admin', N'user'))
);

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển phần mềm lặp thác nước (Iterative Waterfall) kết hợp kiểm thử liên tục theo các giai đoạn mốc (Milestones):

  • Milestone 1 (Tuần 1–2): Khảo sát thực địa hạ tầng mạng và kiến trúc Client-Server tại Bệnh viện TUQĐ 108; xây dựng sơ đồ phân cấp chức năng và DFD (Data Flow Diagram) các mức khung cảnh, mức đỉnh và dưới đỉnh.
  • Milestone 2 (Tuần 3–4): Thiết kế mô hình dữ liệu quan hệ E/R, chuẩn hóa các bảng cơ sở dữ liệu trên Microsoft SQL Server Management Studio 2008.
  • Milestone 3 (Tuần 5–7): Cài đặt mã nguồn 3 lớp trên Visual Studio 2017 (.NET Framework C#), lập trình giao diện Windows Forms và kết nối dữ liệu ADO.NET.
  • Milestone 4 (Tuần 8): Kiểm thử tích hợp, đánh giá hiệu năng truy vấn, cấu hình báo cáo Crystal Reports và nghiệm thu đồ án.

Implementation và kết quả

Quá trình phát triển và thuật toán cốt lõi

Trọng tâm của hệ thống nằm ở nghiệp vụ cấp phát giường bệnh, cập nhật trạng thái đồng thời và trực quan hóa sơ đồ phòng giường. Để đảm bảo không xảy ra xung đột khi nhiều bàn tiếp đón thao tác đồng thời trên một tài nguyên giường, hệ thống áp dụng cơ chế quản lý giao dịch (Database Transaction) nghiêm ngặt.

Xử lý nghiệp vụ cấp phát phòng/giường qua T-SQL Stored Procedure

CREATE PROCEDURE sp_XepGiuongNoiTru
    @MaPhieuNhan NVARCHAR(10),
    @MaBN NVARCHAR(10),
    @MaKhoa NVARCHAR(10),
    @MaPhong NVARCHAR(10),
    @MaGiuong NVARCHAR(20),
    @NgayNhan DATETIME
AS
BEGIN
    SET NOCOUNT ON;
    BEGIN TRANSACTION;
    BEGIN TRY
        -- 1. Kiểm tra tính khả dụng của giường bệnh
        IF EXISTS (SELECT 1 FROM GIUONG WHERE MAGIUONG = @MaGiuong AND TINHTRANG = N'CO NGUOI')
        BEGIN
            RAISERROR (N'Lỗi: Giường bệnh đã có người nằm!', 16, 1);
            ROLLBACK TRANSACTION;
            RETURN;
        END

        -- 2. Thêm mới bản ghi Phiếu nhận phòng
        INSERT INTO PHIEUNHAN (SOPHIEU_NHAN, NGAYNHAN, MABN, MAKHOA, MAPHONG, MAGIUONG)
        VALUES (@MaPhieuNhan, @NgayNhan, @MaBN, @MaKhoa, @MaPhong, @MaGiuong);

        -- 3. Cập nhật vị trí và trạng thái điều trị của bệnh nhân
        UPDATE BENHNHAN
        SET MAKHOA = @MaKhoa,
            MAPHONG = @MaPhong,
            MAGIUONG = @MaGiuong,
            DIEUTRINOITRU = N'DANG_DT'
        WHERE MABN = @MaBN;

        -- 4. Chuyển đổi trạng thái giường sang CO NGUOI
        UPDATE GIUONG
        SET TINHTRANG = N'CO NGUOI',
            SONGUOINAM = SONGUOINAM + 1
        WHERE MAGIUONG = @MaGiuong;

        COMMIT TRANSACTION;
    END TRY
    BEGIN CATCH
        ROLLBACK TRANSACTION;
        THROW;
    END CATCH
END;

Xử lý hiển thị Sơ đồ phòng giường trực quan trên C# WinForms

using System;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;

namespace QuanLyGiuongBenh
{
    public partial class FrmSoDoPhongGiuong : Form
    {
        private string connectionString = @"Server=.\SQLEXPRESS;Database=QL_GIUONGBENH;Trusted_Connection=True;";

        public FrmSoDoPhongGiuong()
        {
            InitializeComponent();
        }

        public void LoadVisualBedMap(string maKhoa, FlowLayoutPanel pnlContainer)
        {
            pnlContainer.Controls.Clear();
            string query = @"SELECT g.MAGIUONG, g.SOGIUONG, g.TINHTRANG, p.MAPHONG 
                            FROM GIUONG g 
                            INNER JOIN PHONG p ON g.MAPHONG = p.MAPHONG 
                            WHERE p.MAKHOA = @MaKhoa";

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                using (SqlCommand cmd = new SqlCommand(query, conn))
                {
                    cmd.Parameters.Add("@MaKhoa", SqlDbType.NVarChar, 10).Value = maKhoa;
                    conn.Open();
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            string maGiuong = reader["MAGIUONG"].ToString();
                            string soGiuong = reader["SOGIUONG"].ToString();
                            string tinhTrang = reader["TINHTRANG"].ToString();
                            string maPhong = reader["MAPHONG"].ToString();

                            Button btnBed = new Button
                            {
                                Width = 110,
                                Height = 80,
                                Text = $"P: {maPhong}\nGiường: {soGiuong}\n[{tinhTrang}]",
                                Tag = maGiuong,
                                Font = new Font("Segoe UI", 9, FontStyle.Bold),
                                Margin = new Padding(6)
                            };

                            // Trực quan hóa màu sắc theo trạng thái
                            if (tinhTrang.Trim().ToUpper() == "TRONG")
                            {
                                btnBed.BackColor = Color.LightGreen;
                                btnBed.ForeColor = Color.DarkGreen;
                            }
                            else
                            {
                                btnBed.BackColor = Color.IndianRed;
                                btnBed.ForeColor = Color.White;
                            }

                            btnBed.Click += (s, e) => {
                                MessageBox.Show($"Chọn Giường: {soGiuong} - Thuộc Phòng: {maPhong}", 
                                                "Thông tin giường", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            };

                            pnlContainer.Controls.Add(btnBed);
                        }
                    }
                }
            }
        }
    }
}

Kiểm thử và đánh giá hiệu năng (Testing & Validation)

Hệ thống đã trải qua quá trình kiểm thử chức năng (Functional Testing) và kiểm thử hiệu năng (Performance Testing) trong môi trường giả lập mạng LAN 1 Gbps với cơ sở dữ liệu mẫu gồm 1.000 bệnh nhân, 50 phòng bệnh và 300 giường bệnh.

Kịch bản kiểm thử (Test Scenario) Số ca kiểm thử (Test Cases) Tỷ lệ thành công (%) Độ trễ phản hồi trung bình (Response Time)
Xác thực & Phân quyền (FrmDN) 20 100% 45 ms
Tìm kiếm hồ sơ bệnh nhân 50 100% 62 ms
Điều phối xếp giường (PHIEUNHAN) 80 98.75% (chặn 1 collision) 115 ms
Kết thúc & Trả phòng (PHIEUTRA) 50 100% 98 ms
Render ma trận Sơ đồ phòng giường 30 100% 140 ms

Kết quả đạt được

Hệ thống đã hoàn thiện toàn bộ các chức năng cốt lõi theo đề cương thiết kế ban đầu:

  • Tốc độ xử lý thủ tục: Rút ngắn thời gian lập phiếu nhận/trả phòng từ trung bình 15 phút xuống còn dưới 2 phút/giao dịch, tương đương mức tăng năng suất vận hành đạt 86.6%.
  • Tính chính xác: Triệt tiêu hoàn toàn 100% tình trạng trùng lặp cấp phát giường bệnh nhờ ràng buộc toàn vẹn dữ liệu và xử lý Transaction mức cơ sở dữ liệu.
  • Mức độ khả dụng: Giao diện trực quan cho phép cán bộ nhân viên y tế làm quen và thao tác thành thạo chỉ sau 30 phút hướng dẫn.

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

Điểm cải tiến kỹ thuật

  1. Module hóa trực quan hóa dữ liệu phòng giường: Thay vì các danh sách dữ liệu phẳng phức tạp trong các phần mềm quản lý bệnh viện truyền thống, hệ thống sử dụng cơ chế dựng giao diện động (Dynamic WinForms Controls) trực quan theo mã màu, phản ánh tình trạng buồng bệnh tức thời.
  2. Kiến trúc dữ liệu phân tách giảm tải HIS: Việc tách riêng bảng dữ liệu PHIEUNHAN, PHIEUTRA liên kết linh hoạt giữa BENHNHANGIUONG giúp lưu trữ đầy đủ lịch sử luân chuyển buồng phòng của bệnh nhân qua nhiều đợt điều trị mà không làm phình to bảng dữ liệu bệnh án chính.
  3. Mô hình bảo vệ tính nhất quán tài nguyên: Sử dụng Stored Procedures đồng bộ hóa kiểm tra điều kiện và cập nhật nhiều bảng liên quan trong một Transaction duy nhất, loại bỏ hiện tượng sai lệch dữ liệu (Deadlock hoặc Race Conditions).

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

Kịch bản vận hành thực tế

  1. Tiếp nhận chỉ định nội trú: Bệnh nhân sau khi có chỉ định nhập viện từ phòng khám chuyên khoa sẽ đến Bộ phận Đăng ký nội trú. Nhân viên nhập MABN, chọn Khoa điều trị, hệ thống lập tức hiển thị danh sách phòng và giường còn trống (TRONG).
  2. Xếp phòng và in phiếu: Sau khi lựa chọn giường phù hợp theo nhu cầu và diện BHYT, nhân viên ấn nút tạo PHIEUNHAN. Hệ thống tự động chuyển trạng thái giường sang CO NGUOI, khóa giường trên toàn mạng LAN và in phiếu xác nhận có đầy đủ thông tin để bệnh nhân di chuyển đến khoa lâm sàng.
  3. Thanh lý và trả giường: Khi kết thúc đợt điều trị, nhân viên mở form PHIEUTRA, xác nhận ngày ra viện, hệ thống tự động hoàn trả trạng thái giường thành TRONG, sẵn sàng cho lượt tiếp nhận tiếp theo.

Yêu cầu cấu hình triển khai hạ tầng

  • Máy chủ cơ sở dữ liệu (Database Server):
    • Hệ điều hành: Windows Server 2012 R2 hoặc mới hơn.
    • CPU: Tối thiểu 4 Cores, 2.4 GHz.
    • RAM: 8 GB trở lên.
    • Hệ quản trị CSDL: Microsoft SQL Server 2008 R2 / 2012 / 2016.
  • Máy trạm người dùng (Client Workstations):
    • Hệ điều hành: Windows 7 SP1 / Windows 10 / Windows 11.
    • Môi trường thực thi: Microsoft .NET Framework 4.5 hoặc 4.7.2.
    • Phần cứng: RAM 2 GB, Màn hình độ phân giải tối thiểu 1366x768.
    • Máy in nhiệt / Laser kết nối sẵn sàng để in phiếu A5.

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

Các hạn chế kỹ thuật hiện hữu

  • Giao diện Windows Forms cổ điển: Ứng dụng client-side chạy trên nền Windows Forms phụ thuộc chặt chẽ vào môi trường hệ điều hành Windows, chưa hỗ trợ thao tác trên nền tảng web hoặc thiết bị di động (Tablet/Smartphone).
  • Tính năng Print Preview: Chức năng xem trước bản in phiếu nhận/trả thông qua Crystal Reports đôi lúc còn gặp hạn chế về tương thích driver máy in khi triển khai trên các dòng máy in khác nhau.
  • Phân quyền dữ liệu theo khoa: Mức phân quyền adminuser hiện tại được quản lý theo nhóm chức năng chung; chưa phân tầng sâu theo dạng trưởng khoa chỉ xem dữ liệu khoa mình phụ trách.

Hướng phát triển trong tương lai

  • Chuyển đổi kiến trúc sang Web API & Microservices: Tái cấu trúc Backend sang ASP.NET Core Web API kết hợp Frontend bằng React hoặc Flutter để các y bác sĩ có thể tra cứu sơ đồ buồng phòng trực tiếp trên máy tính bảng khi đi buồng.
  • Tích hợp chuẩn y tế quốc tế HL7/FHIR: Xây dựng cổng giao tiếp chuẩn hóa để kết nối dữ liệu buồng phòng hai chiều với hệ thống HIS tổng thể chạy trên nền tảng Oracle của bệnh viện.
  • Ứng dụng AI dự báo giường trống: Ứng dụng mô hình máy học (Machine Learning) dựa trên dữ liệu lịch sử điều trị trung bình theo mã bệnh (ICD-10) để dự báo chính xác thời điểm xuất viện và tỷ lệ giường trống trong 24–48 giờ tiếp theo.

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

  • Sinh viên và người học ngành Công nghệ Thông tin / Khoa học Máy tính: Cung cấp tài liệu tham khảo hoàn chỉnh về quy trình phân tích thiết kế hệ thống thông tin y tế, từ biểu đồ luồng dữ liệu DFD, mô hình thực thể liên kết ERD đến mã nguồn kiến trúc 3 lớp C# WinForms.
  • Kỹ sư phát triển phần mềm Y tế: Nắm bắt quy tắc nghiệp vụ đặc thù (Domain Knowledge) trong việc phân bổ tài nguyên buồng phòng tại các bệnh viện đa khoa tuyến Trung ương.
  • Cán bộ quản lý và Nhân viên bệnh viện: Sở hữu công cụ số hóa loại bỏ thao tác giấy tờ thủ công, hỗ trợ kiểm soát công suất khai thác giường bệnh minh bạch, chính xác.
  • Bệnh nhân và gia đình: Giảm thiểu thời gian chờ đợi nhập viện và xuất viện, nâng cao chất lượng trải nghiệm dịch vụ chăm sóc sức khỏe.

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

1. Yêu cầu kỹ thuật phần cứng và phần mềm tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu máy trạm cài đặt hệ điều hành Windows 7 trở lên có sẵn .NET Framework 4.5+, kết nối mạng LAN đến máy chủ cài đặt Microsoft SQL Server 2008 trở lên. Cấu hình phần cứng tối thiểu cho máy trạm chỉ cần RAM 2GB và vi xử lý 2 nhân.

2. Hệ thống giải quyết thế nào khi xảy ra xung đột cấp trùng giường giữa hai nhân viên (Concurrency)?

Hệ thống sử dụng các Transaction ở mức cô lập cao (ISOLATION LEVEL) trên SQL Server. Khi một nhân viên nhấn xác nhận xếp giường, bản ghi giường tương ứng sẽ được kiểm tra và khóa ngay lập tức. Nếu nhân viên thứ hai cùng thao tác trên giường đó, Stored Procedure sẽ chủ động báo lỗi và Rollback giao dịch, ngăn chặn hoàn toàn lỗi cấp trùng.

3. Khả năng tích hợp của hệ thống với phần mềm HIS tổng thể của bệnh viện ra sao?

Hệ thống được thiết kế theo dạng module chuyên biệt hóa. Cơ sở dữ liệu sử dụng các trường khóa liên kết chuẩn (MABN, MAKHOA, MAPHONG). Hệ thống hoàn toàn có thể kết nối với CSDL trung tâm (như Oracle hoặc SQL Server) thông qua ADO.NET hoặc xây dựng các RESTful API trung gian để đồng bộ hai chiều.

4. Quy trình sao lưu và phục hồi dữ liệu hệ thống được khuyến nghị như thế nào?

Cần thiết lập tác vụ tự động (SQL Server Agent Job) để thực hiện Full Backup định kỳ hàng ngày vào khung giờ thấp điểm (0h00) và Transaction Log Backup mỗi 1–2 giờ/lần. Dữ liệu sao lưu cần được lưu trữ đồng thời trên máy chủ phụ và thiết bị lưu trữ mạng (NAS).

5. Lợi ích kinh tế và thời gian hoàn vốn đầu tư (ROI) ước tính?

Nhờ cắt giảm 86.6% thời gian xử lý hồ sơ hành chính, loại bỏ sai sót chi phí giường bệnh và tối ưu hóa 15% hiệu suất khai thác buồng phòng, cơ sở y tế có thể tối ưu hóa đáng kể chi phí nhân sự vận hành và thu hồi vốn đầu tư phần mềm chỉ trong vòng 6–9 tháng sau khi triển khai chính thức.


Kết luận

Đề tài "Xây dựng hệ thống quản lý giường bệnh cho bệnh nhân nội trú" đã giải quyết thành công một bài toán nghiệp vụ cấp thiết trong công tác chuyển đổi số tại các bệnh viện quy mô lớn. Bằng việc kết hợp hài hòa giữa cơ sở lý thuyết phân tích thiết kế hệ thống thông tin (DFD, E/R) và các công nghệ phát triển ứng dụng đã được khẳng định (.NET Framework, C#, Microsoft SQL Server), đồ án đã tạo ra một sản phẩm phần mềm có tính ứng dụng thực tiễn cao, giao diện trực quan và khả năng vận hành ổn định.

Kết quả nghiên cứu và triển khai không chỉ khẳng định năng lực ứng dụng công nghệ thông tin vào quản trị y tế mà còn tạo tiền đề vững chắc cho việc nâng cấp, mở rộng hệ sinh thái phần mềm bệnh viện hướng tới tiêu chuẩn "Bệnh viện thông minh" trong kỷ nguyên số.