vn-core-consent
type: StructureDefinition
node role: treeRoot
id:
  v: vn-core-consent
language:
  v: vi
text:
  status:
    v: extensions
  div:
    v: Generated Narrative: StructureDefinition vn-core-consent Name Flags Card. Type Description & Constraints<img src="[binary]" alt="doco" style="background-color: inherit"/> Consent <a style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;; padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;" href="http://hl7.org/fhir/R4/conformance-rules.html#constraints" title="This element has or is affected by constraints ( vn-consent-period-end-required )">C 0..* Consent A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: vn-consent-period-end-required #xD; status S 1..1 code Trạng thái đồng ý #xD; scope S 1..1 CodeableConcept Phạm vi đồng ý #xD; category S 1..* CodeableConcept Loại đồng ý Binding: Loại đồng ý — VN Consent Category ValueSet (extensible) #xD; patient S 1..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile) Chủ thể dữ liệu #xD; dateTime S 1..1 dateTime Thời điểm đồng ý #xD; performer S 0..* Reference(Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile) Người đồng ý #xD; organization S 0..* Reference(Cơ sở y tế VN Core — VN Core Organization Profile) CSKCB quản lý đồng ý #xD; source[x] S 0..1 Attachment, Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) Bản gốc đồng ý #xD; policy S 0..* BackboneElement Căn cứ pháp lý #xD; authority 0..1 uri Cơ quan ban hành #xD; uri S 0..1 uri URL văn bản pháp lý #xD; provision S 0..1 BackboneElement Quy tắc đồng ý chi tiết #xD; type S 0..1 code Cho phép / Từ chối #xD; period S 0..1 Period Thời hạn hiệu lực #xD; actor 0..* BackboneElement Bên liên quan #xD; purpose S 0..* Coding Mục đích xử lý Binding: Mục đích xử lý dữ liệu y tế — VN Consent Pur…
extension:
  url:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-legal-basis
    l: vn-ext-legal-basis
  value: Coding
    system:
      v: http://fhir.hl7.org.vn/core/CodeSystem/vn-legal-document-ref-cs
      l: vn-legal-document-ref-cs
    code:
      v: L-91-2025
extension:
  url:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-legal-basis
    l: vn-ext-legal-basis
  value: Coding
    system:
      v: http://fhir.hl7.org.vn/core/CodeSystem/vn-legal-document-ref-cs
      l: vn-legal-document-ref-cs
    code:
      v: ND-356-2025
extension:
  url:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-legal-basis
    l: vn-ext-legal-basis
  value: Coding
    system:
      v: http://fhir.hl7.org.vn/core/CodeSystem/vn-legal-document-ref-cs
      l: vn-legal-document-ref-cs
    code:
      v: ND-278-2025
extension:
  url:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-legal-basis
    l: vn-ext-legal-basis
  value: Coding
    system:
      v: http://fhir.hl7.org.vn/core/CodeSystem/vn-legal-document-ref-cs
      l: vn-legal-document-ref-cs
    code:
      v: ND-102-2025
url:
  v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-consent
  l: vn-core-consent
version:
  v: 0.5.1
name:
  v: VNCoreConsent
title:
  v: Đồng ý xử lý dữ liệu VN Core — VN Core Consent Profile
status:
  v: draft
date:
  v: 2026-03-22
publisher:
  v: Omi HealthTech / VN Core FHIR Community Initiative
contact:
  name:
    v: Omi HealthTech / VN Core FHIR Community Initiative
  telecom:
    system:
      v: url
    value:
      v: https://hl7.org.vn
  telecom:
    system:
      v: email
contact:
  name:
    v: Omi HealthTech (OmiGroup)
  telecom:
    system:
      v: url
    value:
      v: https://omihealthtech.vn
  telecom:
    system:
      v: url
    value:
      v: https://omigroup.vn
  telecom:
    system:
      v: email
description:
  v: Profile Consent cho Việt Nam, tuân thủ Luật 91/2025/QH15 (Bảo vệ dữ liệu cá nhân) và NĐ 356/2025/NĐ-CP. Ghi nhận sự đồng ý/từ chối xử lý dữ liệu y tế cá nhân, bao gồm mục đích xử lý, phạm vi, thời hạn, và quyền rút lại đồng ý. Dữ liệu y tế = dữ liệu cá nhân nhạy cảm (Luật 91/2025 Điều 3 khoản 4). Căn cứ: - **Luật 91/2025/QH15** — 26/6/2025 — quyền chủ thể dữ liệu tại Điều 13-17, đồng ý/rút lại đồng ý và xử lý dữ liệu nhạy cảm - **NĐ 356/2025/NĐ-CP** — 31/12/2025 — hướng dẫn BVDLCN, hồ sơ đánh giá tác động và lưu bằng chứng đồng ý - **NĐ 278/2025/NĐ-CP** — ban hành 22/10/2025, hiệu lực từ ngày ký 22/10/2025 — chia sẻ dữ liệu bắt buộc, cần kiểm soát bằng Consent/policy khi chia sẻ ngoài cơ sở KCB; mốc chuẩn hóa/kết nối thống nhất chậm nhất 31/12/2026 - **NĐ 102/2025/NĐ-CP** — 13/5/2025 — quản lý dữ liệu y tế số.
