Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide
0.9.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 - Local Development build (v0.9.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-consent | Phiên bản: 0.9.0 | ||||
| Computable Name: VNCoreConsent | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.38 | |||||
Profile Consent cho Việt Nam CHỈ biểu diễn lựa chọn của chủ thể dữ liệu: đồng ý, từ chối, rút lại hoặc giới hạn xử lý/chia sẻ dữ liệu y tế cá nhân. Xử lý không cần đồng ý theo Luật 91/2025/QH15 Điều 19 khoản 1 không được authoring bằng Consent trong 0.9; dùng VNCoreAuditEventLegalBasisDecision cho quyết định, AuditEvent tiếp theo cho truy cập/tiết lộ thực tế, và Provenance nếu tạo/sửa/dẫn xuất dữ liệu. Context extension trên Consent được giữ tạm để đọc legacy 0.8 và dự kiến gỡ ở 1.0.
Profile hỗ trợ biểu diễn sự đồng ý/từ chối xử lý dữ liệu y tế cá nhân theo các yêu cầu được tham chiếu từ Luật 91/2025/QH15 (Bảo vệ dữ liệu cá nhân) và NĐ 356/2025/NĐ-CP, bao gồm mục đích xử lý, phạm vi, thời hạn, và quyền rút lại đồng ý. Phù hợp với profile này chỉ xác nhận cấu trúc FHIR; không tự chứng minh sự đồng ý hợp lệ hoặc việc tuân thủ pháp luật. Bên triển khai phải đánh giá vai trò, căn cứ, bằng chứng và quy trình thực tế. Dữ liệu y tế = dữ liệu cá nhân nhạy cảm (Luật 91/2025/QH15 Điều 2 khoản 3; danh mục tại NĐ 356/2025/NĐ-CP Điều 4 khoản 1 điểm d — tình trạng sức khỏe). Căn cứ (theo bản BAN HÀNH — ma trận điều khoản: governance/legal-article-map.json):
Ánh xạ trạng thái của IG (dựa trên các quyền/nghĩa vụ tại Luật 91/2025/QH15 Điều 4/9/10; Luật không quy định mã trạng thái FHIR R4):
status=active + rule nested provision.provision.type=deny;rejected = đề nghị đồng ý bị TỪ CHỐI ngay từ đầu, chưa từng có hiệu lực;inactive = đồng ý đã CHẤM DỨT hiệu lực: rút lại theo Điều 10, hết thời hạn, hoặc bị thay bằng bản mới.
Yêu cầu rút lại không áp dụng hồi tố (Điều 10 khoản 4) — hoạt động xử lý trước thời điểm rút không bị tác động bởi YÊU CẦU RÚT; tính hợp pháp của xử lý trước đó được đánh giá độc lập theo căn cứ tại thời điểm xử lý.
/
This profile represents only the data subject's choices: consent, refusal, withdrawal, or limits on processing
and sharing. Processing without consent under Article 19(1) SHALL NOT be newly authored as Consent in 0.9.
Use VNCoreAuditEventLegalBasisDecision for the authorization decision, a subsequent AuditEvent for actual
access/disclosure, and Provenance when data is created, updated, or derived. The Consent extension context is
retained only for legacy 0.8 reads during the 0.9 line and is planned for removal in 1.0. Conformance to this
profile validates FHIR structure only and does not itself prove valid consent or legal compliance.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..* | Consent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5, vn-consent-rejected-not-permit, vn-consent-provision-structure, vn-consent-no-processing-legal-basis |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!SΣ | 1..1 | code | Trạng thái đồng ý Binding: ConsentState (required): Indicates the state of the consent. |
![]() ![]() |
?!SΣ | 1..1 | CodeableConcept | Phạm vi đồng ý Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. |
![]() ![]() |
SΣ | 1..* | CodeableConcept | Loại đồng ý Binding: Loại đồng ý — VN Consent Category ValueSet (extensible) |
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Chủ thể dữ liệu |
![]() ![]() |
SΣ | 1..1 | dateTime | Thời điểm đồng ý |
![]() ![]() |
SΣ | 0..* | 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) | Người đồng ý |
![]() ![]() |
SΣ | 0..* | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | CSKCB quản lý đồng ý |
![]() ![]() |
SΣ | 0..1 | Bản gốc đồng ý | |
![]() ![]() ![]() |
Attachment | |||
![]() ![]() ![]() |
Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | |||
![]() ![]() |
S | 0..* | BackboneElement | Căn cứ pháp lý |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
C | 0..1 | uri | Cơ quan ban hành |
![]() ![]() ![]() |
SC | 0..1 | uri | URL văn bản pháp lý |
![]() ![]() |
SΣ | 0..1 | BackboneElement | Quy tắc đồng ý chi tiết |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 0..1 | Period | Thời hạn hiệu lực |
![]() ![]() ![]() |
0..* | BackboneElement | Bên liên quan | |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |
![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() |
SΣ | 0..* | Coding | Mục đích xử lý Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible) |
![]() ![]() ![]() |
Σ | 0..* | Coding | Loại dữ liệu Binding: ConsentContentClass (extensible): The class (type) of information a consent rule covers. |
![]() ![]() ![]() |
S | 0..* | BackboneElement | Các rule permit/deny |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | Cho phép / Từ chối Binding: ConsentProvisionType (required): How a rule statement is applied, such as adding additional consent or removing consent. |
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Who|what controlled by this rule (or group, by role) Slice: Unordered, Open by exists:extension('http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority') | |
![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() ![]() ![]() |
S | 0..* | BackboneElement | Người đại diện/giám hộ — mang token thẩm quyền |
![]() ![]() ![]() ![]() ![]() ![]() |
1..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
S | 1..1 | (Complex) | Thẩm quyền đại diện truy cập dữ liệu — Representation Authority Extension URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority |
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() ![]() |
SΣ | 0..* | Coding | Lớp nhạy cảm dữ liệu áp cho rule Binding: Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet (extensible) |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.status | Base | required | ConsentState | 📍4.0.1 | FHIR Std. |
| Consent.scope | Base | extensible | Consent Scope Codes | 📍4.0.1 | FHIR Std. |
| Consent.category | Base | extensible | Loại đồng ý — VN Consent Category ValueSet | 📦0.9.0 | This IG |
| Consent.provision.actor.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.purpose | Base | extensible | Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.9.0 | This IG |
| Consent.provision.class | Base | extensible | Consent Content Class | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.type | Base | required | ConsentProvisionType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.actor.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.actor:representative.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.securityLabel | Base | extensible | Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet | 📦0.9.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Consent | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Consent | 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 | Consent | 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 | Consent | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Consent | 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()
|
| ppc-1 | error | Consent | Either a Policy or PolicyRule |
policy.exists() or policyRule.exists()
|
| ppc-2 | error | Consent | IF Scope=privacy, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()
|
| ppc-3 | error | Consent | IF Scope=research, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='research').exists().not()
|
| ppc-4 | error | Consent | IF Scope=adr, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()
|
| ppc-5 | error | Consent | IF Scope=treatment, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()
|
| vn-consent-no-processing-legal-basis | error | Consent | VNCoreConsent 0.9 chỉ biểu diễn lựa chọn của chủ thể và không được mang vn-ext-processing-legal-basis; xử lý không qua đồng ý dùng VNCoreAuditEventLegalBasisDecision / VNCoreConsent 0.9 represents data-subject choices only and SHALL NOT carry vn-ext-processing-legal-basis; processing without consent uses VNCoreAuditEventLegalBasisDecision |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-processing-legal-basis').empty()
|
| vn-consent-provision-structure | error | Consent | Theo R4: root rule (Consent.provision) KHÔNG mang type; mọi rule permit/deny khai ở nested (provision.provision[*]) và bắt buộc có type |
provision.exists() implies (provision.type.empty() and provision.provision.exists() and provision.repeat(provision).all(type.exists()))
|
| vn-consent-rejected-not-permit | error | Consent | Bản ghi status=rejected (từ chối ngay từ đầu) không được chứa rule permit ở BẤT KỲ độ sâu nested nào — cho phép đang hiệu lực phải dùng status=active |
(status = 'rejected') implies provision.repeat(provision).type.where($this = 'permit').empty()
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Consent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: vn-consent-rejected-not-permit, vn-consent-provision-structure, vn-consent-no-processing-legal-basis |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..0 | CodeableConcept | Cấm authoring căn cứ Điều 19 trên Consent / No Article 19 authoring on Consent URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-processing-legal-basis Binding: Căn cứ xử lý DLCN không cần sự đồng ý — VN Processing Legal Basis ValueSet (required) | |
![]() ![]() |
S | 1..1 | code | Trạng thái đồng ý |
![]() ![]() |
S | 1..1 | CodeableConcept | Phạm vi đồng ý |
![]() ![]() |
S | 1..* | CodeableConcept | Loại đồng ý Binding: Loại đồng ý — VN Consent Category ValueSet (extensible) |
![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Chủ thể dữ liệu |
![]() ![]() |
S | 1..1 | dateTime | Thời điểm đồng ý |
![]() ![]() |
S | 0..* | 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) | Người đồng ý |
![]() ![]() |
S | 0..* | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | CSKCB quản lý đồng ý |
![]() ![]() |
S | 0..1 | Attachment, Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | Bản gốc đồng ý |
![]() ![]() |
S | 0..* | BackboneElement | Căn cứ pháp lý |
![]() ![]() ![]() |
0..1 | uri | Cơ quan ban hành | |
![]() ![]() ![]() |
S | 0..1 | uri | URL văn bản pháp lý |
![]() ![]() |
S | 0..1 | BackboneElement | Quy tắc đồng ý chi tiết |
![]() ![]() ![]() |
0..0 | deny | permit | ||
![]() ![]() ![]() |
S | 0..1 | Period | Thời hạn hiệu lực |
![]() ![]() ![]() |
0..* | BackboneElement | Bên liên quan | |
![]() ![]() ![]() |
S | 0..* | Coding | Mục đích xử lý Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible) |
![]() ![]() ![]() |
0..* | Coding | Loại dữ liệu | |
![]() ![]() ![]() |
S | 0..* | BackboneElement | Các rule permit/deny |
![]() ![]() ![]() ![]() |
S | 1..1 | code | Cho phép / Từ chối |
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Who|what controlled by this rule (or group, by role) Slice: Unordered, Open by exists:extension('http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority') | |
![]() ![]() ![]() ![]() ![]() |
S | 0..* | BackboneElement | Người đại diện/giám hộ — mang token thẩm quyền |
![]() ![]() ![]() ![]() ![]() ![]() |
1..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
S | 1..1 | (Complex) | Thẩm quyền đại diện truy cập dữ liệu — Representation Authority Extension URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() ![]() |
S | 0..* | Coding | Lớp nhạy cảm dữ liệu áp cho rule Binding: Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet (extensible) |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.category | Base | extensible | Loại đồng ý — VN Consent Category ValueSet | 📦0.9.0 | This IG |
| Consent.provision.purpose | Base | extensible | Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.9.0 | This IG |
| Consent.provision.provision.securityLabel | Base | extensible | Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet | 📦0.9.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| vn-consent-no-processing-legal-basis | error | Consent | VNCoreConsent 0.9 chỉ biểu diễn lựa chọn của chủ thể và không được mang vn-ext-processing-legal-basis; xử lý không qua đồng ý dùng VNCoreAuditEventLegalBasisDecision / VNCoreConsent 0.9 represents data-subject choices only and SHALL NOT carry vn-ext-processing-legal-basis; processing without consent uses VNCoreAuditEventLegalBasisDecision |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-processing-legal-basis').empty()
|
| vn-consent-provision-structure | error | Consent | Theo R4: root rule (Consent.provision) KHÔNG mang type; mọi rule permit/deny khai ở nested (provision.provision[*]) và bắt buộc có type |
provision.exists() implies (provision.type.empty() and provision.provision.exists() and provision.repeat(provision).all(type.exists()))
|
| vn-consent-rejected-not-permit | error | Consent | Bản ghi status=rejected (từ chối ngay từ đầu) không được chứa rule permit ở BẤT KỲ độ sâu nested nào — cho phép đang hiệu lực phải dùng status=active |
(status = 'rejected') implies provision.repeat(provision).type.where($this = 'permit').empty()
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Consent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5, vn-consent-rejected-not-permit, vn-consent-provision-structure, vn-consent-no-processing-legal-basis | ||||
![]() ![]() |
Σ | 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 | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Identifier for this record (external references) Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Trạng thái đồng ý Binding: ConsentState (required): Indicates the state of the consent. | ||||
![]() ![]() |
?!SΣ | 1..1 | CodeableConcept | Phạm vi đồng ý Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. | ||||
![]() ![]() |
SΣ | 1..* | CodeableConcept | Loại đồng ý Binding: Loại đồng ý — VN Consent Category ValueSet (extensible) | ||||
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Chủ thể dữ liệu | ||||
![]() ![]() |
SΣ | 1..1 | dateTime | Thời điểm đồng ý | ||||
![]() ![]() |
SΣ | 0..* | 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) | Người đồng ý | ||||
![]() ![]() |
SΣ | 0..* | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | CSKCB quản lý đồng ý | ||||
![]() ![]() |
SΣ | 0..1 | Bản gốc đồng ý | |||||
![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() |
Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | |||||||
![]() ![]() |
S | 0..* | BackboneElement | Căn cứ pháp lý | ||||
![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() |
C | 0..1 | uri | Cơ quan ban hành | ||||
![]() ![]() ![]() |
SC | 0..1 | uri | URL văn bản pháp lý | ||||
![]() ![]() |
ΣC | 0..1 | CodeableConcept | Regulation that this consents to Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Consent Verified by patient or family | ||||
![]() ![]() ![]() |
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 | boolean | Has been verified | ||||
![]() ![]() ![]() |
0..1 | Reference(Patient | RelatedPerson) | Person who verified | |||||
![]() ![]() ![]() |
0..1 | dateTime | When consent verified | |||||
![]() ![]() |
SΣ | 0..1 | BackboneElement | Quy tắc đồng ý chi tiết | ||||
![]() ![]() ![]() |
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 | Period | Thời hạn hiệu lực | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Bên liên quan | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |||||
![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Actions controlled by this rule Binding: ConsentActionCodes (example): Detailed codes for the consent action. | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Security Labels that define affected resources Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. | ||||
![]() ![]() ![]() |
SΣ | 0..* | Coding | Mục đích xử lý Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible) | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Loại dữ liệu Binding: ConsentContentClass (extensible): The class (type) of information a consent rule covers. | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | e.g. LOINC or SNOMED CT code, etc. in the content Binding: ConsentContentCodes (example): If this code is found in an instance, then the exception applies. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Timeframe for data controlled by this rule | ||||
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Data controlled by this rule | ||||
![]() ![]() ![]() ![]() |
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 | instance | related | dependents | authoredby Binding: ConsentDataMeaning (required): How a resource reference is interpreted when testing consent restrictions. | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Resource) | The actual data reference | ||||
![]() ![]() ![]() |
S | 0..* | BackboneElement | Các rule permit/deny | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | Cho phép / Từ chối Binding: ConsentProvisionType (required): How a rule statement is applied, such as adding additional consent or removing consent. | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Timeframe for this rule | ||||
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Who|what controlled by this rule (or group, by role) Slice: Unordered, Open by exists:extension('http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority') | |||||
![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |||||
![]() ![]() ![]() ![]() ![]() |
S | 0..* | BackboneElement | Người đại diện/giám hộ — mang token thẩm quyền | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
S | 1..1 | (Complex) | Thẩm quyền đại diện truy cập dữ liệu — Representation Authority Extension URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile) | Resource for the actor (or group, by role) | |||||
![]() ![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Actions controlled by this rule Binding: ConsentActionCodes (example): Detailed codes for the consent action. | ||||
![]() ![]() ![]() ![]() |
SΣ | 0..* | Coding | Lớp nhạy cảm dữ liệu áp cho rule Binding: Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet (extensible) | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | Context of activities covered by this rule Binding: PurposeOfUse (extensible): What purposes of use are controlled by this exception. If more than one label is specified, operations must have all the specified labels. | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | e.g. Resource Type, Profile, CDA, etc. Binding: ConsentContentClass (extensible): The class (type) of information a consent rule covers. | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | e.g. LOINC or SNOMED CT code, etc. in the content Binding: ConsentContentCodes (example): If this code is found in an instance, then the exception applies. | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Timeframe for data controlled by this rule | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Data controlled by this rule | ||||
![]() ![]() ![]() ![]() ![]() |
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 | instance | related | dependents | authoredby Binding: ConsentDataMeaning (required): How a resource reference is interpreted when testing consent restrictions. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Resource) | The actual data reference | ||||
![]() ![]() ![]() ![]() |
0..* | See provision (Consent) | Nested Exception Rules | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Consent.status | Base | required | ConsentState | 📍4.0.1 | FHIR Std. |
| Consent.scope | Base | extensible | Consent Scope Codes | 📍4.0.1 | FHIR Std. |
| Consent.category | Base | extensible | Loại đồng ý — VN Consent Category ValueSet | 📦0.9.0 | This IG |
| Consent.policyRule | Base | extensible | Consent PolicyRule Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.actor.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.action | Base | example | Consent Action Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.securityLabel | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std. |
| Consent.provision.purpose | Base | extensible | Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.9.0 | This IG |
| Consent.provision.class | Base | extensible | Consent Content Class | 📍4.0.1 | FHIR Std. |
| Consent.provision.code | Base | example | Consent Content Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.data.meaning | Base | required | ConsentDataMeaning | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.type | Base | required | ConsentProvisionType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.actor.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.actor:representative.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.action | Base | example | Consent Action Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.securityLabel | Base | extensible | Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet | 📦0.9.0 | This IG |
| Consent.provision.provision.purpose | Base | extensible | PurposeOfUse | 📦3.1.0 | THO v7.2 |
| Consent.provision.provision.class | Base | extensible | Consent Content Class | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.code | Base | example | Consent Content Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.data.meaning | Base | required | ConsentDataMeaning | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Consent | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Consent | 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 | Consent | 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 | Consent | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Consent | 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()
|
| ppc-1 | error | Consent | Either a Policy or PolicyRule |
policy.exists() or policyRule.exists()
|
| ppc-2 | error | Consent | IF Scope=privacy, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()
|
| ppc-3 | error | Consent | IF Scope=research, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='research').exists().not()
|
| ppc-4 | error | Consent | IF Scope=adr, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()
|
| ppc-5 | error | Consent | IF Scope=treatment, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()
|
| vn-consent-no-processing-legal-basis | error | Consent | VNCoreConsent 0.9 chỉ biểu diễn lựa chọn của chủ thể và không được mang vn-ext-processing-legal-basis; xử lý không qua đồng ý dùng VNCoreAuditEventLegalBasisDecision / VNCoreConsent 0.9 represents data-subject choices only and SHALL NOT carry vn-ext-processing-legal-basis; processing without consent uses VNCoreAuditEventLegalBasisDecision |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-processing-legal-basis').empty()
|
| vn-consent-provision-structure | error | Consent | Theo R4: root rule (Consent.provision) KHÔNG mang type; mọi rule permit/deny khai ở nested (provision.provision[*]) và bắt buộc có type |
provision.exists() implies (provision.type.empty() and provision.provision.exists() and provision.repeat(provision).all(type.exists()))
|
| vn-consent-rejected-not-permit | error | Consent | Bản ghi status=rejected (từ chối ngay từ đầu) không được chứa rule permit ở BẤT KỲ độ sâu nested nào — cho phép đang hiệu lực phải dùng status=active |
(status = 'rejected') implies provision.repeat(provision).type.where($this = 'permit').empty()
|
Summary
Mandatory: 2 elements(3 nested mandatory elements)
Must-Support: 18 elements
Prohibited: 2 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Dạng xem phần tử chính
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Consent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5, vn-consent-rejected-not-permit, vn-consent-provision-structure, vn-consent-no-processing-legal-basis |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!SΣ | 1..1 | code | Trạng thái đồng ý Binding: ConsentState (required): Indicates the state of the consent. |
![]() ![]() |
?!SΣ | 1..1 | CodeableConcept | Phạm vi đồng ý Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. |
![]() ![]() |
SΣ | 1..* | CodeableConcept | Loại đồng ý Binding: Loại đồng ý — VN Consent Category ValueSet (extensible) |
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Chủ thể dữ liệu |
![]() ![]() |
SΣ | 1..1 | dateTime | Thời điểm đồng ý |
![]() ![]() |
SΣ | 0..* | 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) | Người đồng ý |
![]() ![]() |
SΣ | 0..* | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | CSKCB quản lý đồng ý |
![]() ![]() |
SΣ | 0..1 | Bản gốc đồng ý | |
![]() ![]() ![]() |
Attachment | |||
![]() ![]() ![]() |
Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | |||
![]() ![]() |
S | 0..* | BackboneElement | Căn cứ pháp lý |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
C | 0..1 | uri | Cơ quan ban hành |
![]() ![]() ![]() |
SC | 0..1 | uri | URL văn bản pháp lý |
![]() ![]() |
SΣ | 0..1 | BackboneElement | Quy tắc đồng ý chi tiết |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 0..1 | Period | Thời hạn hiệu lực |
![]() ![]() ![]() |
0..* | BackboneElement | Bên liên quan | |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |
![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() |
SΣ | 0..* | Coding | Mục đích xử lý Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible) |
![]() ![]() ![]() |
Σ | 0..* | Coding | Loại dữ liệu Binding: ConsentContentClass (extensible): The class (type) of information a consent rule covers. |
![]() ![]() ![]() |
S | 0..* | BackboneElement | Các rule permit/deny |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | Cho phép / Từ chối Binding: ConsentProvisionType (required): How a rule statement is applied, such as adding additional consent or removing consent. |
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Who|what controlled by this rule (or group, by role) Slice: Unordered, Open by exists:extension('http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority') | |
![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() ![]() ![]() |
S | 0..* | BackboneElement | Người đại diện/giám hộ — mang token thẩm quyền |
![]() ![]() ![]() ![]() ![]() ![]() |
1..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
S | 1..1 | (Complex) | Thẩm quyền đại diện truy cập dữ liệu — Representation Authority Extension URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority |
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() ![]() |
SΣ | 0..* | Coding | Lớp nhạy cảm dữ liệu áp cho rule Binding: Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet (extensible) |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.status | Base | required | ConsentState | 📍4.0.1 | FHIR Std. |
| Consent.scope | Base | extensible | Consent Scope Codes | 📍4.0.1 | FHIR Std. |
| Consent.category | Base | extensible | Loại đồng ý — VN Consent Category ValueSet | 📦0.9.0 | This IG |
| Consent.provision.actor.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.purpose | Base | extensible | Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.9.0 | This IG |
| Consent.provision.class | Base | extensible | Consent Content Class | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.type | Base | required | ConsentProvisionType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.actor.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.actor:representative.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.securityLabel | Base | extensible | Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet | 📦0.9.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Consent | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Consent | 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 | Consent | 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 | Consent | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Consent | 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()
|
| ppc-1 | error | Consent | Either a Policy or PolicyRule |
policy.exists() or policyRule.exists()
|
| ppc-2 | error | Consent | IF Scope=privacy, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()
|
| ppc-3 | error | Consent | IF Scope=research, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='research').exists().not()
|
| ppc-4 | error | Consent | IF Scope=adr, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()
|
| ppc-5 | error | Consent | IF Scope=treatment, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()
|
| vn-consent-no-processing-legal-basis | error | Consent | VNCoreConsent 0.9 chỉ biểu diễn lựa chọn của chủ thể và không được mang vn-ext-processing-legal-basis; xử lý không qua đồng ý dùng VNCoreAuditEventLegalBasisDecision / VNCoreConsent 0.9 represents data-subject choices only and SHALL NOT carry vn-ext-processing-legal-basis; processing without consent uses VNCoreAuditEventLegalBasisDecision |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-processing-legal-basis').empty()
|
| vn-consent-provision-structure | error | Consent | Theo R4: root rule (Consent.provision) KHÔNG mang type; mọi rule permit/deny khai ở nested (provision.provision[*]) và bắt buộc có type |
provision.exists() implies (provision.type.empty() and provision.provision.exists() and provision.repeat(provision).all(type.exists()))
|
| vn-consent-rejected-not-permit | error | Consent | Bản ghi status=rejected (từ chối ngay từ đầu) không được chứa rule permit ở BẤT KỲ độ sâu nested nào — cho phép đang hiệu lực phải dùng status=active |
(status = 'rejected') implies provision.repeat(provision).type.where($this = 'permit').empty()
|
Dạng xem Differential
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Consent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: vn-consent-rejected-not-permit, vn-consent-provision-structure, vn-consent-no-processing-legal-basis |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..0 | CodeableConcept | Cấm authoring căn cứ Điều 19 trên Consent / No Article 19 authoring on Consent URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-processing-legal-basis Binding: Căn cứ xử lý DLCN không cần sự đồng ý — VN Processing Legal Basis ValueSet (required) | |
![]() ![]() |
S | 1..1 | code | Trạng thái đồng ý |
![]() ![]() |
S | 1..1 | CodeableConcept | Phạm vi đồng ý |
![]() ![]() |
S | 1..* | CodeableConcept | Loại đồng ý Binding: Loại đồng ý — VN Consent Category ValueSet (extensible) |
![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Chủ thể dữ liệu |
![]() ![]() |
S | 1..1 | dateTime | Thời điểm đồng ý |
![]() ![]() |
S | 0..* | 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) | Người đồng ý |
![]() ![]() |
S | 0..* | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | CSKCB quản lý đồng ý |
![]() ![]() |
S | 0..1 | Attachment, Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | Bản gốc đồng ý |
![]() ![]() |
S | 0..* | BackboneElement | Căn cứ pháp lý |
![]() ![]() ![]() |
0..1 | uri | Cơ quan ban hành | |
![]() ![]() ![]() |
S | 0..1 | uri | URL văn bản pháp lý |
![]() ![]() |
S | 0..1 | BackboneElement | Quy tắc đồng ý chi tiết |
![]() ![]() ![]() |
0..0 | deny | permit | ||
![]() ![]() ![]() |
S | 0..1 | Period | Thời hạn hiệu lực |
![]() ![]() ![]() |
0..* | BackboneElement | Bên liên quan | |
![]() ![]() ![]() |
S | 0..* | Coding | Mục đích xử lý Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible) |
![]() ![]() ![]() |
0..* | Coding | Loại dữ liệu | |
![]() ![]() ![]() |
S | 0..* | BackboneElement | Các rule permit/deny |
![]() ![]() ![]() ![]() |
S | 1..1 | code | Cho phép / Từ chối |
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Who|what controlled by this rule (or group, by role) Slice: Unordered, Open by exists:extension('http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority') | |
![]() ![]() ![]() ![]() ![]() |
S | 0..* | BackboneElement | Người đại diện/giám hộ — mang token thẩm quyền |
![]() ![]() ![]() ![]() ![]() ![]() |
1..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
S | 1..1 | (Complex) | Thẩm quyền đại diện truy cập dữ liệu — Representation Authority Extension URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority |
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile) | Resource for the actor (or group, by role) | |
![]() ![]() ![]() ![]() |
S | 0..* | Coding | Lớp nhạy cảm dữ liệu áp cho rule Binding: Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet (extensible) |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.category | Base | extensible | Loại đồng ý — VN Consent Category ValueSet | 📦0.9.0 | This IG |
| Consent.provision.purpose | Base | extensible | Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.9.0 | This IG |
| Consent.provision.provision.securityLabel | Base | extensible | Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet | 📦0.9.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| vn-consent-no-processing-legal-basis | error | Consent | VNCoreConsent 0.9 chỉ biểu diễn lựa chọn của chủ thể và không được mang vn-ext-processing-legal-basis; xử lý không qua đồng ý dùng VNCoreAuditEventLegalBasisDecision / VNCoreConsent 0.9 represents data-subject choices only and SHALL NOT carry vn-ext-processing-legal-basis; processing without consent uses VNCoreAuditEventLegalBasisDecision |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-processing-legal-basis').empty()
|
| vn-consent-provision-structure | error | Consent | Theo R4: root rule (Consent.provision) KHÔNG mang type; mọi rule permit/deny khai ở nested (provision.provision[*]) và bắt buộc có type |
provision.exists() implies (provision.type.empty() and provision.provision.exists() and provision.repeat(provision).all(type.exists()))
|
| vn-consent-rejected-not-permit | error | Consent | Bản ghi status=rejected (từ chối ngay từ đầu) không được chứa rule permit ở BẤT KỲ độ sâu nested nào — cho phép đang hiệu lực phải dùng status=active |
(status = 'rejected') implies provision.repeat(provision).type.where($this = 'permit').empty()
|
Dạng xem SnapshotView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Consent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5, vn-consent-rejected-not-permit, vn-consent-provision-structure, vn-consent-no-processing-legal-basis | ||||
![]() ![]() |
Σ | 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 | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Identifier for this record (external references) Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Trạng thái đồng ý Binding: ConsentState (required): Indicates the state of the consent. | ||||
![]() ![]() |
?!SΣ | 1..1 | CodeableConcept | Phạm vi đồng ý Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. | ||||
![]() ![]() |
SΣ | 1..* | CodeableConcept | Loại đồng ý Binding: Loại đồng ý — VN Consent Category ValueSet (extensible) | ||||
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Chủ thể dữ liệu | ||||
![]() ![]() |
SΣ | 1..1 | dateTime | Thời điểm đồng ý | ||||
![]() ![]() |
SΣ | 0..* | 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) | Người đồng ý | ||||
![]() ![]() |
SΣ | 0..* | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | CSKCB quản lý đồng ý | ||||
![]() ![]() |
SΣ | 0..1 | Bản gốc đồng ý | |||||
![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() |
Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | |||||||
![]() ![]() |
S | 0..* | BackboneElement | Căn cứ pháp lý | ||||
![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() |
C | 0..1 | uri | Cơ quan ban hành | ||||
![]() ![]() ![]() |
SC | 0..1 | uri | URL văn bản pháp lý | ||||
![]() ![]() |
ΣC | 0..1 | CodeableConcept | Regulation that this consents to Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Consent Verified by patient or family | ||||
![]() ![]() ![]() |
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 | boolean | Has been verified | ||||
![]() ![]() ![]() |
0..1 | Reference(Patient | RelatedPerson) | Person who verified | |||||
![]() ![]() ![]() |
0..1 | dateTime | When consent verified | |||||
![]() ![]() |
SΣ | 0..1 | BackboneElement | Quy tắc đồng ý chi tiết | ||||
![]() ![]() ![]() |
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 | Period | Thời hạn hiệu lực | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Bên liên quan | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |||||
![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Actions controlled by this rule Binding: ConsentActionCodes (example): Detailed codes for the consent action. | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Security Labels that define affected resources Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. | ||||
![]() ![]() ![]() |
SΣ | 0..* | Coding | Mục đích xử lý Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible) | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Loại dữ liệu Binding: ConsentContentClass (extensible): The class (type) of information a consent rule covers. | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | e.g. LOINC or SNOMED CT code, etc. in the content Binding: ConsentContentCodes (example): If this code is found in an instance, then the exception applies. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Timeframe for data controlled by this rule | ||||
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Data controlled by this rule | ||||
![]() ![]() ![]() ![]() |
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 | instance | related | dependents | authoredby Binding: ConsentDataMeaning (required): How a resource reference is interpreted when testing consent restrictions. | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Resource) | The actual data reference | ||||
![]() ![]() ![]() |
S | 0..* | BackboneElement | Các rule permit/deny | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | code | Cho phép / Từ chối Binding: ConsentProvisionType (required): How a rule statement is applied, such as adding additional consent or removing consent. | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Timeframe for this rule | ||||
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Who|what controlled by this rule (or group, by role) Slice: Unordered, Open by exists:extension('http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority') | |||||
![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role) | |||||
![]() ![]() ![]() ![]() ![]() |
S | 0..* | BackboneElement | Người đại diện/giám hộ — mang token thẩm quyền | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
S | 1..1 | (Complex) | Thẩm quyền đại diện truy cập dữ liệu — Representation Authority Extension URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-representation-authority | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | Reference(Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile) | Resource for the actor (or group, by role) | |||||
![]() ![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Actions controlled by this rule Binding: ConsentActionCodes (example): Detailed codes for the consent action. | ||||
![]() ![]() ![]() ![]() |
SΣ | 0..* | Coding | Lớp nhạy cảm dữ liệu áp cho rule Binding: Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet (extensible) | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | Context of activities covered by this rule Binding: PurposeOfUse (extensible): What purposes of use are controlled by this exception. If more than one label is specified, operations must have all the specified labels. | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | e.g. Resource Type, Profile, CDA, etc. Binding: ConsentContentClass (extensible): The class (type) of information a consent rule covers. | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | e.g. LOINC or SNOMED CT code, etc. in the content Binding: ConsentContentCodes (example): If this code is found in an instance, then the exception applies. | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Timeframe for data controlled by this rule | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Data controlled by this rule | ||||
![]() ![]() ![]() ![]() ![]() |
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 | instance | related | dependents | authoredby Binding: ConsentDataMeaning (required): How a resource reference is interpreted when testing consent restrictions. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Resource) | The actual data reference | ||||
![]() ![]() ![]() ![]() |
0..* | See provision (Consent) | Nested Exception Rules | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Consent.status | Base | required | ConsentState | 📍4.0.1 | FHIR Std. |
| Consent.scope | Base | extensible | Consent Scope Codes | 📍4.0.1 | FHIR Std. |
| Consent.category | Base | extensible | Loại đồng ý — VN Consent Category ValueSet | 📦0.9.0 | This IG |
| Consent.policyRule | Base | extensible | Consent PolicyRule Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.actor.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.action | Base | example | Consent Action Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.securityLabel | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std. |
| Consent.provision.purpose | Base | extensible | Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.9.0 | This IG |
| Consent.provision.class | Base | extensible | Consent Content Class | 📍4.0.1 | FHIR Std. |
| Consent.provision.code | Base | example | Consent Content Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.data.meaning | Base | required | ConsentDataMeaning | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.type | Base | required | ConsentProvisionType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.actor.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.actor:representative.role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.action | Base | example | Consent Action Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.securityLabel | Base | extensible | Lớp nhạy cảm dữ liệu y tế — Vietnam Health Data Sensitivity Class ValueSet | 📦0.9.0 | This IG |
| Consent.provision.provision.purpose | Base | extensible | PurposeOfUse | 📦3.1.0 | THO v7.2 |
| Consent.provision.provision.class | Base | extensible | Consent Content Class | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.code | Base | example | Consent Content Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.provision.data.meaning | Base | required | ConsentDataMeaning | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Consent | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Consent | 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 | Consent | 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 | Consent | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Consent | 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()
|
| ppc-1 | error | Consent | Either a Policy or PolicyRule |
policy.exists() or policyRule.exists()
|
| ppc-2 | error | Consent | IF Scope=privacy, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()
|
| ppc-3 | error | Consent | IF Scope=research, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='research').exists().not()
|
| ppc-4 | error | Consent | IF Scope=adr, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()
|
| ppc-5 | error | Consent | IF Scope=treatment, there must be a patient |
patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()
|
| vn-consent-no-processing-legal-basis | error | Consent | VNCoreConsent 0.9 chỉ biểu diễn lựa chọn của chủ thể và không được mang vn-ext-processing-legal-basis; xử lý không qua đồng ý dùng VNCoreAuditEventLegalBasisDecision / VNCoreConsent 0.9 represents data-subject choices only and SHALL NOT carry vn-ext-processing-legal-basis; processing without consent uses VNCoreAuditEventLegalBasisDecision |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-processing-legal-basis').empty()
|
| vn-consent-provision-structure | error | Consent | Theo R4: root rule (Consent.provision) KHÔNG mang type; mọi rule permit/deny khai ở nested (provision.provision[*]) và bắt buộc có type |
provision.exists() implies (provision.type.empty() and provision.provision.exists() and provision.repeat(provision).all(type.exists()))
|
| vn-consent-rejected-not-permit | error | Consent | Bản ghi status=rejected (từ chối ngay từ đầu) không được chứa rule permit ở BẤT KỲ độ sâu nested nào — cho phép đang hiệu lực phải dùng status=active |
(status = 'rejected') implies provision.repeat(provision).type.where($this = 'permit').empty()
|
Summary
Mandatory: 2 elements(3 nested mandatory elements)
Must-Support: 18 elements
Prohibited: 2 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Biểu diễn khác của hồ sơ: CSV, Excel, Schematron