HL7 Vietnam VN Core FHIR Implementation Guide

Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam
0.5.0 - Draft for Community Review

Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam - Local Development build (v0.5.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Hồ sơ tài nguyên: Bundle hồ sơ thanh toán BHYT — VN Core BHYT Submission Bundle

URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-bhyt-submission-bundle | Phiên bản: 0.5.0 | Làm nổi bật phần thay đổi?
| Computable Name: VNCoreBHYTSubmissionBundle
Bản quyền/Pháp lý: Căn cứ pháp lý Việt Nam: Luật 25/2008/QH12 ngày 14/11/2008; Luật 51/2024/QH15 ngày 27/11/2024; NĐ 188/2025/NĐ-CP ban hành 01/07/2025, hiệu lực 15/08/2025; QĐ 3176/QĐ-BYT ngày 29/10/2024; QĐ 697/QĐ-BYT ngày 19/03/2026.

Profile Bundle chuyên dùng cho gửi hồ sơ thanh toán BHYT lên Cổng giám định BHXH. Bundle này thuộc lớp liên thông hồ sơ thanh toán BHYT, tách biệt với các Bundle FHIR nội bộ. Căn cứ: Luật 25/2008/QH12 ngày 14/11/2008 về BHYT; Luật 51/2024/QH15 ngày 27/11/2024 sửa đổi Luật BHYT; NĐ 188/2025/NĐ-CP ban hành 01/07/2025, hiệu lực 15/08/2025 hướng dẫn Luật BHYT; QĐ 3176/QĐ-BYT ngày 29/10/2024 về chuẩn dữ liệu đầu ra KCB; QĐ 697/QĐ-BYT ngày 19/03/2026 về mẫu bảng kê chi phí KCB. Nguồn TVPL NĐ 188/2025/NĐ-CP: https://thuvienphapluat.vn/van-ban/Bao-hiem/Nghi-dinh-188-2025-ND-CP-huong-dan-Luat-Bao-hiem-y-te-641049.aspx

Usages:

- Examples for this Profile: Bundle/ExampleBHYTSubmissionDeathCertificate, Bundle/ExampleBHYTSubmissionEmergencyUnknownIdentity, Bundle/ExampleBHYTSubmissionHIV, Bundle/ExampleBHYTSubmissionInpatient... Show 5 more, Bundle/ExampleBHYTSubmissionMultiCoverage, Bundle/ExampleBHYTSubmissionNewborn, Bundle/ExampleBHYTSubmissionOutpatient, Bundle/ExampleBHYTSubmissionRecurrentWound and Bundle/ExampleBHYTSubmissionYHCT
- CapabilityStatements using this Profile: VN Core BHYT Gateway Server CapabilityStatement

You can also check for usages in the FHIR IG Statistics

### Các dạng xem hình thức của nội dung hồ sơ

Mô tả profile, differential, snapshot và các biểu diễn liên quan.

- Bảng phần tử chính
- Bảng Differential
- Bảng Snapshot
- Thống kê/Tham chiếu
- Tất cả

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Bundle | C | 0..* | VNCoreBundle | Contains a collection of resources Constraints: bdl-1, bdl-2, bdl-3, bdl-4, bdl-7, bdl-9, bdl-10, bdl-11, bdl-12, vn-bundle-document-first, vn-bhyt-submission-has-claim, vn-bhyt-submission-has-patient, vn-bhyt-submission-has-coverage
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
identifier | S Σ | 1..1 | Identifier | MA_LK của hồ sơ thanh toán BHYT
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: MA_LK
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/ma-lk
value | S Σ | 1..1 | string | Giá trị MA_LK Example General: 123456
type | S Σ | 1..1 | code | Bundle hồ sơ thanh toán BHYT Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used. Required Pattern: collection
timestamp | S Σ | 1..1 | instant | Thời điểm đóng gói bundle hồ sơ thanh toán
entry | S Σ C | 1..* | BackboneElement | Danh sách tài nguyên phục vụ hồ sơ BHYT Constraints: bdl-5, bdl-8 This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
resource | S Σ | 1..1 | Resource | Resource FHIR
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Bundle.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Bundle.identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.
Bundle.type | Base | required | BundleType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
bdl-1 | error | Bundle | total only when a search or history | `total.empty() or (type = 'searchset') or (type = 'history')`
bdl-2 | error | Bundle | entry.search only when a search | `entry.search.empty() or (type = 'searchset')`
bdl-3 | error | Bundle | entry.request mandatory for batch/transaction/history, otherwise prohibited | `entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))`
bdl-4 | error | Bundle | entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited | `entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history'))`
bdl-5 | error | Bundle.entry | must be a resource unless there's a request or response | `resource.exists() or request.exists() or response.exists()`
bdl-7 | error | Bundle | FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles) | `(type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&resource.meta.versionId).isDistinct()`
bdl-8 | error | Bundle.entry | fullUrl cannot be a version specific reference | `fullUrl.contains('/_history/').not()`
bdl-9 | error | Bundle | A document must have an identifier with a system and a value | `type = 'document' implies (identifier.system.exists() and identifier.value.exists())`
bdl-10 | error | Bundle | A document must have a date | `type = 'document' implies (timestamp.hasValue())`
bdl-11 | error | Bundle | A document must have a Composition as the first resource | `type = 'document' implies entry.first().resource.is(Composition)`
bdl-12 | error | Bundle | A message must have a MessageHeader as the first resource | `type = 'message' implies entry.first().resource.is(MessageHeader)`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
vn-bhyt-submission-has-claim | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Claim để biểu diễn chi phí/yêu cầu thanh toán từ chuẩn dữ liệu QĐ 3176/QĐ-BYT và bảng kê QĐ 697/QĐ-BYT | `entry.resource.ofType(Claim).exists()`
vn-bhyt-submission-has-coverage | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Coverage để biểu diễn quyền lợi/thẻ BHYT theo Luật BHYT, NĐ 188/2025/NĐ-CP và các trường thẻ trong QĐ 3176/QĐ-BYT | `entry.resource.ofType(Coverage).exists()`
vn-bhyt-submission-has-patient | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Patient để biểu diễn nhóm thông tin người bệnh trong QĐ 3176/QĐ-BYT và hồ sơ bệnh án điện tử theo TT 13/2025/TT-BYT | `entry.resource.ofType(Patient).exists()`
vn-bundle-document-first | error | Bundle | Bundle type 'document' phải có Composition là entry đầu tiên (per FHIR Bundle spec) | `type = 'document' implies entry.first().resource.is(Composition)`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Bundle | C | 0..* | VNCoreBundle | Contains a collection of resources Constraints: vn-bhyt-submission-has-claim, vn-bhyt-submission-has-patient, vn-bhyt-submission-has-coverage
identifier | S | 1..1 | Identifier | MA_LK của hồ sơ thanh toán BHYT
type |  | 0..1 | CodeableConcept | Description of identifier Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: MA_LK
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/ma-lk
value | S | 1..1 | string | Giá trị MA_LK
type |  | 1..1 | code | Bundle hồ sơ thanh toán BHYT Required Pattern: collection
timestamp |  | 1..1 | instant | Thời điểm đóng gói bundle hồ sơ thanh toán
entry |  | 1..* | BackboneElement | Danh sách tài nguyên phục vụ hồ sơ BHYT
resource | S | 1..1 | Resource | Resource FHIR
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
vn-bhyt-submission-has-claim | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Claim để biểu diễn chi phí/yêu cầu thanh toán từ chuẩn dữ liệu QĐ 3176/QĐ-BYT và bảng kê QĐ 697/QĐ-BYT | `entry.resource.ofType(Claim).exists()`
vn-bhyt-submission-has-coverage | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Coverage để biểu diễn quyền lợi/thẻ BHYT theo Luật BHYT, NĐ 188/2025/NĐ-CP và các trường thẻ trong QĐ 3176/QĐ-BYT | `entry.resource.ofType(Coverage).exists()`
vn-bhyt-submission-has-patient | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Patient để biểu diễn nhóm thông tin người bệnh trong QĐ 3176/QĐ-BYT và hồ sơ bệnh án điện tử theo TT 13/2025/TT-BYT | `entry.resource.ofType(Patient).exists()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Bundle | C | 0..* | VNCoreBundle | Contains a collection of resources Constraints: bdl-1, bdl-2, bdl-3, bdl-4, bdl-7, bdl-9, bdl-10, bdl-11, bdl-12, vn-bundle-document-first, vn-bhyt-submission-has-claim, vn-bhyt-submission-has-patient, vn-bhyt-submission-has-coverage
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
identifier | S Σ | 1..1 | Identifier | MA_LK của hồ sơ thanh toán BHYT
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: MA_LK
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/ma-lk
value | S Σ | 1..1 | string | Giá trị MA_LK Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
type | S Σ | 1..1 | code | Bundle hồ sơ thanh toán BHYT Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used. Required Pattern: collection
timestamp | S Σ | 1..1 | instant | Thời điểm đóng gói bundle hồ sơ thanh toán
total | Σ C | 0..1 | unsignedInt | If search, the total number of matches
link | Σ | 0..* | BackboneElement | Links related to this Bundle
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
relation | Σ | 1..1 | string | See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1
url | Σ | 1..1 | uri | Reference details for the link
entry | S Σ C | 1..* | BackboneElement | Danh sách tài nguyên phục vụ hồ sơ BHYT Constraints: bdl-5, bdl-8 This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
link | Σ | 0..* | See link (Bundle) | Links related to this entry
fullUrl | Σ | 0..1 | uri | URL đầy đủ
resource | S Σ | 1..1 | Resource | Resource FHIR
search | Σ C | 0..1 | BackboneElement | Search related information
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ | 0..1 | code | match | include | outcome - why this is in the result set Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.
score | Σ | 0..1 | decimal | Search ranking (between 0 and 1)
request | Σ C | 0..1 | BackboneElement | Additional execution information (transaction/batch/history)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
method | Σ | 1..1 | code | GET | HEAD | POST | PUT | DELETE | PATCH Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.
url | Σ | 1..1 | uri | URL for HTTP equivalent of this entry
ifNoneMatch | Σ | 0..1 | string | For managing cache currency
ifModifiedSince | Σ | 0..1 | instant | For managing cache currency
ifMatch | Σ | 0..1 | string | For managing update contention
ifNoneExist | Σ | 0..1 | string | For conditional creates
response | Σ C | 0..1 | BackboneElement | Results of execution (transaction/batch/history)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
status | Σ | 1..1 | string | Status response code (text optional)
location | Σ | 0..1 | uri | The location (if the operation returns a location)
etag | Σ | 0..1 | string | The Etag for the resource (if relevant)
lastModified | Σ | 0..1 | instant | Server's date time modified
outcome | Σ | 0..1 | Resource | OperationOutcome with hints and warnings (for batch/transaction)
signature | Σ | 0..1 | Signature | Digital Signature
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Bundle.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Bundle.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Bundle.identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.
Bundle.type | Base | required | BundleType | 📍4.0.1 | FHIR Std.
Bundle.entry.search.​mode | Base | required | SearchEntryMode | 📍4.0.1 | FHIR Std.
Bundle.entry.request.​method | Base | required | HTTPVerb | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
bdl-1 | error | Bundle | total only when a search or history | `total.empty() or (type = 'searchset') or (type = 'history')`
bdl-2 | error | Bundle | entry.search only when a search | `entry.search.empty() or (type = 'searchset')`
bdl-3 | error | Bundle | entry.request mandatory for batch/transaction/history, otherwise prohibited | `entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))`
bdl-4 | error | Bundle | entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited | `entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history'))`
bdl-5 | error | Bundle.entry | must be a resource unless there's a request or response | `resource.exists() or request.exists() or response.exists()`
bdl-7 | error | Bundle | FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles) | `(type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&resource.meta.versionId).isDistinct()`
bdl-8 | error | Bundle.entry | fullUrl cannot be a version specific reference | `fullUrl.contains('/_history/').not()`
bdl-9 | error | Bundle | A document must have an identifier with a system and a value | `type = 'document' implies (identifier.system.exists() and identifier.value.exists())`
bdl-10 | error | Bundle | A document must have a date | `type = 'document' implies (timestamp.hasValue())`
bdl-11 | error | Bundle | A document must have a Composition as the first resource | `type = 'document' implies entry.first().resource.is(Composition)`
bdl-12 | error | Bundle | A message must have a MessageHeader as the first resource | `type = 'message' implies entry.first().resource.is(MessageHeader)`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
vn-bhyt-submission-has-claim | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Claim để biểu diễn chi phí/yêu cầu thanh toán từ chuẩn dữ liệu QĐ 3176/QĐ-BYT và bảng kê QĐ 697/QĐ-BYT | `entry.resource.ofType(Claim).exists()`
vn-bhyt-submission-has-coverage | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Coverage để biểu diễn quyền lợi/thẻ BHYT theo Luật BHYT, NĐ 188/2025/NĐ-CP và các trường thẻ trong QĐ 3176/QĐ-BYT | `entry.resource.ofType(Coverage).exists()`
vn-bhyt-submission-has-patient | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Patient để biểu diễn nhóm thông tin người bệnh trong QĐ 3176/QĐ-BYT và hồ sơ bệnh án điện tử theo TT 13/2025/TT-BYT | `entry.resource.ofType(Patient).exists()`
vn-bundle-document-first | error | Bundle | Bundle type 'document' phải có Composition là entry đầu tiên (per FHIR Bundle spec) | `type = 'document' implies entry.first().resource.is(Composition)`

