MyHospital
Kế toán viện phí kiểm tra file XML BHYT trên máy tính trước khi gửi lên Cổng giám định
Tính năng phần mềm

Công Cụ Kiểm Tra File XML BHYT Trước Khi Gửi Cổng

7/9/2026

Một kế toán viện phí ở bệnh viện tuyến huyện kể lại buổi chiều cuối kỳ quen thuộc: bấm gửi file XML lên Cổng tiếp nhận dữ liệu, chờ vài phút, rồi nhận về thông báo từ chối cả gói vì một trường dữ liệu ở dòng thứ ba bị sai kiểu giá trị. Toàn bộ 400 lượt khám trong file phải đợi sửa lại dòng đó, kết xuất lại, ký số lại rồi gửi lại từ đầu. Vấn đề không phải ở tốc độ đường truyền, mà ở việc lỗi chỉ lộ ra sau khi file đã rời khỏi cơ sở. Bài viết này trình bày cách xây dựng công cụ kiểm tra file XML BHYT chạy ngay trên HIS trước khi gửi Cổng, gồm bốn lớp kiểm tra cụ thể và bảng lỗi hay gặp nhất khi rà soát thủ công.

Kế toán viện phí kiểm tra file XML BHYT trên máy tính trước khi gửi lên Cổng giám định Rà soát file XML ngay trên HIS trước khi đóng gói gửi Cổng giám định, thay vì chờ thông báo từ chối

Vì sao "gửi trước, sửa sau" luôn tốn thời gian hơn kiểm tra trước

Cổng tiếp nhận dữ liệu giám định BHYT chỉ có một cách trả lời: nhận toàn bộ file hoặc từ chối toàn bộ file khi cấu trúc sai, còn khi cấu trúc đúng nhưng dữ liệu sai thì trả về danh sách từng lượt khám bị loại. Cả hai tình huống đều xảy ra sau khi file đã được kết xuất, ký số và gửi đi - nghĩa là kế toán phát hiện lỗi ở bước cuối cùng của quy trình, đúng lúc ít thời gian sửa nhất.

Hệ quả không dừng ở việc mất thời gian kết xuất lại. File đã ký số mà sửa tay lại nội dung sẽ làm hỏng chữ ký, vì chữ ký số tính trên toàn bộ nội dung file - chỉ cần đổi một ký tự là phải ký lại từ đầu. Nếu lỗi phát sinh từ dữ liệu gốc trên HIS (ví dụ một mã dịch vụ kỹ thuật chưa gắn giá, một trường ngày tháng nhập sai định dạng), sửa trực tiếp trên file XML còn tạo ra chênh lệch giữa dữ liệu trong HIS và hồ sơ đã gửi - khoản chênh này chính là thứ bị treo lại ở vòng hậu kiểm vài tháng sau.

Kiểm tra trước khi gửi đảo ngược trình tự đó: chạy đúng bộ ràng buộc mà Cổng sẽ áp dụng, nhưng chạy ngay trên dữ liệu gốc, trước khi đóng gói file. Sai ở đâu, sửa ở đúng màn hình nghiệp vụ đó trên HIS, rồi mới kết xuất và ký số lần cuối.

Bốn lớp kiểm tra bắt buộc trước khi đóng gói file

Đủ bộ file theo cấu trúc hiện hành

Gói hồ sơ khám chữa bệnh gửi Cổng theo chuẩn hiện hành (Quyết định 130/QĐ-BYT, được sửa đổi bởi Quyết định 4750/QĐ-BYT, Quyết định 3176/QĐ-BYT và mới nhất là Quyết định 1931/QĐ-BYT áp dụng từ 01/7/2026) gồm bảng check-in XML0 và 14 file đánh số: XML1 đến XML11, cùng XML13, XML14, XML15. Riêng XML12 - giám định y khoa - không nằm trong gói hồ sơ khám chữa bệnh thông thường gửi Cổng.

Lớp kiểm tra đầu tiên đơn giản nhưng hay bị bỏ qua: thiếu một file trong bộ, hoặc thừa một file không thuộc lượt khám đó, đều khiến toàn bộ gói bị chặn ngay ở khâu kiểm tra cấu trúc.

Trường bắt buộc trong từng bảng không được bỏ trống hoặc sai kiểu

