Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide
0.10.0 - Draft for Community Review
Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide - Draft for Community Review (v0.10.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-audit-event | Phiên bản: 0.10.0 | ||||
| Computable Name: VNCoreAuditEvent | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.25 | |||||
Profile AuditEvent cho Việt Nam. Dùng để ghi nhận truy cập, chỉnh sửa, chia sẻ, và xuất dữ liệu y tế/định danh nhạy cảm. Căn cứ:
capability-backed. Phụ lục Lớp 5 Người dùng an toàn: 'Hệ thống phải ghi nhận đầy đủ lịch sử truy cập và có khả năng kiểm tra, truy vết (audit) theo thời gian thực hoặc hậu kiểm', phạm vi mục III phủ 'các cơ sở y tế công lập và ngoài công lập'. Đây là nghĩa vụ NĂNG LỰC — profile thực thi nó bằng cờ Must Support và invariant vn-audit-data-access-traceable, KHÔNG bằng cardinality: profile này không siết min của element nào vượt FHIR base. Phép suy từ nghĩa vụ sang từng cờ MS được viết ra trong governance/review/capability-obligation-anchors.json và cổng kiểm tập MS phải nằm trong tập đã khainhật ký hệ thống tại Điều 2 khoản 11, nhưng nghĩa vụ lưu nhật ký của Luật (Điều 25 khoản 2 điểm b) áp cho doanh nghiệp cung cấp dịch vụ trên mạng viễn thông, mạng Internet — KHÔNG đặt nghĩa vụ log cho hệ thống khám bệnh, chữa bệnh nói chung. Viện dẫn ở đây là để định nghĩa thuật ngữ và làm bối cảnh an ninh mạng, không phải làm căn cứ cardinalityUsages:
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 | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
|||
![]() ![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| Path | Status | Usage | ValueSet | Version | Source |
| AuditEvent.type | Base | extensible | Audit Event ID | 📍4.0.1 | FHIR Std. |
| AuditEvent.subtype | Base | extensible | Audit Event Sub-Type | 📍4.0.1 | FHIR Std. |
| 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 xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.10.0 | This IG |
| 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 | Either a name or a query (NOT both) |
name.empty() or query.empty()
|
| vn-audit-data-access-traceable | error | AuditEvent | Bản ghi audit về truy cập dữ liệu phải định danh được tác nhân và đối tượng: ít nhất một `agent.who.reference` và một `entity.what.reference`. An audit record of data access SHALL identify both the acting party and the accessed object by reference. |
subtype.where((system = 'http://hl7.org/fhir/restful-interaction' and (code = 'read' or code = 'vread' or code = 'search' or code = 'search-type' or code = 'search-system')) or (system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-audit-event-subtype-cs' and (code = 'legal-basis-access' or code = 'legal-basis-authorization'))).exists() implies (agent.who.reference.exists() and entity.what.reference.exists())
|
| vn-audit-retention-minimum | error | AuditEvent.extension:breachRecordRetention | Ngày kết thúc đã khai không được chắc chắn sớm hơn năm năm sau ngày khắc phục sự cố. A declared end SHALL NOT be demonstrably earlier than five years after remediation. |
value.ofType(Period).all((end >= start + 5 years).all($this))
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AuditEvent | Event record kept for security purposes Constraints: vn-audit-data-access-traceable | ||||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||||
![]() ![]() ![]() |
SO | 0..1 | CodeableConcept | Căn cứ Điều 19 khi truy cập không qua đồng ý 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)
| ||||||||
![]() ![]() ![]() |
0..1 | Period | Thời hạn lưu hồ sơ sự cố vi phạm (chỉ khi sự kiện là sự cố thuộc Điều 29 NĐ 356/2025/NĐ-CP) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-audit-retention | |||||||||
![]() ![]() |
SO | 1..1 | Coding | Loại sự kiện audit
| ||||||||
![]() ![]() |
SO | 0..* | Coding | Phân loại sự kiện audit
| ||||||||
![]() ![]() |
SO | 0..1 | code | Hành động thực hiện (C/R/U/D/E)
| ||||||||
![]() ![]() |
SO | 1..1 | instant | Thời điểm ghi nhận audit
| ||||||||
![]() ![]() |
SO | 0..1 | code | Kết quả thực hiện
| ||||||||
![]() ![]() |
SO | 0..* | CodeableConcept | Mục đích xử lý dữ liệu Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible)
| ||||||||
![]() ![]() |
SO | 1..* | BackboneElement | Người/hệ thống thực hiện hành động
| ||||||||
![]() ![]() ![]() |
S | 0..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Tác nhân thực hiện | ||||||||
![]() ![]() ![]() |
S | 1..1 | boolean | Có phải tác nhân khởi tạo yêu cầu hay không | ||||||||
![]() ![]() ![]() |
S | 0..1 | BackboneElement | Thông tin mạng truy cập — địa chỉ nguồn của phiên truy cập | ||||||||
![]() ![]() |
SO | 1..1 | BackboneElement | Nguồn phát sinh audit
| ||||||||
![]() ![]() ![]() |
S | 1..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Hệ thống/đơn vị ghi log | ||||||||
![]() ![]() |
SO | 0..* | BackboneElement | Đối tượng dữ liệu bị tác động
| ||||||||
![]() ![]() ![]() |
S | 0..1 | Reference(Resource) | Resource hoặc đối tượng dữ liệu liên quan | ||||||||
![]() ![]() ![]() |
0..1 | string | Tên đối tượng dữ liệu | |||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
|||
![]() ![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| Path | Status | Usage | ValueSet | Version | Source |
| AuditEvent.purposeOfEvent | Base | extensible | Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| vn-audit-data-access-traceable | error | AuditEvent | Bản ghi audit về truy cập dữ liệu phải định danh được tác nhân và đối tượng: ít nhất một `agent.who.reference` và một `entity.what.reference`. An audit record of data access SHALL identify both the acting party and the accessed object by reference. |
subtype.where((system = 'http://hl7.org/fhir/restful-interaction' and (code = 'read' or code = 'vread' or code = 'search' or code = 'search-type' or code = 'search-system')) or (system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-audit-event-subtype-cs' and (code = 'legal-basis-access' or code = 'legal-basis-authorization'))).exists() implies (agent.who.reference.exists() and entity.what.reference.exists())
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AuditEvent | Event record kept for security purposes Constraints: vn-audit-data-access-traceable | ||||||||
![]() ![]() |
Σ | 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 | |||||||||
![]() ![]() ![]() |
SO | 0..1 | CodeableConcept | Căn cứ Điều 19 khi truy cập không qua đồng ý 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)
| ||||||||
![]() ![]() ![]() |
C | 0..1 | Period | Thời hạn lưu hồ sơ sự cố vi phạm (chỉ khi sự kiện là sự cố thuộc Điều 29 NĐ 356/2025/NĐ-CP) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-audit-retention Constraints: vn-audit-retention-minimum | ||||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||||
![]() ![]() |
SOΣ | 1..1 | Coding | Loại sự kiện audit Binding: AuditEventID (extensible): Type of event.
| ||||||||
![]() ![]() |
SOΣ | 0..* | Coding | Phân loại sự kiện audit Binding: AuditEventSub-Type (extensible): Sub-type of event.
| ||||||||
![]() ![]() |
SOΣ | 0..1 | code | Hành động thực hiện (C/R/U/D/E) Binding: AuditEventAction (required): Indicator for type of action performed during the event that generated the event.
| ||||||||
![]() ![]() |
0..1 | Period | When the activity occurred | |||||||||
![]() ![]() |
SOΣ | 1..1 | instant | Thời điểm ghi nhận audit
| ||||||||
![]() ![]() |
SOΣ | 0..1 | code | Kết quả thực hiện Binding: AuditEventOutcome (required): Indicates whether the event succeeded or failed.
| ||||||||
![]() ![]() |
Σ | 0..1 | string | Description of the event outcome | ||||||||
![]() ![]() |
SOΣ | 0..* | CodeableConcept | Mục đích xử lý dữ liệu Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible)
| ||||||||
![]() ![]() |
SO | 1..* | BackboneElement | Người/hệ thống thực hiện hành động
| ||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | How agent participated Binding: ParticipationRoleType (extensible): The Participation type of the agent to the event. | |||||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Agent role in the event Binding: SecurityRoleType (example): What security role enabled the agent to participate in the event. | |||||||||
![]() ![]() ![]() |
SΣ | 0..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Tác nhân thực hiện | ||||||||
![]() ![]() ![]() |
0..1 | string | Alternative User identity | |||||||||
![]() ![]() ![]() |
0..1 | string | Human friendly name for the agent | |||||||||
![]() ![]() ![]() |
SΣ | 1..1 | boolean | Có phải tác nhân khởi tạo yêu cầu hay không | ||||||||
![]() ![]() ![]() |
0..1 | Reference(Location) | Where | |||||||||
![]() ![]() ![]() |
0..* | uri | Policy that authorized event | |||||||||
![]() ![]() ![]() |
0..1 | Coding | Type of media Binding: MediaTypeCode (extensible): Used when the event is about exporting/importing onto media. | |||||||||
![]() ![]() ![]() |
S | 0..1 | BackboneElement | Thông tin mạng truy cập — địa chỉ nguồn của phiên truy cập | ||||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() ![]() ![]() |
0..1 | string | Identifier for the network access point of the user device | |||||||||
![]() ![]() ![]() ![]() |
0..1 | code | The type of network access point Binding: AuditEventAgentNetworkType (required): The type of network access point of this agent in the audit event. | |||||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reason given for this user Binding: PurposeOfUse (extensible): The reason the activity took place. | |||||||||
![]() ![]() |
SO | 1..1 | BackboneElement | Nguồn phát sinh audit
| ||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() ![]() |
0..1 | string | Logical source location within the enterprise | |||||||||
![]() ![]() ![]() |
SΣ | 1..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Hệ thống/đơn vị ghi log | ||||||||
![]() ![]() ![]() |
0..* | Coding | The type of source where event originated Binding: AuditEventSourceType (extensible): Code specifying the type of system that detected and recorded the event. | |||||||||
![]() ![]() |
SOC | 0..* | BackboneElement | Đối tượng dữ liệu bị tác động Constraints: sev-1
| ||||||||
![]() ![]() ![]() |
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 | Reference(Resource) | Resource hoặc đối tượng dữ liệu liên quan | ||||||||
![]() ![]() ![]() |
0..1 | Coding | Type of entity involved Binding: AuditEventEntityType (extensible): Code for the entity type involved in the audit event. | |||||||||
![]() ![]() ![]() |
0..1 | Coding | What role the entity played Binding: AuditEventEntityRole (extensible): Code representing the role the entity played in the audit event. | |||||||||
![]() ![]() ![]() |
0..1 | Coding | Life-cycle stage for the entity Binding: ObjectLifecycleEvents (extensible): Identifier for the data life-cycle stage for the entity. | |||||||||
![]() ![]() ![]() |
0..* | Coding | Security labels on the entity Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. | |||||||||
![]() ![]() ![]() |
ΣC | 0..1 | string | Tên đối tượng dữ liệu | ||||||||
![]() ![]() ![]() |
0..1 | string | Descriptive text | |||||||||
![]() ![]() ![]() |
ΣC | 0..1 | base64Binary | Query parameters | ||||||||
![]() ![]() ![]() |
0..* | BackboneElement | Additional Information about the entity | |||||||||
![]() ![]() ![]() ![]() |
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 | string | Name of the property | |||||||||
![]() ![]() ![]() ![]() |
1..1 | Property value | ||||||||||
![]() ![]() ![]() ![]() ![]() |
string | |||||||||||
![]() ![]() ![]() ![]() ![]() |
base64Binary | |||||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
|||
![]() ![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| 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 | extensible | Audit Event Sub-Type | 📍4.0.1 | FHIR Std. |
| 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 xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.10.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.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. |
| 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 | Either a name or a query (NOT both) |
name.empty() or query.empty()
|
| vn-audit-data-access-traceable | error | AuditEvent | Bản ghi audit về truy cập dữ liệu phải định danh được tác nhân và đối tượng: ít nhất một `agent.who.reference` và một `entity.what.reference`. An audit record of data access SHALL identify both the acting party and the accessed object by reference. |
subtype.where((system = 'http://hl7.org/fhir/restful-interaction' and (code = 'read' or code = 'vread' or code = 'search' or code = 'search-type' or code = 'search-system')) or (system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-audit-event-subtype-cs' and (code = 'legal-basis-access' or code = 'legal-basis-authorization'))).exists() implies (agent.who.reference.exists() and entity.what.reference.exists())
|
| vn-audit-retention-minimum | error | AuditEvent.extension:breachRecordRetention | Ngày kết thúc đã khai không được chắc chắn sớm hơn năm năm sau ngày khắc phục sự cố. A declared end SHALL NOT be demonstrably earlier than five years after remediation. |
value.ofType(Period).all((end >= start + 5 years).all($this))
|
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
|||
![]() ![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
Dạng xem phần tử chính
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AuditEvent | Event record kept for security purposes Constraints: vn-audit-data-access-traceable | ||||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||||
![]() ![]() ![]() |
SO | 0..1 | CodeableConcept | Căn cứ Điều 19 khi truy cập không qua đồng ý 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)
| ||||||||
![]() ![]() ![]() |
C | 0..1 | Period | Thời hạn lưu hồ sơ sự cố vi phạm (chỉ khi sự kiện là sự cố thuộc Điều 29 NĐ 356/2025/NĐ-CP) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-audit-retention Constraints: vn-audit-retention-minimum | ||||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||||
![]() ![]() |
SOΣ | 1..1 | Coding | Loại sự kiện audit Binding: AuditEventID (extensible): Type of event.
| ||||||||
![]() ![]() |
SOΣ | 0..* | Coding | Phân loại sự kiện audit Binding: AuditEventSub-Type (extensible): Sub-type of event.
| ||||||||
![]() ![]() |
SOΣ | 0..1 | code | Hành động thực hiện (C/R/U/D/E) Binding: AuditEventAction (required): Indicator for type of action performed during the event that generated the event.
| ||||||||
![]() ![]() |
SOΣ | 1..1 | instant | Thời điểm ghi nhận audit
| ||||||||
![]() ![]() |
SOΣ | 0..1 | code | Kết quả thực hiện Binding: AuditEventOutcome (required): Indicates whether the event succeeded or failed.
| ||||||||
![]() ![]() |
SOΣ | 0..* | CodeableConcept | Mục đích xử lý dữ liệu Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible)
| ||||||||
![]() ![]() |
SO | 1..* | BackboneElement | Người/hệ thống thực hiện hành động
| ||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() ![]() |
SΣ | 0..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Tác nhân thực hiện | ||||||||
![]() ![]() ![]() |
SΣ | 1..1 | boolean | Có phải tác nhân khởi tạo yêu cầu hay không | ||||||||
![]() ![]() ![]() |
S | 0..1 | BackboneElement | Thông tin mạng truy cập — địa chỉ nguồn của phiên truy cập | ||||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() |
SO | 1..1 | BackboneElement | Nguồn phát sinh audit
| ||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() ![]() |
SΣ | 1..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Hệ thống/đơn vị ghi log | ||||||||
![]() ![]() |
SOC | 0..* | BackboneElement | Đối tượng dữ liệu bị tác động Constraints: sev-1
| ||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() ![]() |
SΣ | 0..1 | Reference(Resource) | Resource hoặc đối tượng dữ liệu liên quan | ||||||||
![]() ![]() ![]() |
ΣC | 0..1 | string | Tên đối tượng dữ liệu | ||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
|||
![]() ![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| Path | Status | Usage | ValueSet | Version | Source |
| AuditEvent.type | Base | extensible | Audit Event ID | 📍4.0.1 | FHIR Std. |
| AuditEvent.subtype | Base | extensible | Audit Event Sub-Type | 📍4.0.1 | FHIR Std. |
| 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 xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.10.0 | This IG |
| 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 | Either a name or a query (NOT both) |
name.empty() or query.empty()
|
| vn-audit-data-access-traceable | error | AuditEvent | Bản ghi audit về truy cập dữ liệu phải định danh được tác nhân và đối tượng: ít nhất một `agent.who.reference` và một `entity.what.reference`. An audit record of data access SHALL identify both the acting party and the accessed object by reference. |
subtype.where((system = 'http://hl7.org/fhir/restful-interaction' and (code = 'read' or code = 'vread' or code = 'search' or code = 'search-type' or code = 'search-system')) or (system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-audit-event-subtype-cs' and (code = 'legal-basis-access' or code = 'legal-basis-authorization'))).exists() implies (agent.who.reference.exists() and entity.what.reference.exists())
|
| vn-audit-retention-minimum | error | AuditEvent.extension:breachRecordRetention | Ngày kết thúc đã khai không được chắc chắn sớm hơn năm năm sau ngày khắc phục sự cố. A declared end SHALL NOT be demonstrably earlier than five years after remediation. |
value.ofType(Period).all((end >= start + 5 years).all($this))
|
Dạng xem Differential
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AuditEvent | Event record kept for security purposes Constraints: vn-audit-data-access-traceable | ||||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||||
![]() ![]() ![]() |
SO | 0..1 | CodeableConcept | Căn cứ Điều 19 khi truy cập không qua đồng ý 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)
| ||||||||
![]() ![]() ![]() |
0..1 | Period | Thời hạn lưu hồ sơ sự cố vi phạm (chỉ khi sự kiện là sự cố thuộc Điều 29 NĐ 356/2025/NĐ-CP) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-audit-retention | |||||||||
![]() ![]() |
SO | 1..1 | Coding | Loại sự kiện audit
| ||||||||
![]() ![]() |
SO | 0..* | Coding | Phân loại sự kiện audit
| ||||||||
![]() ![]() |
SO | 0..1 | code | Hành động thực hiện (C/R/U/D/E)
| ||||||||
![]() ![]() |
SO | 1..1 | instant | Thời điểm ghi nhận audit
| ||||||||
![]() ![]() |
SO | 0..1 | code | Kết quả thực hiện
| ||||||||
![]() ![]() |
SO | 0..* | CodeableConcept | Mục đích xử lý dữ liệu Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible)
| ||||||||
![]() ![]() |
SO | 1..* | BackboneElement | Người/hệ thống thực hiện hành động
| ||||||||
![]() ![]() ![]() |
S | 0..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Tác nhân thực hiện | ||||||||
![]() ![]() ![]() |
S | 1..1 | boolean | Có phải tác nhân khởi tạo yêu cầu hay không | ||||||||
![]() ![]() ![]() |
S | 0..1 | BackboneElement | Thông tin mạng truy cập — địa chỉ nguồn của phiên truy cập | ||||||||
![]() ![]() |
SO | 1..1 | BackboneElement | Nguồn phát sinh audit
| ||||||||
![]() ![]() ![]() |
S | 1..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Hệ thống/đơn vị ghi log | ||||||||
![]() ![]() |
SO | 0..* | BackboneElement | Đối tượng dữ liệu bị tác động
| ||||||||
![]() ![]() ![]() |
S | 0..1 | Reference(Resource) | Resource hoặc đối tượng dữ liệu liên quan | ||||||||
![]() ![]() ![]() |
0..1 | string | Tên đối tượng dữ liệu | |||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
|||
![]() ![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| Path | Status | Usage | ValueSet | Version | Source |
| AuditEvent.purposeOfEvent | Base | extensible | Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| vn-audit-data-access-traceable | error | AuditEvent | Bản ghi audit về truy cập dữ liệu phải định danh được tác nhân và đối tượng: ít nhất một `agent.who.reference` và một `entity.what.reference`. An audit record of data access SHALL identify both the acting party and the accessed object by reference. |
subtype.where((system = 'http://hl7.org/fhir/restful-interaction' and (code = 'read' or code = 'vread' or code = 'search' or code = 'search-type' or code = 'search-system')) or (system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-audit-event-subtype-cs' and (code = 'legal-basis-access' or code = 'legal-basis-authorization'))).exists() implies (agent.who.reference.exists() and entity.what.reference.exists())
|
Dạng xem SnapshotView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AuditEvent | Event record kept for security purposes Constraints: vn-audit-data-access-traceable | ||||||||
![]() ![]() |
Σ | 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 | |||||||||
![]() ![]() ![]() |
SO | 0..1 | CodeableConcept | Căn cứ Điều 19 khi truy cập không qua đồng ý 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)
| ||||||||
![]() ![]() ![]() |
C | 0..1 | Period | Thời hạn lưu hồ sơ sự cố vi phạm (chỉ khi sự kiện là sự cố thuộc Điều 29 NĐ 356/2025/NĐ-CP) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-audit-retention Constraints: vn-audit-retention-minimum | ||||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||||
![]() ![]() |
SOΣ | 1..1 | Coding | Loại sự kiện audit Binding: AuditEventID (extensible): Type of event.
| ||||||||
![]() ![]() |
SOΣ | 0..* | Coding | Phân loại sự kiện audit Binding: AuditEventSub-Type (extensible): Sub-type of event.
| ||||||||
![]() ![]() |
SOΣ | 0..1 | code | Hành động thực hiện (C/R/U/D/E) Binding: AuditEventAction (required): Indicator for type of action performed during the event that generated the event.
| ||||||||
![]() ![]() |
0..1 | Period | When the activity occurred | |||||||||
![]() ![]() |
SOΣ | 1..1 | instant | Thời điểm ghi nhận audit
| ||||||||
![]() ![]() |
SOΣ | 0..1 | code | Kết quả thực hiện Binding: AuditEventOutcome (required): Indicates whether the event succeeded or failed.
| ||||||||
![]() ![]() |
Σ | 0..1 | string | Description of the event outcome | ||||||||
![]() ![]() |
SOΣ | 0..* | CodeableConcept | Mục đích xử lý dữ liệu Binding: Mục đích xử lý dữ liệu y tế — VN Consent Purpose ValueSet (extensible)
| ||||||||
![]() ![]() |
SO | 1..* | BackboneElement | Người/hệ thống thực hiện hành động
| ||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | How agent participated Binding: ParticipationRoleType (extensible): The Participation type of the agent to the event. | |||||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Agent role in the event Binding: SecurityRoleType (example): What security role enabled the agent to participate in the event. | |||||||||
![]() ![]() ![]() |
SΣ | 0..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Tác nhân thực hiện | ||||||||
![]() ![]() ![]() |
0..1 | string | Alternative User identity | |||||||||
![]() ![]() ![]() |
0..1 | string | Human friendly name for the agent | |||||||||
![]() ![]() ![]() |
SΣ | 1..1 | boolean | Có phải tác nhân khởi tạo yêu cầu hay không | ||||||||
![]() ![]() ![]() |
0..1 | Reference(Location) | Where | |||||||||
![]() ![]() ![]() |
0..* | uri | Policy that authorized event | |||||||||
![]() ![]() ![]() |
0..1 | Coding | Type of media Binding: MediaTypeCode (extensible): Used when the event is about exporting/importing onto media. | |||||||||
![]() ![]() ![]() |
S | 0..1 | BackboneElement | Thông tin mạng truy cập — địa chỉ nguồn của phiên truy cập | ||||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() ![]() ![]() |
0..1 | string | Identifier for the network access point of the user device | |||||||||
![]() ![]() ![]() ![]() |
0..1 | code | The type of network access point Binding: AuditEventAgentNetworkType (required): The type of network access point of this agent in the audit event. | |||||||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reason given for this user Binding: PurposeOfUse (extensible): The reason the activity took place. | |||||||||
![]() ![]() |
SO | 1..1 | BackboneElement | Nguồn phát sinh audit
| ||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||||||
![]() ![]() ![]() |
0..1 | string | Logical source location within the enterprise | |||||||||
![]() ![]() ![]() |
SΣ | 1..1 | Reference(PractitionerRole | Practitioner | Organization | Device | Patient | RelatedPerson) | Hệ thống/đơn vị ghi log | ||||||||
![]() ![]() ![]() |
0..* | Coding | The type of source where event originated Binding: AuditEventSourceType (extensible): Code specifying the type of system that detected and recorded the event. | |||||||||
![]() ![]() |
SOC | 0..* | BackboneElement | Đối tượng dữ liệu bị tác động Constraints: sev-1
| ||||||||
![]() ![]() ![]() |
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 | Reference(Resource) | Resource hoặc đối tượng dữ liệu liên quan | ||||||||
![]() ![]() ![]() |
0..1 | Coding | Type of entity involved Binding: AuditEventEntityType (extensible): Code for the entity type involved in the audit event. | |||||||||
![]() ![]() ![]() |
0..1 | Coding | What role the entity played Binding: AuditEventEntityRole (extensible): Code representing the role the entity played in the audit event. | |||||||||
![]() ![]() ![]() |
0..1 | Coding | Life-cycle stage for the entity Binding: ObjectLifecycleEvents (extensible): Identifier for the data life-cycle stage for the entity. | |||||||||
![]() ![]() ![]() |
0..* | Coding | Security labels on the entity Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. | |||||||||
![]() ![]() ![]() |
ΣC | 0..1 | string | Tên đối tượng dữ liệu | ||||||||
![]() ![]() ![]() |
0..1 | string | Descriptive text | |||||||||
![]() ![]() ![]() |
ΣC | 0..1 | base64Binary | Query parameters | ||||||||
![]() ![]() ![]() |
0..* | BackboneElement | Additional Information about the entity | |||||||||
![]() ![]() ![]() ![]() |
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 | string | Name of the property | |||||||||
![]() ![]() ![]() ![]() |
1..1 | Property value | ||||||||||
![]() ![]() ![]() ![]() ![]() |
string | |||||||||||
![]() ![]() ![]() ![]() ![]() |
base64Binary | |||||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
|||
![]() ![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| 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 | extensible | Audit Event Sub-Type | 📍4.0.1 | FHIR Std. |
| 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 xử lý dữ liệu y tế — VN Consent Purpose ValueSet | 📦0.10.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.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. |
| 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 | Either a name or a query (NOT both) |
name.empty() or query.empty()
|
| vn-audit-data-access-traceable | error | AuditEvent | Bản ghi audit về truy cập dữ liệu phải định danh được tác nhân và đối tượng: ít nhất một `agent.who.reference` và một `entity.what.reference`. An audit record of data access SHALL identify both the acting party and the accessed object by reference. |
subtype.where((system = 'http://hl7.org/fhir/restful-interaction' and (code = 'read' or code = 'vread' or code = 'search' or code = 'search-type' or code = 'search-system')) or (system = 'http://fhir.hl7.org.vn/core/CodeSystem/vn-audit-event-subtype-cs' and (code = 'legal-basis-access' or code = 'legal-basis-authorization'))).exists() implies (agent.who.reference.exists() and entity.what.reference.exists())
|
| vn-audit-retention-minimum | error | AuditEvent.extension:breachRecordRetention | Ngày kết thúc đã khai không được chắc chắn sớm hơn năm năm sau ngày khắc phục sự cố. A declared end SHALL NOT be demonstrably earlier than five years after remediation. |
value.ofType(Period).all((end >= start + 5 years).all($this))
|
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
|||
![]() ![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
Biểu diễn khác của hồ sơ: CSV, Excel, Schematron