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.9.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.9.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Hồ sơ tài nguyên: Quyết định xử lý dựa trên căn cứ pháp lý — VN Core Legal-Basis Decision AuditEvent

URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-audit-event-legal-basis-decision Phiên bản: 0.9.0
Computable Name: VNCoreAuditEventLegalBasisDecision
Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.21

Profile AuditEvent ghi quyết định CHO PHÉP hoặc TỪ CHỐI xử lý dữ liệu cá nhân dựa trên một căn cứ pháp lý không qua sự đồng ý của chủ thể. Mô hình tách quyết định khỏi truy cập/tiết lộ thực tế theo pattern IHE BALP: quyết định này phải có căn cứ Điều 19, mục đích sử dụng, requester, authorizer/PDP, controller, URI điều luật/chính sách có phiên bản và bằng chứng; mỗi lần truy cập/tiết lộ tiếp theo được ghi bằng AuditEvent riêng. Extension căn cứ pháp lý là extension thường, không phải modifierExtension. Căn cứ pháp lý: Luật 91/2025/QH15 Điều 19. NĐ 356/2025/NĐ-CP Điều 19 cung cấp lớp trách nhiệm giải trình qua hồ sơ đánh giá tác động, mục đích, luồng dữ liệu, biện pháp bảo vệ và rủi ro; không đặt cùng một nghĩa vụ chứng minh trực tiếp cho cả năm điểm Điều 19 khoản 1 của Luật. / AuditEvent profile recording a PERMIT or DENY decision for personal-data processing under a legal basis that does not rely on the data subject's consent. Following the IHE BALP pattern, it separates the authorization decision from each subsequent actual access or disclosure. The decision carries the Article 19 basis, purpose of use, requester, authorizer/PDP, controller, versioned statute and local-policy URIs, and supporting evidence. The legal-basis extension is an ordinary extension, not a modifierExtension.

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.

Terminology Bindings

Path Status Usage ValueSet Version Source
AuditEvent.type Base extensible Audit Event ID 📍4.0.1 FHIR Std.
AuditEvent.subtype Base required Phân loại AuditEvent về căn cứ pháp lý — VN Legal-Basis AuditEvent Subtype ValueSet 📦0.9.0 This IG
AuditEvent.action Base required AuditEventAction 📍4.0.1 FHIR Std.
AuditEvent.outcome Base required AuditEventOutcome 📍4.0.1 FHIR Std.
AuditEvent.purposeOfEvent Base extensible Mục đích sử dụng trong AuditEvent — VN Audit Purpose of Use ValueSet 📦0.9.0 This IG
AuditEvent.agent:requester.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.agent:authorizer.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error AuditEvent If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error AuditEvent 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 AuditEvent 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 AuditEvent If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice AuditEvent 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()
sev-1 error AuditEvent.entity, AuditEvent.entity:patient, AuditEvent.entity:data, AuditEvent.entity:evidence Either a name or a query (NOT both) name.empty() or query.empty()

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
AuditEvent.subtype Base required Phân loại AuditEvent về căn cứ pháp lý — VN Legal-Basis AuditEvent Subtype ValueSet 📦0.9.0 This IG
AuditEvent.purposeOfEvent Base extensible Mục đích sử dụng trong AuditEvent — VN Audit Purpose of Use ValueSet 📦0.9.0 This IG

Terminology Bindings

Path Status Usage ValueSet Version Source
AuditEvent.language Base preferred Common Languages 📍4.0.1 FHIR Std.
AuditEvent.type Base extensible Audit Event ID 📍4.0.1 FHIR Std.
AuditEvent.subtype Base required Phân loại AuditEvent về căn cứ pháp lý — VN Legal-Basis AuditEvent Subtype ValueSet 📦0.9.0 This IG
AuditEvent.action Base required AuditEventAction 📍4.0.1 FHIR Std.
AuditEvent.outcome Base required AuditEventOutcome 📍4.0.1 FHIR Std.
AuditEvent.purposeOfEvent Base extensible Mục đích sử dụng trong AuditEvent — VN Audit Purpose of Use ValueSet 📦0.9.0 This IG
AuditEvent.agent.type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent.role Base example SecurityRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent.media Base extensible Media Type Code 📍4.0.1 FHIR Std.
AuditEvent.agent.network.​type Base required AuditEventAgentNetworkType 📍4.0.1 FHIR Std.
AuditEvent.agent.purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.agent:requester.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​role Base example SecurityRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​media Base extensible Media Type Code 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​network.type Base required AuditEventAgentNetworkType 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.agent:authorizer.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:authorizer.​role Base example SecurityRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:authorizer.​media Base extensible Media Type Code 📍4.0.1 FHIR Std.
AuditEvent.agent:authorizer.​network.type Base required AuditEventAgentNetworkType 📍4.0.1 FHIR Std.
AuditEvent.agent:authorizer.​purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.agent:controller.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​role Base example SecurityRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​media Base extensible Media Type Code 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​network.type Base required AuditEventAgentNetworkType 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.source.type Base extensible Audit Event Source Type 📍4.0.1 FHIR Std.
AuditEvent.entity.type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity.role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity.lifecycle Base extensible ObjectLifecycleEvents 📍4.0.1 FHIR Std.
AuditEvent.entity.securityLabel Base extensible SecurityLabels 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​lifecycle Base extensible ObjectLifecycleEvents 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​securityLabel Base extensible SecurityLabels 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​lifecycle Base extensible ObjectLifecycleEvents 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​securityLabel Base extensible SecurityLabels 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​lifecycle Base extensible ObjectLifecycleEvents 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​securityLabel Base extensible SecurityLabels 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error AuditEvent If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error AuditEvent 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 AuditEvent 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 AuditEvent If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice AuditEvent 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()
sev-1 error AuditEvent.entity, AuditEvent.entity:patient, AuditEvent.entity:data, AuditEvent.entity:evidence Either a name or a query (NOT both) name.empty() or query.empty()

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