XML1 (chỉ tiêu tổng hợp khám chữa bệnh), XML2 (chi tiết thuốc), XML3 (chi tiết dịch vụ kỹ thuật và vật tư y tế), XML4 (chi tiết cận lâm sàng) và XML5 (diễn biến lâm sàng) là năm bảng phát sinh dữ liệu nhiều nhất mỗi kỳ, cũng là nơi tập trung phần lớn lỗi trường bắt buộc. Từ Quyết định 1931/QĐ-BYT áp dụng từ 01/7/2026, trường MUC_HUONG mở rộng lên 04 ký tự và có thêm mã hoá SO_DANG_KY cho thuốc hiếm - cơ sở nào chưa cập nhật HIS theo độ dài trường mới sẽ bị chặn ngay ở lớp kiểm tra này dù trước đó vẫn gửi trơn tru.

Đối chiếu mã tra cứu với danh mục dùng chung

Mã dịch vụ kỹ thuật, mã thuốc, mã bệnh phải tồn tại trong danh mục dùng chung mà Cổng đang áp dụng tại thời điểm gửi. Đây là lớp kiểm tra dễ bị đánh giá thấp nhất vì file vẫn đúng cấu trúc, các trường vẫn đủ giá trị - chỉ có giá trị đó không khớp danh mục hiện hành. Tình huống hay gặp là danh mục kỹ thuật vừa đổi mã nhưng phần mềm chưa cập nhật, khiến mã cũ vẫn được chỉ định và xuất ra file dù đã hết hiệu lực.

Nhân viên kế toán viện phí đối chiếu mã dịch vụ kỹ thuật với danh mục dùng chung trước khi xuất file XML Đối chiếu mã dịch vụ kỹ thuật, mã thuốc với danh mục dùng chung là lớp kiểm tra dễ bị bỏ sót nhất

Chữ ký số hợp lệ trong thẻ CHUKYDONVI

Lớp kiểm tra cuối cùng, cũng là lớp bắt buộc theo quy định hiện hành chứ không còn ở diện khuyến khích. Chữ ký nằm trong thẻ CHUKYDONVI, dùng giải thuật SHA256, và chứng thư số phải được đăng ký trước trên Cổng giám định. Theo khoản 9 Điều 69 Nghị định 188/2025/NĐ-CP, cơ sở khám chữa bệnh phải triển khai xác thực dữ liệu điện tử chậm nhất từ 01/01/2026, và từ mốc đó quỹ bảo hiểm y tế chỉ thanh toán đối với dữ liệu đã được xác thực điện tử. Thông tư 12/2026/TT-BTC nhắc lại yêu cầu này ở phía hồ sơ đề nghị thanh toán. Cách cấu hình chi tiết từng bước nằm ngoài phạm vi bài này, có thể tham khảo tại bài ký số file XML BHYT.

Nhân viên bệnh viện cắm thiết bị chữ ký số vào máy tính trước khi ký số file XML BHYT Chứng thư số phải được đăng ký trước trên Cổng giám định thì bộ kiểm tra mới xác nhận chữ ký hợp lệ

Bảng lỗi hay gặp khi kiểm tra file XML BHYT tại chỗ

Loại lỗiBiểu hiện khi kiểm traNơi cần sửa
Thiếu file trong bộ 14 fileBộ hồ sơ báo thiếu bảng số thứ tự XMLMàn hình kết xuất hồ sơ giám định trên HIS
Trường bắt buộc để trốngDòng dữ liệu có ô trống ở trường không được phép rỗngMàn hình nhập liệu nghiệp vụ tương ứng (chỉ định, kê đơn, thu ngân)
Sai độ dài hoặc kiểu giá trị trườngTrường MUC_HUONG, mã bệnh, ngày tháng không đúng định dạng chuẩnDanh mục dùng chung hoặc cấu hình trường trên HIS
Mã tra cứu không tồn tại trong danh mụcMã dịch vụ kỹ thuật hoặc mã thuốc không khớp danh mục hiện hànhBảng danh mục kỹ thuật, danh mục thuốc trên HIS
MA_LK không khớp giữa các bảngBảng chi tiết (XML2, XML3, XML4) có MA_LK nhưng bảng tổng hợp XML1 thiếu bản ghi tương ứngRà lại bản ghi XML1 của cùng lượt khám
Chữ ký số không hợp lệThẻ CHUKYDONVI trống hoặc chứng thư số chưa đăng ký trên CổngCấu hình ký số trên HIS và tài khoản trên Cổng giám định

