Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "BHYT" các nội dung bạn quan tâm.

Chương 2. Danh mục và mã hóa dữ liệu XML

XML

Sau Chương 1, chúng ta đã biết một bộ dữ liệu khám chữa bệnh BHYT được tổ chức thành những bảng XML nào, từng trường dữ liệu mang ý nghĩa gì và các bảng liên kết với nhau ra sao.

Nhưng biết XML có trường nào mới chỉ là bước đầu.

Một phần rất lớn của dữ liệu XML không phải văn bản tự do mà là mã:

  • mã bệnh;
  • mã dịch vụ kỹ thuật;
  • mã thuốc;
  • mã vật tư y tế;
  • mã khoa;
  • mã loại hình khám chữa bệnh;
  • mã cơ sở KBCB;
  • mã đối tượng;
  • mã nhóm chi phí;
  • mã đường dùng;
  • mã phương pháp thanh toán;
  • mã kết quả điều trị;
  • mã phác đồ;
  • cùng nhiều danh mục chuyên ngành khác.

Và với dữ liệu mã hóa, câu hỏi không chỉ là:

“Giá trị này có đúng định dạng hay không?”

mà phải là:

“Mã này thuộc danh mục nào, danh mục đó có hiệu lực tại thời điểm phát sinh dữ liệu hay không, được phép sử dụng trong trường XML này hay không và có phù hợp với hồ sơ chuyên môn, danh mục của cơ sở KBCB cũng như điều kiện thanh toán hay không?”

Đó là nội dung của Chương 2 – Danh mục và mã hóa dữ liệu XML.


1. Một mã đúng cú pháp vẫn có thể là một mã sai

Giả sử hệ thống nhận được:

MA_KHOA = K01

Về mặt kỹ thuật, đây có thể là một chuỗi hoàn toàn hợp lệ.

Nhưng để xác định dữ liệu đúng, còn phải trả lời:

  1. K01 có tồn tại trong danh mục mã khoa áp dụng không?
  2. Mã đó có hiệu lực vào ngày người bệnh được điều trị không?
  3. Cơ sở KBCB này có khoa tương ứng không?
  4. Dịch vụ, thuốc hoặc giường đang báo cáo có thực sự phát sinh tại khoa đó không?
  5. HIS đang dùng mã nội bộ hay mã chuẩn cần gửi BHXH?
  6. Có xảy ra thay đổi danh mục giữa hai thời kỳ hay không?

Tương tự, một mã ICD có thể tồn tại nhưng vẫn được sử dụng sai nếu:

  • không đúng phiên bản danh mục;
  • không phù hợp trường cần ghi;
  • dùng chẩn đoán nghi ngờ ở nơi chỉ chấp nhận chẩn đoán đã xác định;
  • hoặc quan hệ giữa mã bệnh và dịch vụ được báo cáo không hợp lý.

Vì vậy:

Valid code ≠ valid claim.

Một mã chỉ thực sự có ý nghĩa khi được đặt vào đúng danh mục, đúng phiên bản, đúng trường, đúng thời điểm và đúng ngữ cảnh nghiệp vụ.


2. “Danh mục” không phải một bảng tra cứu bất biến

Trong thực tế triển khai HIS và dữ liệu BHYT, một lỗi phổ biến là coi danh mục như một file Excel được nhập một lần rồi sử dụng mãi mãi.

Cách hiểu này không phù hợp với hệ thống chuẩn dữ liệu thay đổi theo thời gian.

Một danh mục có thể:

  • bổ sung mã mới;
  • bỏ mã cũ;
  • đổi tên hoặc diễn giải;
  • thay đổi độ dài mã;
  • thay đổi phạm vi sử dụng;
  • thay thế hoàn toàn danh mục trước;
  • có giai đoạn chuyển tiếp;
  • hoặc chỉ có hiệu lực từ một thời điểm nhất định.

Ví dụ rõ ràng là Quyết định 1804/QĐ-BYT ngày 19/6/2026 ban hành Danh mục mã loại hình KCB và Danh mục mã khoa mới để phục vụ mã hóa dữ liệu điện tử chi phí KCB BHYT. Quyết định có hiệu lực từ ngày ký, yêu cầu các đơn vị thực hiện chậm nhất từ ngày 01/8/2026 và bãi bỏ các phụ lục danh mục cũ tương ứng kể từ ngày 01/8/2026.

