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
| Draft tại thời điểm 2026-08-05 |
Các định nghĩa cho vn-ext-consent-disclosure phần mở rộng
Guidance on how to interpret the contents of this table can be foundhere
| 0. Extension | ||||||||||||||||
| Definition | Bằng chứng về nội dung đã thông báo cho chủ thể dữ liệu tại thời điểm xin sự đồng ý, theo Luật 91/2025/QH15 Điều 9 khoản 2 và NĐ 356/2025/NĐ-CP Điều 6. Vì sao cần. Luật đặt điều kiện hiệu lực cho sự đồng ý: chỉ có hiệu lực khi chủ thể biết rõ ba
nhóm thông tin. Trước 0.10.0, VN Core chỉ có Bốn phần tử bắt buộc bám bốn yêu cầu của văn bản:
Mục đích xử lý — nửa còn lại của điểm a — vẫn nằm ở Khai báo, không phải phép màu. Extension này ghi lại hệ thống tuyên bố đã thông báo những gì. Nó không tự chứng minh rằng nội dung đó đã thực sự đến với chủ thể, cũng không thay cho bản gốc đồng ý. Giá trị của nó là biến nghĩa vụ chứng minh thành dữ liệu kiểm được: thiếu phần tử nào thì thấy ngay, và bản ghi nào thiếu thì không đạt profile. Optional Extension Element - found in all resources. | |||||||||||||||
| Short | Nội dung đã thông báo khi xin đồng ý — Consent Disclosure Evidence ExtensionOptional Extensions Element | |||||||||||||||
| Control | 0..* This element is affected by the following invariants: ele-1 | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists())ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| 2. Extension.extension | ||||||||||||||||
| Definition | An Extension May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. | |||||||||||||||
| Short | ExtensionAdditional content defined by implementations | |||||||||||||||
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. | |||||||||||||||
| Control | 50..* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Alternate Names | extensions, user content | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 4. Extension.extension:dataCategory | ||||||||||||||||
| Slice Name | dataCategory | |||||||||||||||
| Definition | Khai theo danh mục do NĐ 356/2025/NĐ-CP ban hành: Điều 3 (cơ bản) và Điều 4 khoản 1 (nhạy cảm). Nhiều nhóm thì lặp phần tử. Đây là phạm trù dữ liệu cá nhân theo luật, khác với | |||||||||||||||
| Short | Loại dữ liệu cá nhân đã thông báo sẽ được xử lý (Điều 9 khoản 2 điểm a)Additional content defined by implementations | |||||||||||||||
| Control | 10..* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| 6. Extension.extension:dataCategory.extension | ||||||||||||||||
| Definition | An Extension May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. | |||||||||||||||
| Short | ExtensionAdditional content defined by implementations | |||||||||||||||
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. | |||||||||||||||
| Control | 0..0* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Alternate Names | extensions, user content | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 8. Extension.extension:dataCategory.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | dataCategory | |||||||||||||||
| 10. Extension.extension:dataCategory.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Binding | The codes SHALL be taken from For codes, see Loại dữ liệu cá nhân được xử lý — Personal Data Category ValueSet (required to http://fhir.hl7.org.vn/core/ValueSet/vn-personal-data-category-vs) | |||||||||||||||
| Type | CodeableConcept, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 12. Extension.extension:controller | ||||||||||||||||
| Slice Name | controller | |||||||||||||||
| Definition | Tổ chức đã được nêu tên với chủ thể dữ liệu khi xin đồng ý. Thường trùng | |||||||||||||||
| Short | Bên kiểm soát dữ liệu đã thông báo cho chủ thể (Điều 9 khoản 2 điểm b)Additional content defined by implementations | |||||||||||||||
| Control | 10..1* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| 14. Extension.extension:controller.extension | ||||||||||||||||
| Definition | An Extension May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. | |||||||||||||||
| Short | ExtensionAdditional content defined by implementations | |||||||||||||||
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. | |||||||||||||||
| Control | 0..0* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Alternate Names | extensions, user content | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 16. Extension.extension:controller.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | controller | |||||||||||||||
| 18. Extension.extension:controller.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | Reference(Cơ sở y tế VN Core — VN Core Organization Profile), date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 20. Extension.extension:controllerRole | ||||||||||||||||
| Slice Name | controllerRole | |||||||||||||||
| Definition | Vai trò theo Luật 91/2025/QH15 Điều 2. Điều 9 khoản 2 điểm b chỉ nêu hai vai trò được thông báo khi xin đồng ý: bên kiểm soát (khoản 7) hoặc bên kiểm soát và xử lý (khoản 9); invariant | |||||||||||||||
| Short | Vai trò pháp lý của bên đó — kiểm soát hay kiểm soát và xử lýAdditional content defined by implementations | |||||||||||||||
| Control | 10..1* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| 22. Extension.extension:controllerRole.extension | ||||||||||||||||
| Definition | An Extension May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. | |||||||||||||||
| Short | ExtensionAdditional content defined by implementations | |||||||||||||||
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. | |||||||||||||||
| Control | 0..0* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Alternate Names | extensions, user content | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 24. Extension.extension:controllerRole.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | controllerRole | |||||||||||||||
| 26. Extension.extension:controllerRole.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Binding | The codes SHALL be taken from For codes, see Vai trò các bên xử lý dữ liệu cá nhân — Personal Data Party Role ValueSet (required to http://fhir.hl7.org.vn/core/ValueSet/vn-data-party-role-vs) | |||||||||||||||
| Type | Coding, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 28. Extension.extension:rightsNotice | ||||||||||||||||
| Slice Name | rightsNotice | |||||||||||||||
| Definition | Phải xác định được ĐÚNG bản đã trình, không phải một trang chính sách chung chung đổi nội dung theo thời gian: dùng | |||||||||||||||
| Short | Bản thông báo quyền và nghĩa vụ đã trình cho chủ thể (Điều 9 khoản 2 điểm c)Additional content defined by implementations | |||||||||||||||
| Control | 10..1* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| 30. Extension.extension:rightsNotice.extension | ||||||||||||||||
| Definition | An Extension May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. | |||||||||||||||
| Short | ExtensionAdditional content defined by implementations | |||||||||||||||
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. | |||||||||||||||
| Control | 0..0* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Alternate Names | extensions, user content | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 32. Extension.extension:rightsNotice.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | rightsNotice | |||||||||||||||
| 34. Extension.extension:rightsNotice.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | Choice of: url, Reference(DocumentReference), date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, TriggerDefinition, Quantity, uri, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 36. Extension.extension:sensitiveDataNotice | ||||||||||||||||
| Slice Name | sensitiveDataNotice | |||||||||||||||
| Definition |
| |||||||||||||||
| Short | Đã thông báo dữ liệu cần xử lý là DLCN nhạy cảm (NĐ 356/2025/NĐ-CP Điều 6 khoản 4)Additional content defined by implementations | |||||||||||||||
| Control | 10..1* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| 38. Extension.extension:sensitiveDataNotice.extension | ||||||||||||||||
| Definition | An Extension May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. | |||||||||||||||
| Short | ExtensionAdditional content defined by implementations | |||||||||||||||
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. | |||||||||||||||
| Control | 0..0* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Alternate Names | extensions, user content | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 40. Extension.extension:sensitiveDataNotice.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | sensitiveDataNotice | |||||||||||||||
| 42. Extension.extension:sensitiveDataNotice.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | boolean, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, Expression, Signature, unsignedInt, time | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 44. Extension.extension:disclosedAt | ||||||||||||||||
| Slice Name | disclosedAt | |||||||||||||||
| Definition | Nếu khai thì phải KHÔNG SAU | |||||||||||||||
| Short | Thời điểm trình nội dung thông báo cho chủ thểAdditional content defined by implementations | |||||||||||||||
| Control | 0..1* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| 46. Extension.extension:disclosedAt.extension | ||||||||||||||||
| Definition | An Extension May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. | |||||||||||||||
| Short | ExtensionAdditional content defined by implementations | |||||||||||||||
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. | |||||||||||||||
| Control | 0..0* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Alternate Names | extensions, user content | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 48. Extension.extension:disclosedAt.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | disclosedAt | |||||||||||||||
| 50. Extension.extension:disclosedAt.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | dateTime, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 52. Extension.extension:evidenceLocator | ||||||||||||||||
| Slice Name | evidenceLocator | |||||||||||||||
| Definition | Định danh hồ sơ/bản ghi lưu trữ bên ngoài: mã hồ sơ lưu trữ, mã bản ghi âm cuộc gọi, mã giao dịch của nền tảng ký điện tử. VNCoreConsent yêu cầu mỗi bản ghi có rule | |||||||||||||||
| Short | Nơi lưu bằng chứng đồng ý khi không nằm trong FHIR (NĐ 356/2025/NĐ-CP Điều 6 khoản 2)Additional content defined by implementations | |||||||||||||||
| Control | 0..1* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| 54. Extension.extension:evidenceLocator.extension | ||||||||||||||||
| Definition | An Extension May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. | |||||||||||||||
| Short | ExtensionAdditional content defined by implementations | |||||||||||||||
| Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. | |||||||||||||||
| Control | 0..0* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Alternate Names | extensions, user content | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 56. Extension.extension:evidenceLocator.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | evidenceLocator | |||||||||||||||
| 58. Extension.extension:evidenceLocator.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 60. Extension.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-consent-disclosure | |||||||||||||||
| 62. Extension.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..01 | |||||||||||||||
| Type | Choice of: base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference, SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
Guidance on how to interpret the contents of this table can be foundhere
| 0. Extension | ||||||||||||||||
| Definition | Bằng chứng về nội dung đã thông báo cho chủ thể dữ liệu tại thời điểm xin sự đồng ý, theo Luật 91/2025/QH15 Điều 9 khoản 2 và NĐ 356/2025/NĐ-CP Điều 6. Vì sao cần. Luật đặt điều kiện hiệu lực cho sự đồng ý: chỉ có hiệu lực khi chủ thể biết rõ ba
nhóm thông tin. Trước 0.10.0, VN Core chỉ có Bốn phần tử bắt buộc bám bốn yêu cầu của văn bản:
Mục đích xử lý — nửa còn lại của điểm a — vẫn nằm ở Khai báo, không phải phép màu. Extension này ghi lại hệ thống tuyên bố đã thông báo những gì. Nó không tự chứng minh rằng nội dung đó đã thực sự đến với chủ thể, cũng không thay cho bản gốc đồng ý. Giá trị của nó là biến nghĩa vụ chứng minh thành dữ liệu kiểm được: thiếu phần tử nào thì thấy ngay, và bản ghi nào thiếu thì không đạt profile. | |||||||||||||||
| Short | Nội dung đã thông báo khi xin đồng ý — Consent Disclosure Evidence Extension | |||||||||||||||
| 2. Extension.extension | ||||||||||||||||
| Control | 5..? | |||||||||||||||
| 4. Extension.extension:dataCategory | ||||||||||||||||
| Slice Name | dataCategory | |||||||||||||||
| Definition | Khai theo danh mục do NĐ 356/2025/NĐ-CP ban hành: Điều 3 (cơ bản) và Điều 4 khoản 1 (nhạy cảm). Nhiều nhóm thì lặp phần tử. Đây là phạm trù dữ liệu cá nhân theo luật, khác với | |||||||||||||||
| Short | Loại dữ liệu cá nhân đã thông báo sẽ được xử lý (Điều 9 khoản 2 điểm a) | |||||||||||||||
| Control | 1..* | |||||||||||||||
| Must Support | true | |||||||||||||||
| 6. Extension.extension:dataCategory.extension | ||||||||||||||||
| Control | 0..0 | |||||||||||||||
| 8. Extension.extension:dataCategory.url | ||||||||||||||||
| Fixed Value | dataCategory | |||||||||||||||
| 10. Extension.extension:dataCategory.value[x] | ||||||||||||||||
| Binding | The codes SHALL be taken from Loại dữ liệu cá nhân được xử lý — Personal Data Category ValueSet (required to http://fhir.hl7.org.vn/core/ValueSet/vn-personal-data-category-vs) | |||||||||||||||
| Type | CodeableConcept | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| 12. Extension.extension:controller | ||||||||||||||||
| Slice Name | controller | |||||||||||||||
| Definition | Tổ chức đã được nêu tên với chủ thể dữ liệu khi xin đồng ý. Thường trùng | |||||||||||||||
| Short | Bên kiểm soát dữ liệu đã thông báo cho chủ thể (Điều 9 khoản 2 điểm b) | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Must Support | true | |||||||||||||||
| 14. Extension.extension:controller.extension | ||||||||||||||||
| Control | 0..0 | |||||||||||||||
| 16. Extension.extension:controller.url | ||||||||||||||||
| Fixed Value | controller | |||||||||||||||
| 18. Extension.extension:controller.value[x] | ||||||||||||||||
| Type | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| 20. Extension.extension:controllerRole | ||||||||||||||||
| Slice Name | controllerRole | |||||||||||||||
| Definition | Vai trò theo Luật 91/2025/QH15 Điều 2. Điều 9 khoản 2 điểm b chỉ nêu hai vai trò được thông báo khi xin đồng ý: bên kiểm soát (khoản 7) hoặc bên kiểm soát và xử lý (khoản 9); invariant | |||||||||||||||
| Short | Vai trò pháp lý của bên đó — kiểm soát hay kiểm soát và xử lý | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Must Support | true | |||||||||||||||
| 22. Extension.extension:controllerRole.extension | ||||||||||||||||
| Control | 0..0 | |||||||||||||||
| 24. Extension.extension:controllerRole.url | ||||||||||||||||
| Fixed Value | controllerRole | |||||||||||||||
| 26. Extension.extension:controllerRole.value[x] | ||||||||||||||||
| Binding | The codes SHALL be taken from Vai trò các bên xử lý dữ liệu cá nhân — Personal Data Party Role ValueSet (required to http://fhir.hl7.org.vn/core/ValueSet/vn-data-party-role-vs) | |||||||||||||||
| Type | Coding | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| 28. Extension.extension:rightsNotice | ||||||||||||||||
| Slice Name | rightsNotice | |||||||||||||||
| Definition | Phải xác định được ĐÚNG bản đã trình, không phải một trang chính sách chung chung đổi nội dung theo thời gian: dùng | |||||||||||||||
| Short | Bản thông báo quyền và nghĩa vụ đã trình cho chủ thể (Điều 9 khoản 2 điểm c) | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Must Support | true | |||||||||||||||
| 30. Extension.extension:rightsNotice.extension | ||||||||||||||||
| Control | 0..0 | |||||||||||||||
| 32. Extension.extension:rightsNotice.url | ||||||||||||||||
| Fixed Value | rightsNotice | |||||||||||||||
| 34. Extension.extension:rightsNotice.value[x] | ||||||||||||||||
| Type | Choice of: url, Reference(DocumentReference) | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| 36. Extension.extension:sensitiveDataNotice | ||||||||||||||||
| Slice Name | sensitiveDataNotice | |||||||||||||||
| Definition |
| |||||||||||||||
| Short | Đã thông báo dữ liệu cần xử lý là DLCN nhạy cảm (NĐ 356/2025/NĐ-CP Điều 6 khoản 4) | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Must Support | true | |||||||||||||||
| 38. Extension.extension:sensitiveDataNotice.extension | ||||||||||||||||
| Control | 0..0 | |||||||||||||||
| 40. Extension.extension:sensitiveDataNotice.url | ||||||||||||||||
| Fixed Value | sensitiveDataNotice | |||||||||||||||
| 42. Extension.extension:sensitiveDataNotice.value[x] | ||||||||||||||||
| Type | boolean | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| 44. Extension.extension:disclosedAt | ||||||||||||||||
| Slice Name | disclosedAt | |||||||||||||||
| Definition | Nếu khai thì phải KHÔNG SAU | |||||||||||||||
| Short | Thời điểm trình nội dung thông báo cho chủ thể | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Must Support | true | |||||||||||||||
| 46. Extension.extension:disclosedAt.extension | ||||||||||||||||
| Control | 0..0 | |||||||||||||||
| 48. Extension.extension:disclosedAt.url | ||||||||||||||||
| Fixed Value | disclosedAt | |||||||||||||||
| 50. Extension.extension:disclosedAt.value[x] | ||||||||||||||||
| Type | dateTime | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| 52. Extension.extension:evidenceLocator | ||||||||||||||||
| Slice Name | evidenceLocator | |||||||||||||||
| Definition | Định danh hồ sơ/bản ghi lưu trữ bên ngoài: mã hồ sơ lưu trữ, mã bản ghi âm cuộc gọi, mã giao dịch của nền tảng ký điện tử. VNCoreConsent yêu cầu mỗi bản ghi có rule | |||||||||||||||
| Short | Nơi lưu bằng chứng đồng ý khi không nằm trong FHIR (NĐ 356/2025/NĐ-CP Điều 6 khoản 2) | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Must Support | true | |||||||||||||||
| 54. Extension.extension:evidenceLocator.extension | ||||||||||||||||
| Control | 0..0 | |||||||||||||||
| 56. Extension.extension:evidenceLocator.url | ||||||||||||||||
| Fixed Value | evidenceLocator | |||||||||||||||
| 58. Extension.extension:evidenceLocator.value[x] | ||||||||||||||||
| Type | string | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| 60. Extension.url | ||||||||||||||||
| Fixed Value | http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-consent-disclosure | |||||||||||||||
| 62. Extension.value[x] | ||||||||||||||||
| Control | 0..0 | |||||||||||||||
Guidance on how to interpret the contents of this table can be foundhere
| 0. Extension | ||||||||||||||||
| Definition | Bằng chứng về nội dung đã thông báo cho chủ thể dữ liệu tại thời điểm xin sự đồng ý, theo Luật 91/2025/QH15 Điều 9 khoản 2 và NĐ 356/2025/NĐ-CP Điều 6. Vì sao cần. Luật đặt điều kiện hiệu lực cho sự đồng ý: chỉ có hiệu lực khi chủ thể biết rõ ba
nhóm thông tin. Trước 0.10.0, VN Core chỉ có Bốn phần tử bắt buộc bám bốn yêu cầu của văn bản:
Mục đích xử lý — nửa còn lại của điểm a — vẫn nằm ở Khai báo, không phải phép màu. Extension này ghi lại hệ thống tuyên bố đã thông báo những gì. Nó không tự chứng minh rằng nội dung đó đã thực sự đến với chủ thể, cũng không thay cho bản gốc đồng ý. Giá trị của nó là biến nghĩa vụ chứng minh thành dữ liệu kiểm được: thiếu phần tử nào thì thấy ngay, và bản ghi nào thiếu thì không đạt profile. | |||||||||||||||
| Short | Nội dung đã thông báo khi xin đồng ý — Consent Disclosure Evidence Extension | |||||||||||||||
| Control | 0..* This element is affected by the following invariants: ele-1 | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| 2. Extension.id | ||||||||||||||||
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. | |||||||||||||||
| Short | Unique id for inter-element referencing | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| 4. Extension.extension | ||||||||||||||||
| Definition | An Extension | |||||||||||||||
| Short | Extension | |||||||||||||||
| Control | 5..* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 6. Extension.extension:dataCategory | ||||||||||||||||
| Slice Name | dataCategory | |||||||||||||||
| Definition | Khai theo danh mục do NĐ 356/2025/NĐ-CP ban hành: Điều 3 (cơ bản) và Điều 4 khoản 1 (nhạy cảm). Nhiều nhóm thì lặp phần tử. Đây là phạm trù dữ liệu cá nhân theo luật, khác với | |||||||||||||||
| Short | Loại dữ liệu cá nhân đã thông báo sẽ được xử lý (Điều 9 khoản 2 điểm a) | |||||||||||||||
| Control | 1..* | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| 8. Extension.extension:dataCategory.id | ||||||||||||||||
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. | |||||||||||||||
| Short | Unique id for inter-element referencing | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| 10. Extension.extension:dataCategory.extension | ||||||||||||||||
| Definition | An Extension | |||||||||||||||
| Short | Extension | |||||||||||||||
| Control | 0..0 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 12. Extension.extension:dataCategory.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | dataCategory | |||||||||||||||
| 14. Extension.extension:dataCategory.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Binding | The codes SHALL be taken from Loại dữ liệu cá nhân được xử lý — Personal Data Category ValueSet (required to http://fhir.hl7.org.vn/core/ValueSet/vn-personal-data-category-vs) | |||||||||||||||
| Type | CodeableConcept | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 16. Extension.extension:controller | ||||||||||||||||
| Slice Name | controller | |||||||||||||||
| Definition | Tổ chức đã được nêu tên với chủ thể dữ liệu khi xin đồng ý. Thường trùng | |||||||||||||||
| Short | Bên kiểm soát dữ liệu đã thông báo cho chủ thể (Điều 9 khoản 2 điểm b) | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| 18. Extension.extension:controller.id | ||||||||||||||||
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. | |||||||||||||||
| Short | Unique id for inter-element referencing | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| 20. Extension.extension:controller.extension | ||||||||||||||||
| Definition | An Extension | |||||||||||||||
| Short | Extension | |||||||||||||||
| Control | 0..0 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 22. Extension.extension:controller.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | controller | |||||||||||||||
| 24. Extension.extension:controller.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | Reference(Cơ sở y tế VN Core — VN Core Organization Profile) | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 26. Extension.extension:controllerRole | ||||||||||||||||
| Slice Name | controllerRole | |||||||||||||||
| Definition | Vai trò theo Luật 91/2025/QH15 Điều 2. Điều 9 khoản 2 điểm b chỉ nêu hai vai trò được thông báo khi xin đồng ý: bên kiểm soát (khoản 7) hoặc bên kiểm soát và xử lý (khoản 9); invariant | |||||||||||||||
| Short | Vai trò pháp lý của bên đó — kiểm soát hay kiểm soát và xử lý | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| 28. Extension.extension:controllerRole.id | ||||||||||||||||
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. | |||||||||||||||
| Short | Unique id for inter-element referencing | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| 30. Extension.extension:controllerRole.extension | ||||||||||||||||
| Definition | An Extension | |||||||||||||||
| Short | Extension | |||||||||||||||
| Control | 0..0 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 32. Extension.extension:controllerRole.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | controllerRole | |||||||||||||||
| 34. Extension.extension:controllerRole.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Binding | The codes SHALL be taken from Vai trò các bên xử lý dữ liệu cá nhân — Personal Data Party Role ValueSet (required to http://fhir.hl7.org.vn/core/ValueSet/vn-data-party-role-vs) | |||||||||||||||
| Type | Coding | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 36. Extension.extension:rightsNotice | ||||||||||||||||
| Slice Name | rightsNotice | |||||||||||||||
| Definition | Phải xác định được ĐÚNG bản đã trình, không phải một trang chính sách chung chung đổi nội dung theo thời gian: dùng | |||||||||||||||
| Short | Bản thông báo quyền và nghĩa vụ đã trình cho chủ thể (Điều 9 khoản 2 điểm c) | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| 38. Extension.extension:rightsNotice.id | ||||||||||||||||
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. | |||||||||||||||
| Short | Unique id for inter-element referencing | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| 40. Extension.extension:rightsNotice.extension | ||||||||||||||||
| Definition | An Extension | |||||||||||||||
| Short | Extension | |||||||||||||||
| Control | 0..0 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 42. Extension.extension:rightsNotice.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | rightsNotice | |||||||||||||||
| 44. Extension.extension:rightsNotice.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | Choice of: url, Reference(DocumentReference) | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 46. Extension.extension:sensitiveDataNotice | ||||||||||||||||
| Slice Name | sensitiveDataNotice | |||||||||||||||
| Definition |
| |||||||||||||||
| Short | Đã thông báo dữ liệu cần xử lý là DLCN nhạy cảm (NĐ 356/2025/NĐ-CP Điều 6 khoản 4) | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| 48. Extension.extension:sensitiveDataNotice.id | ||||||||||||||||
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. | |||||||||||||||
| Short | Unique id for inter-element referencing | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| 50. Extension.extension:sensitiveDataNotice.extension | ||||||||||||||||
| Definition | An Extension | |||||||||||||||
| Short | Extension | |||||||||||||||
| Control | 0..0 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 52. Extension.extension:sensitiveDataNotice.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | sensitiveDataNotice | |||||||||||||||
| 54. Extension.extension:sensitiveDataNotice.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | boolean | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 56. Extension.extension:disclosedAt | ||||||||||||||||
| Slice Name | disclosedAt | |||||||||||||||
| Definition | Nếu khai thì phải KHÔNG SAU | |||||||||||||||
| Short | Thời điểm trình nội dung thông báo cho chủ thể | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| 58. Extension.extension:disclosedAt.id | ||||||||||||||||
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. | |||||||||||||||
| Short | Unique id for inter-element referencing | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| 60. Extension.extension:disclosedAt.extension | ||||||||||||||||
| Definition | An Extension | |||||||||||||||
| Short | Extension | |||||||||||||||
| Control | 0..0 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 62. Extension.extension:disclosedAt.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | disclosedAt | |||||||||||||||
| 64. Extension.extension:disclosedAt.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | dateTime | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 66. Extension.extension:evidenceLocator | ||||||||||||||||
| Slice Name | evidenceLocator | |||||||||||||||
| Definition | Định danh hồ sơ/bản ghi lưu trữ bên ngoài: mã hồ sơ lưu trữ, mã bản ghi âm cuộc gọi, mã giao dịch của nền tảng ký điện tử. VNCoreConsent yêu cầu mỗi bản ghi có rule | |||||||||||||||
| Short | Nơi lưu bằng chứng đồng ý khi không nằm trong FHIR (NĐ 356/2025/NĐ-CP Điều 6 khoản 2) | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Must Support | true | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| 68. Extension.extension:evidenceLocator.id | ||||||||||||||||
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. | |||||||||||||||
| Short | Unique id for inter-element referencing | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| 70. Extension.extension:evidenceLocator.extension | ||||||||||||||||
| Definition | An Extension | |||||||||||||||
| Short | Extension | |||||||||||||||
| Control | 0..0 | |||||||||||||||
| Type | Extension | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))ext-1: Must have either extensions or value[x], not both ( extension.exists() != value.exists()) | |||||||||||||||
| Slicing | This element introduces a set of slices on Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: | |||||||||||||||
| 72. Extension.extension:evidenceLocator.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | evidenceLocator | |||||||||||||||
| 74. Extension.extension:evidenceLocator.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..1 | |||||||||||||||
| Type | string | |||||||||||||||
| [x] Note | SeeChoice of Data Typesfor further information about how to use [x] | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||
| 76. Extension.url | ||||||||||||||||
| Definition | Source of the definition for the extension code - a logical name or a URL. | |||||||||||||||
| Short | identifies the meaning of the extension | |||||||||||||||
| Comments | The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. | |||||||||||||||
| Control | 1..1 | |||||||||||||||
| Type | uri | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| XML Format | In the XML format, this property is represented as an attribute. | |||||||||||||||
| Summary | false | |||||||||||||||
| Fixed Value | http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-consent-disclosure | |||||||||||||||
| 78. Extension.value[x] | ||||||||||||||||
| Definition | Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). | |||||||||||||||
| Short | Value of extension | |||||||||||||||
| Control | 0..0 | |||||||||||||||
| Type | Choice of: base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference, SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta | |||||||||||||||
| Is Modifier | false | |||||||||||||||
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension | |||||||||||||||
| Summary | false | |||||||||||||||
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) | |||||||||||||||