Quy trình ba bước chạy công cụ kiểm tra file XML BHYT trước khi gửi

  1. Kết xuất bộ file XML từ HIS như bình thường, nhưng chưa gửi ngay - đưa qua bộ kiểm tra nội bộ chạy lần lượt bốn lớp trên.
  2. Với những dòng bị bộ kiểm tra đánh dấu, quay lại đúng màn hình nghiệp vụ đã sinh ra dữ liệu đó (tiếp đón, chỉ định, kê đơn hay thu ngân) để sửa tại gốc, không sửa trực tiếp trên file XML.
  3. Kết xuất lại, ký số lần cuối và gửi khi bộ kiểm tra không còn dòng nào bị đánh dấu.

Sai lầm thường gặp: Một số cơ sở chạy kiểm tra nhưng chỉ dừng ở việc xem file có mở được hay không, tức mới kiểm tra cấu trúc XML thuần túy chứ chưa đối chiếu dữ liệu với danh mục dùng chung. File dạng này vẫn "hợp lệ về hình thức" nhưng vẫn bị Cổng loại từng lượt khám khi đối chiếu chéo.

Kiểm tra thủ công và kiểm tra tích hợp trên phần mềm khác nhau ở đâu

Tiêu chíKiểm tra thủ công (mở file, dò bằng mắt)Kiểm tra tích hợp trên HIS
Thời điểm phát hiện lỗiSau khi kết xuất, trước khi gửi (nếu có kiểm tra) hoặc sau khi Cổng trả vềNgay khi lưu bản ghi ở khâu chỉ định, kê đơn, thu ngân
Đối chiếu danh mục dùng chungPhải tải và so sánh thủ công, dễ dùng bản danh mục cũTự động đối chiếu với danh mục đang cấu hình trên hệ thống
Kiểm tra MA_LK xuyên bảngKhó thực hiện bằng mắt trên file có hàng trăm dòngĐối chiếu tự động giữa bảng tổng hợp và bảng chi tiết
Rủi ro tái diễn kỳ sauCao, vì lỗi gốc trong quy trình nhập liệu chưa được chặnThấp hơn, vì ràng buộc đặt ngay tại điểm nhập liệu
Bộ kiểm tra dữ liệu chạy ngay lúc lưu bản ghi là yếu tố then chốt quyết định file XML có bị Cổng từ chối hay không. Phân hệ tài chính - BHYT của MyHospital đặt các ràng buộc về trường bắt buộc, đối chiếu danh mục dùng chung và kiểm tra MA_LK ngay tại khâu tiếp đón, chỉ định, kê đơn và thu ngân viện phí, kèm màn hình kết xuất hồ sơ giám định tự rà trước khi ký số và gửi Cổng.

Kế toán viện phí bấm gửi file XML BHYT lên Cổng giám định sau khi hoàn tất kiểm tra Chỉ gửi khi bộ kiểm tra không còn dòng dữ liệu nào bị đánh dấu lỗi

Kế toán viện phí vẫn là người quyết định cuối cùng trước khi bấm gửi

Bộ kiểm tra tự động rút ngắn thời gian rà soát, nhưng không thay thế được vai trò của người đọc thông báo lỗi và quyết định sửa ở đâu. Một dòng bị đánh dấu "mã dịch vụ kỹ thuật không khớp danh mục" có thể vì mã đó thật sự sai, hoặc vì danh mục dùng chung trên hệ thống chưa được cập nhật theo văn bản mới nhất - hai nguyên nhân này đòi hỏi hai hướng xử lý khác nhau, và chỉ người nắm nghiệp vụ mới phân biệt được.

Với các cơ sở đang gửi dữ liệu thủ công qua nhiều bước rời rạc - kết xuất từ một phần mềm, đối chiếu danh mục ở một file Excel khác, ký số bằng công cụ riêng - việc gộp bốn lớp kiểm tra vào một quy trình liên tục trên phần mềm quản lý bệnh viện giúp thời gian từ lúc kết thúc khám chữa bệnh đến lúc gửi hồ sơ hợp lệ lên Cổng giám định BHYT rút ngắn đáng kể, thay vì lặp lại chu trình gửi - bị từ chối - sửa - gửi lại mỗi kỳ quyết toán. Nếu cơ sở đã từng gặp thông báo lỗi khó hiểu từ Cổng sau khi gửi, bảng tra theo từng bảng dữ liệu trong bài lỗi XML giám định BHYT là nơi tra cứu nhanh hơn việc dò lại toàn bộ file; còn bức tranh tổng thể về nghiệp vụ viện phí - BHYT nằm ở cẩm nang quản lý viện phí và giám định BHYT.

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