Do đó, câu hỏi đúng không phải:

“Mã này có trong danh mục hiện nay không?”

mà là:

“Mã này có hợp lệ theo danh mục có hiệu lực tại thời điểm phát sinh nghiệp vụ hay không?”

Đây là nguyên tắc nền tảng của toàn bộ Loạt 2.


3. Ba lớp phải phân biệt: mã nội bộ, mã chuẩn và mã thanh toán

Trong bệnh viện có thể đồng thời tồn tại ba lớp mã.

Mã nội bộ

Do HIS, LIS, RIS, PACS, phần mềm dược hoặc bệnh viện tự quản lý.

Ví dụ một xét nghiệm có thể mang mã nội bộ:

XN_HH_001

Mã này rất hữu ích trong vận hành nhưng không nhất thiết là mã phải gửi trong XML.

Mã chuẩn/danh mục dùng chung

Là mã được quy định hoặc công bố để trao đổi dữ liệu giữa các hệ thống.

HIS phải có cơ chế ánh xạ:

mã nội bộ → mã chuẩn áp dụng.

Mã hoặc thông tin phục vụ thanh toán

Một dịch vụ có mã hợp lệ chưa có nghĩa mọi trường hợp thực hiện dịch vụ đó đều được Quỹ BHYT thanh toán.

Còn phải xét:

  • phạm vi hưởng;
  • giá;
  • tỷ lệ thanh toán;
  • điều kiện chuyên môn;
  • điều kiện về cơ sở, khoa, người thực hiện;
  • cấu phần đã nằm trong giá dịch vụ hay chưa;
  • các quy định thanh toán đặc thù.

Vì vậy:

Danh mục mã hóa và điều kiện thanh toán là hai lớp khác nhau.

Dr5-XML không nên biến việc “tìm thấy mã trong danh mục” thành kết luận “được thanh toán”.


4. Căn cứ của Chương 2

Loạt bài này sẽ lấy Điều 7, Điều 8 và Phụ lục II Thông tư 12/2026/TT-BTC làm một trong các nền tảng để đọc mối quan hệ giữa dữ liệu điện tử, danh mục và hồ sơ phục vụ giám định, thanh toán.

Song song với đó là chuỗi văn bản của Bộ Y tế về Bộ mã danh mục dùng chung và các danh mục chuyên biệt.

Riêng hai nhóm cần chú ý trong giai đoạn 2026 là:

Loại hình KCB và mã khoa: Quyết định 1804/QĐ-BYT ban hành hai phụ lục riêng và xác định đây là tài liệu chuyên môn kỹ thuật phục vụ mã hóa thông tin, làm dữ liệu đầu vào cho việc trích chuyển chi phí KCB BHYT.

Mã bệnh: cần cập nhật theo Thông tư 06/2026/TT-BYT và tài liệu hướng dẫn liên quan tại Quyết định 1849/QĐ-BYT. Trong bảng chuẩn dữ liệu tổng hợp của dự án, các trường như MA_BENH_CHINH, MA_BENH_KT, CHAN_DOAN_RV đã được chú thích để lưu ý việc cập nhật này.

Đối với những chú thích tổng hợp về văn bản ban hành sau QĐ3176, khi xây rule chính thức vẫn phải đối chiếu văn bản nguồn trước khi coi đó là căn cứ pháp lý cứng.


5. Những câu hỏi Chương 2 sẽ giải quyết

Mỗi nhóm danh mục sẽ được đọc theo cùng một phương pháp.

Câu hỏiÝ nghĩa
Mã nằm ở field nào?Xác định nơi xuất hiện trong XML
Mã thuộc danh mục nào?Xác định nguồn chuẩn
Ai ban hành/quản lý?Xác định thẩm quyền
Có hiệu lực từ khi nào?Versioning
Mã có bị thay thế/bãi bỏ không?Quản lý lịch sử
HIS dùng mã gì?Xác định mã nguồn
XML phải gửi mã gì?Mapping
Phải khớp với dữ liệu nào?Cross-validation
Mã hợp lệ có đồng nghĩa được thanh toán?Không; phải xét điều kiện thanh toán
Sai mã xử lý ở đâu?Sửa tại nguồn, không vá XML