Summary

Mandatory: 6 elements
Must-Support: 3 elements
Fixed: 1 element

Dạng xem phần tử chính

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Bundle | C | 0..* | VNCoreBundle | Contains a collection of resources Constraints: bdl-1, bdl-2, bdl-3, bdl-4, bdl-7, bdl-9, bdl-10, bdl-11, bdl-12, vn-bundle-document-first, vn-bhyt-submission-has-claim, vn-bhyt-submission-has-patient, vn-bhyt-submission-has-coverage
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
identifier | S Σ | 1..1 | Identifier | MA_LK của hồ sơ thanh toán BHYT
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: MA_LK
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/ma-lk
value | S Σ | 1..1 | string | Giá trị MA_LK Example General: 123456
type | S Σ | 1..1 | code | Bundle hồ sơ thanh toán BHYT Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used. Required Pattern: collection
timestamp | S Σ | 1..1 | instant | Thời điểm đóng gói bundle hồ sơ thanh toán
entry | S Σ C | 1..* | BackboneElement | Danh sách tài nguyên phục vụ hồ sơ BHYT Constraints: bdl-5, bdl-8 This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
resource | S Σ | 1..1 | Resource | Resource FHIR
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Bundle.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Bundle.identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.
Bundle.type | Base | required | BundleType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
bdl-1 | error | Bundle | total only when a search or history | `total.empty() or (type = 'searchset') or (type = 'history')`
bdl-2 | error | Bundle | entry.search only when a search | `entry.search.empty() or (type = 'searchset')`
bdl-3 | error | Bundle | entry.request mandatory for batch/transaction/history, otherwise prohibited | `entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))`
bdl-4 | error | Bundle | entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited | `entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history'))`
bdl-5 | error | Bundle.entry | must be a resource unless there's a request or response | `resource.exists() or request.exists() or response.exists()`
bdl-7 | error | Bundle | FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles) | `(type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&resource.meta.versionId).isDistinct()`
bdl-8 | error | Bundle.entry | fullUrl cannot be a version specific reference | `fullUrl.contains('/_history/').not()`
bdl-9 | error | Bundle | A document must have an identifier with a system and a value | `type = 'document' implies (identifier.system.exists() and identifier.value.exists())`
bdl-10 | error | Bundle | A document must have a date | `type = 'document' implies (timestamp.hasValue())`
bdl-11 | error | Bundle | A document must have a Composition as the first resource | `type = 'document' implies entry.first().resource.is(Composition)`
bdl-12 | error | Bundle | A message must have a MessageHeader as the first resource | `type = 'message' implies entry.first().resource.is(MessageHeader)`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
vn-bhyt-submission-has-claim | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Claim để biểu diễn chi phí/yêu cầu thanh toán từ chuẩn dữ liệu QĐ 3176/QĐ-BYT và bảng kê QĐ 697/QĐ-BYT | `entry.resource.ofType(Claim).exists()`
vn-bhyt-submission-has-coverage | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Coverage để biểu diễn quyền lợi/thẻ BHYT theo Luật BHYT, NĐ 188/2025/NĐ-CP và các trường thẻ trong QĐ 3176/QĐ-BYT | `entry.resource.ofType(Coverage).exists()`
vn-bhyt-submission-has-patient | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Patient để biểu diễn nhóm thông tin người bệnh trong QĐ 3176/QĐ-BYT và hồ sơ bệnh án điện tử theo TT 13/2025/TT-BYT | `entry.resource.ofType(Patient).exists()`
vn-bundle-document-first | error | Bundle | Bundle type 'document' phải có Composition là entry đầu tiên (per FHIR Bundle spec) | `type = 'document' implies entry.first().resource.is(Composition)`