jurisdiction:
  coding:
    system:
      v: urn:iso:std:iso:3166
      l: 3166
    code:
      v: VN
    display:
      v: Viet Nam
fhir version:
  v: 4.0.1
mapping:
  identity:
    v: workflow
  uri:
    v: http://hl7.org/fhir/workflow
    l: workflow
  name:
    v: Workflow Pattern
mapping:
  identity:
    v: v2
  uri:
    v: http://hl7.org/v2
    l: v2
  name:
    v: HL7 v2 Mapping
mapping:
  identity:
    v: rim
  uri:
    v: http://hl7.org/v3
    l: v3
  name:
    v: RIM Mapping
mapping:
  identity:
    v: w5
  uri:
    v: http://hl7.org/fhir/fivews
    l: fivews
  name:
    v: FiveWs Pattern Mapping
kind:
  v: resource
abstract:
  v: false
type:
  v: Consent
  l: Consent
base definition:
  v: http://hl7.org/fhir/StructureDefinition/Consent
  l: Consent
derivation:
  v: constraint
snapshot:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version
      l: snapshot-base-version
    value: String
      v: 4.0.1
  element:
    id:
      v: Consent
    path:
      v: Consent
    short:
      v: A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time
    definition:
      v: A record of a healthcare consumer’s choices, which permits or denies identified recipient(s) or recipient role(s) to perform one or more actions within a given policy context, for specific purposes and periods of time.
    comment:
      v: Broadly, there are 3 key areas of consent for patients: Consent around sharing information (aka Privacy Consent Directive - Authorization to Collect, Use, or Disclose information), consent for specific treatment, or kinds of treatment, and general advance care directives.
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: Consent
      min:
        v: 0
      max:
        v: *
    constraint:
      key:
        v: dom-2
      severity:
        v: error
      human:
        v: If the resource is contained in another resource, it SHALL NOT contain nested Resources
      expression:
        v: contained.contained.empty()
      xpath:
        v: not(parent::f:contained and f:contained)
      source:
        v: http://hl7.org/fhir/StructureDefinition/DomainResource
        l: DomainResource
    constraint:
      key:
        v: dom-3
      severity:
        v: error
      human:
        v: 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
      expression:
        v: 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()
      xpath:
        v: not(exists(for $id in f:contained/*/f:id/@value return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))

key:
  v: dom-4
severity:
  v: error
human:
  v: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
expression:
  v: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
xpath:
  v: not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))
source:
  v: http://hl7.org/fhir/StructureDefinition/DomainResource
  l: DomainResource

key:
  v: dom-5
severity:
  v: error
human:
  v: If a resource is contained in another resource, it SHALL NOT have a security label
expression:
  v: contained.meta.security.empty()
xpath:
  v: not(exists(f:contained/*/f:meta/f:security))
source:
  v: http://hl7.org/fhir/StructureDefinition/DomainResource
  l: DomainResource

extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice
    l: elementdefinition-bestpractice
  value: Boolean
    v: true
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation
    l: elementdefinition-bestpractice-explanation
  value: Markdown
    v: When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time.
key:
  v: dom-6
severity:
  v: warning
human:
  v: A resource should have narrative for robust management
expression:
  v: text.`div`.exists()
xpath:
  v: exists(f:text/h:div)
source:
  v: http://hl7.org/fhir/StructureDefinition/DomainResource
  l: DomainResource

key:
  v: ppc-1
severity:
  v: error
human:
  v: Either a Policy or PolicyRule
expression:
  v: policy.exists() or policyRule.exists()
xpath:
  v: exists(f:policy) or exists(f:policyRule)
source:
  v: http://hl7.org/fhir/StructureDefinition/Consent
  l: Consent

key:
  v: ppc-2
severity:
  v: error
human:
  v: IF Scope=privacy, there must be a patient
expression:
  v: patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()
xpath:
  v: exists(f:patient) or not(exists(f:scope/f:coding[f:system/@value='something' and f:code/@value='patient-privacy'])))
source:
  v: http://hl7.org/fhir/StructureDefinition/Consent
  l: Consent

key:
  v: ppc-3
severity:
  v: error
human:
  v: IF Scope=research, there must be a patient
expression:
  v: patient.exists() or scope.coding.where(system='something' and code='research').exists().not()
xpath:
  v: exists(f:patient) or not(exists(f:scope/f:coding[f:system/@value='something' and f:code/@value='research'])))
source:
  v: http://hl7.org/fhir/StructureDefinition/Consent
  l: Consent

key:
  v: ppc-4
severity:
  v: error
human:
  v: IF Scope=adr, there must be a patient
expression:
  v: patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()
xpath:
  v: exists(f:patient) or not(exists(f:scope/f:coding[f:system/@value='something' and f:code/@value='adr'])))
