HL7 Vietnam VN Core FHIR Implementation Guide

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 Viet Nam cờ

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

Hồ sơ tài nguyên: Bản ghi attestation bảng kê chi phí khám bệnh, chữa bệnh — VN Core Cost Statement Composition

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

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

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Composition 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
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 1..1 Identifier Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt
... type 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.
... subject 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
... encounter 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ê
... date SΣ 1..1 dateTime Thời điểm lập bản ký
... author 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ê
... title Σ 1..1 string Human Readable name/title
... attester 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ý
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:costStatementRole 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... mode 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.
.... time 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
.... party 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ý
... custodian 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ừ
... relatesTo S 0..* BackboneElement Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán)
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code 1..1 code replaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.
.... target[x] 1..1 Target of the relationship
..... targetIdentifier Identifier
..... targetReference Reference(Composition)
... section 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... title S 0..1 string Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%)
.... 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ý

doco Documentation for this format

Terminology Bindings

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.

Constraints

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)

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Composition 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
... identifier S 1..1 Identifier Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt
... status S 1..1 code preliminary | final (đủ ba attestation declarations) | amended | entered-in-error
... type S 1..1 CodeableConcept Loại chứng từ: bảng kê chi phí khám bệnh, chữa bệnh
... encounter 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ê
... date S 1..1 dateTime Thời điểm lập bản ký
... author 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ê
... attester 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ý
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:costStatementRole 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
.... mode 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)
.... time 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
.... party 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ý
... custodian 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ừ
... relatesTo S 0..* BackboneElement Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán)
... section S 1..* BackboneElement Mỗi phân đoạn thẻ × mức hưởng của mẫu là một section
.... title S 0..1 string Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%)
.... entry 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ý

doco Documentation for this format

Constraints

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)
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Composition 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
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 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
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 1..1 Identifier Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt
... status ?!SΣ 1..1 code preliminary | final (đủ ba attestation declarations) | amended | entered-in-error
Binding: CompositionStatus (required): The workflow/clinical status of the composition.
... type 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.
... category Σ 0..* CodeableConcept Categorization of Composition
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.
... subject 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
... encounter 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ê
... date SΣ 1..1 dateTime Thời điểm lập bản ký
... author 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ê
... title Σ 1..1 string Human Readable name/title
... confidentiality Σ 0..1 code As defined by affinity domain
Binding: v3.ConfidentialityClassification (2014-03-26) (required): Codes specifying the level of confidentiality of the composition.
... attester 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ý
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:costStatementRole 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... mode 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.
.... time 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
.... party 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ý
... custodian 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ừ
... relatesTo S 0..* BackboneElement Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code 1..1 code replaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.
.... target[x] 1..1 Target of the relationship
..... targetIdentifier Identifier
..... targetReference Reference(Composition)
... event Σ 0..* BackboneElement The clinical service(s) being documented
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code Σ 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.
.... period Σ 0..1 Period The period covered by the documentation
.... detail Σ 0..* Reference(Resource) The event(s) being documented
... section 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
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... title S 0..1 string Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%)
.... code 0..1 CodeableConcept Classification of section (recommended)
Binding: DocumentSectionCodes (example): Classification of a section of a composition/document.
.... author 0..* Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization) Who and/or what authored the section
.... focus 0..1 Reference(Resource) Who/what the section is about, when it is not about the subject of composition
.... text 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
.... mode 0..1 code working | snapshot | changes
Binding: ListMode (required): The processing mode that applies to this section.
.... orderedBy 0..1 CodeableConcept Order of section entries
Binding: ListOrderCodes (preferred): What order applies to the items in the entry.
.... 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ý
.... emptyReason C 0..1 CodeableConcept Why the section is empty
Binding: ListEmptyReasons (preferred): If a section is empty, why it is empty.
.... section C 0..* See section (Composition) Nested Section

doco Documentation for this format

Terminology Bindings

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.