Dạng xem Differential

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Bundle | C | 0..* | VNCoreBundle | Contains a collection of resources Constraints: vn-bhyt-submission-has-claim, vn-bhyt-submission-has-patient, vn-bhyt-submission-has-coverage
identifier | S | 1..1 | Identifier | MA_LK của hồ sơ thanh toán BHYT
type |  | 0..1 | CodeableConcept | Description of identifier Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: MA_LK
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/ma-lk
value | S | 1..1 | string | Giá trị MA_LK
type |  | 1..1 | code | Bundle hồ sơ thanh toán BHYT Required Pattern: collection
timestamp |  | 1..1 | instant | Thời điểm đóng gói bundle hồ sơ thanh toán
entry |  | 1..* | BackboneElement | Danh sách tài nguyên phục vụ hồ sơ BHYT
resource | S | 1..1 | Resource | Resource FHIR
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
vn-bhyt-submission-has-claim | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Claim để biểu diễn chi phí/yêu cầu thanh toán từ chuẩn dữ liệu QĐ 3176/QĐ-BYT và bảng kê QĐ 697/QĐ-BYT | `entry.resource.ofType(Claim).exists()`
vn-bhyt-submission-has-coverage | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Coverage để biểu diễn quyền lợi/thẻ BHYT theo Luật BHYT, NĐ 188/2025/NĐ-CP và các trường thẻ trong QĐ 3176/QĐ-BYT | `entry.resource.ofType(Coverage).exists()`
vn-bhyt-submission-has-patient | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Patient để biểu diễn nhóm thông tin người bệnh trong QĐ 3176/QĐ-BYT và hồ sơ bệnh án điện tử theo TT 13/2025/TT-BYT | `entry.resource.ofType(Patient).exists()`

Dạng xem SnapshotView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Bundle | C | 0..* | VNCoreBundle | Contains a collection of resources Constraints: bdl-1, bdl-2, bdl-3, bdl-4, bdl-7, bdl-9, bdl-10, bdl-11, bdl-12, vn-bundle-document-first, vn-bhyt-submission-has-claim, vn-bhyt-submission-has-patient, vn-bhyt-submission-has-coverage
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
identifier | S Σ | 1..1 | Identifier | MA_LK của hồ sơ thanh toán BHYT
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: MA_LK
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
system | Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/ma-lk
value | S Σ | 1..1 | string | Giá trị MA_LK Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
type | S Σ | 1..1 | code | Bundle hồ sơ thanh toán BHYT Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used. Required Pattern: collection
timestamp | S Σ | 1..1 | instant | Thời điểm đóng gói bundle hồ sơ thanh toán
total | Σ C | 0..1 | unsignedInt | If search, the total number of matches
link | Σ | 0..* | BackboneElement | Links related to this Bundle
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
relation | Σ | 1..1 | string | See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1
url | Σ | 1..1 | uri | Reference details for the link
entry | S Σ C | 1..* | BackboneElement | Danh sách tài nguyên phục vụ hồ sơ BHYT Constraints: bdl-5, bdl-8 This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
link | Σ | 0..* | See link (Bundle) | Links related to this entry
fullUrl | Σ | 0..1 | uri | URL đầy đủ
resource | S Σ | 1..1 | Resource | Resource FHIR
search | Σ C | 0..1 | BackboneElement | Search related information
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
mode | Σ | 0..1 | code | match | include | outcome - why this is in the result set Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.
score | Σ | 0..1 | decimal | Search ranking (between 0 and 1)
request | Σ C | 0..1 | BackboneElement | Additional execution information (transaction/batch/history)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
method | Σ | 1..1 | code | GET | HEAD | POST | PUT | DELETE | PATCH Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.
url | Σ | 1..1 | uri | URL for HTTP equivalent of this entry
ifNoneMatch | Σ | 0..1 | string | For managing cache currency
ifModifiedSince | Σ | 0..1 | instant | For managing cache currency
ifMatch | Σ | 0..1 | string | For managing update contention
ifNoneExist | Σ | 0..1 | string | For conditional creates
response | Σ C | 0..1 | BackboneElement | Results of execution (transaction/batch/history)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
status | Σ | 1..1 | string | Status response code (text optional)
location | Σ | 0..1 | uri | The location (if the operation returns a location)
etag | Σ | 0..1 | string | The Etag for the resource (if relevant)
lastModified | Σ | 0..1 | instant | Server's date time modified
outcome | Σ | 0..1 | Resource | OperationOutcome with hints and warnings (for batch/transaction)
signature | Σ | 0..1 | Signature | Digital Signature
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Bundle.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Bundle.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Bundle.identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.
Bundle.type | Base | required | BundleType | 📍4.0.1 | FHIR Std.
Bundle.entry.search.​mode | Base | required | SearchEntryMode | 📍4.0.1 | FHIR Std.
Bundle.entry.request.​method | Base | required | HTTPVerb | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
bdl-1 | error | Bundle | total only when a search or history | `total.empty() or (type = 'searchset') or (type = 'history')`
bdl-2 | error | Bundle | entry.search only when a search | `entry.search.empty() or (type = 'searchset')`
bdl-3 | error | Bundle | entry.request mandatory for batch/transaction/history, otherwise prohibited | `entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))`
bdl-4 | error | Bundle | entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited | `entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history'))`
bdl-5 | error | Bundle.entry | must be a resource unless there's a request or response | `resource.exists() or request.exists() or response.exists()`
bdl-7 | error | Bundle | FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles) | `(type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&resource.meta.versionId).isDistinct()`
bdl-8 | error | Bundle.entry | fullUrl cannot be a version specific reference | `fullUrl.contains('/_history/').not()`
bdl-9 | error | Bundle | A document must have an identifier with a system and a value | `type = 'document' implies (identifier.system.exists() and identifier.value.exists())`
bdl-10 | error | Bundle | A document must have a date | `type = 'document' implies (timestamp.hasValue())`
bdl-11 | error | Bundle | A document must have a Composition as the first resource | `type = 'document' implies entry.first().resource.is(Composition)`
bdl-12 | error | Bundle | A message must have a MessageHeader as the first resource | `type = 'message' implies entry.first().resource.is(MessageHeader)`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
vn-bhyt-submission-has-claim | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Claim để biểu diễn chi phí/yêu cầu thanh toán từ chuẩn dữ liệu QĐ 3176/QĐ-BYT và bảng kê QĐ 697/QĐ-BYT | `entry.resource.ofType(Claim).exists()`
vn-bhyt-submission-has-coverage | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Coverage để biểu diễn quyền lợi/thẻ BHYT theo Luật BHYT, NĐ 188/2025/NĐ-CP và các trường thẻ trong QĐ 3176/QĐ-BYT | `entry.resource.ofType(Coverage).exists()`
vn-bhyt-submission-has-patient | error | Bundle | Bundle hồ sơ thanh toán BHYT phải chứa ít nhất một Patient để biểu diễn nhóm thông tin người bệnh trong QĐ 3176/QĐ-BYT và hồ sơ bệnh án điện tử theo TT 13/2025/TT-BYT | `entry.resource.ofType(Patient).exists()`
vn-bundle-document-first | error | Bundle | Bundle type 'document' phải có Composition là entry đầu tiên (per FHIR Bundle spec) | `type = 'document' implies entry.first().resource.is(Composition)`

Summary

Mandatory: 6 elements
Must-Support: 3 elements
Fixed: 1 element

Biểu diễn khác của hồ sơ: CSV, Excel, Schematron