source:
  v: http://hl7.org/fhir/StructureDefinition/Consent
  l: Consent

key:
  v: ppc-5
severity:
  v: error
human:
  v: IF Scope=treatment, there must be a patient
expression:
  v: patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()
xpath:
  v: exists(f:patient) or not(exists(f:scope/f:coding[f:system/@value='something' and f:code/@value='treatment'])))
source:
  v: http://hl7.org/fhir/StructureDefinition/Consent
  l: Consent

key:
  v: vn-consent-period-end-required
severity:
  v: error
human:
  v: Nếu đã khai báo thời hạn hiệu lực của đồng ý thì phải có ngày kết thúc
expression:
  v: provision.period.empty() or provision.period.end.exists()
source:
  v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-consent
  l: vn-core-consent

v: false

v: false

identity:
  v: rim
map:
  v: Entity. Role, or Act

identity:
  v: workflow
map:
  v: Event

identity:
  v: v2
map:
  v: CON

identity:
  v: rim
map:
  v: FinancialConsent

id:
  v: Consent.id
path:
  v: Consent.id
short:
  v: Logical id of this artifact
definition:
  v: The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
comment:
  v: The only time that a resource does not have an id is when it is being submitted to the server using a create operation.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Resource.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: id
      l: id
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: true

id:
  v: Consent.meta
path:
  v: Consent.meta
short:
  v: Metadata about the resource
definition:
  v: The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Resource.meta
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Meta
    l: Meta
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true

id:
  v: Consent.implicitRules
path:
  v: Consent.implicitRules
short:
  v: A set of rules under which this content was created
definition:
  v: A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
comment:
  v: Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Resource.implicitRules
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: uri
    l: uri
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: true
is modifier reason:
  v: This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
is summary:
  v: true

id:
  v: Consent.language
path:
  v: Consent.language
short:
  v: Language of the resource content
definition:
  v: The base language in which the resource is written.
comment:
  v: Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Resource.language
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet
      l: elementdefinition-maxValueSet
    value: Canonical
      v: http://hl7.org/fhir/ValueSet/all-languages
      l: all-languages
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: Language
  strength:
    v: preferred
  description:
    v: A human language.
  value set:
    v: http://hl7.org/fhir/ValueSet/languages|4.0.1
    l: http://hl7.org/fhir/ValueSet/languages

id:
  v: Consent.text
path:
  v: Consent.text
short:
  v: Text summary of the resource, for human interpretation
definition:
  v: A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
comment:
  v: Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.
alias:
  v: narrative
alias:
  v: html
alias:
  v: xhtml
alias:
  v: display
min:
  v: 0
max:
  v: 1
base:
  path:
    v: DomainResource.text
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Narrative
    l: Narrative
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: Act.text?

id:
  v: Consent.contained
path:
  v: Consent.contained
short:
  v: Contained, inline Resources
definition:
  v: These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
comment:
  v: This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.
alias:
  v: inline resources
alias:
  v: anonymous resources
alias:
  v: contained resources
min:
  v: 0
max:
  v: *
base:
  path:
    v: DomainResource.contained
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Resource
    l: Resource
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Consent.extension
path:
  v: Consent.extension
short:
  v: Additional content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the resource. 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: DomainResource.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Consent.modifierExtension
path:
  v: Consent.modifierExtension
short:
  v: Extensions that cannot be ignored
definition:
  v: May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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 is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: 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.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: DomainResource.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Consent.identifier
path:
  v: Consent.identifier
short:
  v: Identifier for this record (external references)
definition:
  v: Unique identifier for this copy of the Consent Statement.
comment:
  v: This identifier identifies this copy of the consent. Where this identifier is also used elsewhere as the identifier for a consent record (e.g. a CDA consent document) then the consent details are expected to be the same.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.identifier
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Identifier
    l: Identifier
example:
  label:
    v: General
  value: Identifier
    system:
      v: http://acme.org/identifier/local/eCMS
      l: eCMS
    value:
      v: Local eCMS identifier
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: workflow
  map:
    v: Event.identifier
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.identifier
mapping:
  identity:
    v: rim
  map:
    v: .id

id:
  v: Consent.status
path:
  v: Consent.status
short:
  v: Trạng thái đồng ý
definition:
  v: Trạng thái: active (đang hiệu lực), rejected (từ chối/rút lại per Luật 91/2025 Điều 12), inactive (hết hạn).
comment:
  v: This element is labeled as a modifier because the status contains the codes rejected and entered-in-error that mark the Consent as not currently valid.
requirements:
  v: The Consent Directive that is pointed to might be in various lifecycle states, e.g., a revoked Consent Directive.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Consent.status
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: code
    l: code
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: true
is modifier reason:
  v: This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: ConsentState
  strength:
    v: required
  description:
    v: Indicates the state of the consent.
  value set:
    v: http://hl7.org/fhir/ValueSet/consent-state-codes|4.0.1
    l: http://hl7.org/fhir/ValueSet/consent-state-codes
