Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide
0.10.0 - Draft for Community Review
Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide - Draft for Community Review (v0.10.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Draft tại thời điểm 2026-09-22 |
Các định nghĩa cho vnCostStatementContentLm mô hình logic
Guidance on how to interpret the contents of this table can be foundhere
| 0. vnCostStatementContentLm | |
| Definition | Logical model đặc tả những nội dung mà Quyết định 697/QĐ-BYT (ban hành 19/03/2026, triển khai 01/07/2026) BUỘC cơ sở khám bệnh, chữa bệnh phải ghi trong Bảng kê chi phí khám bệnh, chữa bệnh — làm bảng chỉ tiêu văn bản để đối chiếu cardinality của nhóm profile bảng kê chi phí. Ba nhóm: dòng dịch vụ (hướng dẫn ghi từng mục — tên dịch vụ, số lượng, đơn giá), khoản tiền phân bổ theo nguồn thanh toán (mục III.9.a — số tiền người bệnh cùng chi trả và số tiền người bệnh tự trả, dùng để xác định quyền lợi miễn cùng chi trả), và chữ ký xác nhận (ba nhóm người phải ký, kèm hình thức ký cho từng nhóm). Về chữ ký: văn bản nêu ba nhóm — người lập bảng kê, kế toán viện phí, và người bệnh hoặc người đại diện của người bệnh. Riêng nhóm thứ hai có quy tắc thay thế: khám bệnh, chữa bệnh tại Trạm y tế tuyến xã và tương đương mà chưa có kế toán viện phí thì thay bằng chữ ký và họ tên của người phụ trách đơn vị — nên đây là nghĩa vụ về VAI TRÒ, không phải về chức danh cụ thể. / Logical model for the cost statement content required by Decision 697/QĐ-BYT, used as the documentary requirement table for the cost statement profiles. |
| Short | Nội dung bắt buộc của Bảng kê chi phí KBCB (QĐ 697/QĐ-BYT) — Logical Model |
| Control | 0..* |
| Is Modifier | false |
| Logical Model | Instances of this logical model are not marked to be the target of a Reference |
| 2. vnCostStatementContentLm.dongDichVu | |
| Definition | Mỗi dịch vụ đã thực hiện cho người bệnh là một dòng của bảng kê |
| Short | Mỗi dịch vụ đã thực hiện cho người bệnh là một dòng của bảng kê |
| Comments | Hướng dẫn ghi của QĐ 697/QĐ-BYT lặp cùng một khuôn cho từng danh mục chi phí: Nội dung (tên dịch vụ), Số lượng, Đơn giá. Ví dụ mục '1. Khám bệnh': 'Ghi tên dịch vụ khám bệnh đã thực hiện khám bệnh cho người bệnh theo quy định tại Phụ lục 2 ban hành kèm theo Quyết định số 2010/QĐ-BYT'; 'Số lượng: Ghi số lượng lần khám bệnh'. |
| Control | 1..* |
| Type | BackboneElement |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) |
| 4. vnCostStatementContentLm.dongDichVu.id | |
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. |
| Short | Unique id for inter-element referencing |
| Control | 0..1 |
| Type | string |
| Is Modifier | false |
| XML Format | In the XML format, this property is represented as an attribute. |
| Summary | false |
| 6. vnCostStatementContentLm.dongDichVu.extension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. |
| Short | Additional content defined by implementations |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | false |
| Summary | false |
| Alternate Names | extensions, user content |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) |
| Slicing | This element introduces a set of slices on vnCostStatementContentLm.dongDichVu.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: |
| 8. vnCostStatementContentLm.dongDichVu.modifierExtension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). |
| Short | Extensions that cannot be ignored even if unrecognized |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them |
| Summary | true |
| Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions. |
| Alternate Names | extensions, user content, modifiers |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) |
| 10. vnCostStatementContentLm.dongDichVu.tenDichVu | |
| Definition | Tên dịch vụ đã thực hiện |
| Short | Tên dịch vụ đã thực hiện |
| Comments | Tên lấy theo danh mục mã dùng chung — QĐ 2010/QĐ-BYT Phụ lục 2 cho dịch vụ khám bệnh; các danh mục khác theo mục tương ứng của hướng dẫn. |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 12. vnCostStatementContentLm.dongDichVu.soLuong | |
| Definition | Số lượng |
| Short | Số lượng |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 14. vnCostStatementContentLm.dongDichVu.donGiaBaoHiem | |
| Definition | Đơn giá BH |
| Short | Đơn giá BH |
| Comments | 'Theo giá được cấp có thẩm quyền phê duyệt giá cho cơ sở KBCB theo quy định của Thông tư số 21/2024/TT-BYT và Điều 110 Luật khám bệnh, chữa bệnh số 15/2023/QH15. Đối với cơ sở KBCB tư nhân thực hiện theo quy định tại Điều 47 Nghị định số 188/2025/NĐ-CP.' Đơn giá là dữ liệu ĐƯỢC PHÊ DUYỆT, không do cơ sở tự đặt — nên đích là |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 16. vnCostStatementContentLm.khoanTienNguoiBenh | |
| Definition | Số tiền người bệnh phải trả, tách theo nguồn |
| Short | Số tiền người bệnh phải trả, tách theo nguồn |
| Comments | Sửa 06/09/2026 sau phản biện Fable: hạ từ 1..1 xuống 0..1. QĐ 697/QĐ-BYT có hẳn Phần Hai — 'Hướng dẫn cách ghi chép bảng kê chi phí khám bệnh, chữa bệnh đối với người KHÔNG CÓ thẻ bảo hiểm y tế' — và luồng ấy không có khoản 'cùng chi trả'. Profile VNCoreCostStatementInvoice phủ cả hai luồng, nên nhóm này chỉ áp khi người bệnh có thẻ. Mục III.9.a: 'Trong Bảng kê chi phí KBCB, các cơ sở KBCB ghi rõ số tiền người bệnh cùng chi trả, số tiền người bệnh tự trả để xác định chính xác quyền lợi miễn cùng chi trả khi người bệnh đã tham gia BHYT từ đủ 05 năm liên tục và có số tiền cùng chi trả lớn hơn 6 tháng lương cơ sở.' Hai khoản này phải TÁCH RIÊNG vì chỉ khoản CÙNG CHI TRẢ mới được luỹ kế vào ngưỡng miễn — gộp chung là làm sai quyền lợi của người bệnh. |
| Control | 0..1 |
| Type | BackboneElement |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) |
| 18. vnCostStatementContentLm.khoanTienNguoiBenh.id | |
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. |
| Short | Unique id for inter-element referencing |
| Control | 0..1 |
| Type | string |
| Is Modifier | false |
| XML Format | In the XML format, this property is represented as an attribute. |
| Summary | false |
| 20. vnCostStatementContentLm.khoanTienNguoiBenh.extension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. |
| Short | Additional content defined by implementations |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | false |
| Summary | false |
| Alternate Names | extensions, user content |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) |
| Slicing | This element introduces a set of slices on vnCostStatementContentLm.khoanTienNguoiBenh.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: |
| 22. vnCostStatementContentLm.khoanTienNguoiBenh.modifierExtension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). |
| Short | Extensions that cannot be ignored even if unrecognized |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them |
| Summary | true |
| Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions. |
| Alternate Names | extensions, user content, modifiers |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) |
| 24. vnCostStatementContentLm.khoanTienNguoiBenh.soTienCungChiTra | |
| Definition | Số tiền người bệnh cùng chi trả |
| Short | Số tiền người bệnh cùng chi trả |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 26. vnCostStatementContentLm.khoanTienNguoiBenh.soTienTuTra | |
| Definition | Số tiền người bệnh tự trả |
| Short | Số tiền người bệnh tự trả |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 28. vnCostStatementContentLm.khoanTienNguoiBenh.luyKeCungChiTraTrongNam | |
| Definition | Tổng số tiền cùng chi trả luỹ kế trong năm tài chính |
| Short | Tổng số tiền cùng chi trả luỹ kế trong năm tài chính |
| Comments | Mục III.8: ghi số luỹ kế 'mà cơ sở KBCB tra cứu được tại thời điểm tiếp đón người bệnh đến KBCB khi tra cứu trực tiếp thông qua API hoặc tra cứu trực tiếp trên Cổng BHXH'. min = 0 vì nghĩa vụ gắn với việc TRA CỨU ĐƯỢC: cơ sở không tra cứu được thì không có số để ghi. Số này do cơ quan BHXH giữ, cơ sở KBCB chỉ chép lại. |
| Control | 0..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 30. vnCostStatementContentLm.xacNhanBangKe | |
| Definition | Ba nhóm người phải ký xác nhận trên bảng kê |
| Short | Ba nhóm người phải ký xác nhận trên bảng kê |
| Comments | Ba nhóm: người lập bảng kê (ký bằng chữ ký điện tử), kế toán viện phí (ký số bằng chữ ký số hợp pháp do thủ trưởng cơ sở KBCB cấp), và người bệnh hoặc người đại diện của người bệnh (ký theo một trong các hình thức văn bản liệt kê, gồm ký trên thiết bị cảm ứng có xác nhận lại bằng chữ ký số của nhân viên y tế). Cardinality 3..3 giữ ba vai trò nguồn. Khi chiếu sang FHIR, vai trò nằm ở extension cục bộ trên |
| Control | 3..3 |
| Type | BackboneElement |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) |
| 32. vnCostStatementContentLm.xacNhanBangKe.id | |
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. |
| Short | Unique id for inter-element referencing |
| Control | 0..1 |
| Type | string |
| Is Modifier | false |
| XML Format | In the XML format, this property is represented as an attribute. |
| Summary | false |
| 34. vnCostStatementContentLm.xacNhanBangKe.extension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. |
| Short | Additional content defined by implementations |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | false |
| Summary | false |
| Alternate Names | extensions, user content |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) |
| Slicing | This element introduces a set of slices on vnCostStatementContentLm.xacNhanBangKe.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: |
| 36. vnCostStatementContentLm.xacNhanBangKe.modifierExtension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). |
| Short | Extensions that cannot be ignored even if unrecognized |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them |
| Summary | true |
| Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions. |
| Alternate Names | extensions, user content, modifiers |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) |
| 38. vnCostStatementContentLm.xacNhanBangKe.vaiTroNguoiKy | |
| Definition | Vai trò của người ký: người lập | kế toán viện phí | người bệnh hoặc người đại diện |
| Short | Vai trò của người ký: người lập | kế toán viện phí | người bệnh hoặc người đại diện |
| Comments | Nhóm kế toán viện phí có quy tắc THAY THẾ: 'Trường hợp khám bệnh, chữa bệnh tại Trạm y tế tuyến xã và tương đương mà chưa có kế toán viện phí thì thay thế chữ ký, họ tên của Kế toán viện phí bằng chữ ký, họ tên của người phụ trách đơn vị.' Nên nghĩa vụ là về VAI TRÒ xác nhận, không về chức danh — mô hình phải giữ được cả hai trường hợp mà không cần hai cấu trúc khác nhau. |
| Control | 1..1 |
| Type | code |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 40. vnCostStatementContentLm.xacNhanBangKe.nguoiKy | |
| Definition | Người ký xác nhận |
| Short | Người ký xác nhận |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 42. vnCostStatementContentLm.xacNhanBangKe.thoiDiemKy | |
| Definition | Thời điểm ký |
| Short | Thời điểm ký |
| Comments | Thứ tự ký có ý nghĩa pháp lý: nếu kế toán viện phí ký số SAU khi người bệnh hoặc người đại diện đã ký trên thiết bị cảm ứng thì nhân viên y tế không phải ký số xác nhận lại. Không có thời điểm ký thì không kiểm được điều kiện ấy. |
| Control | 1..1 |
| Type | dateTime |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
Guidance on how to interpret the contents of this table can be foundhere
| 0. vnCostStatementContentLm | |
| Definition | Logical model đặc tả những nội dung mà Quyết định 697/QĐ-BYT (ban hành 19/03/2026, triển khai 01/07/2026) BUỘC cơ sở khám bệnh, chữa bệnh phải ghi trong Bảng kê chi phí khám bệnh, chữa bệnh — làm bảng chỉ tiêu văn bản để đối chiếu cardinality của nhóm profile bảng kê chi phí. Ba nhóm: dòng dịch vụ (hướng dẫn ghi từng mục — tên dịch vụ, số lượng, đơn giá), khoản tiền phân bổ theo nguồn thanh toán (mục III.9.a — số tiền người bệnh cùng chi trả và số tiền người bệnh tự trả, dùng để xác định quyền lợi miễn cùng chi trả), và chữ ký xác nhận (ba nhóm người phải ký, kèm hình thức ký cho từng nhóm). Về chữ ký: văn bản nêu ba nhóm — người lập bảng kê, kế toán viện phí, và người bệnh hoặc người đại diện của người bệnh. Riêng nhóm thứ hai có quy tắc thay thế: khám bệnh, chữa bệnh tại Trạm y tế tuyến xã và tương đương mà chưa có kế toán viện phí thì thay bằng chữ ký và họ tên của người phụ trách đơn vị — nên đây là nghĩa vụ về VAI TRÒ, không phải về chức danh cụ thể. / Logical model for the cost statement content required by Decision 697/QĐ-BYT, used as the documentary requirement table for the cost statement profiles. |
| Short | Nội dung bắt buộc của Bảng kê chi phí KBCB (QĐ 697/QĐ-BYT) — Logical Model |
| Logical Model | Instances of this logical model are not marked to be the target of a Reference |
| 2. vnCostStatementContentLm.dongDichVu | |
| Definition | Mỗi dịch vụ đã thực hiện cho người bệnh là một dòng của bảng kê |
| Short | Mỗi dịch vụ đã thực hiện cho người bệnh là một dòng của bảng kê |
| Comments | Hướng dẫn ghi của QĐ 697/QĐ-BYT lặp cùng một khuôn cho từng danh mục chi phí: Nội dung (tên dịch vụ), Số lượng, Đơn giá. Ví dụ mục '1. Khám bệnh': 'Ghi tên dịch vụ khám bệnh đã thực hiện khám bệnh cho người bệnh theo quy định tại Phụ lục 2 ban hành kèm theo Quyết định số 2010/QĐ-BYT'; 'Số lượng: Ghi số lượng lần khám bệnh'. |
| Control | 1..* |
| Type | BackboneElement |
| 4. vnCostStatementContentLm.dongDichVu.tenDichVu | |
| Definition | Tên dịch vụ đã thực hiện |
| Short | Tên dịch vụ đã thực hiện |
| Comments | Tên lấy theo danh mục mã dùng chung — QĐ 2010/QĐ-BYT Phụ lục 2 cho dịch vụ khám bệnh; các danh mục khác theo mục tương ứng của hướng dẫn. |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 6. vnCostStatementContentLm.dongDichVu.soLuong | |
| Definition | Số lượng |
| Short | Số lượng |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 8. vnCostStatementContentLm.dongDichVu.donGiaBaoHiem | |
| Definition | Đơn giá BH |
| Short | Đơn giá BH |
| Comments | 'Theo giá được cấp có thẩm quyền phê duyệt giá cho cơ sở KBCB theo quy định của Thông tư số 21/2024/TT-BYT và Điều 110 Luật khám bệnh, chữa bệnh số 15/2023/QH15. Đối với cơ sở KBCB tư nhân thực hiện theo quy định tại Điều 47 Nghị định số 188/2025/NĐ-CP.' Đơn giá là dữ liệu ĐƯỢC PHÊ DUYỆT, không do cơ sở tự đặt — nên đích là |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 10. vnCostStatementContentLm.khoanTienNguoiBenh | |
| Definition | Số tiền người bệnh phải trả, tách theo nguồn |
| Short | Số tiền người bệnh phải trả, tách theo nguồn |
| Comments | Sửa 06/09/2026 sau phản biện Fable: hạ từ 1..1 xuống 0..1. QĐ 697/QĐ-BYT có hẳn Phần Hai — 'Hướng dẫn cách ghi chép bảng kê chi phí khám bệnh, chữa bệnh đối với người KHÔNG CÓ thẻ bảo hiểm y tế' — và luồng ấy không có khoản 'cùng chi trả'. Profile VNCoreCostStatementInvoice phủ cả hai luồng, nên nhóm này chỉ áp khi người bệnh có thẻ. Mục III.9.a: 'Trong Bảng kê chi phí KBCB, các cơ sở KBCB ghi rõ số tiền người bệnh cùng chi trả, số tiền người bệnh tự trả để xác định chính xác quyền lợi miễn cùng chi trả khi người bệnh đã tham gia BHYT từ đủ 05 năm liên tục và có số tiền cùng chi trả lớn hơn 6 tháng lương cơ sở.' Hai khoản này phải TÁCH RIÊNG vì chỉ khoản CÙNG CHI TRẢ mới được luỹ kế vào ngưỡng miễn — gộp chung là làm sai quyền lợi của người bệnh. |
| Control | 0..1 |
| Type | BackboneElement |
| 12. vnCostStatementContentLm.khoanTienNguoiBenh.soTienCungChiTra | |
| Definition | Số tiền người bệnh cùng chi trả |
| Short | Số tiền người bệnh cùng chi trả |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 14. vnCostStatementContentLm.khoanTienNguoiBenh.soTienTuTra | |
| Definition | Số tiền người bệnh tự trả |
| Short | Số tiền người bệnh tự trả |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 16. vnCostStatementContentLm.khoanTienNguoiBenh.luyKeCungChiTraTrongNam | |
| Definition | Tổng số tiền cùng chi trả luỹ kế trong năm tài chính |
| Short | Tổng số tiền cùng chi trả luỹ kế trong năm tài chính |
| Comments | Mục III.8: ghi số luỹ kế 'mà cơ sở KBCB tra cứu được tại thời điểm tiếp đón người bệnh đến KBCB khi tra cứu trực tiếp thông qua API hoặc tra cứu trực tiếp trên Cổng BHXH'. min = 0 vì nghĩa vụ gắn với việc TRA CỨU ĐƯỢC: cơ sở không tra cứu được thì không có số để ghi. Số này do cơ quan BHXH giữ, cơ sở KBCB chỉ chép lại. |
| Control | 0..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 18. vnCostStatementContentLm.xacNhanBangKe | |
| Definition | Ba nhóm người phải ký xác nhận trên bảng kê |
| Short | Ba nhóm người phải ký xác nhận trên bảng kê |
| Comments | Ba nhóm: người lập bảng kê (ký bằng chữ ký điện tử), kế toán viện phí (ký số bằng chữ ký số hợp pháp do thủ trưởng cơ sở KBCB cấp), và người bệnh hoặc người đại diện của người bệnh (ký theo một trong các hình thức văn bản liệt kê, gồm ký trên thiết bị cảm ứng có xác nhận lại bằng chữ ký số của nhân viên y tế). Cardinality 3..3 giữ ba vai trò nguồn. Khi chiếu sang FHIR, vai trò nằm ở extension cục bộ trên |
| Control | 3..3 |
| Type | BackboneElement |
| 20. vnCostStatementContentLm.xacNhanBangKe.vaiTroNguoiKy | |
| Definition | Vai trò của người ký: người lập | kế toán viện phí | người bệnh hoặc người đại diện |
| Short | Vai trò của người ký: người lập | kế toán viện phí | người bệnh hoặc người đại diện |
| Comments | Nhóm kế toán viện phí có quy tắc THAY THẾ: 'Trường hợp khám bệnh, chữa bệnh tại Trạm y tế tuyến xã và tương đương mà chưa có kế toán viện phí thì thay thế chữ ký, họ tên của Kế toán viện phí bằng chữ ký, họ tên của người phụ trách đơn vị.' Nên nghĩa vụ là về VAI TRÒ xác nhận, không về chức danh — mô hình phải giữ được cả hai trường hợp mà không cần hai cấu trúc khác nhau. |
| Control | 1..1 |
| Type | code |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 22. vnCostStatementContentLm.xacNhanBangKe.nguoiKy | |
| Definition | Người ký xác nhận |
| Short | Người ký xác nhận |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 24. vnCostStatementContentLm.xacNhanBangKe.thoiDiemKy | |
| Definition | Thời điểm ký |
| Short | Thời điểm ký |
| Comments | Thứ tự ký có ý nghĩa pháp lý: nếu kế toán viện phí ký số SAU khi người bệnh hoặc người đại diện đã ký trên thiết bị cảm ứng thì nhân viên y tế không phải ký số xác nhận lại. Không có thời điểm ký thì không kiểm được điều kiện ấy. |
| Control | 1..1 |
| Type | dateTime |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
Guidance on how to interpret the contents of this table can be foundhere
| 0. vnCostStatementContentLm | |
| Definition | Logical model đặc tả những nội dung mà Quyết định 697/QĐ-BYT (ban hành 19/03/2026, triển khai 01/07/2026) BUỘC cơ sở khám bệnh, chữa bệnh phải ghi trong Bảng kê chi phí khám bệnh, chữa bệnh — làm bảng chỉ tiêu văn bản để đối chiếu cardinality của nhóm profile bảng kê chi phí. Ba nhóm: dòng dịch vụ (hướng dẫn ghi từng mục — tên dịch vụ, số lượng, đơn giá), khoản tiền phân bổ theo nguồn thanh toán (mục III.9.a — số tiền người bệnh cùng chi trả và số tiền người bệnh tự trả, dùng để xác định quyền lợi miễn cùng chi trả), và chữ ký xác nhận (ba nhóm người phải ký, kèm hình thức ký cho từng nhóm). Về chữ ký: văn bản nêu ba nhóm — người lập bảng kê, kế toán viện phí, và người bệnh hoặc người đại diện của người bệnh. Riêng nhóm thứ hai có quy tắc thay thế: khám bệnh, chữa bệnh tại Trạm y tế tuyến xã và tương đương mà chưa có kế toán viện phí thì thay bằng chữ ký và họ tên của người phụ trách đơn vị — nên đây là nghĩa vụ về VAI TRÒ, không phải về chức danh cụ thể. / Logical model for the cost statement content required by Decision 697/QĐ-BYT, used as the documentary requirement table for the cost statement profiles. |
| Short | Nội dung bắt buộc của Bảng kê chi phí KBCB (QĐ 697/QĐ-BYT) — Logical Model |
| Control | 0..* |
| Is Modifier | false |
| Logical Model | Instances of this logical model are not marked to be the target of a Reference |
| 2. vnCostStatementContentLm.dongDichVu | |
| Definition | Mỗi dịch vụ đã thực hiện cho người bệnh là một dòng của bảng kê |
| Short | Mỗi dịch vụ đã thực hiện cho người bệnh là một dòng của bảng kê |
| Comments | Hướng dẫn ghi của QĐ 697/QĐ-BYT lặp cùng một khuôn cho từng danh mục chi phí: Nội dung (tên dịch vụ), Số lượng, Đơn giá. Ví dụ mục '1. Khám bệnh': 'Ghi tên dịch vụ khám bệnh đã thực hiện khám bệnh cho người bệnh theo quy định tại Phụ lục 2 ban hành kèm theo Quyết định số 2010/QĐ-BYT'; 'Số lượng: Ghi số lượng lần khám bệnh'. |
| Control | 1..* |
| Type | BackboneElement |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) |
| 4. vnCostStatementContentLm.dongDichVu.id | |
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. |
| Short | Unique id for inter-element referencing |
| Control | 0..1 |
| Type | string |
| Is Modifier | false |
| XML Format | In the XML format, this property is represented as an attribute. |
| Summary | false |
| 6. vnCostStatementContentLm.dongDichVu.extension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. |
| Short | Additional content defined by implementations |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | false |
| Summary | false |
| Alternate Names | extensions, user content |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) |
| Slicing | This element introduces a set of slices on vnCostStatementContentLm.dongDichVu.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: |
| 8. vnCostStatementContentLm.dongDichVu.modifierExtension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). |
| Short | Extensions that cannot be ignored even if unrecognized |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them |
| Summary | true |
| Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions. |
| Alternate Names | extensions, user content, modifiers |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) |
| 10. vnCostStatementContentLm.dongDichVu.tenDichVu | |
| Definition | Tên dịch vụ đã thực hiện |
| Short | Tên dịch vụ đã thực hiện |
| Comments | Tên lấy theo danh mục mã dùng chung — QĐ 2010/QĐ-BYT Phụ lục 2 cho dịch vụ khám bệnh; các danh mục khác theo mục tương ứng của hướng dẫn. |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 12. vnCostStatementContentLm.dongDichVu.soLuong | |
| Definition | Số lượng |
| Short | Số lượng |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 14. vnCostStatementContentLm.dongDichVu.donGiaBaoHiem | |
| Definition | Đơn giá BH |
| Short | Đơn giá BH |
| Comments | 'Theo giá được cấp có thẩm quyền phê duyệt giá cho cơ sở KBCB theo quy định của Thông tư số 21/2024/TT-BYT và Điều 110 Luật khám bệnh, chữa bệnh số 15/2023/QH15. Đối với cơ sở KBCB tư nhân thực hiện theo quy định tại Điều 47 Nghị định số 188/2025/NĐ-CP.' Đơn giá là dữ liệu ĐƯỢC PHÊ DUYỆT, không do cơ sở tự đặt — nên đích là |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 16. vnCostStatementContentLm.khoanTienNguoiBenh | |
| Definition | Số tiền người bệnh phải trả, tách theo nguồn |
| Short | Số tiền người bệnh phải trả, tách theo nguồn |
| Comments | Sửa 06/09/2026 sau phản biện Fable: hạ từ 1..1 xuống 0..1. QĐ 697/QĐ-BYT có hẳn Phần Hai — 'Hướng dẫn cách ghi chép bảng kê chi phí khám bệnh, chữa bệnh đối với người KHÔNG CÓ thẻ bảo hiểm y tế' — và luồng ấy không có khoản 'cùng chi trả'. Profile VNCoreCostStatementInvoice phủ cả hai luồng, nên nhóm này chỉ áp khi người bệnh có thẻ. Mục III.9.a: 'Trong Bảng kê chi phí KBCB, các cơ sở KBCB ghi rõ số tiền người bệnh cùng chi trả, số tiền người bệnh tự trả để xác định chính xác quyền lợi miễn cùng chi trả khi người bệnh đã tham gia BHYT từ đủ 05 năm liên tục và có số tiền cùng chi trả lớn hơn 6 tháng lương cơ sở.' Hai khoản này phải TÁCH RIÊNG vì chỉ khoản CÙNG CHI TRẢ mới được luỹ kế vào ngưỡng miễn — gộp chung là làm sai quyền lợi của người bệnh. |
| Control | 0..1 |
| Type | BackboneElement |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) |
| 18. vnCostStatementContentLm.khoanTienNguoiBenh.id | |
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. |
| Short | Unique id for inter-element referencing |
| Control | 0..1 |
| Type | string |
| Is Modifier | false |
| XML Format | In the XML format, this property is represented as an attribute. |
| Summary | false |
| 20. vnCostStatementContentLm.khoanTienNguoiBenh.extension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. |
| Short | Additional content defined by implementations |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | false |
| Summary | false |
| Alternate Names | extensions, user content |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) |
| Slicing | This element introduces a set of slices on vnCostStatementContentLm.khoanTienNguoiBenh.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: |
| 22. vnCostStatementContentLm.khoanTienNguoiBenh.modifierExtension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). |
| Short | Extensions that cannot be ignored even if unrecognized |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them |
| Summary | true |
| Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions. |
| Alternate Names | extensions, user content, modifiers |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) |
| 24. vnCostStatementContentLm.khoanTienNguoiBenh.soTienCungChiTra | |
| Definition | Số tiền người bệnh cùng chi trả |
| Short | Số tiền người bệnh cùng chi trả |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 26. vnCostStatementContentLm.khoanTienNguoiBenh.soTienTuTra | |
| Definition | Số tiền người bệnh tự trả |
| Short | Số tiền người bệnh tự trả |
| Control | 1..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 28. vnCostStatementContentLm.khoanTienNguoiBenh.luyKeCungChiTraTrongNam | |
| Definition | Tổng số tiền cùng chi trả luỹ kế trong năm tài chính |
| Short | Tổng số tiền cùng chi trả luỹ kế trong năm tài chính |
| Comments | Mục III.8: ghi số luỹ kế 'mà cơ sở KBCB tra cứu được tại thời điểm tiếp đón người bệnh đến KBCB khi tra cứu trực tiếp thông qua API hoặc tra cứu trực tiếp trên Cổng BHXH'. min = 0 vì nghĩa vụ gắn với việc TRA CỨU ĐƯỢC: cơ sở không tra cứu được thì không có số để ghi. Số này do cơ quan BHXH giữ, cơ sở KBCB chỉ chép lại. |
| Control | 0..1 |
| Type | decimal |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 30. vnCostStatementContentLm.xacNhanBangKe | |
| Definition | Ba nhóm người phải ký xác nhận trên bảng kê |
| Short | Ba nhóm người phải ký xác nhận trên bảng kê |
| Comments | Ba nhóm: người lập bảng kê (ký bằng chữ ký điện tử), kế toán viện phí (ký số bằng chữ ký số hợp pháp do thủ trưởng cơ sở KBCB cấp), và người bệnh hoặc người đại diện của người bệnh (ký theo một trong các hình thức văn bản liệt kê, gồm ký trên thiết bị cảm ứng có xác nhận lại bằng chữ ký số của nhân viên y tế). Cardinality 3..3 giữ ba vai trò nguồn. Khi chiếu sang FHIR, vai trò nằm ở extension cục bộ trên |
| Control | 3..3 |
| Type | BackboneElement |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) |
| 32. vnCostStatementContentLm.xacNhanBangKe.id | |
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. |
| Short | Unique id for inter-element referencing |
| Control | 0..1 |
| Type | string |
| Is Modifier | false |
| XML Format | In the XML format, this property is represented as an attribute. |
| Summary | false |
| 34. vnCostStatementContentLm.xacNhanBangKe.extension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. |
| Short | Additional content defined by implementations |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | false |
| Summary | false |
| Alternate Names | extensions, user content |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) |
| Slicing | This element introduces a set of slices on vnCostStatementContentLm.xacNhanBangKe.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: |
| 36. vnCostStatementContentLm.xacNhanBangKe.modifierExtension | |
| Definition | May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). |
| Short | Extensions that cannot be ignored even if unrecognized |
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them |
| Summary | true |
| Requirements | Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions. |
| Alternate Names | extensions, user content, modifiers |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) |
| 38. vnCostStatementContentLm.xacNhanBangKe.vaiTroNguoiKy | |
| Definition | Vai trò của người ký: người lập | kế toán viện phí | người bệnh hoặc người đại diện |
| Short | Vai trò của người ký: người lập | kế toán viện phí | người bệnh hoặc người đại diện |
| Comments | Nhóm kế toán viện phí có quy tắc THAY THẾ: 'Trường hợp khám bệnh, chữa bệnh tại Trạm y tế tuyến xã và tương đương mà chưa có kế toán viện phí thì thay thế chữ ký, họ tên của Kế toán viện phí bằng chữ ký, họ tên của người phụ trách đơn vị.' Nên nghĩa vụ là về VAI TRÒ xác nhận, không về chức danh — mô hình phải giữ được cả hai trường hợp mà không cần hai cấu trúc khác nhau. |
| Control | 1..1 |
| Type | code |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 40. vnCostStatementContentLm.xacNhanBangKe.nguoiKy | |
| Definition | Người ký xác nhận |
| Short | Người ký xác nhận |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 42. vnCostStatementContentLm.xacNhanBangKe.thoiDiemKy | |
| Definition | Thời điểm ký |
| Short | Thời điểm ký |
| Comments | Thứ tự ký có ý nghĩa pháp lý: nếu kế toán viện phí ký số SAU khi người bệnh hoặc người đại diện đã ký trên thiết bị cảm ứng thì nhân viên y tế không phải ký số xác nhận lại. Không có thời điểm ký thì không kiểm được điều kiện ấy. |
| Control | 1..1 |
| Type | dateTime |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |