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
| URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-claim-response | Phiên bản: 0.10.0 | ||||
| Computable Name: VNCoreClaimResponse | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.35 | |||||
Profile ClaimResponse cho Việt Nam. Kết quả xử lý yêu cầu thanh toán BHYT.
Đây là nơi nhận kết quả giám định của cơ quan bảo hiểm xã hội (ADR-0021 quyết định D6). Cơ quan
bảo hiểm xã hội trả kết quả giám định chứ không phát hành ExplanationOfBenefit; ClaimResponse.item.adjudication
trong FHIR R4 vốn đã là 1..* nên chịu được toàn bộ kết quả theo từng dòng. ExplanationOfBenefit
lùi về vai trò tuỳ chọn, hướng người bệnh — dùng khi cần trình bày lại chi phí trên Sổ sức khoẻ điện tử.
Bao gồm adjudication chi tiết: tổng đề nghị, đủ điều kiện, cùng chi trả, BHYT thanh toán.
Cặp đôi với VNCoreClaim — Claim là yêu cầu, ClaimResponse là kết quả.
Một đợt KCB được biểu diễn bằng một Claim với một MA_LK; Claim có thể mang nhiều insurance khi
người bệnh được cấp thẻ mới giữa đợt hoặc có đồng thời nhiều thẻ/quyền lợi, và đúng một mục là
focal = true. Một ClaimResponse phản hồi toàn bộ hồ sơ đó. Claim.related vẫn là quan hệ tuỳ chọn
theo ngữ nghĩa FHIR prior/associated; VN Core không đặt nghĩa vụ hỗ trợ tối thiểu và không dùng
phần tử này để hướng dẫn chia đợt hoặc sinh MA_LK mới. Luồng điều chỉnh/bổ sung chưa được VN Core
0.10.0 quy định mô hình FHIR.
Mã phản hồi gateway như XML1_ID được biểu diễn bằng identifier slice riêng; không thay thế MA_LK của Claim/Bundle.
Căn cứ:
Usages:
You can also check for usages in the FHIR IG Statistics
Mô tả profile, differential, snapshot và các biểu diễn liên quan.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | ClaimResponse | Response to a claim predetermination or preauthorization Constraints: vn-claim-response-error-outcome-coherent, vn-claim-response-denied-complete, vn-claim-response-itemized, vn-claim-response-total-matches-items, vn-claim-response-reduction-evidenced, vn-claim-response-reduction-evidenced-nested, vn-claim-response-reduction-evidenced-header, vn-claim-response-adjudication-unique-category, vn-claim-response-correlation-anchor, vn-claim-response-money-vnd | ||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||
![]() ![]() |
SO | 0..* | Identifier | Định danh kết quả xử lý, bao gồm mã phản hồi gateway nếu có Slice: Unordered, Open by value:system
| ||||||
![]() ![]() ![]() |
SO | 0..1 | Identifier | Mã phản hồi Cổng tiếp nhận BHYT (XML1_ID)
| ||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | ||||||
![]() ![]() ![]() ![]() |
Σ | 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 | ||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: BHYT_XML1_ID | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/bhyt-gateway-response-id | ||||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | Giá trị XML1_ID hoặc mã phản hồi tương đương Example General: 123456 | ||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Trạng thái kết quả: active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.
| ||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | Loại: institutional (nội trú) | professional (ngoại trú) Binding: ClaimTypeCodes (extensible): The type or discipline-style of the claim.
| ||||||
![]() ![]() |
SOΣ | 1..1 | code | Mục đích: claim | preauthorization | predetermination Binding: Use (required): Claim, preauthorization, predetermination.
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân
| ||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | Ngày tạo kết quả
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Organization) | Cơ quan BHXH giải quyết
| ||||||
![]() ![]() |
SOΣ | 0..1 | Reference(Yêu cầu thanh toán KCB VN Core — VN Core Claim Profile) | Yêu cầu thanh toán gốc (VNCoreClaim)
| ||||||
![]() ![]() |
SOΣ | 1..1 | code | Kết quả: queued | complete | error | partial Binding: ClaimProcessingCodes (required): The result of the claim processing.
| ||||||
![]() ![]() |
SO | 0..* | BackboneElement | Kết quả từng dòng chi phí
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
S | 1..1 | positiveInt | Claim item instance identifier | ||||||
![]() ![]() ![]() |
S | 1..* | BackboneElement | Phân bổ chi phí: đề nghị, đủ ĐK, cùng chi trả, BHYT thanh toán | ||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Căn cứ pháp lý của kết quả giám định (bắt buộc khi từ chối/thu hồi) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence | ||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Loại: submitted | eligible | copay | benefit | denied | recovered Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Lý do của kết quả giám định — bắt buộc khi category là denied hoặc recovered Binding: Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | Money | Số tiền (VND, đơn vị đồng — xem quy ước đơn vị tiền bên dưới) | ||||||
![]() ![]() |
SOΣ | 0..* | BackboneElement | Tổng adjudication
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Loại tổng: submitted | eligible | copay | benefit hoặc category BHYT cục bộ Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | Money | Financial total for the category | ||||||
![]() ![]() |
0..1 | BackboneElement | Thông tin thanh toán | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
1..1 | CodeableConcept | Partial or complete payment Binding: ExamplePaymentTypeCodes (example): The type (partial, complete) of the payment. | |||||||
![]() ![]() ![]() |
1..1 | Money | Số tiền BHXH thanh toán | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Lỗi xử lý khiến hồ sơ không adjudicate được
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Dòng chi phí liên quan nếu có | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Detail sequence number | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Subdetail sequence number | ||||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Mã lỗi xử lý Binding: Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet (extensible) | ||||||
Documentation for this format | ||||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ClaimResponse.identifier:gatewayResponseId.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| ClaimResponse.identifier:gatewayResponseId.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| ClaimResponse.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.type | Base | extensible | Claim Type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.use | Base | required | Use | 📍4.0.1 | FHIR Std. |
| ClaimResponse.outcome | Base | required | Claim Processing Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.item.adjudication.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.item.adjudication.reason | Base | extensible | Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.total.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.payment.type | Base | example | Example Payment Type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.error.code | Base | extensible | Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ClaimResponse | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ClaimResponse | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | ClaimResponse | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | ClaimResponse | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ClaimResponse | A resource should have narrative for robust management |
text.`div`.exists()
|
| 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-claim-response-adjudication-unique-category | error | ClaimResponse | Trong một cụm adjudication (header, item, chi tiết, chi tiết phụ, dòng bổ sung và các tầng con của nó), mỗi category HL7 chuẩn chỉ xuất hiện một lần — hợp đồng mapping OHP mà phép so sánh giảm-tiền dựa vào. Within each adjudication set every standard HL7 category SHALL appear at most once. |
adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct() and item.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct())
|
| vn-claim-response-correlation-anchor | error | ClaimResponse | Kết quả giám định đang hiệu lực phải đối soát được BẰNG GIÁ TRỊ THẬT: request phải là reference giải quyết được (không display-only) hoặc identifier phải có value — Identifier rỗng/Reference chỉ có display không đối soát được với hồ sơ nào (siết round 3, 13/08/2026). An active ClaimResponse SHALL carry a resolvable request reference or an identifier WITH a value. |
status != 'active' or request.reference.exists() or identifier.value.exists()
|
| vn-claim-response-denied-complete | error | ClaimResponse | Khoản tiền bị từ chối hoặc bị thu hồi phải có số tiền không âm, lý do và ít nhất một căn cứ pháp lý. A denied or recovered amount SHALL carry a non-negative amount, a reason and at least one legal basis. |
(adjudication | item.adjudication | item.detail.adjudication | item.detail.subDetail.adjudication | addItem.adjudication | addItem.detail.adjudication | addItem.detail.subDetail.adjudication).where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).all(amount.value.exists() and amount.value >= 0 and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists())
|
| vn-claim-response-error-outcome-coherent | error | ClaimResponse | Có lỗi xử lý thì outcome phải là `error`. When a processing error is present, outcome SHALL be `error`. |
error.empty() or outcome = 'error'
|
| vn-claim-response-itemized | error | ClaimResponse | Phản hồi giám định phải liệt kê từng dòng chi phí, trừ khi kết quả là lỗi kỹ thuật. An adjudication response SHALL be itemized unless its outcome is an error. |
outcome = 'error' or item.exists()
|
| vn-claim-response-money-vnd | error | ClaimResponse | Mọi khoản tiền của kết quả giám định phải dùng VND. Every monetary amount in the adjudication result SHALL use VND. |
descendants().ofType(Money).all(currency = 'VND')
|
| vn-claim-response-reduction-evidenced | error | ClaimResponse | Dòng chi phí có số đủ điều kiện thấp hơn số đề nghị phải mang bằng chứng tường minh: hoặc kết quả từ chối/thu hồi (category denied/recovered kèm lý do và căn cứ), hoặc dòng eligible mang lý do + căn cứ pháp lý (khoản ngoài phạm vi hưởng) — không được giảm tiền im lặng. An item whose eligible amount is lower than submitted SHALL carry either an explicit denied/recovered adjudication or a reason plus legal basis on the eligible adjudication. |
item.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-reduction-evidenced-header | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho cả adjudication cấp tổng thể của ClaimResponse. The reduction-evidence rule SHALL also hold on the header-level ClaimResponse.adjudication. |
adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()
|
| vn-claim-response-reduction-evidenced-nested | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho MỌI đường adjudication còn lại: dòng chi tiết, chi tiết phụ, dòng bổ sung và chi tiết/chi tiết phụ của dòng bổ sung — hậu kiểm 13/08/2026 chỉ ra addItem.detail/subDetail chưa được phủ. The reduction-evidence rule SHALL hold on item.detail, item.detail.subDetail, addItem, addItem.detail and addItem.detail.subDetail adjudications. |
item.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and item.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-total-matches-items | error | ClaimResponse | Mỗi tổng theo mã adjudication chuẩn phải bằng tổng các dòng cùng mã. Each total for a standard adjudication category SHALL equal the sum of the matching item adjudications. |
item.empty() or ((total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.aggregate($this + $total, 0)))
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | ClaimResponse | Response to a claim predetermination or preauthorization Constraints: vn-claim-response-error-outcome-coherent, vn-claim-response-denied-complete, vn-claim-response-itemized, vn-claim-response-total-matches-items, vn-claim-response-reduction-evidenced, vn-claim-response-reduction-evidenced-nested, vn-claim-response-reduction-evidenced-header, vn-claim-response-adjudication-unique-category, vn-claim-response-correlation-anchor, vn-claim-response-money-vnd | ||||||
![]() ![]() |
SO | 0..* | Identifier | Định danh kết quả xử lý, bao gồm mã phản hồi gateway nếu có Slice: Unordered, Open by value:system
| ||||||
![]() ![]() ![]() |
SO | 0..1 | Identifier | Mã phản hồi Cổng tiếp nhận BHYT (XML1_ID)
| ||||||
![]() ![]() ![]() ![]() |
0..1 | CodeableConcept | Description of identifier Required Pattern: At least the following | |||||||
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: BHYT_XML1_ID | |||||||
![]() ![]() ![]() ![]() |
1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/bhyt-gateway-response-id | |||||||
![]() ![]() ![]() ![]() |
S | 1..1 | string | Giá trị XML1_ID hoặc mã phản hồi tương đương | ||||||
![]() ![]() |
SO | 1..1 | code | Trạng thái kết quả: active | cancelled | draft | entered-in-error
| ||||||
![]() ![]() |
SO | 1..1 | CodeableConcept | Loại: institutional (nội trú) | professional (ngoại trú)
| ||||||
![]() ![]() |
SO | 1..1 | code | Mục đích: claim | preauthorization | predetermination
| ||||||
![]() ![]() |
SO | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân
| ||||||
![]() ![]() |
SO | 1..1 | dateTime | Ngày tạo kết quả
| ||||||
![]() ![]() |
SO | 1..1 | Reference(Organization) | Cơ quan BHXH giải quyết
| ||||||
![]() ![]() |
SO | 0..1 | Reference(Yêu cầu thanh toán KCB VN Core — VN Core Claim Profile) | Yêu cầu thanh toán gốc (VNCoreClaim)
| ||||||
![]() ![]() |
SO | 1..1 | code | Kết quả: queued | complete | error | partial
| ||||||
![]() ![]() |
SO | 0..* | BackboneElement | Kết quả từng dòng chi phí
| ||||||
![]() ![]() ![]() |
S | 1..1 | positiveInt | Claim item instance identifier | ||||||
![]() ![]() ![]() |
S | 1..* | BackboneElement | Phân bổ chi phí: đề nghị, đủ ĐK, cùng chi trả, BHYT thanh toán | ||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Căn cứ pháp lý của kết quả giám định (bắt buộc khi từ chối/thu hồi) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence | ||||||
![]() ![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Loại: submitted | eligible | copay | benefit | denied | recovered Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Lý do của kết quả giám định — bắt buộc khi category là denied hoặc recovered Binding: Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | Money | Số tiền (VND, đơn vị đồng — xem quy ước đơn vị tiền bên dưới) | ||||||
![]() ![]() |
SO | 0..* | BackboneElement | Tổng adjudication
| ||||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Loại tổng: submitted | eligible | copay | benefit hoặc category BHYT cục bộ Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() |
S | 1..1 | Money | Financial total for the category | ||||||
![]() ![]() |
0..1 | BackboneElement | Thông tin thanh toán | |||||||
![]() ![]() ![]() |
1..1 | Money | Số tiền BHXH thanh toán | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Lỗi xử lý khiến hồ sơ không adjudicate được
| ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Dòng chi phí liên quan nếu có | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Detail sequence number | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Subdetail sequence number | ||||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Mã lỗi xử lý Binding: Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet (extensible) | ||||||
Documentation for this format | ||||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ClaimResponse.item.adjudication.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.item.adjudication.reason | Base | extensible | Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.total.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.error.code | Base | extensible | Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| vn-claim-response-adjudication-unique-category | error | ClaimResponse | Trong một cụm adjudication (header, item, chi tiết, chi tiết phụ, dòng bổ sung và các tầng con của nó), mỗi category HL7 chuẩn chỉ xuất hiện một lần — hợp đồng mapping OHP mà phép so sánh giảm-tiền dựa vào. Within each adjudication set every standard HL7 category SHALL appear at most once. |
adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct() and item.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct())
|
| vn-claim-response-correlation-anchor | error | ClaimResponse | Kết quả giám định đang hiệu lực phải đối soát được BẰNG GIÁ TRỊ THẬT: request phải là reference giải quyết được (không display-only) hoặc identifier phải có value — Identifier rỗng/Reference chỉ có display không đối soát được với hồ sơ nào (siết round 3, 13/08/2026). An active ClaimResponse SHALL carry a resolvable request reference or an identifier WITH a value. |
status != 'active' or request.reference.exists() or identifier.value.exists()
|
| vn-claim-response-denied-complete | error | ClaimResponse | Khoản tiền bị từ chối hoặc bị thu hồi phải có số tiền không âm, lý do và ít nhất một căn cứ pháp lý. A denied or recovered amount SHALL carry a non-negative amount, a reason and at least one legal basis. |
(adjudication | item.adjudication | item.detail.adjudication | item.detail.subDetail.adjudication | addItem.adjudication | addItem.detail.adjudication | addItem.detail.subDetail.adjudication).where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).all(amount.value.exists() and amount.value >= 0 and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists())
|
| vn-claim-response-error-outcome-coherent | error | ClaimResponse | Có lỗi xử lý thì outcome phải là `error`. When a processing error is present, outcome SHALL be `error`. |
error.empty() or outcome = 'error'
|
| vn-claim-response-itemized | error | ClaimResponse | Phản hồi giám định phải liệt kê từng dòng chi phí, trừ khi kết quả là lỗi kỹ thuật. An adjudication response SHALL be itemized unless its outcome is an error. |
outcome = 'error' or item.exists()
|
| vn-claim-response-money-vnd | error | ClaimResponse | Mọi khoản tiền của kết quả giám định phải dùng VND. Every monetary amount in the adjudication result SHALL use VND. |
descendants().ofType(Money).all(currency = 'VND')
|
| vn-claim-response-reduction-evidenced | error | ClaimResponse | Dòng chi phí có số đủ điều kiện thấp hơn số đề nghị phải mang bằng chứng tường minh: hoặc kết quả từ chối/thu hồi (category denied/recovered kèm lý do và căn cứ), hoặc dòng eligible mang lý do + căn cứ pháp lý (khoản ngoài phạm vi hưởng) — không được giảm tiền im lặng. An item whose eligible amount is lower than submitted SHALL carry either an explicit denied/recovered adjudication or a reason plus legal basis on the eligible adjudication. |
item.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-reduction-evidenced-header | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho cả adjudication cấp tổng thể của ClaimResponse. The reduction-evidence rule SHALL also hold on the header-level ClaimResponse.adjudication. |
adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()
|
| vn-claim-response-reduction-evidenced-nested | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho MỌI đường adjudication còn lại: dòng chi tiết, chi tiết phụ, dòng bổ sung và chi tiết/chi tiết phụ của dòng bổ sung — hậu kiểm 13/08/2026 chỉ ra addItem.detail/subDetail chưa được phủ. The reduction-evidence rule SHALL hold on item.detail, item.detail.subDetail, addItem, addItem.detail and addItem.detail.subDetail adjudications. |
item.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and item.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-total-matches-items | error | ClaimResponse | Mỗi tổng theo mã adjudication chuẩn phải bằng tổng các dòng cùng mã. Each total for a standard adjudication category SHALL equal the sum of the matching item adjudications. |
item.empty() or ((total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.aggregate($this + $total, 0)))
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | ClaimResponse | Response to a claim predetermination or preauthorization Constraints: vn-claim-response-error-outcome-coherent, vn-claim-response-denied-complete, vn-claim-response-itemized, vn-claim-response-total-matches-items, vn-claim-response-reduction-evidenced, vn-claim-response-reduction-evidenced-nested, vn-claim-response-reduction-evidenced-header, vn-claim-response-adjudication-unique-category, vn-claim-response-correlation-anchor, vn-claim-response-money-vnd | ||||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||
![]() ![]() |
SO | 0..* | Identifier | Định danh kết quả xử lý, bao gồm mã phản hồi gateway nếu có Slice: Unordered, Open by value:system
| ||||||
![]() ![]() ![]() |
SO | 0..1 | Identifier | Mã phản hồi Cổng tiếp nhận BHYT (XML1_ID)
| ||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | ||||||
![]() ![]() ![]() ![]() |
Σ | 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 | ||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: BHYT_XML1_ID | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/bhyt-gateway-response-id | ||||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | Giá trị XML1_ID hoặc mã phản hồi tương đương Example General: 123456 | ||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use | ||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) | ||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Trạng thái kết quả: active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.
| ||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | Loại: institutional (nội trú) | professional (ngoại trú) Binding: ClaimTypeCodes (extensible): The type or discipline-style of the claim.
| ||||||
![]() ![]() |
0..1 | CodeableConcept | More granular claim type Binding: ExampleClaimSubTypeCodes (example): A more granular claim typecode. | |||||||
![]() ![]() |
SOΣ | 1..1 | code | Mục đích: claim | preauthorization | predetermination Binding: Use (required): Claim, preauthorization, predetermination.
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân
| ||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | Ngày tạo kết quả
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Organization) | Cơ quan BHXH giải quyết
| ||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole | Organization) | Party responsible for the claim | |||||||
![]() ![]() |
SOΣ | 0..1 | Reference(Yêu cầu thanh toán KCB VN Core — VN Core Claim Profile) | Yêu cầu thanh toán gốc (VNCoreClaim)
| ||||||
![]() ![]() |
SOΣ | 1..1 | code | Kết quả: queued | complete | error | partial Binding: ClaimProcessingCodes (required): The result of the claim processing.
| ||||||
![]() ![]() |
0..1 | string | Disposition Message | |||||||
![]() ![]() |
0..1 | string | Preauthorization reference | |||||||
![]() ![]() |
0..1 | Period | Preauthorization reference effective period | |||||||
![]() ![]() |
0..1 | CodeableConcept | Party to be paid any benefits payable Binding: Claim Payee Type Codes (example): A code for the party to be reimbursed. | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Kết quả từng dòng chi phí
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
S | 1..1 | positiveInt | Claim item instance identifier | ||||||
![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() |
S | 1..* | BackboneElement | Phân bổ chi phí: đề nghị, đủ ĐK, cùng chi trả, BHYT thanh toán | ||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Căn cứ pháp lý của kết quả giám định (bắt buộc khi từ chối/thu hồi) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence | ||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Loại: submitted | eligible | copay | benefit | denied | recovered Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Lý do của kết quả giám định — bắt buộc khi category là denied hoặc recovered Binding: Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | Money | Số tiền (VND, đơn vị đồng — xem quy ước đơn vị tiền bên dưới) | ||||||
![]() ![]() ![]() ![]() |
0..1 | decimal | Non-monetary value | |||||||
![]() ![]() ![]() |
0..* | BackboneElement | Adjudication for claim details | |||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() |
1..1 | positiveInt | Claim detail instance identifier | |||||||
![]() ![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() ![]() |
1..* | See adjudication (ClaimResponse) | Detail level adjudication details | |||||||
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Adjudication for claim sub-details | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() ![]() |
1..1 | positiveInt | Claim sub-detail instance identifier | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | See adjudication (ClaimResponse) | Subdetail level adjudication details | |||||||
![]() ![]() |
0..* | BackboneElement | Insurer added line items | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
0..* | positiveInt | Item sequence number | |||||||
![]() ![]() ![]() |
0..* | positiveInt | Detail sequence number | |||||||
![]() ![]() ![]() |
0..* | positiveInt | Subdetail sequence number | |||||||
![]() ![]() ![]() |
0..* | Reference(Practitioner | PractitionerRole | Organization) | Authorized providers | |||||||
![]() ![]() ![]() |
1..1 | CodeableConcept | Billing, service, product, or drug code Binding: USCLSCodes (example): Allowable service and product codes. | |||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Service/Product billing modifiers Binding: ModifierTypeCodes (example): Item type or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen. | |||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Program the product or service is provided under Binding: ExampleProgramReasonCodes (example): Program specific reason codes. | |||||||
![]() ![]() ![]() |
0..1 | Date or dates of service or product delivery | ||||||||
![]() ![]() ![]() ![]() |
date | |||||||||
![]() ![]() ![]() ![]() |
Period | |||||||||
![]() ![]() ![]() |
0..1 | Place of service or where product was supplied Binding: ExampleServicePlaceCodes (example): Place of service: pharmacy, school, prison, etc. | ||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
Address | |||||||||
![]() ![]() ![]() ![]() |
Reference(Location) | |||||||||
![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Count of products or services | |||||||
![]() ![]() ![]() |
0..1 | Money | Fee, charge or cost per item | |||||||
![]() ![]() ![]() |
0..1 | decimal | Price scaling factor | |||||||
![]() ![]() ![]() |
0..1 | Money | Total item cost | |||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Anatomical location Binding: OralSiteCodes (example): The code for the teeth, quadrant, sextant and arch. | |||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Anatomical sub-location Binding: SurfaceCodes (example): The code for the tooth surface and surface combinations. | |||||||
![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() |
1..* | See adjudication (ClaimResponse) | Added items adjudication | |||||||
![]() ![]() ![]() |
0..* | BackboneElement | Insurer added line details | |||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | Billing, service, product, or drug code Binding: USCLSCodes (example): Allowable service and product codes. | |||||||
![]() ![]() ![]() ![]() |
0..* | CodeableConcept | Service/Product billing modifiers Binding: ModifierTypeCodes (example): Item type or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen. | |||||||
![]() ![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Count of products or services | |||||||
![]() ![]() ![]() ![]() |
0..1 | Money | Fee, charge or cost per item | |||||||
![]() ![]() ![]() ![]() |
0..1 | decimal | Price scaling factor | |||||||
![]() ![]() ![]() ![]() |
0..1 | Money | Total item cost | |||||||
![]() ![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() ![]() |
1..* | See adjudication (ClaimResponse) | Added items detail adjudication | |||||||
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Insurer added line items | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | Billing, service, product, or drug code Binding: USCLSCodes (example): Allowable service and product codes. | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | CodeableConcept | Service/Product billing modifiers Binding: ModifierTypeCodes (example): Item type or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen. | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Count of products or services | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | Money | Fee, charge or cost per item | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | decimal | Price scaling factor | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | Money | Total item cost | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() ![]() ![]() |
1..* | See adjudication (ClaimResponse) | Added items detail adjudication | |||||||
![]() ![]() |
0..* | See adjudication (ClaimResponse) | Header-level adjudication | |||||||
![]() ![]() |
SOΣ | 0..* | BackboneElement | Tổng adjudication
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Loại tổng: submitted | eligible | copay | benefit hoặc category BHYT cục bộ Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | Money | Financial total for the category | ||||||
![]() ![]() |
0..1 | BackboneElement | Thông tin thanh toán | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
1..1 | CodeableConcept | Partial or complete payment Binding: ExamplePaymentTypeCodes (example): The type (partial, complete) of the payment. | |||||||
![]() ![]() ![]() |
0..1 | Money | Payment adjustment for non-claim issues | |||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Explanation for the adjustment Binding: PaymentAdjustmentReasonCodes (example): Payment Adjustment reason codes. | |||||||
![]() ![]() ![]() |
0..1 | date | Expected date of payment | |||||||
![]() ![]() ![]() |
1..1 | Money | Số tiền BHXH thanh toán | |||||||
![]() ![]() ![]() |
0..1 | Identifier | Business identifier for the payment | |||||||
![]() ![]() |
0..1 | CodeableConcept | Funds reserved status Binding: Funds Reservation Codes (example): For whom funds are to be reserved: (Patient, Provider, None). | |||||||
![]() ![]() |
0..1 | CodeableConcept | Printed form identifier Binding: Form Codes (example): The forms codes. | |||||||
![]() ![]() |
0..1 | Attachment | Printed reference or actual form | |||||||
![]() ![]() |
0..* | BackboneElement | Note concerning adjudication | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
0..1 | positiveInt | Note instance identifier | |||||||
![]() ![]() ![]() |
0..1 | code | display | print | printoper Binding: NoteType (required): The presentation types of notes. | |||||||
![]() ![]() ![]() |
1..1 | string | Note explanatory text | |||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Language of the text Binding: CommonLanguages (preferred): A human language.
| |||||||
![]() ![]() |
0..* | Reference(CommunicationRequest) | Request for additional information | |||||||
![]() ![]() |
0..* | BackboneElement | Patient insurance information | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
1..1 | positiveInt | Insurance instance identifier | |||||||
![]() ![]() ![]() |
1..1 | boolean | Coverage to be used for adjudication | |||||||
![]() ![]() ![]() |
1..1 | Reference(Coverage) | Insurance information | |||||||
![]() ![]() ![]() |
0..1 | string | Additional provider contract number | |||||||
![]() ![]() ![]() |
0..1 | Reference(ClaimResponse) | Adjudication results | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Lỗi xử lý khiến hồ sơ không adjudicate được
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Dòng chi phí liên quan nếu có | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Detail sequence number | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Subdetail sequence number | ||||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Mã lỗi xử lý Binding: Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet (extensible) | ||||||
Documentation for this format | ||||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ClaimResponse.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| ClaimResponse.identifier:gatewayResponseId.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| ClaimResponse.identifier:gatewayResponseId.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| ClaimResponse.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.type | Base | extensible | Claim Type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.subType | Base | example | Example Claim SubType Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.use | Base | required | Use | 📍4.0.1 | FHIR Std. |
| ClaimResponse.outcome | Base | required | Claim Processing Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.payeeType | Base | example | PayeeType | 📍4.0.1 | FHIR Std. |
| ClaimResponse.item.adjudication.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.item.adjudication.reason | Base | extensible | Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.addItem.productOrService | Base | example | USCLS Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.modifier | Base | example | Modifier type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.programCode | Base | example | Example Program Reason Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.location[x] | Base | example | Example Service Place Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.bodySite | Base | example | Oral Site Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.subSite | Base | example | Surface Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.detail.productOrService | Base | example | USCLS Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.detail.modifier | Base | example | Modifier type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.detail.subDetail.productOrService | Base | example | USCLS Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.detail.subDetail.modifier | Base | example | Modifier type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.total.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.payment.type | Base | example | Example Payment Type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.payment.adjustmentReason | Base | example | Payment Adjustment Reason Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.fundsReserve | Base | example | FundsReserve | 📍4.0.1 | FHIR Std. |
| ClaimResponse.formCode | Base | example | Forms | 📍4.0.1 | FHIR Std. |
| ClaimResponse.processNote.type | Base | required | NoteType | 📍4.0.1 | FHIR Std. |
| ClaimResponse.processNote.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| ClaimResponse.error.code | Base | extensible | Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ClaimResponse | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ClaimResponse | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | ClaimResponse | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | ClaimResponse | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ClaimResponse | A resource should have narrative for robust management |
text.`div`.exists()
|
| 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-claim-response-adjudication-unique-category | error | ClaimResponse | Trong một cụm adjudication (header, item, chi tiết, chi tiết phụ, dòng bổ sung và các tầng con của nó), mỗi category HL7 chuẩn chỉ xuất hiện một lần — hợp đồng mapping OHP mà phép so sánh giảm-tiền dựa vào. Within each adjudication set every standard HL7 category SHALL appear at most once. |
adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct() and item.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct())
|
| vn-claim-response-correlation-anchor | error | ClaimResponse | Kết quả giám định đang hiệu lực phải đối soát được BẰNG GIÁ TRỊ THẬT: request phải là reference giải quyết được (không display-only) hoặc identifier phải có value — Identifier rỗng/Reference chỉ có display không đối soát được với hồ sơ nào (siết round 3, 13/08/2026). An active ClaimResponse SHALL carry a resolvable request reference or an identifier WITH a value. |
status != 'active' or request.reference.exists() or identifier.value.exists()
|
| vn-claim-response-denied-complete | error | ClaimResponse | Khoản tiền bị từ chối hoặc bị thu hồi phải có số tiền không âm, lý do và ít nhất một căn cứ pháp lý. A denied or recovered amount SHALL carry a non-negative amount, a reason and at least one legal basis. |
(adjudication | item.adjudication | item.detail.adjudication | item.detail.subDetail.adjudication | addItem.adjudication | addItem.detail.adjudication | addItem.detail.subDetail.adjudication).where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).all(amount.value.exists() and amount.value >= 0 and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists())
|
| vn-claim-response-error-outcome-coherent | error | ClaimResponse | Có lỗi xử lý thì outcome phải là `error`. When a processing error is present, outcome SHALL be `error`. |
error.empty() or outcome = 'error'
|
| vn-claim-response-itemized | error | ClaimResponse | Phản hồi giám định phải liệt kê từng dòng chi phí, trừ khi kết quả là lỗi kỹ thuật. An adjudication response SHALL be itemized unless its outcome is an error. |
outcome = 'error' or item.exists()
|
| vn-claim-response-money-vnd | error | ClaimResponse | Mọi khoản tiền của kết quả giám định phải dùng VND. Every monetary amount in the adjudication result SHALL use VND. |
descendants().ofType(Money).all(currency = 'VND')
|
| vn-claim-response-reduction-evidenced | error | ClaimResponse | Dòng chi phí có số đủ điều kiện thấp hơn số đề nghị phải mang bằng chứng tường minh: hoặc kết quả từ chối/thu hồi (category denied/recovered kèm lý do và căn cứ), hoặc dòng eligible mang lý do + căn cứ pháp lý (khoản ngoài phạm vi hưởng) — không được giảm tiền im lặng. An item whose eligible amount is lower than submitted SHALL carry either an explicit denied/recovered adjudication or a reason plus legal basis on the eligible adjudication. |
item.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-reduction-evidenced-header | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho cả adjudication cấp tổng thể của ClaimResponse. The reduction-evidence rule SHALL also hold on the header-level ClaimResponse.adjudication. |
adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()
|
| vn-claim-response-reduction-evidenced-nested | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho MỌI đường adjudication còn lại: dòng chi tiết, chi tiết phụ, dòng bổ sung và chi tiết/chi tiết phụ của dòng bổ sung — hậu kiểm 13/08/2026 chỉ ra addItem.detail/subDetail chưa được phủ. The reduction-evidence rule SHALL hold on item.detail, item.detail.subDetail, addItem, addItem.detail and addItem.detail.subDetail adjudications. |
item.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and item.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-total-matches-items | error | ClaimResponse | Mỗi tổng theo mã adjudication chuẩn phải bằng tổng các dòng cùng mã. Each total for a standard adjudication category SHALL equal the sum of the matching item adjudications. |
item.empty() or ((total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.aggregate($this + $total, 0)))
|
Summary
Mandatory: 0 element(2 nested mandatory elements)
Must-Support: 26 elements
Fixed: 1 element
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Dạng xem phần tử chính
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | ClaimResponse | Response to a claim predetermination or preauthorization Constraints: vn-claim-response-error-outcome-coherent, vn-claim-response-denied-complete, vn-claim-response-itemized, vn-claim-response-total-matches-items, vn-claim-response-reduction-evidenced, vn-claim-response-reduction-evidenced-nested, vn-claim-response-reduction-evidenced-header, vn-claim-response-adjudication-unique-category, vn-claim-response-correlation-anchor, vn-claim-response-money-vnd | ||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||
![]() ![]() |
SO | 0..* | Identifier | Định danh kết quả xử lý, bao gồm mã phản hồi gateway nếu có Slice: Unordered, Open by value:system
| ||||||
![]() ![]() ![]() |
SO | 0..1 | Identifier | Mã phản hồi Cổng tiếp nhận BHYT (XML1_ID)
| ||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | ||||||
![]() ![]() ![]() ![]() |
Σ | 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 | ||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: BHYT_XML1_ID | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/bhyt-gateway-response-id | ||||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | Giá trị XML1_ID hoặc mã phản hồi tương đương Example General: 123456 | ||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Trạng thái kết quả: active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.
| ||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | Loại: institutional (nội trú) | professional (ngoại trú) Binding: ClaimTypeCodes (extensible): The type or discipline-style of the claim.
| ||||||
![]() ![]() |
SOΣ | 1..1 | code | Mục đích: claim | preauthorization | predetermination Binding: Use (required): Claim, preauthorization, predetermination.
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân
| ||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | Ngày tạo kết quả
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Organization) | Cơ quan BHXH giải quyết
| ||||||
![]() ![]() |
SOΣ | 0..1 | Reference(Yêu cầu thanh toán KCB VN Core — VN Core Claim Profile) | Yêu cầu thanh toán gốc (VNCoreClaim)
| ||||||
![]() ![]() |
SOΣ | 1..1 | code | Kết quả: queued | complete | error | partial Binding: ClaimProcessingCodes (required): The result of the claim processing.
| ||||||
![]() ![]() |
SO | 0..* | BackboneElement | Kết quả từng dòng chi phí
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
S | 1..1 | positiveInt | Claim item instance identifier | ||||||
![]() ![]() ![]() |
S | 1..* | BackboneElement | Phân bổ chi phí: đề nghị, đủ ĐK, cùng chi trả, BHYT thanh toán | ||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Căn cứ pháp lý của kết quả giám định (bắt buộc khi từ chối/thu hồi) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence | ||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Loại: submitted | eligible | copay | benefit | denied | recovered Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Lý do của kết quả giám định — bắt buộc khi category là denied hoặc recovered Binding: Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | Money | Số tiền (VND, đơn vị đồng — xem quy ước đơn vị tiền bên dưới) | ||||||
![]() ![]() |
SOΣ | 0..* | BackboneElement | Tổng adjudication
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Loại tổng: submitted | eligible | copay | benefit hoặc category BHYT cục bộ Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | Money | Financial total for the category | ||||||
![]() ![]() |
0..1 | BackboneElement | Thông tin thanh toán | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
1..1 | CodeableConcept | Partial or complete payment Binding: ExamplePaymentTypeCodes (example): The type (partial, complete) of the payment. | |||||||
![]() ![]() ![]() |
1..1 | Money | Số tiền BHXH thanh toán | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Lỗi xử lý khiến hồ sơ không adjudicate được
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Dòng chi phí liên quan nếu có | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Detail sequence number | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Subdetail sequence number | ||||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Mã lỗi xử lý Binding: Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet (extensible) | ||||||
Documentation for this format | ||||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ClaimResponse.identifier:gatewayResponseId.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| ClaimResponse.identifier:gatewayResponseId.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| ClaimResponse.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.type | Base | extensible | Claim Type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.use | Base | required | Use | 📍4.0.1 | FHIR Std. |
| ClaimResponse.outcome | Base | required | Claim Processing Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.item.adjudication.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.item.adjudication.reason | Base | extensible | Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.total.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.payment.type | Base | example | Example Payment Type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.error.code | Base | extensible | Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ClaimResponse | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ClaimResponse | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | ClaimResponse | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | ClaimResponse | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ClaimResponse | A resource should have narrative for robust management |
text.`div`.exists()
|
| 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-claim-response-adjudication-unique-category | error | ClaimResponse | Trong một cụm adjudication (header, item, chi tiết, chi tiết phụ, dòng bổ sung và các tầng con của nó), mỗi category HL7 chuẩn chỉ xuất hiện một lần — hợp đồng mapping OHP mà phép so sánh giảm-tiền dựa vào. Within each adjudication set every standard HL7 category SHALL appear at most once. |
adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct() and item.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct())
|
| vn-claim-response-correlation-anchor | error | ClaimResponse | Kết quả giám định đang hiệu lực phải đối soát được BẰNG GIÁ TRỊ THẬT: request phải là reference giải quyết được (không display-only) hoặc identifier phải có value — Identifier rỗng/Reference chỉ có display không đối soát được với hồ sơ nào (siết round 3, 13/08/2026). An active ClaimResponse SHALL carry a resolvable request reference or an identifier WITH a value. |
status != 'active' or request.reference.exists() or identifier.value.exists()
|
| vn-claim-response-denied-complete | error | ClaimResponse | Khoản tiền bị từ chối hoặc bị thu hồi phải có số tiền không âm, lý do và ít nhất một căn cứ pháp lý. A denied or recovered amount SHALL carry a non-negative amount, a reason and at least one legal basis. |
(adjudication | item.adjudication | item.detail.adjudication | item.detail.subDetail.adjudication | addItem.adjudication | addItem.detail.adjudication | addItem.detail.subDetail.adjudication).where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).all(amount.value.exists() and amount.value >= 0 and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists())
|
| vn-claim-response-error-outcome-coherent | error | ClaimResponse | Có lỗi xử lý thì outcome phải là `error`. When a processing error is present, outcome SHALL be `error`. |
error.empty() or outcome = 'error'
|
| vn-claim-response-itemized | error | ClaimResponse | Phản hồi giám định phải liệt kê từng dòng chi phí, trừ khi kết quả là lỗi kỹ thuật. An adjudication response SHALL be itemized unless its outcome is an error. |
outcome = 'error' or item.exists()
|
| vn-claim-response-money-vnd | error | ClaimResponse | Mọi khoản tiền của kết quả giám định phải dùng VND. Every monetary amount in the adjudication result SHALL use VND. |
descendants().ofType(Money).all(currency = 'VND')
|
| vn-claim-response-reduction-evidenced | error | ClaimResponse | Dòng chi phí có số đủ điều kiện thấp hơn số đề nghị phải mang bằng chứng tường minh: hoặc kết quả từ chối/thu hồi (category denied/recovered kèm lý do và căn cứ), hoặc dòng eligible mang lý do + căn cứ pháp lý (khoản ngoài phạm vi hưởng) — không được giảm tiền im lặng. An item whose eligible amount is lower than submitted SHALL carry either an explicit denied/recovered adjudication or a reason plus legal basis on the eligible adjudication. |
item.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-reduction-evidenced-header | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho cả adjudication cấp tổng thể của ClaimResponse. The reduction-evidence rule SHALL also hold on the header-level ClaimResponse.adjudication. |
adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()
|
| vn-claim-response-reduction-evidenced-nested | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho MỌI đường adjudication còn lại: dòng chi tiết, chi tiết phụ, dòng bổ sung và chi tiết/chi tiết phụ của dòng bổ sung — hậu kiểm 13/08/2026 chỉ ra addItem.detail/subDetail chưa được phủ. The reduction-evidence rule SHALL hold on item.detail, item.detail.subDetail, addItem, addItem.detail and addItem.detail.subDetail adjudications. |
item.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and item.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-total-matches-items | error | ClaimResponse | Mỗi tổng theo mã adjudication chuẩn phải bằng tổng các dòng cùng mã. Each total for a standard adjudication category SHALL equal the sum of the matching item adjudications. |
item.empty() or ((total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.aggregate($this + $total, 0)))
|
Dạng xem Differential
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | ClaimResponse | Response to a claim predetermination or preauthorization Constraints: vn-claim-response-error-outcome-coherent, vn-claim-response-denied-complete, vn-claim-response-itemized, vn-claim-response-total-matches-items, vn-claim-response-reduction-evidenced, vn-claim-response-reduction-evidenced-nested, vn-claim-response-reduction-evidenced-header, vn-claim-response-adjudication-unique-category, vn-claim-response-correlation-anchor, vn-claim-response-money-vnd | ||||||
![]() ![]() |
SO | 0..* | Identifier | Định danh kết quả xử lý, bao gồm mã phản hồi gateway nếu có Slice: Unordered, Open by value:system
| ||||||
![]() ![]() ![]() |
SO | 0..1 | Identifier | Mã phản hồi Cổng tiếp nhận BHYT (XML1_ID)
| ||||||
![]() ![]() ![]() ![]() |
0..1 | CodeableConcept | Description of identifier Required Pattern: At least the following | |||||||
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: BHYT_XML1_ID | |||||||
![]() ![]() ![]() ![]() |
1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/bhyt-gateway-response-id | |||||||
![]() ![]() ![]() ![]() |
S | 1..1 | string | Giá trị XML1_ID hoặc mã phản hồi tương đương | ||||||
![]() ![]() |
SO | 1..1 | code | Trạng thái kết quả: active | cancelled | draft | entered-in-error
| ||||||
![]() ![]() |
SO | 1..1 | CodeableConcept | Loại: institutional (nội trú) | professional (ngoại trú)
| ||||||
![]() ![]() |
SO | 1..1 | code | Mục đích: claim | preauthorization | predetermination
| ||||||
![]() ![]() |
SO | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân
| ||||||
![]() ![]() |
SO | 1..1 | dateTime | Ngày tạo kết quả
| ||||||
![]() ![]() |
SO | 1..1 | Reference(Organization) | Cơ quan BHXH giải quyết
| ||||||
![]() ![]() |
SO | 0..1 | Reference(Yêu cầu thanh toán KCB VN Core — VN Core Claim Profile) | Yêu cầu thanh toán gốc (VNCoreClaim)
| ||||||
![]() ![]() |
SO | 1..1 | code | Kết quả: queued | complete | error | partial
| ||||||
![]() ![]() |
SO | 0..* | BackboneElement | Kết quả từng dòng chi phí
| ||||||
![]() ![]() ![]() |
S | 1..1 | positiveInt | Claim item instance identifier | ||||||
![]() ![]() ![]() |
S | 1..* | BackboneElement | Phân bổ chi phí: đề nghị, đủ ĐK, cùng chi trả, BHYT thanh toán | ||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Căn cứ pháp lý của kết quả giám định (bắt buộc khi từ chối/thu hồi) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence | ||||||
![]() ![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Loại: submitted | eligible | copay | benefit | denied | recovered Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Lý do của kết quả giám định — bắt buộc khi category là denied hoặc recovered Binding: Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | Money | Số tiền (VND, đơn vị đồng — xem quy ước đơn vị tiền bên dưới) | ||||||
![]() ![]() |
SO | 0..* | BackboneElement | Tổng adjudication
| ||||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Loại tổng: submitted | eligible | copay | benefit hoặc category BHYT cục bộ Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() |
S | 1..1 | Money | Financial total for the category | ||||||
![]() ![]() |
0..1 | BackboneElement | Thông tin thanh toán | |||||||
![]() ![]() ![]() |
1..1 | Money | Số tiền BHXH thanh toán | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Lỗi xử lý khiến hồ sơ không adjudicate được
| ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Dòng chi phí liên quan nếu có | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Detail sequence number | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Subdetail sequence number | ||||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Mã lỗi xử lý Binding: Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet (extensible) | ||||||
Documentation for this format | ||||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ClaimResponse.item.adjudication.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.item.adjudication.reason | Base | extensible | Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.total.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.error.code | Base | extensible | Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| vn-claim-response-adjudication-unique-category | error | ClaimResponse | Trong một cụm adjudication (header, item, chi tiết, chi tiết phụ, dòng bổ sung và các tầng con của nó), mỗi category HL7 chuẩn chỉ xuất hiện một lần — hợp đồng mapping OHP mà phép so sánh giảm-tiền dựa vào. Within each adjudication set every standard HL7 category SHALL appear at most once. |
adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct() and item.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct())
|
| vn-claim-response-correlation-anchor | error | ClaimResponse | Kết quả giám định đang hiệu lực phải đối soát được BẰNG GIÁ TRỊ THẬT: request phải là reference giải quyết được (không display-only) hoặc identifier phải có value — Identifier rỗng/Reference chỉ có display không đối soát được với hồ sơ nào (siết round 3, 13/08/2026). An active ClaimResponse SHALL carry a resolvable request reference or an identifier WITH a value. |
status != 'active' or request.reference.exists() or identifier.value.exists()
|
| vn-claim-response-denied-complete | error | ClaimResponse | Khoản tiền bị từ chối hoặc bị thu hồi phải có số tiền không âm, lý do và ít nhất một căn cứ pháp lý. A denied or recovered amount SHALL carry a non-negative amount, a reason and at least one legal basis. |
(adjudication | item.adjudication | item.detail.adjudication | item.detail.subDetail.adjudication | addItem.adjudication | addItem.detail.adjudication | addItem.detail.subDetail.adjudication).where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).all(amount.value.exists() and amount.value >= 0 and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists())
|
| vn-claim-response-error-outcome-coherent | error | ClaimResponse | Có lỗi xử lý thì outcome phải là `error`. When a processing error is present, outcome SHALL be `error`. |
error.empty() or outcome = 'error'
|
| vn-claim-response-itemized | error | ClaimResponse | Phản hồi giám định phải liệt kê từng dòng chi phí, trừ khi kết quả là lỗi kỹ thuật. An adjudication response SHALL be itemized unless its outcome is an error. |
outcome = 'error' or item.exists()
|
| vn-claim-response-money-vnd | error | ClaimResponse | Mọi khoản tiền của kết quả giám định phải dùng VND. Every monetary amount in the adjudication result SHALL use VND. |
descendants().ofType(Money).all(currency = 'VND')
|
| vn-claim-response-reduction-evidenced | error | ClaimResponse | Dòng chi phí có số đủ điều kiện thấp hơn số đề nghị phải mang bằng chứng tường minh: hoặc kết quả từ chối/thu hồi (category denied/recovered kèm lý do và căn cứ), hoặc dòng eligible mang lý do + căn cứ pháp lý (khoản ngoài phạm vi hưởng) — không được giảm tiền im lặng. An item whose eligible amount is lower than submitted SHALL carry either an explicit denied/recovered adjudication or a reason plus legal basis on the eligible adjudication. |
item.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-reduction-evidenced-header | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho cả adjudication cấp tổng thể của ClaimResponse. The reduction-evidence rule SHALL also hold on the header-level ClaimResponse.adjudication. |
adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()
|
| vn-claim-response-reduction-evidenced-nested | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho MỌI đường adjudication còn lại: dòng chi tiết, chi tiết phụ, dòng bổ sung và chi tiết/chi tiết phụ của dòng bổ sung — hậu kiểm 13/08/2026 chỉ ra addItem.detail/subDetail chưa được phủ. The reduction-evidence rule SHALL hold on item.detail, item.detail.subDetail, addItem, addItem.detail and addItem.detail.subDetail adjudications. |
item.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and item.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-total-matches-items | error | ClaimResponse | Mỗi tổng theo mã adjudication chuẩn phải bằng tổng các dòng cùng mã. Each total for a standard adjudication category SHALL equal the sum of the matching item adjudications. |
item.empty() or ((total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.aggregate($this + $total, 0)))
|
Dạng xem SnapshotView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | ClaimResponse | Response to a claim predetermination or preauthorization Constraints: vn-claim-response-error-outcome-coherent, vn-claim-response-denied-complete, vn-claim-response-itemized, vn-claim-response-total-matches-items, vn-claim-response-reduction-evidenced, vn-claim-response-reduction-evidenced-nested, vn-claim-response-reduction-evidenced-header, vn-claim-response-adjudication-unique-category, vn-claim-response-correlation-anchor, vn-claim-response-money-vnd | ||||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||
![]() ![]() |
SO | 0..* | Identifier | Định danh kết quả xử lý, bao gồm mã phản hồi gateway nếu có Slice: Unordered, Open by value:system
| ||||||
![]() ![]() ![]() |
SO | 0..1 | Identifier | Mã phản hồi Cổng tiếp nhận BHYT (XML1_ID)
| ||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | ||||||
![]() ![]() ![]() ![]() |
Σ | 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 | ||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: BHYT_XML1_ID | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/bhyt-gateway-response-id | ||||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | Giá trị XML1_ID hoặc mã phản hồi tương đương Example General: 123456 | ||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use | ||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) | ||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Trạng thái kết quả: active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.
| ||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | Loại: institutional (nội trú) | professional (ngoại trú) Binding: ClaimTypeCodes (extensible): The type or discipline-style of the claim.
| ||||||
![]() ![]() |
0..1 | CodeableConcept | More granular claim type Binding: ExampleClaimSubTypeCodes (example): A more granular claim typecode. | |||||||
![]() ![]() |
SOΣ | 1..1 | code | Mục đích: claim | preauthorization | predetermination Binding: Use (required): Claim, preauthorization, predetermination.
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân
| ||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | Ngày tạo kết quả
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Organization) | Cơ quan BHXH giải quyết
| ||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole | Organization) | Party responsible for the claim | |||||||
![]() ![]() |
SOΣ | 0..1 | Reference(Yêu cầu thanh toán KCB VN Core — VN Core Claim Profile) | Yêu cầu thanh toán gốc (VNCoreClaim)
| ||||||
![]() ![]() |
SOΣ | 1..1 | code | Kết quả: queued | complete | error | partial Binding: ClaimProcessingCodes (required): The result of the claim processing.
| ||||||
![]() ![]() |
0..1 | string | Disposition Message | |||||||
![]() ![]() |
0..1 | string | Preauthorization reference | |||||||
![]() ![]() |
0..1 | Period | Preauthorization reference effective period | |||||||
![]() ![]() |
0..1 | CodeableConcept | Party to be paid any benefits payable Binding: Claim Payee Type Codes (example): A code for the party to be reimbursed. | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Kết quả từng dòng chi phí
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
S | 1..1 | positiveInt | Claim item instance identifier | ||||||
![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() |
S | 1..* | BackboneElement | Phân bổ chi phí: đề nghị, đủ ĐK, cùng chi trả, BHYT thanh toán | ||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Căn cứ pháp lý của kết quả giám định (bắt buộc khi từ chối/thu hồi) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence | ||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Loại: submitted | eligible | copay | benefit | denied | recovered Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Lý do của kết quả giám định — bắt buộc khi category là denied hoặc recovered Binding: Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet (extensible) | ||||||
![]() ![]() ![]() ![]() |
S | 0..1 | Money | Số tiền (VND, đơn vị đồng — xem quy ước đơn vị tiền bên dưới) | ||||||
![]() ![]() ![]() ![]() |
0..1 | decimal | Non-monetary value | |||||||
![]() ![]() ![]() |
0..* | BackboneElement | Adjudication for claim details | |||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() |
1..1 | positiveInt | Claim detail instance identifier | |||||||
![]() ![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() ![]() |
1..* | See adjudication (ClaimResponse) | Detail level adjudication details | |||||||
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Adjudication for claim sub-details | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() ![]() |
1..1 | positiveInt | Claim sub-detail instance identifier | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | See adjudication (ClaimResponse) | Subdetail level adjudication details | |||||||
![]() ![]() |
0..* | BackboneElement | Insurer added line items | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
0..* | positiveInt | Item sequence number | |||||||
![]() ![]() ![]() |
0..* | positiveInt | Detail sequence number | |||||||
![]() ![]() ![]() |
0..* | positiveInt | Subdetail sequence number | |||||||
![]() ![]() ![]() |
0..* | Reference(Practitioner | PractitionerRole | Organization) | Authorized providers | |||||||
![]() ![]() ![]() |
1..1 | CodeableConcept | Billing, service, product, or drug code Binding: USCLSCodes (example): Allowable service and product codes. | |||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Service/Product billing modifiers Binding: ModifierTypeCodes (example): Item type or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen. | |||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Program the product or service is provided under Binding: ExampleProgramReasonCodes (example): Program specific reason codes. | |||||||
![]() ![]() ![]() |
0..1 | Date or dates of service or product delivery | ||||||||
![]() ![]() ![]() ![]() |
date | |||||||||
![]() ![]() ![]() ![]() |
Period | |||||||||
![]() ![]() ![]() |
0..1 | Place of service or where product was supplied Binding: ExampleServicePlaceCodes (example): Place of service: pharmacy, school, prison, etc. | ||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
Address | |||||||||
![]() ![]() ![]() ![]() |
Reference(Location) | |||||||||
![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Count of products or services | |||||||
![]() ![]() ![]() |
0..1 | Money | Fee, charge or cost per item | |||||||
![]() ![]() ![]() |
0..1 | decimal | Price scaling factor | |||||||
![]() ![]() ![]() |
0..1 | Money | Total item cost | |||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Anatomical location Binding: OralSiteCodes (example): The code for the teeth, quadrant, sextant and arch. | |||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Anatomical sub-location Binding: SurfaceCodes (example): The code for the tooth surface and surface combinations. | |||||||
![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() |
1..* | See adjudication (ClaimResponse) | Added items adjudication | |||||||
![]() ![]() ![]() |
0..* | BackboneElement | Insurer added line details | |||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | Billing, service, product, or drug code Binding: USCLSCodes (example): Allowable service and product codes. | |||||||
![]() ![]() ![]() ![]() |
0..* | CodeableConcept | Service/Product billing modifiers Binding: ModifierTypeCodes (example): Item type or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen. | |||||||
![]() ![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Count of products or services | |||||||
![]() ![]() ![]() ![]() |
0..1 | Money | Fee, charge or cost per item | |||||||
![]() ![]() ![]() ![]() |
0..1 | decimal | Price scaling factor | |||||||
![]() ![]() ![]() ![]() |
0..1 | Money | Total item cost | |||||||
![]() ![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() ![]() |
1..* | See adjudication (ClaimResponse) | Added items detail adjudication | |||||||
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Insurer added line items | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | Billing, service, product, or drug code Binding: USCLSCodes (example): Allowable service and product codes. | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | CodeableConcept | Service/Product billing modifiers Binding: ModifierTypeCodes (example): Item type or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen. | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | Count of products or services | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | Money | Fee, charge or cost per item | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | decimal | Price scaling factor | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | Money | Total item cost | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | positiveInt | Applicable note numbers | |||||||
![]() ![]() ![]() ![]() ![]() |
1..* | See adjudication (ClaimResponse) | Added items detail adjudication | |||||||
![]() ![]() |
0..* | See adjudication (ClaimResponse) | Header-level adjudication | |||||||
![]() ![]() |
SOΣ | 0..* | BackboneElement | Tổng adjudication
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | CodeableConcept | Loại tổng: submitted | eligible | copay | benefit hoặc category BHYT cục bộ Binding: Loại adjudication BHYT — BHYT Adjudication Category ValueSet (extensible) | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | Money | Financial total for the category | ||||||
![]() ![]() |
0..1 | BackboneElement | Thông tin thanh toán | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
1..1 | CodeableConcept | Partial or complete payment Binding: ExamplePaymentTypeCodes (example): The type (partial, complete) of the payment. | |||||||
![]() ![]() ![]() |
0..1 | Money | Payment adjustment for non-claim issues | |||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Explanation for the adjustment Binding: PaymentAdjustmentReasonCodes (example): Payment Adjustment reason codes. | |||||||
![]() ![]() ![]() |
0..1 | date | Expected date of payment | |||||||
![]() ![]() ![]() |
1..1 | Money | Số tiền BHXH thanh toán | |||||||
![]() ![]() ![]() |
0..1 | Identifier | Business identifier for the payment | |||||||
![]() ![]() |
0..1 | CodeableConcept | Funds reserved status Binding: Funds Reservation Codes (example): For whom funds are to be reserved: (Patient, Provider, None). | |||||||
![]() ![]() |
0..1 | CodeableConcept | Printed form identifier Binding: Form Codes (example): The forms codes. | |||||||
![]() ![]() |
0..1 | Attachment | Printed reference or actual form | |||||||
![]() ![]() |
0..* | BackboneElement | Note concerning adjudication | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
0..1 | positiveInt | Note instance identifier | |||||||
![]() ![]() ![]() |
0..1 | code | display | print | printoper Binding: NoteType (required): The presentation types of notes. | |||||||
![]() ![]() ![]() |
1..1 | string | Note explanatory text | |||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Language of the text Binding: CommonLanguages (preferred): A human language.
| |||||||
![]() ![]() |
0..* | Reference(CommunicationRequest) | Request for additional information | |||||||
![]() ![]() |
0..* | BackboneElement | Patient insurance information | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
1..1 | positiveInt | Insurance instance identifier | |||||||
![]() ![]() ![]() |
1..1 | boolean | Coverage to be used for adjudication | |||||||
![]() ![]() ![]() |
1..1 | Reference(Coverage) | Insurance information | |||||||
![]() ![]() ![]() |
0..1 | string | Additional provider contract number | |||||||
![]() ![]() ![]() |
0..1 | Reference(ClaimResponse) | Adjudication results | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Lỗi xử lý khiến hồ sơ không adjudicate được
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Dòng chi phí liên quan nếu có | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Detail sequence number | ||||||
![]() ![]() ![]() |
S | 0..1 | positiveInt | Subdetail sequence number | ||||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Mã lỗi xử lý Binding: Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet (extensible) | ||||||
Documentation for this format | ||||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ClaimResponse.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| ClaimResponse.identifier:gatewayResponseId.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| ClaimResponse.identifier:gatewayResponseId.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| ClaimResponse.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.type | Base | extensible | Claim Type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.subType | Base | example | Example Claim SubType Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.use | Base | required | Use | 📍4.0.1 | FHIR Std. |
| ClaimResponse.outcome | Base | required | Claim Processing Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.payeeType | Base | example | PayeeType | 📍4.0.1 | FHIR Std. |
| ClaimResponse.item.adjudication.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.item.adjudication.reason | Base | extensible | Issue tầng NGHIỆP VỤ — VN BHYT Adjudication Issue ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.addItem.productOrService | Base | example | USCLS Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.modifier | Base | example | Modifier type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.programCode | Base | example | Example Program Reason Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.location[x] | Base | example | Example Service Place Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.bodySite | Base | example | Oral Site Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.subSite | Base | example | Surface Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.detail.productOrService | Base | example | USCLS Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.detail.modifier | Base | example | Modifier type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.detail.subDetail.productOrService | Base | example | USCLS Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.addItem.detail.subDetail.modifier | Base | example | Modifier type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.total.category | Base | extensible | Loại adjudication BHYT — BHYT Adjudication Category ValueSet | 📦0.10.0 | This IG |
| ClaimResponse.payment.type | Base | example | Example Payment Type Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.payment.adjustmentReason | Base | example | Payment Adjustment Reason Codes | 📍4.0.1 | FHIR Std. |
| ClaimResponse.fundsReserve | Base | example | FundsReserve | 📍4.0.1 | FHIR Std. |
| ClaimResponse.formCode | Base | example | Forms | 📍4.0.1 | FHIR Std. |
| ClaimResponse.processNote.type | Base | required | NoteType | 📍4.0.1 | FHIR Std. |
| ClaimResponse.processNote.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| ClaimResponse.error.code | Base | extensible | Issue tầng XỬ LÝ — VN BHYT Processing Issue ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ClaimResponse | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ClaimResponse | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | ClaimResponse | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | ClaimResponse | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ClaimResponse | A resource should have narrative for robust management |
text.`div`.exists()
|
| 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-claim-response-adjudication-unique-category | error | ClaimResponse | Trong một cụm adjudication (header, item, chi tiết, chi tiết phụ, dòng bổ sung và các tầng con của nó), mỗi category HL7 chuẩn chỉ xuất hiện một lần — hợp đồng mapping OHP mà phép so sánh giảm-tiền dựa vào. Within each adjudication set every standard HL7 category SHALL appear at most once. |
adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct() and item.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and item.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct()) and addItem.detail.subDetail.all(adjudication.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication').code.isDistinct())
|
| vn-claim-response-correlation-anchor | error | ClaimResponse | Kết quả giám định đang hiệu lực phải đối soát được BẰNG GIÁ TRỊ THẬT: request phải là reference giải quyết được (không display-only) hoặc identifier phải có value — Identifier rỗng/Reference chỉ có display không đối soát được với hồ sơ nào (siết round 3, 13/08/2026). An active ClaimResponse SHALL carry a resolvable request reference or an identifier WITH a value. |
status != 'active' or request.reference.exists() or identifier.value.exists()
|
| vn-claim-response-denied-complete | error | ClaimResponse | Khoản tiền bị từ chối hoặc bị thu hồi phải có số tiền không âm, lý do và ít nhất một căn cứ pháp lý. A denied or recovered amount SHALL carry a non-negative amount, a reason and at least one legal basis. |
(adjudication | item.adjudication | item.detail.adjudication | item.detail.subDetail.adjudication | addItem.adjudication | addItem.detail.adjudication | addItem.detail.subDetail.adjudication).where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).all(amount.value.exists() and amount.value >= 0 and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists())
|
| vn-claim-response-error-outcome-coherent | error | ClaimResponse | Có lỗi xử lý thì outcome phải là `error`. When a processing error is present, outcome SHALL be `error`. |
error.empty() or outcome = 'error'
|
| vn-claim-response-itemized | error | ClaimResponse | Phản hồi giám định phải liệt kê từng dòng chi phí, trừ khi kết quả là lỗi kỹ thuật. An adjudication response SHALL be itemized unless its outcome is an error. |
outcome = 'error' or item.exists()
|
| vn-claim-response-money-vnd | error | ClaimResponse | Mọi khoản tiền của kết quả giám định phải dùng VND. Every monetary amount in the adjudication result SHALL use VND. |
descendants().ofType(Money).all(currency = 'VND')
|
| vn-claim-response-reduction-evidenced | error | ClaimResponse | Dòng chi phí có số đủ điều kiện thấp hơn số đề nghị phải mang bằng chứng tường minh: hoặc kết quả từ chối/thu hồi (category denied/recovered kèm lý do và căn cứ), hoặc dòng eligible mang lý do + căn cứ pháp lý (khoản ngoài phạm vi hưởng) — không được giảm tiền im lặng. An item whose eligible amount is lower than submitted SHALL carry either an explicit denied/recovered adjudication or a reason plus legal basis on the eligible adjudication. |
item.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-reduction-evidenced-header | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho cả adjudication cấp tổng thể của ClaimResponse. The reduction-evidence rule SHALL also hold on the header-level ClaimResponse.adjudication. |
adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()
|
| vn-claim-response-reduction-evidenced-nested | error | ClaimResponse | Quy tắc giảm-tiền-phải-có-bằng-chứng áp cho MỌI đường adjudication còn lại: dòng chi tiết, chi tiết phụ, dòng bổ sung và chi tiết/chi tiết phụ của dòng bổ sung — hậu kiểm 13/08/2026 chỉ ra addItem.detail/subDetail chưa được phủ. The reduction-evidence rule SHALL hold on item.detail, item.detail.subDetail, addItem, addItem.detail and addItem.detail.subDetail adjudications. |
item.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and item.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists()) and addItem.detail.subDetail.all(adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.empty() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.first() >= adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.first() or adjudication.where(category.coding.where(system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-bhyt-adjudication-category-cs' and (code = 'denied' or code = 'recovered')).exists()).exists() or adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists() and reason.exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-adjudication-legal-evidence').exists()).exists())
|
| vn-claim-response-total-matches-items | error | ClaimResponse | Mỗi tổng theo mã adjudication chuẩn phải bằng tổng các dòng cùng mã. Each total for a standard adjudication category SHALL equal the sum of the matching item adjudications. |
item.empty() or ((total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'submitted').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'eligible').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'benefit').exists()).amount.value.aggregate($this + $total, 0)) and (total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() and item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.exists() implies total.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value = item.adjudication.where(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/adjudication' and code = 'copay').exists()).amount.value.aggregate($this + $total, 0)))
|
Summary
Mandatory: 0 element(2 nested mandatory elements)
Must-Support: 26 elements
Fixed: 1 element
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Biểu diễn khác của hồ sơ: CSV, Excel, Schematron