mapping:
  identity:
    v: workflow
  map:
    v: Event.status
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.status
mapping:
  identity:
    v: v2
  map:
    v: HL7 Table 0498 - Consent Status
mapping:
  identity:
    v: rim
  map:
    v: .statusCode

id:
  v: Consent.scope
path:
  v: Consent.scope
short:
  v: Phạm vi đồng ý
definition:
  v: Phạm vi đồng ý — mặc định patient-privacy cho DLCN y tế nhạy cảm.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Consent.scope
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: CodeableConcept
    l: CodeableConcept
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: true
is modifier reason:
  v: Allows changes to codes based on scope selection
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: ConsentScope
  strength:
    v: extensible
  description:
    v: The four anticipated uses for the Consent Resource.
  value set:
    v: http://hl7.org/fhir/ValueSet/consent-scope|4.0.1
    l: http://hl7.org/fhir/ValueSet/consent-scope

id:
  v: Consent.category
path:
  v: Consent.category
short:
  v: Loại đồng ý
definition:
  v: Phân loại đồng ý: quyền riêng tư, điều trị, nghiên cứu, miễn trừ cấp cứu, nghĩa vụ pháp lý. Per Luật 91/2025 Điều 11, 17.
min:
  v: 1
max:
  v: *
base:
  path:
    v: Consent.category
  min:
    v: 1
  max:
    v: *
type:
  code:
    v: CodeableConcept
    l: CodeableConcept
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
binding:
  strength:
    v: extensible
  value set:
    v: http://fhir.hl7.org.vn/core/ValueSet/vn-consent-category-vs
    l: vn-consent-category-vs
mapping:
  identity:
    v: workflow
  map:
    v: Event.code
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.class
mapping:
  identity:
    v: v2
  map:
    v: HL7 Table 0497 - Consent Type
mapping:
  identity:
    v: rim
  map:
    v: CNTRCT

id:
  v: Consent.patient
path:
  v: Consent.patient
short:
  v: Chủ thể dữ liệu
definition:
  v: Bệnh nhân — chủ thể dữ liệu cá nhân per Luật 91/2025 Điều 3 khoản 6.
comment:
  v: Commonly, the patient the consent pertains to is the author, but for young and old people, it may be some other person.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Consent.patient
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Reference
    l: Reference
  target profile:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-patient
    l: vn-core-patient
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: workflow
  map:
    v: Event.subject
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.subject[x]
mapping:
  identity:
    v: rim
  map:
    v: Role
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.subject

id:
  v: Consent.dateTime
path:
  v: Consent.dateTime
short:
  v: Thời điểm đồng ý
definition:
  v: Thời điểm ghi nhận sự đồng ý hoặc từ chối. Per Luật 91/2025 Điều 11 khoản 2 — đồng ý phải rõ ràng, cụ thể.
comment:
  v: This is not the time of the original consent, but the time that this statement was made or derived.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Consent.dateTime
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: dateTime
    l: dateTime
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: workflow
  map:
    v: Event.occurrence[x]
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.recorded
mapping:
  identity:
    v: v2
  map:
    v: Field 13/ Consent Decision Date
mapping:
  identity:
    v: rim
  map:
    v: FinancialConsent effectiveTime

id:
  v: Consent.performer
path:
  v: Consent.performer
short:
  v: Người đồng ý
definition:
  v: Người thực hiện đồng ý: bệnh nhân, người giám hộ, hoặc người đại diện hợp pháp.
comment:
  v: Commonly, the patient the consent pertains to is the consentor, but particularly for young and old people, it may be some other person - e.g. a legal guardian.
alias:
  v: consentor
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.performer
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Reference
    l: Reference
  target profile:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-patient
    l: vn-core-patient
  target profile:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-relatedperson
    l: vn-core-relatedperson
  target profile:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-practitioner
    l: vn-core-practitioner
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: workflow
  map:
    v: Event.performer
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.actor
mapping:
  identity:
    v: v2
  map:
    v: Field 24/ ConsenterID

id:
  v: Consent.organization
path:
  v: Consent.organization
short:
  v: CSKCB quản lý đồng ý
definition:
  v: Cơ sở khám chữa bệnh — bên kiểm soát xử lý dữ liệu per Luật 91/2025 Điều 3 khoản 9.
alias:
  v: custodian
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.organization
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Reference
    l: Reference
  target profile:
    v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-organization
    l: vn-core-organization
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: workflow
  map:
    v: Event.performer
mapping:
  identity:
    v: w5
  map:
    v: FiveWs.witness

id:
  v: Consent.source[x]
path:
  v: Consent.source[x]
short:
  v: Bản gốc đồng ý
definition:
  v: Tài liệu gốc: bản scan chữ ký, phiếu đồng ý điện tử, hoặc ghi nhận bằng lời (có nhân chứng).
comment:
  v: The source can be contained inline (Attachment), referenced directly (Consent), referenced in a consent repository (DocumentReference), or simply by an identifier (Identifier), e.g. a CDA document id.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.source[x]
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Attachment
    l: Attachment