Kiểm tra file XML BHYT trước khi gửi khác gì so với để Cổng tự kiểm tra?
Cổng tiếp nhận dữ liệu chỉ trả kết quả sau khi file đã rời khỏi cơ sở, nghĩa là lỗi được phát hiện muộn nhất có thể và phải sửa - kết xuất lại - ký số lại toàn bộ. Kiểm tra trước khi gửi là chạy cùng bộ ràng buộc đó ngay trên HIS, tại thời điểm chưa đóng gói file, để kế toán sửa dữ liệu gốc trong vài phút thay vì chờ Cổng phản hồi rồi lần ngược lại từng bản ghi.
Bốn lớp kiểm tra tính hợp lệ file XML BHYT gồm những gì?
Gồm kiểm tra đủ bộ 14 file theo cấu trúc hiện hành (XML1 đến XML11, XML13 đến XML15), kiểm tra các trường bắt buộc trong từng bảng không bị bỏ trống hoặc sai kiểu dữ liệu, đối chiếu mã tra cứu (mã dịch vụ kỹ thuật, mã thuốc, mã liên kết MA_LK) với danh mục dùng chung, và kiểm tra chữ ký số trong thẻ CHUKYDONVI đã được ký hợp lệ bằng giải thuật SHA256 trước khi đóng gói gửi đi.
Không ký số file XML BHYT thì có bị từ chối thanh toán không?
Có. Theo khoản 9 Điều 69 Nghị định 188/2025/NĐ-CP, cơ sở khám chữa bệnh phải triển khai xác thực dữ liệu điện tử chậm nhất từ 01/01/2026, và từ mốc đó quỹ bảo hiểm y tế chỉ thanh toán đối với dữ liệu đã được xác thực điện tử. Thông tư 12/2026/TT-BTC cũng yêu cầu hồ sơ đề nghị thanh toán phải được ký số và xác thực, nên thiếu chữ ký hợp lệ là bị chặn ngay từ vòng kiểm tra đầu.
MA_LK dùng để làm gì trong việc kiểm tra file XML BHYT?
MA_LK là mã liên kết xuyên suốt các bảng dữ liệu trong cùng một lượt khám chữa bệnh. Một bộ kiểm tra đúng phải đối chiếu MA_LK giữa bảng tổng hợp XML1 và các bảng chi tiết như XML2, XML3, XML4 - nếu bản ghi XML1 bị thiếu hoặc bị loại mà các dòng chi tiết vẫn còn MA_LK tương ứng, cả lượt khám đó sẽ bị Cổng từ chối dù dữ liệu chi tiết không sai.
Cơ sở y tế nhỏ, gửi hồ sơ ít, có cần tool kiểm tra file XML BHYT tự động không?
Cần, vì rủi ro không tỷ lệ thuận với số lượng hồ sơ. Một phòng khám gửi vài chục lượt khám mỗi kỳ vẫn có thể bị chặn toàn bộ file chỉ vì một trường sai kiểu dữ liệu ở dòng đầu tiên, trong khi thời gian dò lỗi thủ công trên một file ít dòng vẫn tốn tương đương với cơ sở lớn. Bộ kiểm tra tự động không phụ thuộc quy mô, mà phụ thuộc việc dữ liệu có được đối chiếu trước khi xuất file hay không.
Thời hạn gửi dữ liệu lên Cổng giám định là bao lâu sau khi kết thúc khám chữa bệnh?
Theo Thông tư 48/2017/TT-BYT, Điều 6 yêu cầu gửi dữ liệu ngay sau khi kết thúc lần khám hoặc đợt điều trị, Điều 7 quy định trong 07 ngày làm việc kể từ khi kết thúc khám chữa bệnh phải kiểm tra, hiệu chỉnh, xác thực và gửi dữ liệu đề nghị thanh toán. Không có mốc 24 giờ hay 5 ngày làm việc như một số tài liệu lưu hành nội bộ vẫn ghi.