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-cost-statement-composition | Phiên bản: 0.10.0 | ||||
| Computable Name: VNCoreCostStatementComposition | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.49 | |||||
Bản ghi cấu trúc cho các ô ký/xác nhận của bảng kê chi phí khám bệnh, chữa bệnh theo mẫu QĐ 697/QĐ-BYT.
Bảng kê là chứng từ do cơ sở khám bệnh, chữa bệnh lập và có ba ô ký: người lập bảng kê, xác nhận
của người bệnh, và kế toán viện phí. Số liệu chi phí nằm ở Invoice
(VNCoreCostStatementInvoice); profile này
chỉ chịu trách nhiệm phần ai được ghi nhận là attester, thời điểm và đối tượng attestation — tách carrier dữ liệu khỏi chứng từ ký
để một bên sửa không âm thầm làm sai bên kia (ADR-0021 quyết định D2).
Điều 2 khoản 2 QĐ 697/QĐ-BYT cho hai cách lưu: bản điện tử ký số, hoặc bản giấy ký tay rồi scan kèm
ký số xác thực. Cách thứ hai dùng DocumentReference thay cho profile này — cả hai đều hợp lệ, chọn
cách nào là quyết định của bên triển khai chứ không phải của bộ hướng dẫn.
Ba ô ký ánh xạ thành ba vai trò trên attester. Một attester có thể khai nhiều vai trò khi cùng
một người xác nhận đảm nhiệm nhiều vai trò; vì vậy ba vai trò có thể nằm trên hai hoặc ba attester:
| Ô ký trên mẫu | Vai trò trao đổi | attester.mode |
|---|---|---|
| Người lập bảng kê | preparer |
professional |
| Kế toán viện phí | billing-confirmation |
professional |
| Xác nhận của người bệnh | patient-confirmation |
personal |
Các mã vai trò là mã kỹ thuật do VN Core đặt cho hợp đồng trao đổi, không phải mã do QĐ 697/QĐ-BYT
ban hành. Ô billing-confirmation cũng dùng cho người phụ trách đơn vị ký thay tại Trạm y tế tuyến xã và tương đương chưa có kế toán viện phí, theo phần hướng dẫn mẫu. Profile không khẳng định ba vai trò phải do ba người khác nhau thực hiện. Mỗi khai báo vai trò có thể ghi thời điểm riêng tại attestedAt; nếu các lần xác nhận khác thời điểm thì không gộp vào attester.time.
Chữ ký số theo QĐ 697/QĐ-BYT và nhánh chung tại NĐ 23/2025/NĐ-CP không đặt trên Composition — FHIR R4 không có
Composition.signature. Đặt ở Provenance.signature với target trỏ bản ký này (dùng khi lưu từng
chứng từ rời), hoặc ở Bundle.signature khi đóng gói thành document bundle để gửi đi. attester chỉ
ghi ai xác nhận và lúc nào, không chứa chữ ký; conformance với profile này không tự chứng minh ba
chữ ký hợp lệ. NĐ 68/2024/NĐ-CP áp dụng khi cơ sở y tế công lập dùng
chữ ký số chuyên dùng công vụ; NĐ 137/2024/NĐ-CP chỉ bổ sung khi giao dịch/hệ thống thuộc phạm vi cơ quan nhà nước. /
The structured attestation record for the itemized healthcare cost statement of Decision 697/QĐ-BYT.
The statement is a document the facility issues, carrying three signature blocks: the preparer, the
patient's confirmation, and the billing accountant. The monetary content lives on Invoice
(VNCoreCostStatementInvoice); this profile records the declared attesters, time, and target — keeping the
attestation record separate from the data carrier so that editing one cannot silently invalidate the
other (ADR-0021, decision D2). Article 2(2) also permits a paper original signed by hand and scanned
with an authenticating digital signature; that variant uses DocumentReference instead. Structural
conformance does not by itself prove that any signature is legally valid.
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..* | Composition | A set of resources composed into a single coherent clinical statement with clinical attestation Constraints: vn-cost-statement-composition-entry-required, vn-cost-statement-attestation-role-mode, vn-cost-statement-attestation-role-unique, vn-cost-statement-attestation-time-consistent, vn-cost-statement-composition-three-signatures |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 1..1 | Identifier | Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt |
![]() ![]() |
?!SΣ | 1..1 | code | preliminary | final (đủ ba attestation declarations) | amended | entered-in-error Binding: CompositionStatus (required): The workflow/clinical status of the composition. |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Loại chứng từ: bảng kê chi phí khám bệnh, chữa bệnh Binding: FHIRDocumentTypeCodes (preferred): Type of a composition. |
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh của đợt khám bệnh, chữa bệnh |
![]() ![]() |
SΣ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Đợt khám bệnh, chữa bệnh được lập bảng kê |
![]() ![]() |
SΣ | 1..1 | dateTime | Thời điểm lập bản ký |
![]() ![]() |
SΣ | 1..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người lập bảng kê |
![]() ![]() |
Σ | 1..1 | string | Human Readable name/title |
![]() ![]() |
S | 1..* | BackboneElement | Metadata cho ba ô ký/xác nhận của mẫu; không phải bằng chứng chữ ký |
![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Vai trò trao đổi của khai báo attestation URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
S | 1..1 | code | professional (người lập, kế toán viện phí) | personal (người bệnh hoặc người đại diện) Binding: CompositionAttestationMode (required): The way in which a person authenticated a composition. |
![]() ![]() ![]() |
S | 0..1 | dateTime | Thời điểm xác nhận chung, nếu các vai trò có cùng thời điểm |
![]() ![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người ký |
![]() ![]() |
SΣ | 1..1 | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | Cơ sở khám bệnh, chữa bệnh lưu giữ chứng từ |
![]() ![]() |
S | 0..* | BackboneElement | Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán) |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
1..1 | code | replaces | transforms | signs | appends Binding: DocumentRelationshipType (required): The type of relationship between documents. | |
![]() ![]() ![]() |
1..1 | Target of the relationship | ||
![]() ![]() ![]() ![]() |
Identifier | |||
![]() ![]() ![]() ![]() |
Reference(Composition) | |||
![]() ![]() |
SC | 1..* | BackboneElement | Mỗi phân đoạn thẻ × mức hưởng của mẫu là một section Constraints: cmp-1, cmp-2 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
S | 0..1 | string | Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%) |
![]() ![]() ![]() |
SC | 1..* | Reference(Bảng kê chi phí khám bệnh, chữa bệnh — VN Core Cost Statement Invoice) | Bảng kê chi phí được ký |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Composition.status | Base | required | CompositionStatus | 📍4.0.1 | FHIR Std. |
| Composition.type | Base | preferred | FHIR Document Type Codes | 📍4.0.1 | FHIR Std. |
| Composition.attester.mode | Base | required | CompositionAttestationMode | 📍4.0.1 | FHIR Std. |
| Composition.relatesTo.code | Base | required | DocumentRelationshipType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cmp-1 | error | Composition.section | A section must contain at least one of text, entries, or sub-sections |
text.exists() or entry.exists() or section.exists()
|
| cmp-2 | error | Composition.section | A section can only have an emptyReason if it is empty |
emptyReason.empty() or entry.empty()
|
| dom-2 | error | Composition | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Composition | 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 | Composition | 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 | Composition | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Composition | 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-cost-statement-attestation-role-mode | error | Composition | Vai trò người lập/kế toán phải dùng mode professional; vai trò xác nhận người bệnh phải dùng mode personal. Role declarations SHALL use the matching attester mode. |
attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer' or $this = 'billing-confirmation').exists()).all(mode = 'professional') and attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').exists()).all(mode = 'personal')
|
| vn-cost-statement-attestation-role-unique | error | Composition | Mỗi vai trò xác nhận bảng kê chỉ được khai tối đa một lần trên toàn Composition. Each cost-statement attestation role SHALL occur at most once. |
attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() <= 1
|
| vn-cost-statement-attestation-time-consistent | error | Composition | Nếu khai attester.time, giá trị phải khớp mọi thời điểm vai trò đã biết của attester đó. Distinct role event times SHALL NOT be collapsed into a common attester time. |
attester.where(time.exists()).all((time | extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'attestedAt').value).distinct().count() <= 1)
|
| vn-cost-statement-composition-entry-required | error | Composition | Mỗi section của bản ký phải trỏ tới ít nhất một Invoice bảng kê chi phí. |
section.all(entry.exists())
|
| vn-cost-statement-composition-three-signatures | error | Composition | Bản ghi ở trạng thái final phải khai đúng một lần từng vai trò trao đổi: preparer, billing-confirmation và patient-confirmation. Một attester có thể mang nhiều vai trò; quy tắc không đòi người xác nhận khác nhau và không kiểm tra bằng chứng chữ ký. |
status != 'final' or (attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() = 1)
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Composition | A set of resources composed into a single coherent clinical statement with clinical attestation Constraints: vn-cost-statement-composition-entry-required, vn-cost-statement-attestation-role-mode, vn-cost-statement-attestation-role-unique, vn-cost-statement-attestation-time-consistent, vn-cost-statement-composition-three-signatures |
![]() ![]() |
S | 1..1 | Identifier | Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt |
![]() ![]() |
S | 1..1 | code | preliminary | final (đủ ba attestation declarations) | amended | entered-in-error |
![]() ![]() |
S | 1..1 | CodeableConcept | Loại chứng từ: bảng kê chi phí khám bệnh, chữa bệnh |
![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh của đợt khám bệnh, chữa bệnh |
![]() ![]() |
S | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Đợt khám bệnh, chữa bệnh được lập bảng kê |
![]() ![]() |
S | 1..1 | dateTime | Thời điểm lập bản ký |
![]() ![]() |
S | 1..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người lập bảng kê |
![]() ![]() |
S | 1..* | BackboneElement | Metadata cho ba ô ký/xác nhận của mẫu; không phải bằng chứng chữ ký |
![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Vai trò trao đổi của khai báo attestation URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role |
![]() ![]() ![]() |
S | 1..1 | code | professional (người lập, kế toán viện phí) | personal (người bệnh hoặc người đại diện) |
![]() ![]() ![]() |
S | 0..1 | dateTime | Thời điểm xác nhận chung, nếu các vai trò có cùng thời điểm |
![]() ![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người ký |
![]() ![]() |
S | 1..1 | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | Cơ sở khám bệnh, chữa bệnh lưu giữ chứng từ |
![]() ![]() |
S | 0..* | BackboneElement | Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán) |
![]() ![]() |
S | 1..* | BackboneElement | Mỗi phân đoạn thẻ × mức hưởng của mẫu là một section |
![]() ![]() ![]() |
S | 0..1 | string | Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%) |
![]() ![]() ![]() |
S | 1..* | Reference(Bảng kê chi phí khám bệnh, chữa bệnh — VN Core Cost Statement Invoice) | Bảng kê chi phí được ký |
Documentation for this format | ||||
| Id | Grade | Path(s) | Description | Expression |
| vn-cost-statement-attestation-role-mode | error | Composition | Vai trò người lập/kế toán phải dùng mode professional; vai trò xác nhận người bệnh phải dùng mode personal. Role declarations SHALL use the matching attester mode. |
attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer' or $this = 'billing-confirmation').exists()).all(mode = 'professional') and attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').exists()).all(mode = 'personal')
|
| vn-cost-statement-attestation-role-unique | error | Composition | Mỗi vai trò xác nhận bảng kê chỉ được khai tối đa một lần trên toàn Composition. Each cost-statement attestation role SHALL occur at most once. |
attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() <= 1
|
| vn-cost-statement-attestation-time-consistent | error | Composition | Nếu khai attester.time, giá trị phải khớp mọi thời điểm vai trò đã biết của attester đó. Distinct role event times SHALL NOT be collapsed into a common attester time. |
attester.where(time.exists()).all((time | extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'attestedAt').value).distinct().count() <= 1)
|
| vn-cost-statement-composition-entry-required | error | Composition | Mỗi section của bản ký phải trỏ tới ít nhất một Invoice bảng kê chi phí. |
section.all(entry.exists())
|
| vn-cost-statement-composition-three-signatures | error | Composition | Bản ghi ở trạng thái final phải khai đúng một lần từng vai trò trao đổi: preparer, billing-confirmation và patient-confirmation. Một attester có thể mang nhiều vai trò; quy tắc không đòi người xác nhận khác nhau và không kiểm tra bằng chứng chữ ký. |
status != 'final' or (attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() = 1)
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Composition | A set of resources composed into a single coherent clinical statement with clinical attestation Constraints: vn-cost-statement-composition-entry-required, vn-cost-statement-attestation-role-mode, vn-cost-statement-attestation-role-unique, vn-cost-statement-attestation-time-consistent, vn-cost-statement-composition-three-signatures | ||||
![]() ![]() |
Σ | 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 | ||||
![]() ![]() |
SΣ | 1..1 | Identifier | Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt | ||||
![]() ![]() |
?!SΣ | 1..1 | code | preliminary | final (đủ ba attestation declarations) | amended | entered-in-error Binding: CompositionStatus (required): The workflow/clinical status of the composition. | ||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Loại chứng từ: bảng kê chi phí khám bệnh, chữa bệnh Binding: FHIRDocumentTypeCodes (preferred): Type of a composition. | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Categorization of Composition Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level. | ||||
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh của đợt khám bệnh, chữa bệnh | ||||
![]() ![]() |
SΣ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Đợt khám bệnh, chữa bệnh được lập bảng kê | ||||
![]() ![]() |
SΣ | 1..1 | dateTime | Thời điểm lập bản ký | ||||
![]() ![]() |
SΣ | 1..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người lập bảng kê | ||||
![]() ![]() |
Σ | 1..1 | string | Human Readable name/title | ||||
![]() ![]() |
Σ | 0..1 | code | As defined by affinity domain Binding: v3.ConfidentialityClassification (2014-03-26) (required): Codes specifying the level of confidentiality of the composition. | ||||
![]() ![]() |
S | 1..* | BackboneElement | Metadata cho ba ô ký/xác nhận của mẫu; không phải bằng chứng chữ ký | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Vai trò trao đổi của khai báo attestation URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role | ||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
S | 1..1 | code | professional (người lập, kế toán viện phí) | personal (người bệnh hoặc người đại diện) Binding: CompositionAttestationMode (required): The way in which a person authenticated a composition. | ||||
![]() ![]() ![]() |
S | 0..1 | dateTime | Thời điểm xác nhận chung, nếu các vai trò có cùng thời điểm | ||||
![]() ![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người ký | ||||
![]() ![]() |
SΣ | 1..1 | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | Cơ sở khám bệnh, chữa bệnh lưu giữ chứng từ | ||||
![]() ![]() |
S | 0..* | BackboneElement | Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết 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 | code | replaces | transforms | signs | appends Binding: DocumentRelationshipType (required): The type of relationship between documents. | |||||
![]() ![]() ![]() |
1..1 | Target of the relationship | ||||||
![]() ![]() ![]() ![]() |
Identifier | |||||||
![]() ![]() ![]() ![]() |
Reference(Composition) | |||||||
![]() ![]() |
Σ | 0..* | BackboneElement | The clinical service(s) being documented | ||||
![]() ![]() ![]() |
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..* | CodeableConcept | Code(s) that apply to the event being documented Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | The period covered by the documentation | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Resource) | The event(s) being documented | ||||
![]() ![]() |
SC | 1..* | BackboneElement | Mỗi phân đoạn thẻ × mức hưởng của mẫu là một section Constraints: cmp-1, cmp-2 | ||||
![]() ![]() ![]() |
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 | string | Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%) | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Classification of section (recommended) Binding: DocumentSectionCodes (example): Classification of a section of a composition/document. | |||||
![]() ![]() ![]() |
0..* | Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization) | Who and/or what authored the section | |||||
![]() ![]() ![]() |
0..1 | Reference(Resource) | Who/what the section is about, when it is not about the subject of composition | |||||
![]() ![]() ![]() |
C | 0..1 | Narrative | Text summary of the section, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | ||||
![]() ![]() ![]() |
0..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this section. | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Order of section entries Binding: ListOrderCodes (preferred): What order applies to the items in the entry. | |||||
![]() ![]() ![]() |
SC | 1..* | Reference(Bảng kê chi phí khám bệnh, chữa bệnh — VN Core Cost Statement Invoice) | Bảng kê chi phí được ký | ||||
![]() ![]() ![]() |
C | 0..1 | CodeableConcept | Why the section is empty Binding: ListEmptyReasons (preferred): If a section is empty, why it is empty. | ||||
![]() ![]() ![]() |
C | 0..* | See section (Composition) | Nested Section | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Composition.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Composition.status | Base | required | CompositionStatus | 📍4.0.1 | FHIR Std. |
| Composition.type | Base | preferred | FHIR Document Type Codes | 📍4.0.1 | FHIR Std. |
| Composition.category | Base | example | Document Class Value Set | 📍4.0.1 | FHIR Std. |
| Composition.confidentiality | Base | required | V3 Value SetConfidentialityClassification | 📍2014-03-26 | FHIR Std. |
| Composition.attester.mode | Base | required | CompositionAttestationMode | 📍4.0.1 | FHIR Std. |
| Composition.relatesTo.code | Base | required | DocumentRelationshipType | 📍4.0.1 | FHIR Std. |
| Composition.event.code | Base | example | v3 Code System ActCode | 📦3.0.0 | THO v7.2 |
| Composition.section.code | Base | example | Document Section Codes | 📍4.0.1 | FHIR Std. |
| Composition.section.mode | Base | required | ListMode | 📍4.0.1 | FHIR Std. |
| Composition.section.orderedBy | Base | preferred | List Order Codes | 📍4.0.1 | FHIR Std. |
| Composition.section.emptyReason | Base | preferred | List Empty Reasons | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cmp-1 | error | Composition.section | A section must contain at least one of text, entries, or sub-sections |
text.exists() or entry.exists() or section.exists()
|
| cmp-2 | error | Composition.section | A section can only have an emptyReason if it is empty |
emptyReason.empty() or entry.empty()
|
| dom-2 | error | Composition | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Composition | 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 | Composition | 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 | Composition | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Composition | 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-cost-statement-attestation-role-mode | error | Composition | Vai trò người lập/kế toán phải dùng mode professional; vai trò xác nhận người bệnh phải dùng mode personal. Role declarations SHALL use the matching attester mode. |
attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer' or $this = 'billing-confirmation').exists()).all(mode = 'professional') and attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').exists()).all(mode = 'personal')
|
| vn-cost-statement-attestation-role-unique | error | Composition | Mỗi vai trò xác nhận bảng kê chỉ được khai tối đa một lần trên toàn Composition. Each cost-statement attestation role SHALL occur at most once. |
attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() <= 1
|
| vn-cost-statement-attestation-time-consistent | error | Composition | Nếu khai attester.time, giá trị phải khớp mọi thời điểm vai trò đã biết của attester đó. Distinct role event times SHALL NOT be collapsed into a common attester time. |
attester.where(time.exists()).all((time | extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'attestedAt').value).distinct().count() <= 1)
|
| vn-cost-statement-composition-entry-required | error | Composition | Mỗi section của bản ký phải trỏ tới ít nhất một Invoice bảng kê chi phí. |
section.all(entry.exists())
|
| vn-cost-statement-composition-three-signatures | error | Composition | Bản ghi ở trạng thái final phải khai đúng một lần từng vai trò trao đổi: preparer, billing-confirmation và patient-confirmation. Một attester có thể mang nhiều vai trò; quy tắc không đòi người xác nhận khác nhau và không kiểm tra bằng chứng chữ ký. |
status != 'final' or (attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() = 1)
|
Summary
Mandatory: 7 elements
Must-Support: 17 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Dạng xem phần tử chính
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Composition | A set of resources composed into a single coherent clinical statement with clinical attestation Constraints: vn-cost-statement-composition-entry-required, vn-cost-statement-attestation-role-mode, vn-cost-statement-attestation-role-unique, vn-cost-statement-attestation-time-consistent, vn-cost-statement-composition-three-signatures |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 1..1 | Identifier | Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt |
![]() ![]() |
?!SΣ | 1..1 | code | preliminary | final (đủ ba attestation declarations) | amended | entered-in-error Binding: CompositionStatus (required): The workflow/clinical status of the composition. |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Loại chứng từ: bảng kê chi phí khám bệnh, chữa bệnh Binding: FHIRDocumentTypeCodes (preferred): Type of a composition. |
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh của đợt khám bệnh, chữa bệnh |
![]() ![]() |
SΣ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Đợt khám bệnh, chữa bệnh được lập bảng kê |
![]() ![]() |
SΣ | 1..1 | dateTime | Thời điểm lập bản ký |
![]() ![]() |
SΣ | 1..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người lập bảng kê |
![]() ![]() |
Σ | 1..1 | string | Human Readable name/title |
![]() ![]() |
S | 1..* | BackboneElement | Metadata cho ba ô ký/xác nhận của mẫu; không phải bằng chứng chữ ký |
![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Vai trò trao đổi của khai báo attestation URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
S | 1..1 | code | professional (người lập, kế toán viện phí) | personal (người bệnh hoặc người đại diện) Binding: CompositionAttestationMode (required): The way in which a person authenticated a composition. |
![]() ![]() ![]() |
S | 0..1 | dateTime | Thời điểm xác nhận chung, nếu các vai trò có cùng thời điểm |
![]() ![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người ký |
![]() ![]() |
SΣ | 1..1 | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | Cơ sở khám bệnh, chữa bệnh lưu giữ chứng từ |
![]() ![]() |
S | 0..* | BackboneElement | Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán) |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
1..1 | code | replaces | transforms | signs | appends Binding: DocumentRelationshipType (required): The type of relationship between documents. | |
![]() ![]() ![]() |
1..1 | Target of the relationship | ||
![]() ![]() ![]() ![]() |
Identifier | |||
![]() ![]() ![]() ![]() |
Reference(Composition) | |||
![]() ![]() |
SC | 1..* | BackboneElement | Mỗi phân đoạn thẻ × mức hưởng của mẫu là một section Constraints: cmp-1, cmp-2 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
S | 0..1 | string | Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%) |
![]() ![]() ![]() |
SC | 1..* | Reference(Bảng kê chi phí khám bệnh, chữa bệnh — VN Core Cost Statement Invoice) | Bảng kê chi phí được ký |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Composition.status | Base | required | CompositionStatus | 📍4.0.1 | FHIR Std. |
| Composition.type | Base | preferred | FHIR Document Type Codes | 📍4.0.1 | FHIR Std. |
| Composition.attester.mode | Base | required | CompositionAttestationMode | 📍4.0.1 | FHIR Std. |
| Composition.relatesTo.code | Base | required | DocumentRelationshipType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cmp-1 | error | Composition.section | A section must contain at least one of text, entries, or sub-sections |
text.exists() or entry.exists() or section.exists()
|
| cmp-2 | error | Composition.section | A section can only have an emptyReason if it is empty |
emptyReason.empty() or entry.empty()
|
| dom-2 | error | Composition | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Composition | 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 | Composition | 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 | Composition | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Composition | 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-cost-statement-attestation-role-mode | error | Composition | Vai trò người lập/kế toán phải dùng mode professional; vai trò xác nhận người bệnh phải dùng mode personal. Role declarations SHALL use the matching attester mode. |
attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer' or $this = 'billing-confirmation').exists()).all(mode = 'professional') and attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').exists()).all(mode = 'personal')
|
| vn-cost-statement-attestation-role-unique | error | Composition | Mỗi vai trò xác nhận bảng kê chỉ được khai tối đa một lần trên toàn Composition. Each cost-statement attestation role SHALL occur at most once. |
attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() <= 1
|
| vn-cost-statement-attestation-time-consistent | error | Composition | Nếu khai attester.time, giá trị phải khớp mọi thời điểm vai trò đã biết của attester đó. Distinct role event times SHALL NOT be collapsed into a common attester time. |
attester.where(time.exists()).all((time | extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'attestedAt').value).distinct().count() <= 1)
|
| vn-cost-statement-composition-entry-required | error | Composition | Mỗi section của bản ký phải trỏ tới ít nhất một Invoice bảng kê chi phí. |
section.all(entry.exists())
|
| vn-cost-statement-composition-three-signatures | error | Composition | Bản ghi ở trạng thái final phải khai đúng một lần từng vai trò trao đổi: preparer, billing-confirmation và patient-confirmation. Một attester có thể mang nhiều vai trò; quy tắc không đòi người xác nhận khác nhau và không kiểm tra bằng chứng chữ ký. |
status != 'final' or (attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() = 1)
|
Dạng xem Differential
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Composition | A set of resources composed into a single coherent clinical statement with clinical attestation Constraints: vn-cost-statement-composition-entry-required, vn-cost-statement-attestation-role-mode, vn-cost-statement-attestation-role-unique, vn-cost-statement-attestation-time-consistent, vn-cost-statement-composition-three-signatures |
![]() ![]() |
S | 1..1 | Identifier | Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt |
![]() ![]() |
S | 1..1 | code | preliminary | final (đủ ba attestation declarations) | amended | entered-in-error |
![]() ![]() |
S | 1..1 | CodeableConcept | Loại chứng từ: bảng kê chi phí khám bệnh, chữa bệnh |
![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh của đợt khám bệnh, chữa bệnh |
![]() ![]() |
S | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Đợt khám bệnh, chữa bệnh được lập bảng kê |
![]() ![]() |
S | 1..1 | dateTime | Thời điểm lập bản ký |
![]() ![]() |
S | 1..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người lập bảng kê |
![]() ![]() |
S | 1..* | BackboneElement | Metadata cho ba ô ký/xác nhận của mẫu; không phải bằng chứng chữ ký |
![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Vai trò trao đổi của khai báo attestation URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role |
![]() ![]() ![]() |
S | 1..1 | code | professional (người lập, kế toán viện phí) | personal (người bệnh hoặc người đại diện) |
![]() ![]() ![]() |
S | 0..1 | dateTime | Thời điểm xác nhận chung, nếu các vai trò có cùng thời điểm |
![]() ![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người ký |
![]() ![]() |
S | 1..1 | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | Cơ sở khám bệnh, chữa bệnh lưu giữ chứng từ |
![]() ![]() |
S | 0..* | BackboneElement | Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán) |
![]() ![]() |
S | 1..* | BackboneElement | Mỗi phân đoạn thẻ × mức hưởng của mẫu là một section |
![]() ![]() ![]() |
S | 0..1 | string | Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%) |
![]() ![]() ![]() |
S | 1..* | Reference(Bảng kê chi phí khám bệnh, chữa bệnh — VN Core Cost Statement Invoice) | Bảng kê chi phí được ký |
Documentation for this format | ||||
| Id | Grade | Path(s) | Description | Expression |
| vn-cost-statement-attestation-role-mode | error | Composition | Vai trò người lập/kế toán phải dùng mode professional; vai trò xác nhận người bệnh phải dùng mode personal. Role declarations SHALL use the matching attester mode. |
attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer' or $this = 'billing-confirmation').exists()).all(mode = 'professional') and attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').exists()).all(mode = 'personal')
|
| vn-cost-statement-attestation-role-unique | error | Composition | Mỗi vai trò xác nhận bảng kê chỉ được khai tối đa một lần trên toàn Composition. Each cost-statement attestation role SHALL occur at most once. |
attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() <= 1
|
| vn-cost-statement-attestation-time-consistent | error | Composition | Nếu khai attester.time, giá trị phải khớp mọi thời điểm vai trò đã biết của attester đó. Distinct role event times SHALL NOT be collapsed into a common attester time. |
attester.where(time.exists()).all((time | extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'attestedAt').value).distinct().count() <= 1)
|
| vn-cost-statement-composition-entry-required | error | Composition | Mỗi section của bản ký phải trỏ tới ít nhất một Invoice bảng kê chi phí. |
section.all(entry.exists())
|
| vn-cost-statement-composition-three-signatures | error | Composition | Bản ghi ở trạng thái final phải khai đúng một lần từng vai trò trao đổi: preparer, billing-confirmation và patient-confirmation. Một attester có thể mang nhiều vai trò; quy tắc không đòi người xác nhận khác nhau và không kiểm tra bằng chứng chữ ký. |
status != 'final' or (attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() = 1)
|
Dạng xem SnapshotView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Composition | A set of resources composed into a single coherent clinical statement with clinical attestation Constraints: vn-cost-statement-composition-entry-required, vn-cost-statement-attestation-role-mode, vn-cost-statement-attestation-role-unique, vn-cost-statement-attestation-time-consistent, vn-cost-statement-composition-three-signatures | ||||
![]() ![]() |
Σ | 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 | ||||
![]() ![]() |
SΣ | 1..1 | Identifier | Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt | ||||
![]() ![]() |
?!SΣ | 1..1 | code | preliminary | final (đủ ba attestation declarations) | amended | entered-in-error Binding: CompositionStatus (required): The workflow/clinical status of the composition. | ||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Loại chứng từ: bảng kê chi phí khám bệnh, chữa bệnh Binding: FHIRDocumentTypeCodes (preferred): Type of a composition. | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Categorization of Composition Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level. | ||||
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh của đợt khám bệnh, chữa bệnh | ||||
![]() ![]() |
SΣ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Đợt khám bệnh, chữa bệnh được lập bảng kê | ||||
![]() ![]() |
SΣ | 1..1 | dateTime | Thời điểm lập bản ký | ||||
![]() ![]() |
SΣ | 1..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người lập bảng kê | ||||
![]() ![]() |
Σ | 1..1 | string | Human Readable name/title | ||||
![]() ![]() |
Σ | 0..1 | code | As defined by affinity domain Binding: v3.ConfidentialityClassification (2014-03-26) (required): Codes specifying the level of confidentiality of the composition. | ||||
![]() ![]() |
S | 1..* | BackboneElement | Metadata cho ba ô ký/xác nhận của mẫu; không phải bằng chứng chữ ký | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
S | 0..* | (Complex) | Vai trò trao đổi của khai báo attestation URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role | ||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
S | 1..1 | code | professional (người lập, kế toán viện phí) | personal (người bệnh hoặc người đại diện) Binding: CompositionAttestationMode (required): The way in which a person authenticated a composition. | ||||
![]() ![]() ![]() |
S | 0..1 | dateTime | Thời điểm xác nhận chung, nếu các vai trò có cùng thời điểm | ||||
![]() ![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người ký | ||||
![]() ![]() |
SΣ | 1..1 | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | Cơ sở khám bệnh, chữa bệnh lưu giữ chứng từ | ||||
![]() ![]() |
S | 0..* | BackboneElement | Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết 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 | code | replaces | transforms | signs | appends Binding: DocumentRelationshipType (required): The type of relationship between documents. | |||||
![]() ![]() ![]() |
1..1 | Target of the relationship | ||||||
![]() ![]() ![]() ![]() |
Identifier | |||||||
![]() ![]() ![]() ![]() |
Reference(Composition) | |||||||
![]() ![]() |
Σ | 0..* | BackboneElement | The clinical service(s) being documented | ||||
![]() ![]() ![]() |
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..* | CodeableConcept | Code(s) that apply to the event being documented Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | The period covered by the documentation | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Resource) | The event(s) being documented | ||||
![]() ![]() |
SC | 1..* | BackboneElement | Mỗi phân đoạn thẻ × mức hưởng của mẫu là một section Constraints: cmp-1, cmp-2 | ||||
![]() ![]() ![]() |
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 | string | Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%) | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Classification of section (recommended) Binding: DocumentSectionCodes (example): Classification of a section of a composition/document. | |||||
![]() ![]() ![]() |
0..* | Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization) | Who and/or what authored the section | |||||
![]() ![]() ![]() |
0..1 | Reference(Resource) | Who/what the section is about, when it is not about the subject of composition | |||||
![]() ![]() ![]() |
C | 0..1 | Narrative | Text summary of the section, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | ||||
![]() ![]() ![]() |
0..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this section. | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Order of section entries Binding: ListOrderCodes (preferred): What order applies to the items in the entry. | |||||
![]() ![]() ![]() |
SC | 1..* | Reference(Bảng kê chi phí khám bệnh, chữa bệnh — VN Core Cost Statement Invoice) | Bảng kê chi phí được ký | ||||
![]() ![]() ![]() |
C | 0..1 | CodeableConcept | Why the section is empty Binding: ListEmptyReasons (preferred): If a section is empty, why it is empty. | ||||
![]() ![]() ![]() |
C | 0..* | See section (Composition) | Nested Section | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Composition.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Composition.status | Base | required | CompositionStatus | 📍4.0.1 | FHIR Std. |
| Composition.type | Base | preferred | FHIR Document Type Codes | 📍4.0.1 | FHIR Std. |
| Composition.category | Base | example | Document Class Value Set | 📍4.0.1 | FHIR Std. |
| Composition.confidentiality | Base | required | V3 Value SetConfidentialityClassification | 📍2014-03-26 | FHIR Std. |
| Composition.attester.mode | Base | required | CompositionAttestationMode | 📍4.0.1 | FHIR Std. |
| Composition.relatesTo.code | Base | required | DocumentRelationshipType | 📍4.0.1 | FHIR Std. |
| Composition.event.code | Base | example | v3 Code System ActCode | 📦3.0.0 | THO v7.2 |
| Composition.section.code | Base | example | Document Section Codes | 📍4.0.1 | FHIR Std. |
| Composition.section.mode | Base | required | ListMode | 📍4.0.1 | FHIR Std. |
| Composition.section.orderedBy | Base | preferred | List Order Codes | 📍4.0.1 | FHIR Std. |
| Composition.section.emptyReason | Base | preferred | List Empty Reasons | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cmp-1 | error | Composition.section | A section must contain at least one of text, entries, or sub-sections |
text.exists() or entry.exists() or section.exists()
|
| cmp-2 | error | Composition.section | A section can only have an emptyReason if it is empty |
emptyReason.empty() or entry.empty()
|
| dom-2 | error | Composition | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Composition | 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 | Composition | 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 | Composition | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Composition | 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-cost-statement-attestation-role-mode | error | Composition | Vai trò người lập/kế toán phải dùng mode professional; vai trò xác nhận người bệnh phải dùng mode personal. Role declarations SHALL use the matching attester mode. |
attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer' or $this = 'billing-confirmation').exists()).all(mode = 'professional') and attester.where(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').exists()).all(mode = 'personal')
|
| vn-cost-statement-attestation-role-unique | error | Composition | Mỗi vai trò xác nhận bảng kê chỉ được khai tối đa một lần trên toàn Composition. Each cost-statement attestation role SHALL occur at most once. |
attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() <= 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() <= 1
|
| vn-cost-statement-attestation-time-consistent | error | Composition | Nếu khai attester.time, giá trị phải khớp mọi thời điểm vai trò đã biết của attester đó. Distinct role event times SHALL NOT be collapsed into a common attester time. |
attester.where(time.exists()).all((time | extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'attestedAt').value).distinct().count() <= 1)
|
| vn-cost-statement-composition-entry-required | error | Composition | Mỗi section của bản ký phải trỏ tới ít nhất một Invoice bảng kê chi phí. |
section.all(entry.exists())
|
| vn-cost-statement-composition-three-signatures | error | Composition | Bản ghi ở trạng thái final phải khai đúng một lần từng vai trò trao đổi: preparer, billing-confirmation và patient-confirmation. Một attester có thể mang nhiều vai trò; quy tắc không đòi người xác nhận khác nhau và không kiểm tra bằng chứng chữ ký. |
status != 'final' or (attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'preparer').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'billing-confirmation').count() = 1 and attester.extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-cost-statement-attestation-role').extension.where(url = 'role').value.ofType(code).where($this = 'patient-confirmation').count() = 1)
|
Summary
Mandatory: 7 elements
Must-Support: 17 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Biểu diễn khác của hồ sơ: CSV, Excel, Schematron