type:
  code:
    v: Reference
    l: Reference
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Consent|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/Consent
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/DocumentReference|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/DocumentReference
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Contract|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/Contract
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: v2
  map:
    v: Field 19 Informational Material Supplied Indicator

id:
  v: Consent.policy
path:
  v: Consent.policy
short:
  v: Căn cứ pháp lý
definition:
  v: Tham chiếu đến văn bản pháp luật làm căn cứ cho đồng ý.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.policy
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: BackboneElement
    l: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: false

id:
  v: Consent.policy.id
path:
  v: Consent.policy.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.policy.extension
path:
  v: Consent.policy.extension
short:
  v: Additional content defined by implementations
definition:
  v: 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.policy.modifierExtension
path:
  v: Consent.policy.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: 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.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Consent.policy.authority
path:
  v: Consent.policy.authority
short:
  v: Cơ quan ban hành
definition:
  v: Entity or Organization having regulatory jurisdiction or accountability for enforcing policies pertaining to Consent Directives.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.policy.authority
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: uri
    l: uri
condition:
  v: ppc-1
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false

id:
  v: Consent.policy.uri
path:
  v: Consent.policy.uri
short:
  v: URL văn bản pháp lý
definition:
  v: URL/URI văn bản pháp luật (VD: Luật 91/2025, NĐ 356/2025, TT 13/2025).
comment:
  v: This element is for discoverability / documentation and does not modify or qualify the policy rules.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.policy.uri
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: uri
    l: uri
condition:
  v: ppc-1
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: false

id:
  v: Consent.policyRule
path:
  v: Consent.policyRule
short:
  v: Regulation that this consents to
definition:
  v: A reference to the specific base computable regulation or policy.
comment:
  v: If the policyRule is absent, computable consent would need to be constructed from the elements of the Consent resource.
requirements:
  v: Might be a unique identifier of a policy set in XACML, or other rules engine.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.policyRule
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: CodeableConcept
    l: CodeableConcept
condition:
  v: ppc-1
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: ConsentPolicyRule
  strength:
    v: extensible
  description:
    v: Regulatory policy examples.
  value set:
    v: http://hl7.org/fhir/ValueSet/consent-policy|4.0.1
    l: http://hl7.org/fhir/ValueSet/consent-policy

id:
  v: Consent.verification
path:
  v: Consent.verification
short:
  v: Consent Verified by patient or family
definition:
  v: Whether a treatment instruction (e.g. artificial respiration yes or no) was verified with the patient, his/her family or another authorized person.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.verification
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: BackboneElement
    l: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true

id:
  v: Consent.verification.id
path:
  v: Consent.verification.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.verification.extension
path:
  v: Consent.verification.extension
short:
  v: Additional content defined by implementations
definition:
  v: 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.verification.modifierExtension
path:
  v: Consent.verification.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: 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.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Consent.verification.verified
path:
  v: Consent.verification.verified
short:
  v: Has been verified
definition:
  v: Has the instruction been verified.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Consent.verification.verified
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: boolean
    l: boolean
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true

id:
  v: Consent.verification.verifiedWith
path:
  v: Consent.verification.verifiedWith
short:
  v: Person who verified
definition:
  v: Who verified the instruction (Patient, Relative or other Authorized Person).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.verification.verifiedWith
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Reference
    l: Reference
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Patient|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/Patient
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/RelatedPerson|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/RelatedPerson
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false

id:
  v: Consent.verification.verificationDate
path:
  v: Consent.verification.verificationDate
short:
  v: When consent verified
definition:
  v: Date verification was collected.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.verification.verificationDate
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: dateTime
    l: dateTime
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false

id:
  v: Consent.provision
path:
  v: Consent.provision
short:
  v: Quy tắc đồng ý chi tiết
definition:
  v: Quy tắc cho phép/từ chối xử lý dữ liệu theo mục đích, đối tượng, thời hạn cụ thể.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.provision
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true

id:
  v: Consent.provision.id
path:
  v: Consent.provision.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.provision.extension
path:
  v: Consent.provision.extension
short:
  v: Additional content defined by implementations
definition:
  v: 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.provision.modifierExtension
path:
  v: Consent.provision.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: 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.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Consent.provision.type
path:
  v: Consent.provision.type
short:
  v: Cho phép / Từ chối
definition:
  v: permit = cho phép xử lý, deny = từ chối xử lý. Per Luật 91/2025 Điều 13-17 — quyền chủ thể dữ liệu, bao gồm quyền rút lại/từ chối khi pháp luật cho phép.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.provision.type
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
    l: code
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: ConsentProvisionType
  strength:
    v: required
  description:
    v: How a rule statement is applied, such as adding additional consent or removing consent.
  value set:
    v: http://hl7.org/fhir/ValueSet/consent-provision-type|4.0.1
    l: http://hl7.org/fhir/ValueSet/consent-provision-type

id:
  v: Consent.provision.period