Terminology Bindings

Path Status Usage ValueSet Version Source
AuditEvent.type Base extensible Audit Event ID 📍4.0.1 FHIR Std.
AuditEvent.subtype Base required Phân loại AuditEvent về căn cứ pháp lý — VN Legal-Basis AuditEvent Subtype ValueSet 📦0.9.0 This IG
AuditEvent.action Base required AuditEventAction 📍4.0.1 FHIR Std.
AuditEvent.outcome Base required AuditEventOutcome 📍4.0.1 FHIR Std.
AuditEvent.purposeOfEvent Base extensible Mục đích sử dụng trong AuditEvent — VN Audit Purpose of Use ValueSet 📦0.9.0 This IG
AuditEvent.agent:requester.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.agent:authorizer.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error AuditEvent If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error AuditEvent 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 AuditEvent 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 AuditEvent If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice AuditEvent 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()
sev-1 error AuditEvent.entity, AuditEvent.entity:patient, AuditEvent.entity:data, AuditEvent.entity:evidence Either a name or a query (NOT both) name.empty() or query.empty()

Dạng xem Differential

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
AuditEvent.subtype Base required Phân loại AuditEvent về căn cứ pháp lý — VN Legal-Basis AuditEvent Subtype ValueSet 📦0.9.0 This IG
AuditEvent.purposeOfEvent Base extensible Mục đích sử dụng trong AuditEvent — VN Audit Purpose of Use ValueSet 📦0.9.0 This IG

Dạng xem SnapshotView

Terminology Bindings

Path Status Usage ValueSet Version Source
AuditEvent.language Base preferred Common Languages 📍4.0.1 FHIR Std.
AuditEvent.type Base extensible Audit Event ID 📍4.0.1 FHIR Std.
AuditEvent.subtype Base required Phân loại AuditEvent về căn cứ pháp lý — VN Legal-Basis AuditEvent Subtype ValueSet 📦0.9.0 This IG
AuditEvent.action Base required AuditEventAction 📍4.0.1 FHIR Std.
AuditEvent.outcome Base required AuditEventOutcome 📍4.0.1 FHIR Std.
AuditEvent.purposeOfEvent Base extensible Mục đích sử dụng trong AuditEvent — VN Audit Purpose of Use ValueSet 📦0.9.0 This IG
AuditEvent.agent.type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent.role Base example SecurityRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent.media Base extensible Media Type Code 📍4.0.1 FHIR Std.
AuditEvent.agent.network.​type Base required AuditEventAgentNetworkType 📍4.0.1 FHIR Std.
AuditEvent.agent.purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.agent:requester.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​role Base example SecurityRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​media Base extensible Media Type Code 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​network.type Base required AuditEventAgentNetworkType 📍4.0.1 FHIR Std.
AuditEvent.agent:requester.​purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.agent:authorizer.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:authorizer.​role Base example SecurityRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:authorizer.​media Base extensible Media Type Code 📍4.0.1 FHIR Std.
AuditEvent.agent:authorizer.​network.type Base required AuditEventAgentNetworkType 📍4.0.1 FHIR Std.
AuditEvent.agent:authorizer.​purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.agent:controller.​type Base extensible ParticipationRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​role Base example SecurityRoleType 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​media Base extensible Media Type Code 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​network.type Base required AuditEventAgentNetworkType 📍4.0.1 FHIR Std.
AuditEvent.agent:controller.​purposeOfUse Base extensible PurposeOfUse 📦3.1.0 THO v7.2
AuditEvent.source.type Base extensible Audit Event Source Type 📍4.0.1 FHIR Std.
AuditEvent.entity.type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity.role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity.lifecycle Base extensible ObjectLifecycleEvents 📍4.0.1 FHIR Std.
AuditEvent.entity.securityLabel Base extensible SecurityLabels 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​lifecycle Base extensible ObjectLifecycleEvents 📍4.0.1 FHIR Std.
AuditEvent.entity:patient.​securityLabel Base extensible SecurityLabels 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​lifecycle Base extensible ObjectLifecycleEvents 📍4.0.1 FHIR Std.
AuditEvent.entity:data.​securityLabel Base extensible SecurityLabels 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​type Base extensible Audit event entity type 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​role Base extensible AuditEventEntityRole 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​lifecycle Base extensible ObjectLifecycleEvents 📍4.0.1 FHIR Std.
AuditEvent.entity:evidence.​securityLabel Base extensible SecurityLabels 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error AuditEvent If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error AuditEvent 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 AuditEvent 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 AuditEvent If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice AuditEvent 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()
sev-1 error AuditEvent.entity, AuditEvent.entity:patient, AuditEvent.entity:data, AuditEvent.entity:evidence Either a name or a query (NOT both) name.empty() or query.empty()

 

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