Cấu trúc một dòng thuốc và chỉ mục đầy đủ các trường dữ liệu
XML2 là Bảng 2 – Chỉ tiêu chi tiết thuốc. Nếu XML1 cho biết tổng chi phí thuốc của cả đợt KCB qua trường T_THUOC, thì XML2 cho biết những dòng chi phí nào tạo nên tổng đó.
Quyết định 130/QĐ-BYT xác định Bảng 1 đến Bảng 5 là nhóm dữ liệu điện tử chi tiết được cơ sở KBCB cung cấp phục vụ quản lý, giám định, thanh toán và quyết toán chi phí KCB BHYT.
Bảng XML2 hiện có 39 chỉ tiêu. Nội dung của các trường đã được sửa đổi, bổ sung qua Quyết định 4750/QĐ-BYT, Quyết định 3176/QĐ-BYT và một số cập nhật sau đó. Vì vậy, giống XML1, khi kiểm tra XML2 phải luôn gắn field với phiên bản và thời điểm hiệu lực.
1. Một dòng XML2 đại diện cho điều gì?
Về nguyên tắc, mỗi record XML2 mô tả một dòng thuốc hoặc khoản chi thuộc phạm vi Bảng 2 được sử dụng cho người bệnh trong một đợt KCB.
Một đợt KCB có thể có rất nhiều dòng XML2:
MA_LK = LK001
│
├── STT 1 → Thuốc A
├── STT 2 → Thuốc B
├── STT 3 → Dịch truyền C
├── STT 4 → Thuốc D
└── ...Tất cả các dòng trên cùng liên kết về XML1 bằng MA_LK.
Điểm cần lưu ý là Bảng 2 không chỉ xử lý “viên thuốc” theo nghĩa thông thường. Phần hướng dẫn MA_THUOC còn bao gồm các tình huống đặc biệt như khí y tế, máu và chế phẩm máu, một số chi phí liên quan đến máu, thuốc tự bào chế, thuốc thang...
Do đó:
Một dòng XML2 nên được hiểu là một record chi tiết thuộc Bảng thuốc, không nên giản lược thành “một viên thuốc”.
2. Cấu trúc logic của một dòng thuốc
Một record XML2 có thể được hình dung qua sáu lớp thông tin:
DÒNG XML2
│
├── Định danh
│ MA_LK, STT
│
├── Nhận diện thuốc
│ MA_THUOC, TEN_THUOC, HAM_LUONG,
│ DUONG_DUNG, DANG_BAO_CHE...
│
├── Pháp lý - cung ứng
│ SO_DANG_KY, TT_THAU,
│ MA_CSKCB_THUOC...
│
├── Sử dụng thuốc
│ LIEU_DUNG, CACH_DUNG,
│ MA_KHOA, MA_BAC_SI,
│ NGAY_YL, NGAY_TH_YL...
│
├── Giá và thanh toán
│ SO_LUONG, DON_GIA,
│ THANH_TIEN_BV, THANH_TIEN_BH,
│ T_BNTT, T_BNCCT, T_BHTT...
│
└── Phương thức/nguồn chi trả
MA_PTTT, NGUON_CTRA...Chính vì một record chứa đồng thời dữ liệu dược, chuyên môn, đấu thầu và tài chính, XML2 là một trong những bảng có nhiều khả năng kiểm tra chéo nhất.
3. Ví dụ cấu trúc một record XML2
Ví dụ minh họa, không phải dữ liệu người bệnh thật:
<CHI_TIET_THUOC>
<MA_LK>LK000001</MA_LK>
<STT>1</STT>
<MA_THUOC>...</MA_THUOC>
<TEN_THUOC>Thuốc A</TEN_THUOC>
<DON_VI_TINH>Viên</DON_VI_TINH>
<HAM_LUONG>500mg</HAM_LUONG>
<DUONG_DUNG>...</DUONG_DUNG>
<DANG_BAO_CHE>Viên nén</DANG_BAO_CHE>
<LIEU_DUNG>...</LIEU_DUNG>
<CACH_DUNG>...</CACH_DUNG>
<SO_DANG_KY>...</SO_DANG_KY>
<TT_THAU>...</TT_THAU>
<PHAM_VI>1</PHAM_VI>
<TYLE_TT_BH>100</TYLE_TT_BH>
<SO_LUONG>10</SO_LUONG>
<DON_GIA>1000</DON_GIA>
<THANH_TIEN_BV>10000</THANH_TIEN_BV>
<THANH_TIEN_BH>10000</THANH_TIEN_BH>
<MA_KHOA>...</MA_KHOA>
<MA_BAC_SI>...</MA_BAC_SI>
<NGAY_YL>202610110800</NGAY_YL>
...
</CHI_TIET_THUOC>Trong thực tế, field nào phải có giá trị còn phụ thuộc vào loại thuốc và tình huống cụ thể.
4. Chỉ mục đầy đủ 39 trường của XML2
| STT | Trường | Kiểu / kích thước | Nội dung chính |
|---|---|---|---|
| 1 | MA_LK | Chuỗi / 100 | Mã liên kết đợt KCB |
| 2 | STT | Số / 10 | Số thứ tự dòng |
| 3 | MA_THUOC | Chuỗi / 255 | Mã thuốc/hoạt chất theo quy định |
| 4 | MA_PP_CHEBIEN | Chuỗi / 255 | Mã phương pháp chế biến vị thuốc cổ truyền |
| 5 | MA_CSKCB_THUOC | Chuỗi / 10 | Mã hóa cơ sở liên quan đến thuốc trong các tình huống đặc biệt |
| 6 | MA_NHOM | Số / 2 | Mã nhóm chi phí |
| 7 | TEN_THUOC | Chuỗi / 1024 | Tên thuốc |
| 8 | DON_VI_TINH | Chuỗi / 50 | Đơn vị tính thực tế |
| 9 | HAM_LUONG | Chuỗi / 1024 | Hàm lượng |
| 10 | DUONG_DUNG | Chuỗi / 4 | Mã đường dùng |
| 11 | DANG_BAO_CHE | Chuỗi / 1024 | Dạng bào chế/chế biến |
| 12 | LIEU_DUNG | Chuỗi / 1024 | Liều dùng |
| 13 | CACH_DUNG | Chuỗi / 1024 | Cách dùng/lời dặn |
| 14 | SO_DANG_KY | Chuỗi / 255 | Số đăng ký hoặc mã hóa tương ứng theo trường hợp |
| 15 | TT_THAU | Chuỗi / 50 | Thông tin thầu |
| 16 | PHAM_VI | Số / 1 | Phạm vi thanh toán của thuốc |
| 17 | TYLE_TT_BH | Số / 3 | Tỷ lệ thanh toán BHYT |
| 18 | SO_LUONG | Số / 10 | Số lượng thực tế sử dụng |
| 19 | DON_GIA | Số / 15 | Đơn giá thuốc |
| 20 | THANH_TIEN_BV | Số / 15 | Thành tiền theo giá bệnh viện |
| 21 | THANH_TIEN_BH | Số / 15 | Thành tiền trong phạm vi BHYT |
| 22 | T_NGUONKHAC_NSNN | Số / 15 | Nguồn hỗ trợ từ ngân sách nhà nước |
| 23 | T_NGUONKHAC_VTNN | Số / 15 | Nguồn hỗ trợ từ nước ngoài |
| 24 | T_NGUONKHAC_VTTN | Số / 15 | Nguồn hỗ trợ trong nước |
| 25 | T_NGUONKHAC_CL | Số / 15 | Nguồn khác còn lại |
| 26 | T_NGUONKHAC | Số / 15 | Tổng tiền từ nguồn khác |
| 27 | MUC_HUONG | Số / 3; cập nhật tối đa 4 | Mức hưởng BHYT của dòng chi phí |
| 28 | T_BNTT | Số / 15 | Người bệnh tự trả |
| 29 | T_BNCCT | Số / 15 | Người bệnh cùng chi trả |
| 30 | T_BHTT | Số / 15 | Số tiền đề nghị BHXH thanh toán |
| 31 | MA_KHOA | Chuỗi / 50 | Khoa chỉ định sử dụng thuốc |
| 32 | MA_BAC_SI | Chuỗi / 255 | Người hành nghề chỉ định thuốc |
| 33 | MA_DICH_VU | Chuỗi / 255 | DVKT liên quan đến thuốc khi thuộc trường hợp phải ghi |
| 34 | NGAY_YL | Chuỗi / 12 | Thời điểm ra y lệnh |
| 35 | NGAY_TH_YL | Chuỗi / 12 | Thời điểm thực hiện y lệnh |
| 36 | MA_PTTT | Số / 1 | Phương thức thanh toán |
| 37 | NGUON_CTRA | Số / 1 | Nguồn thuốc chi trả |
| 38 | VET_THUONG_TP | Số / 1 | Chỉ dấu vết thương/bệnh tật tái phát theo trường hợp |
| 39 | DU_PHONG | Chuỗi / n | Trường dự phòng |
Bảng 2 quy định các trường nhận diện thuốc, liều dùng và thông tin đăng ký/thầu ở phần đầu; nhiều trường có hướng dẫn riêng cho thuốc tự pha chế, YHCT, máu, khí y tế và các tình huống đặc biệt.
Nhóm từ PHAM_VI đến các trường phân bổ chi phí mô tả phạm vi, tỷ lệ thanh toán, số lượng, đơn giá, thành tiền và các bên chi trả.
Các trường cuối bảng xác định khoa, người chỉ định, DVKT liên quan, thời điểm y lệnh, phương thức và nguồn chi trả.
5. Nhóm nhận diện thuốc
Các field cốt lõi gồm:
MA_THUOC
TEN_THUOC
DON_VI_TINH
HAM_LUONG
DUONG_DUNG
DANG_BAO_CHEMột thuốc không nên được nhận diện chỉ bằng TEN_THUOC.
Ví dụ cùng một tên thương mại có thể khác:
- hàm lượng;
- dạng bào chế;
- đường dùng;
- đơn vị tính;
- số đăng ký;
- thông tin thầu.
Do đó về kiểm tra dữ liệu, cần xem tổ hợp thuộc tính chứ không chỉ một field.
Chi tiết nhóm này sẽ được phân tích ở Bài 1.15.
6. Nhóm pháp lý, đăng ký và thầu
Các field:
SO_DANG_KY
TT_THAU
MA_CSKCB_THUOC
MA_PP_CHEBIENchứa nhiều quy tắc đặc thù.
Ví dụ SO_DANG_KY có các cách mã hóa riêng cho thuốc chưa có giấy đăng ký lưu hành nhưng được phép nhập khẩu, thuốc tự pha chế, dược liệu và một số trường hợp thuốc hiếm. Bảng đối chiếu hiện còn ghi nhận cập nhật của Quyết định 1931/QĐ-BYT năm 2026 đối với trường hợp thuốc hiếm được UBND cấp tỉnh cấp phép đơn hàng nhập khẩu.
Vì vậy không nên xây rule:
SO_DANG_KY phải luôn có một cấu trúc duy nhấtmà phải xác định trước loại thuốc và trường hợp pháp lý.
Nội dung này sẽ được tách riêng ở Bài 1.16.
7. Nhóm liều dùng, sử dụng và y lệnh
Các field quan trọng gồm:
LIEU_DUNG
CACH_DUNG
SO_LUONG
MA_KHOA
MA_BAC_SI
NGAY_YL
NGAY_TH_YLLIEU_DUNG có cách ghi khác nhau giữa ngoại trú, nội trú, thuốc thang và một số thuốc dùng ngoài; NGAY_TH_YL theo diễn giải sửa đổi chỉ bắt buộc khi thuốc được sử dụng tại cơ sở KBCB.
Do đó, hệ thống cần phân biệt:
Thuốc kê cho người bệnh mang vềvới:
Thuốc thực tế được sử dụng tại bệnh việntrước khi kết luận thiếu NGAY_TH_YL.
Chi tiết sẽ được trình bày tại Bài 1.17.
8. Nhóm giá và thanh toán
Các field:
PHAM_VI
TYLE_TT_BH
SO_LUONG
DON_GIA
THANH_TIEN_BV
THANH_TIEN_BH
MUC_HUONG
T_BNTT
T_BNCCT
T_BHTT
T_NGUONKHACtạo thành chuỗi tính toán tài chính của một dòng thuốc.
Ví dụ hai công thức cơ bản của Bảng 2 là:
THANH_TIEN_BV
=
SO_LUONG × DON_GIAvà:
THANH_TIEN_BH
=
SO_LUONG × DON_GIA × TYLE_TT_BH / 100Sau đó MUC_HUONG, nguồn khác và các điều kiện tương ứng được sử dụng để xác định phần người bệnh tự trả, cùng chi trả và phần đề nghị BHXH thanh toán.
Đây sẽ là nội dung chính của Bài 1.18.
9. MA_DICH_VU: mối nối giữa thuốc và dịch vụ kỹ thuật
Một field đặc biệt đáng chú ý trong XML2 là:
MA_DICH_VUKhông phải mọi dòng thuốc đều phải có MA_DICH_VU.
Trường này được sử dụng trong các trường hợp thuốc có quan hệ trực tiếp với DVKT theo quy định, chẳng hạn thuốc được sử dụng để thực hiện DVKT và được thanh toán riêng, thuốc liên quan đến một số dịch vụ cận lâm sàng hoặc các tình huống kỹ thuật đặc thù.
Điều này cho phép thiết lập quan hệ:
XML2.MA_DICH_VU
↕
XML3.MA_DICH_VUvà là cơ sở rất hữu ích để kiểm tra:
- thuốc có thực sự liên quan đến dịch vụ;
- dịch vụ tương ứng có phát sinh;
- thời điểm thuốc và DVKT có hợp lý;
- thuốc có nằm trong giá DVKT hay được phép thanh toán riêng.
10. Quan hệ XML2 với XML1
XML2 không tồn tại độc lập.
Mỗi record phải liên kết với đợt KCB qua:
XML2.MA_LK
↕
XML1.MA_LKỞ chiều ngược lại, các dòng thuốc tạo nên nhiều giá trị tổng hợp của XML1:
Σ XML2.THANH_TIEN_BV
↓
tham gia tạo XML1.T_TONGCHI_BVvà:
Σ các khoản thuốc XML2.THANH_TIEN_BV
↓
XML1.T_THUOCcùng với việc tổng hợp THANH_TIEN_BH, T_BNTT, T_BNCCT, T_BHTT, T_NGUONKHAC lên XML1, như đã trình bày tại Bài 1.13.
11. MA_LK không phải khóa duy nhất của từng dòng XML2
Quy định gọi MA_LK là mã đợt điều trị duy nhất để liên kết các bảng.
Tuy nhiên, trong XML2:
MA_LK = LK001có thể xuất hiện ở hàng chục dòng thuốc khác nhau.
Vì vậy về xử lý dữ liệu, không nên dùng MA_LK một mình để xác định duy nhất một record thuốc.
Một locator thực tế thường phải xét ít nhất:
MA_LK + STTtrong đúng bối cảnh file/lần gửi.
Đây là khác biệt giữa:
mã liên kết đợt KCB
và:
khóa xác định một dòng chi tiết trong hệ thống xử lý dữ liệu.
12. Không phải 39 field đều bắt buộc cho mọi dòng thuốc
Một số ví dụ rõ ràng:
MA_PP_CHEBIEN chủ yếu liên quan vị thuốc cổ truyền.
MA_CSKCB_THUOC chỉ phát sinh trong các tình huống đặc biệt được quy định.
MA_DICH_VU là bắt buộc có điều kiện.
NGAY_TH_YL chỉ bắt buộc khi thuốc được sử dụng tại cơ sở KBCB theo diễn giải sửa đổi.
VET_THUONG_TP chỉ ghi trong trường hợp đặc thù đối với thuốc có tỷ lệ thanh toán dùng điều trị vết thương/bệnh tật tái phát ở nhóm đối tượng được quy định.
Vì vậy:
39 trường trong cấu trúc XML2 ≠ 39 giá trị bắt buộc trên mọi dòng thuốc.
13. Các lớp kiểm tra một dòng XML2
Một dòng thuốc có thể được kiểm tra theo chuỗi:
Đúng cấu trúc XML?
↓
Đúng định danh thuốc?
↓
Đúng số đăng ký/thầu/danh mục?
↓
Đúng liều - cách dùng - số lượng?
↓
Đúng khoa và người chỉ định?
↓
Đúng thời điểm y lệnh/thực hiện?
↓
Đúng phạm vi và tỷ lệ thanh toán?
↓
Đúng đơn giá?
↓
Đúng công thức thành tiền?
↓
Đúng phân bổ người trả?
↓
Khớp tổng hợp XML1?Đây là một trong những bảng thích hợp nhất để kết hợp catalog lookup, formula constraint, conditional requirement, sequence/time check và cross-table consistency.
Kết luận
XML2 không chỉ trả lời:
“Người bệnh đã dùng thuốc gì?”
mà còn trả lời đồng thời:
Thuốc nào → dạng nào → liều bao nhiêu → ai chỉ định → ở khoa nào → lúc nào → số lượng bao nhiêu → theo giá nào → thuộc phạm vi nào → mức hưởng bao nhiêu → ai chịu khoản tiền đó.
Có thể tóm tắt:
XML2 = định danh thuốc + điều kiện sử dụng + căn cứ cung ứng + y lệnh + chi phí + phân bổ thanh toán.
Vì vậy, chất lượng XML2 không thể được đánh giá chỉ bằng việc MA_THUOC có tồn tại trong danh mục. Một dòng thuốc chỉ thực sự nhất quán khi tất cả các lớp thông tin trên phù hợp với nhau, với XML1, XML3 và hồ sơ KCB.
- Đăng nhập để gửi ý kiến