path:
  v: Consent.provision.period
short:
  v: Thời hạn hiệu lực
definition:
  v: Thời hạn đồng ý. Chủ thể dữ liệu có quyền thực hiện các quyền theo Luật 91/2025 Điều 13-17; hệ thống cần lưu bằng chứng thời hạn và rút lại theo NĐ 356/2025/NĐ-CP.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.provision.period
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Period
    l: Period
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true

id:
  v: Consent.provision.actor
path:
  v: Consent.provision.actor
short:
  v: Bên liên quan
definition:
  v: Bên được phép/từ chối xử lý: CSKCB, BHXH, cơ quan y tế dự phòng, v.v.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.provision.actor
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: BackboneElement
    l: BackboneElement
meaning when missing:
  v: There is no specific actor associated with the exception
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false

id:
  v: Consent.provision.actor.id
path:
  v: Consent.provision.actor.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.provision.actor.extension
path:
  v: Consent.provision.actor.extension
short:
  v: Additional content defined by implementations
definition:
  v: 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.provision.actor.modifierExtension
path:
  v: Consent.provision.actor.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: 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.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Consent.provision.actor.role
path:
  v: Consent.provision.actor.role
short:
  v: How the actor is involved
definition:
  v: How the individual is involved in the resources content that is described in the exception.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Consent.provision.actor.role
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: CodeableConcept
    l: CodeableConcept
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: ConsentActorRole
  strength:
    v: extensible
  description:
    v: How an actor is involved in the consent considerations.
  value set:
    v: http://hl7.org/fhir/ValueSet/security-role-type|4.0.1
    l: http://hl7.org/fhir/ValueSet/security-role-type

id:
  v: Consent.provision.actor.reference
path:
  v: Consent.provision.actor.reference
short:
  v: Resource for the actor (or group, by role)
definition:
  v: The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers').
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Consent.provision.actor.reference
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: Reference
    l: Reference
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Device|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/Device
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Group|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/Group
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/CareTeam|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/CareTeam
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Organization|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/Organization
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Patient|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/Patient
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Practitioner|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/Practitioner
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/RelatedPerson|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/RelatedPerson
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/PractitionerRole|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/PractitionerRole
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false

id:
  v: Consent.provision.action
path:
  v: Consent.provision.action
short:
  v: Actions controlled by this rule
definition:
  v: Actions controlled by this Rule.
comment:
  v: Note that this is the direct action (not the grounds for the action covered in the purpose element). At present, the only action in the understood and tested scope of this resource is 'read'.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.provision.action
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: CodeableConcept
    l: CodeableConcept
meaning when missing:
  v: all actions
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: ConsentAction
  strength:
    v: example
  description:
    v: Detailed codes for the consent action.
  value set:
    v: http://hl7.org/fhir/ValueSet/consent-action|4.0.1
    l: http://hl7.org/fhir/ValueSet/consent-action

id:
  v: Consent.provision.securityLabel
path:
  v: Consent.provision.securityLabel
short:
  v: Security Labels that define affected resources
definition:
  v: A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception.
comment:
  v: If the consent specifies a security label of "R" then it applies to all resources that are labeled "R" or lower. E.g. for Confidentiality, it's a high water mark. For other kinds of security labels, subsumption logic applies. When the purpose of use tag is on the data, access request purpose of use shall not conflict.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.provision.securityLabel
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Coding
    l: Coding
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: SecurityLabels
  strength:
    v: extensible
  description:
    v: Security Labels from the Healthcare Privacy and Security Classification System.
  value set:
    v: http://hl7.org/fhir/ValueSet/security-labels|4.0.1
    l: http://hl7.org/fhir/ValueSet/security-labels

id:
  v: Consent.provision.purpose
path:
  v: Consent.provision.purpose
short:
  v: Mục đích xử lý
definition:
  v: Mục đích cụ thể: khám chữa bệnh, BHYT, y tế công cộng, nghiên cứu, bệnh án điện tử, chia sẻ hồ sơ. Per Luật 91/2025 Điều 11 khoản 1.
comment:
  v: When the purpose of use tag is on the data, access request purpose of use shall not conflict.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.provision.purpose
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Coding
    l: Coding
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
must support:
  v: true
is modifier:
  v: false
is summary:
  v: true
binding:
  strength:
    v: extensible
  value set:
    v: http://fhir.hl7.org.vn/core/ValueSet/vn-consent-purpose-vs
    l: vn-consent-purpose-vs

id:
  v: Consent.provision.class
path:
  v: Consent.provision.class
short:
  v: Loại dữ liệu
definition:
  v: Loại resource FHIR được phép/từ chối: Condition, Observation, Claim, v.v.
comment:
  v: Multiple types are or'ed together. The intention of the contentType element is that the codes refer to profiles or document types defined in a standard or an implementation guide somewhere.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.provision.class
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Coding
    l: Coding
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: ConsentContentClass
  strength:
    v: extensible
  description:
    v: The class (type) of information a consent rule covers.
  value set:
    v: http://hl7.org/fhir/ValueSet/consent-content-class|4.0.1
    l: http://hl7.org/fhir/ValueSet/consent-content-class