Constraints

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 phần tử chính

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Composition 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
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 1..1 Identifier Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt
... type 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.
... subject 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
... encounter 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ê
... date SΣ 1..1 dateTime Thời điểm lập bản ký
... author 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ê
... title Σ 1..1 string Human Readable name/title
... attester 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ý
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:costStatementRole 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... mode 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.
.... time 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
.... party 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ý
... custodian 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ừ
... relatesTo S 0..* BackboneElement Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán)
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code 1..1 code replaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.
.... target[x] 1..1 Target of the relationship
..... targetIdentifier Identifier
..... targetReference Reference(Composition)
... section 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... title S 0..1 string Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%)
.... 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ý

doco Documentation for this format

Terminology Bindings

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.

Constraints

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Composition 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
... identifier S 1..1 Identifier Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt
... status S 1..1 code preliminary | final (đủ ba attestation declarations) | amended | entered-in-error
... type S 1..1 CodeableConcept Loại chứng từ: bảng kê chi phí khám bệnh, chữa bệnh
... encounter 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ê
... date S 1..1 dateTime Thời điểm lập bản ký
... author 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ê
... attester 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ý
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:costStatementRole 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
.... mode 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)
.... time 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
.... party 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ý
... custodian 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ừ
... relatesTo S 0..* BackboneElement Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán)
... section S 1..* BackboneElement Mỗi phân đoạn thẻ × mức hưởng của mẫu là một section
.... title S 0..1 string Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%)
.... entry 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ý

doco Documentation for this format

Constraints

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Composition 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
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 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
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 1..1 Identifier Mã liên kết hồ sơ (MA_LK) — dùng chung với Invoice của cùng đợt
... status ?!SΣ 1..1 code preliminary | final (đủ ba attestation declarations) | amended | entered-in-error
Binding: CompositionStatus (required): The workflow/clinical status of the composition.
... type 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.
... category Σ 0..* CodeableConcept Categorization of Composition
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.
... subject 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
... encounter 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ê
... date SΣ 1..1 dateTime Thời điểm lập bản ký
... author 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ê
... title Σ 1..1 string Human Readable name/title
... confidentiality Σ 0..1 code As defined by affinity domain
Binding: v3.ConfidentialityClassification (2014-03-26) (required): Codes specifying the level of confidentiality of the composition.
... attester 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ý
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:costStatementRole 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... mode 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.
.... time 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
.... party 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ý
... custodian 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ừ
... relatesTo S 0..* BackboneElement Quan hệ với bản ký trước (bảng kê điều chỉnh sau quyết toán)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code 1..1 code replaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.
.... target[x] 1..1 Target of the relationship
..... targetIdentifier Identifier
..... targetReference Reference(Composition)
... event Σ 0..* BackboneElement The clinical service(s) being documented
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code Σ 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.
.... period Σ 0..1 Period The period covered by the documentation
.... detail Σ 0..* Reference(Resource) The event(s) being documented
... section 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
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... title S 0..1 string Nhan đề phân đoạn (vd: Từ 01/03 đến 04/03 — mức hưởng 80%)
.... code 0..1 CodeableConcept Classification of section (recommended)
Binding: DocumentSectionCodes (example): Classification of a section of a composition/document.
.... author 0..* Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization) Who and/or what authored the section
.... focus 0..1 Reference(Resource) Who/what the section is about, when it is not about the subject of composition
.... text 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
.... mode 0..1 code working | snapshot | changes
Binding: ListMode (required): The processing mode that applies to this section.
.... orderedBy 0..1 CodeableConcept Order of section entries
Binding: ListOrderCodes (preferred): What order applies to the items in the entry.
.... 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ý
.... emptyReason C 0..1 CodeableConcept Why the section is empty
Binding: ListEmptyReasons (preferred): If a section is empty, why it is empty.
.... section C 0..* See section (Composition) Nested Section

doco Documentation for this format

Terminology Bindings

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.

Constraints

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)

 

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