Từ đó, mỗi bài sẽ không chỉ đưa ra “danh sách mã”, mà phải trả lời được cách sử dụng mã trong hồ sơ thực tế.


6. Từ mã đơn lẻ đến hệ thống quan hệ mã

Một hồ sơ không thể kiểm tra bằng membership đơn giản:

MA_DICH_VU ∈ danh_muc_dich_vu

Mà phải kiểm tra các quan hệ như:

mã bệnh ↔ dịch vụ

dịch vụ ↔ khoa

dịch vụ ↔ người hành nghề

dịch vụ ↔ máy

dịch vụ ↔ vật tư

thuốc ↔ đường dùng

thuốc ↔ số đăng ký ↔ thông tin thầu

loại KCB ↔ phạm vi bảng XML phải gửi

mã khoa ↔ giường ↔ dịch vụ

mã cơ sở ↔ nơi đi ↔ nơi đến

Ví dụ, XML2 và XML3 hiện sử dụng MA_KHOA, và bảng tổng hợp đã ghi nhận việc cập nhật trường này theo Quyết định 1804/QĐ-BYT.

Một mã khoa có thể tồn tại trong danh mục nhưng vẫn không phù hợp nếu dịch vụ báo cáo tại khoa đó không tương thích với cấu hình chuyên môn của cơ sở.

Do đó Loạt 2 sẽ chuyển từ:

“Tra mã có tồn tại không?”

sang:

“Mã có tồn tại, có hiệu lực và có đúng quan hệ nghiệp vụ hay không?”


7. Cách Dr5-XML nên quản lý danh mục

Về kiến trúc, không nên viết hàng trăm rule Python chứa trực tiếp từng mã.

Danh mục có thể thay đổi thường xuyên hơn engine.

Do đó Dr5-XML tiếp tục sử dụng sáu danh mục chuẩn đã thống nhất.

dr5_xml_field cho biết field nào sử dụng loại mã nào.

dr5_xml_required xác định khi nào field mã đó phải xuất hiện.

dr5_xml_relation quản lý các quan hệ giữa các mã.

dr5_catalog_binding là thành phần trung tâm của Loạt 2, dùng để ánh xạ field XML với danh mục bên ngoài, mã chuẩn, phiên bản và khoảng hiệu lực.

dr5_payment_condition chỉ chứa những điều kiện ảnh hưởng thực sự đến thanh toán.

dr5_legal_basis xác định nguồn pháp lý, văn bản sửa đổi và hiệu lực.

Mục tiêu kiến trúc là:

Khi Bộ Y tế thay đổi danh mục, ưu tiên cập nhật dữ liệu danh mục và khoảng hiệu lực thay vì sửa code của engine.


8. Mục tiêu cuối cùng của Chương 2

Sau khi hoàn thành Loạt 2, người đọc phải có khả năng nhìn một field như:

MA_BENH_CHINH
MA_DICH_VU
MA_THUOC
MA_VAT_TU
MA_KHOA
MA_LOAI_KCB

và không chỉ hỏi:

“Mã này là gì?”

mà phải tiếp tục hỏi:

Mã thuộc bộ danh mục nào?
Phiên bản nào đang áp dụng?
Ngày KCB này dùng phiên bản nào?
Mã có còn hiệu lực không?
Mã nội bộ đã ánh xạ đúng chưa?
Các field liên quan có nhất quán không?
Danh mục chỉ chứng minh mã hợp lệ hay còn có điều kiện thanh toán khác?

Đây chính là bước chuyển từ kiểm tra XML ở cấp cú pháp sang kiểm soát dữ liệu chuẩn hóa ở cấp nghiệp vụ.

Và đối với tiền giám định, nguyên tắc xuyên suốt của Loạt 2 sẽ là:

Đúng mã chưa đủ; phải đúng danh mục, đúng phiên bản, đúng thời điểm, đúng ngữ cảnh và đúng quan hệ với hồ sơ nguồn.

Khi năm điều kiện này được kiểm soát ngay tại HIS, EMR, LIS, RIS/PACS, dược và các danh mục dùng chung của bệnh viện, rất nhiều sai lệch XML có thể được ngăn chặn trước khi hồ sơ được tạo và gửi sang cơ quan BHXH.