id:
  v: Consent.provision.code
path:
  v: Consent.provision.code
short:
  v: e.g. LOINC or SNOMED CT code, etc. in the content
definition:
  v: If this code is found in an instance, then the rule applies.
comment:
  v: Typical use of this is a Document code with class = CDA.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.provision.code
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: CodeableConcept
    l: CodeableConcept
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: ConsentContentCode
  strength:
    v: example
  description:
    v: If this code is found in an instance, then the exception applies.
  value set:
    v: http://hl7.org/fhir/ValueSet/consent-content-code|4.0.1
    l: http://hl7.org/fhir/ValueSet/consent-content-code

id:
  v: Consent.provision.dataPeriod
path:
  v: Consent.provision.dataPeriod
short:
  v: Timeframe for data controlled by this rule
definition:
  v: Clinical or Operational Relevant period of time that bounds the data controlled by this rule.
comment:
  v: This has a different sense to the Consent.period - that is when the consent agreement holds. This is the time period of the data that is controlled by the agreement.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Consent.provision.dataPeriod
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: Period
    l: Period
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true

id:
  v: Consent.provision.data
path:
  v: Consent.provision.data
short:
  v: Data controlled by this rule
definition:
  v: The resources controlled by this rule if specific resources are referenced.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.provision.data
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: BackboneElement
    l: BackboneElement
meaning when missing:
  v: all data
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: Role

id:
  v: Consent.provision.data.id
path:
  v: Consent.provision.data.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.provision.data.extension
path:
  v: Consent.provision.data.extension
short:
  v: Additional content defined by implementations
definition:
  v: 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Consent.provision.data.modifierExtension
path:
  v: Consent.provision.data.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: 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.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Consent.provision.data.meaning
path:
  v: Consent.provision.data.meaning
short:
  v: instance | related | dependents | authoredby
definition:
  v: How the resource reference is interpreted when testing consent restrictions.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Consent.provision.data.meaning
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: code
    l: code
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true
binding:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName
      l: elementdefinition-bindingName
    value: String
      v: ConsentDataMeaning
  strength:
    v: required
  description:
    v: How a resource reference is interpreted when testing consent restrictions.
  value set:
    v: http://hl7.org/fhir/ValueSet/consent-data-meaning|4.0.1
    l: http://hl7.org/fhir/ValueSet/consent-data-meaning

id:
  v: Consent.provision.data.reference
path:
  v: Consent.provision.data.reference
short:
  v: The actual data reference
definition:
  v: A reference to a specific resource that defines which resources are covered by this consent.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Consent.provision.data.reference
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: Reference
    l: Reference
  target profile:
    v: http://hl7.org/fhir/StructureDefinition/Resource|4.0.1
    l: http://hl7.org/fhir/StructureDefinition/Resource
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: true

id:
  v: Consent.provision.provision
path:
  v: Consent.provision.provision
short:
  v: Nested Exception Rules
definition:
  v: Rules which provide exceptions to the base rule or subrules.
min:
  v: 0
max:
  v: *
base:
  path:
    v: Consent.provision.provision
  min:
    v: 0
  max:
    v: *
content reference:
  v: http://hl7.org/fhir/StructureDefinition/Consent#Consent.provision
  l: Consent.provision
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
is modifier:
  v: false
is summary:
  v: false

element:
  id:
    v: Consent
  path:
    v: Consent
  constraint:
    key:
      v: vn-consent-period-end-required
    severity:
      v: error
    human:
      v: Nếu đã khai báo thời hạn hiệu lực của đồng ý thì phải có ngày kết thúc
    expression:
      v: provision.period.empty() or provision.period.end.exists()
    source:
      v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-consent
      l: vn-core-consent
element:
  id:
    v: Consent.status
  path:
    v: Consent.status
  short:
    v: Trạng thái đồng ý
  definition:
    v: Trạng thái: active (đang hiệu lực), rejected (từ chối/rút lại per Luật 91/2025 Điều 12), inactive (hết hạn).
  must support:
    v: true
element:
  id:
    v: Consent.scope
  path:
    v: Consent.scope
  short:
    v: Phạm vi đồng ý
  definition:
    v: Phạm vi đồng ý — mặc định patient-privacy cho DLCN y tế nhạy cảm.
  must support:
    v: true
element:
  id:
    v: Consent.category
  path:
    v: Consent.category
  short:
    v: Loại đồng ý
  definition:
    v: Phân loại đồng ý: quyền riêng tư, điều trị, nghiên cứu, miễn trừ cấp cứu, nghĩa vụ pháp lý. Per Luật 91/2025 Điều 11, 17.
  must support:
    v: true
  binding:
    strength:
      v: extensible
    value set:
      v: http://fhir.hl7.org.vn/core/ValueSet/vn-consent-category-vs
      l: vn-consent-category-vs
element:
  id:
    v: Consent.patient
  path:
    v: Consent.patient
  short:
    v: Chủ thể dữ liệu
  definition:
    v: Bệnh nhân — chủ thể dữ liệu cá nhân per Luật 91/2025 Điều 3 khoản 6.
  min:
    v: 1
  type:
    code:
      v: Reference
      l: Reference
    target profile:
      v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-patient
      l: vn-core-patient
  must support:
    v: true
element:
  id:
    v: Consent.dateTime
  path:
    v: Consent.dateTime
  short:
    v: Thời điểm đồng ý
  definition:
    v: Thời điểm ghi nhận sự đồng ý hoặc từ chối. Per Luật 91/2025 Điều 11 khoản 2 — đồng ý phải rõ ràng, cụ thể.
  min:
    v: 1
  must support:
    v: true
element:
  id:
    v: Consent.performer
  path:
    v: Consent.performer
  short:
    v: Người đồng ý
  definition:
    v: Người thực hiện đồng ý: bệnh nhân, người giám hộ, hoặc người đại diện hợp pháp.
  type:
    code:
      v: Reference
      l: Reference
    target profile:
      v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-patient
      l: vn-core-patient
    target profile:
      v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-relatedperson
      l: vn-core-relatedperson
    target profile:
      v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-practitioner
      l: vn-core-practitioner
  must support:
    v: true
element:
  id:
    v: Consent.organization
  path:
    v: Consent.organization
  short:
    v: CSKCB quản lý đồng ý
  definition:
    v: Cơ sở khám chữa bệnh — bên kiểm soát xử lý dữ liệu per Luật 91/2025 Điều 3 khoản 9.
  type:
    code:
      v: Reference
      l: Reference
    target profile:
      v: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-organization
      l: vn-core-organization
  must support:
    v: true
element:
  id:
    v: Consent.source[x]
  path:
    v: Consent.source[x]
  short:
    v: Bản gốc đồng ý
  definition:
    v: Tài liệu gốc: bản scan chữ ký, phiếu đồng ý điện tử, hoặc ghi nhận bằng lời (có nhân chứng).
  must support:
    v: true
element:
  id:
    v: Consent.policy
  path:
    v: Consent.policy
  short:
    v: Căn cứ pháp lý
  definition:
    v: Tham chiếu đến văn bản pháp luật làm căn cứ cho đồng ý.
  must support:
    v: true
element:
  id:
    v: Consent.policy.authority
  path:
    v: Consent.policy.authority
  short:
    v: Cơ quan ban hành
element:
  id:
    v: Consent.policy.uri
  path:
    v: Consent.policy.uri
  short:
    v: URL văn bản pháp lý
  definition:
    v: URL/URI văn bản pháp luật (VD: Luật 91/2025, NĐ 356/2025, TT 13/2025).
  must support:
    v: true
element:
  id:
    v: Consent.provision
  path:
    v: Consent.provision
  short:
    v: Quy tắc đồng ý chi tiết
  definition:
    v: Quy tắc cho phép/từ chối xử lý dữ liệu theo mục đích, đối tượng, thời hạn cụ thể.
  must support:
    v: true
element:
  id:
    v: Consent.provision.type
  path:
    v: Consent.provision.type
  short:
    v: Cho phép / Từ chối
  definition:
    v: permit = cho phép xử lý, deny = từ chối xử lý. Per Luật 91/2025 Điều 13-17 — quyền chủ thể dữ liệu, bao gồm quyền rút lại/từ chối khi pháp luật cho phép.
  must support:
    v: true
element:
  id:
    v: Consent.provision.period
  path:
    v: Consent.provision.period
  short:
    v: Thời hạn hiệu lực
  definition:
    v: Thời hạn đồng ý. Chủ thể dữ liệu có quyền thực hiện các quyền theo Luật 91/2025 Điều 13-17; hệ thống cần lưu bằng chứng thời hạn và rút lại theo NĐ 356/2025/NĐ-CP.

v: true

id:
  v: Consent.provision.actor
path:
  v: Consent.provision.actor
short:
  v: Bên liên quan
definition:
  v: Bên được phép/từ chối xử lý: CSKCB, BHXH, cơ quan y tế dự phòng, v.v.

id:
  v: Consent.provision.purpose
path:
  v: Consent.provision.purpose
short:
  v: Mục đích xử lý
definition:
  v: Mục đích cụ thể: khám chữa bệnh, BHYT, y tế công cộng, nghiên cứu, bệnh án điện tử, chia sẻ hồ sơ. Per Luật 91/2025 Điều 11 khoản 1.
must support:
  v: true
binding:
  strength:
    v: extensible
  value set:
    v: http://fhir.hl7.org.vn/core/ValueSet/vn-consent-purpose-vs
    l: vn-consent-purpose-vs

id:
  v: Consent.provision.class
path:
  v: Consent.provision.class
short:
  v: Loại dữ liệu
definition:
  v: Loại resource FHIR được phép/từ chối: Condition, Observation, Claim, v.v.