Advance Care Planning (PZP)
1.0.0-rc2 - trial-use

Advance Care Planning (PZP) - Downloaded Version 1.0.0-rc2 See the Directory of published versions

## Resource Profile: ACP AdvanceDirective

Official URL: https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-AdvanceDirective | Version: 1.0.0-rc2
Draft as of 2026-03-03 | Computable Name: ACPAdvanceDirective
Copyright/Legal: Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise.

A verbal or written description of the patient’s wishes with regard to future medical action or end of their life. A living will is mainly used for situations in which the patient is no longer able to speak about these decisions with their healthcare provider. Based on nl-core-AdvanceDirective and HCIM AdvanceDirective.

### Changes compared to nl-core

This profile adds ACP-specific mappings to the ART-DECOR dataset and obligation extensions for Provider and Consulter actors. Profile references are constrained to ACP profiles where available. No changes have been made that affect implementation beyond the base nl-core profile.

Usages:

- Refer to this Profile: ACP TreatmentDirective
- Examples for this Profile: Consent/ACP-AdvanceDirective-DNR-Pat1 and Consent/ACP-AdvanceDirective-DNR-Pat2
- CapabilityStatements using this Profile: ACP CapabilityStatement Consulter and ACP CapabilityStatement Provider

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Consent | C | 0..* | NlcoreAdvanceDirective | AdvanceDirective Constraints: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:disorder | O | 0..* | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-AdvanceDirective.Disorder Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-AdvanceDirective.Disorder"
extension:comment | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-Comment Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-Comment"
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
status | ?!Σ | 1..1 | code | draft | proposed | active | rejected | inactive | entered-in-error Binding: ConsentState (required): Indicates the state of the consent.
scope | ?!Σ | 1..1 | CodeableConcept | Which of the four areas this resource covers (extensible) Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: adr
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
Slices for category | Σ | 1..* | CodeableConcept | Classification of the consent statement - for indexing/retrieval Slice: Unordered, Open by value:$this Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement.
category:advanceDirectiveCode | Σ | 1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentcategorycodes
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: acd
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
patient | O Σ | 0..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the consent applies to
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
dateTime | O Σ | 0..1 | dateTime | LivingWillDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for source[x] | Σ | 0..1 |  | Source from which this consent is taken Slice: Unordered, Closed by type:$this
sourceAttachment |  |  | Attachment |
sourceReference |  |  | Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) |
source[x]:sourceAttachment | O Σ | 0..1 | Attachment | LivingWillDocument
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Consent.status | Base | required | ConsentState | 📍4.0.1 | FHIR Std.
Consent.scope | Base | extensible | Consent Scope Codes | 📍4.0.1 | FHIR Std.
Consent.category | Base | extensible | Consent Category Codes | 📍4.0.1 | FHIR Std.
Consent.category:advanceDirectiveCode | Base | extensible | Consent Category Codes | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Consent | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Consent | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Consent | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Consent | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Consent | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Consent.implicitRules, Consent.extension:disorder, Consent.extension:comment, Consent.modifierExtension, Consent.status, Consent.scope, Consent.category, Consent.category:advanceDirectiveCode, Consent.patient, Consent.dateTime, Consent.source[x], Consent.source[x]:sourceAttachment | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Consent.extension:disorder, Consent.extension:comment, Consent.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
ppc-1 | error | Consent | Either a Policy or PolicyRule | `policy.exists() or policyRule.exists()`
ppc-2 | error | Consent | IF Scope=privacy, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()`
ppc-3 | error | Consent | IF Scope=research, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='research').exists().not()`
ppc-4 | error | Consent | IF Scope=adr, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()`
ppc-5 | error | Consent | IF Scope=treatment, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()`

This structure is derived from NlcoreAdvanceDirective

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Consent |  | 0..* | NlcoreAdvanceDirective | AdvanceDirective
Slices for extension |  |  |  | Content/Rules for all slices
extension:disorder | O | 0..* | ExtAdvanceDirectiveDisorder | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
extension:comment | O | 0..1 | ExtComment | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
patient | O | 0..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the consent applies to
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
dateTime | O | 0..1 | dateTime | LivingWillDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for source[x] |  |  |  | Content/Rules for all slices
source[x]:sourceAttachment | O | 0..1 | Attachment | LivingWillDocument
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
provision |  |  |  |
Slices for actor |  |  |  | Content/Rules for all slices
actor:representative |  | 0..1 | BackboneElement | Who|what controlled by this rule (or group, by role)
reference | O | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole | nl core ContactPerson) | Representative
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
code | O | 0..1 | CodeableConcept | LivingWillType
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Consent | C | 0..* | NlcoreAdvanceDirective | AdvanceDirective Constraints: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
extension:disorder | O | 0..* | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-AdvanceDirective.Disorder Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-AdvanceDirective.Disorder"
value[x] |  | 0..1 | Reference(nl core Problem) | Disorder
extension:comment | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-Comment Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-Comment"
value[x] |  | 0..1 | string | Comment
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
identifier | Σ | 0..* | Identifier | Identifier for this record (external references) Example General: {"system":"urn:ietf:rfc:3986","value":"Local eCMS identifier"}
status | ?!Σ | 1..1 | code | draft | proposed | active | rejected | inactive | entered-in-error Binding: ConsentState (required): Indicates the state of the consent.
scope | ?!Σ | 1..1 | CodeableConcept | Which of the four areas this resource covers (extensible) Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: adr
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
Slices for category | Σ | 1..* | CodeableConcept | Classification of the consent statement - for indexing/retrieval Slice: Unordered, Open by value:$this Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement.
category:advanceDirectiveCode | Σ | 1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentcategorycodes
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: acd
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
patient | O Σ | 0..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the consent applies to
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
dateTime | O Σ | 0..1 | dateTime | LivingWillDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
performer | Σ | 0..* | Reference(Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Who is agreeing to the policy and rules
organization | Σ | 0..* | Reference(Organization) | Custodian of the consent
Slices for source[x] | Σ | 0..1 |  | Source from which this consent is taken Slice: Unordered, Closed by type:$this
sourceAttachment |  |  | Attachment |
sourceReference |  |  | Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) |
source[x]:sourceAttachment | O Σ | 0..1 | Attachment | LivingWillDocument
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
policy |  | 0..* | BackboneElement | Policies covered by this consent
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
authority | C | 0..1 | uri | Enforcement source for policy
uri | C | 0..1 | uri | Specific policy covered by this consent
policyRule | Σ C | 0..1 | CodeableConcept | Regulation that this consents to Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples.
verification | Σ | 0..* | BackboneElement | Consent Verified by patient or family
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
verified | Σ | 1..1 | boolean | Has been verified
verifiedWith |  | 0..1 | Reference(Patient | RelatedPerson) | Person who verified
verificationDate |  | 0..1 | dateTime | When consent verified
provision | Σ | 0..1 | BackboneElement | Constraints to the base Consent.policyRule
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
type | Σ | 0..1 | code | deny | permit Binding: ConsentProvisionType (required): How a rule statement is applied, such as adding additional consent or removing consent.
period | Σ | 0..1 | Period | Timeframe for this rule
Slices for actor |  | 0..* | BackboneElement | Who|what controlled by this rule (or group, by role) Slice: Unordered, Open by value:role
actor:All Slices |  |  |  | Content/Rules for all slices
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
role |  | 1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations.
reference |  | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role)
actor:representative |  | 0..1 | BackboneElement | Who|what controlled by this rule (or group, by role)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
role |  | 1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-RoleCode
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: RESPRSN
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
reference | O | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole | nl core ContactPerson) | Representative
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
action | Σ | 0..* | CodeableConcept | Actions controlled by this rule Binding: ConsentActionCodes (example): Detailed codes for the consent action.
securityLabel | Σ | 0..* | Coding | Security Labels that define affected resources Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
purpose | Σ | 0..* | Coding | Context of activities covered by this rule Binding: PurposeOfUse (3.1.0) (extensible): What purposes of use are controlled by this exception. If more than one label is specified, operations must have all the specified labels.
class | Σ | 0..* | Coding | e.g. Resource Type, Profile, CDA, etc. Binding: ConsentContentClass (extensible): The class (type) of information a consent rule covers.
code | O Σ | 0..1 | CodeableConcept | LivingWillType Binding: WilsverklaringTypeCodelijst (2020-09-01T00:00:00) (required): If this code is found in an instance, then the exception applies.
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
dataPeriod | Σ | 0..1 | Period | Timeframe for data controlled by this rule
data | Σ | 0..* | BackboneElement | Data controlled by this rule
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
meaning | Σ | 1..1 | code | instance | related | dependents | authoredby Binding: ConsentDataMeaning (required): How a resource reference is interpreted when testing consent restrictions.
reference | Σ | 1..1 | Reference(Resource) | The actual data reference
provision |  | 0..* | See provision (Consent) | Nested Exception Rules
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Consent.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Consent.status | Base | required | ConsentState | 📍4.0.1 | FHIR Std.
Consent.scope | Base | extensible | Consent Scope Codes | 📍4.0.1 | FHIR Std.
Consent.category | Base | extensible | Consent Category Codes | 📍4.0.1 | FHIR Std.
Consent.category:advanceDirectiveCode | Base | extensible | Consent Category Codes | 📍4.0.1 | FHIR Std.
Consent.policyRule | Base | extensible | Consent PolicyRule Codes | 📍4.0.1 | FHIR Std.
Consent.provision.type | Base | required | ConsentProvisionType | 📍4.0.1 | FHIR Std.
Consent.provision.actor.​role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std.
Consent.provision.actor:representative.​role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std.
Consent.provision.action | Base | example | Consent Action Codes | 📍4.0.1 | FHIR Std.
Consent.provision.securityLabel | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std.
Consent.provision.purpose | Base | extensible | PurposeOfUse | 📍3.1.0 | THO v7.0
Consent.provision.class | Base | extensible | Consent Content Class | 📍4.0.1 | FHIR Std.
Consent.provision.code | Base | required | WilsverklaringTypeCodelijst | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12
Consent.provision.data.​meaning | Base | required | ConsentDataMeaning | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Consent | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Consent | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Consent | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Consent | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Consent | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Consent.meta, Consent.implicitRules, Consent.language, Consent.text, Consent.extension, Consent.extension:disorder, Consent.extension:disorder.extension, Consent.extension:disorder.value[x], Consent.extension:comment, Consent.extension:comment.extension, Consent.extension:comment.value[x], Consent.modifierExtension, Consent.identifier, Consent.status, Consent.scope, Consent.category, Consent.category:advanceDirectiveCode, Consent.patient, Consent.dateTime, Consent.performer, Consent.organization, Consent.source[x], Consent.source[x]:sourceAttachment, Consent.policy, Consent.policy.extension, Consent.policy.modifierExtension, Consent.policy.authority, Consent.policy.uri, Consent.policyRule, Consent.verification, Consent.verification.extension, Consent.verification.modifierExtension, Consent.verification.verified, Consent.verification.verifiedWith, Consent.verification.verificationDate, Consent.provision, Consent.provision.extension, Consent.provision.modifierExtension, Consent.provision.type, Consent.provision.period, Consent.provision.actor, Consent.provision.actor.extension, Consent.provision.actor.modifierExtension, Consent.provision.actor.role, Consent.provision.actor.reference, Consent.provision.actor:representative, Consent.provision.actor:representative.extension, Consent.provision.actor:representative.modifierExtension, Consent.provision.actor:representative.role, Consent.provision.actor:representative.reference, Consent.provision.action, Consent.provision.securityLabel, Consent.provision.purpose, Consent.provision.class, Consent.provision.code, Consent.provision.dataPeriod, Consent.provision.data, Consent.provision.data.extension, Consent.provision.data.modifierExtension, Consent.provision.data.meaning, Consent.provision.data.reference, Consent.provision.provision | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Consent.extension, Consent.extension:disorder, Consent.extension:disorder.extension, Consent.extension:comment, Consent.extension:comment.extension, Consent.modifierExtension, Consent.policy.extension, Consent.policy.modifierExtension, Consent.verification.extension, Consent.verification.modifierExtension, Consent.provision.extension, Consent.provision.modifierExtension, Consent.provision.actor.extension, Consent.provision.actor.modifierExtension, Consent.provision.actor:representative.extension, Consent.provision.actor:representative.modifierExtension, Consent.provision.data.extension, Consent.provision.data.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
ppc-1 | error | Consent | Either a Policy or PolicyRule | `policy.exists() or policyRule.exists()`
ppc-2 | error | Consent | IF Scope=privacy, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()`
ppc-3 | error | Consent | IF Scope=research, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='research').exists().not()`
ppc-4 | error | Consent | IF Scope=adr, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()`
ppc-5 | error | Consent | IF Scope=treatment, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()`

This structure is derived from NlcoreAdvanceDirective

Summary

Structures

This structure refers to these other structures:

- ACP Patient (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Patient|1.0.0-rc2)

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Consent | C | 0..* | NlcoreAdvanceDirective | AdvanceDirective Constraints: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:disorder | O | 0..* | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-AdvanceDirective.Disorder Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-AdvanceDirective.Disorder"
extension:comment | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-Comment Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-Comment"
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
status | ?!Σ | 1..1 | code | draft | proposed | active | rejected | inactive | entered-in-error Binding: ConsentState (required): Indicates the state of the consent.
scope | ?!Σ | 1..1 | CodeableConcept | Which of the four areas this resource covers (extensible) Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: adr
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
Slices for category | Σ | 1..* | CodeableConcept | Classification of the consent statement - for indexing/retrieval Slice: Unordered, Open by value:$this Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement.
category:advanceDirectiveCode | Σ | 1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentcategorycodes
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: acd
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
patient | O Σ | 0..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the consent applies to
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
dateTime | O Σ | 0..1 | dateTime | LivingWillDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for source[x] | Σ | 0..1 |  | Source from which this consent is taken Slice: Unordered, Closed by type:$this
sourceAttachment |  |  | Attachment |
sourceReference |  |  | Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) |
source[x]:sourceAttachment | O Σ | 0..1 | Attachment | LivingWillDocument
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Consent.status | Base | required | ConsentState | 📍4.0.1 | FHIR Std.
Consent.scope | Base | extensible | Consent Scope Codes | 📍4.0.1 | FHIR Std.
Consent.category | Base | extensible | Consent Category Codes | 📍4.0.1 | FHIR Std.
Consent.category:advanceDirectiveCode | Base | extensible | Consent Category Codes | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Consent | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Consent | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Consent | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Consent | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Consent | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Consent.implicitRules, Consent.extension:disorder, Consent.extension:comment, Consent.modifierExtension, Consent.status, Consent.scope, Consent.category, Consent.category:advanceDirectiveCode, Consent.patient, Consent.dateTime, Consent.source[x], Consent.source[x]:sourceAttachment | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Consent.extension:disorder, Consent.extension:comment, Consent.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
ppc-1 | error | Consent | Either a Policy or PolicyRule | `policy.exists() or policyRule.exists()`
ppc-2 | error | Consent | IF Scope=privacy, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()`
ppc-3 | error | Consent | IF Scope=research, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='research').exists().not()`
ppc-4 | error | Consent | IF Scope=adr, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()`
ppc-5 | error | Consent | IF Scope=treatment, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()`

Differential View

This structure is derived from NlcoreAdvanceDirective

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Consent |  | 0..* | NlcoreAdvanceDirective | AdvanceDirective
Slices for extension |  |  |  | Content/Rules for all slices
extension:disorder | O | 0..* | ExtAdvanceDirectiveDisorder | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
extension:comment | O | 0..1 | ExtComment | Optional Extensions Element
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
patient | O | 0..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the consent applies to
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
dateTime | O | 0..1 | dateTime | LivingWillDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Slices for source[x] |  |  |  | Content/Rules for all slices
source[x]:sourceAttachment | O | 0..1 | Attachment | LivingWillDocument
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
provision |  |  |  |
Slices for actor |  |  |  | Content/Rules for all slices
actor:representative |  | 0..1 | BackboneElement | Who|what controlled by this rule (or group, by role)
reference | O | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole | nl core ContactPerson) | Representative
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
code | O | 0..1 | CodeableConcept | LivingWillType
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Consent | C | 0..* | NlcoreAdvanceDirective | AdvanceDirective Constraints: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
extension:disorder | O | 0..* | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-AdvanceDirective.Disorder Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-AdvanceDirective.Disorder"
value[x] |  | 0..1 | Reference(nl core Problem) | Disorder
extension:comment | O | 0..1 | (Complex) | Optional Extensions Element URL: http://nictiz.nl/fhir/StructureDefinition/ext-Comment Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://nictiz.nl/fhir/StructureDefinition/ext-Comment"
value[x] |  | 0..1 | string | Comment
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
identifier | Σ | 0..* | Identifier | Identifier for this record (external references) Example General: {"system":"urn:ietf:rfc:3986","value":"Local eCMS identifier"}
status | ?!Σ | 1..1 | code | draft | proposed | active | rejected | inactive | entered-in-error Binding: ConsentState (required): Indicates the state of the consent.
scope | ?!Σ | 1..1 | CodeableConcept | Which of the four areas this resource covers (extensible) Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: adr
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
Slices for category | Σ | 1..* | CodeableConcept | Classification of the consent statement - for indexing/retrieval Slice: Unordered, Open by value:$this Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement.
category:advanceDirectiveCode | Σ | 1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval Binding: ConsentCategoryCodes (extensible): A classification of the type of consents found in a consent statement. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentcategorycodes
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: acd
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
patient | O Σ | 0..1 | Reference(ACP Patient(1.0.0-rc2)) | Who the consent applies to
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
dateTime | O Σ | 0..1 | dateTime | LivingWillDate
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
performer | Σ | 0..* | Reference(Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Who is agreeing to the policy and rules
organization | Σ | 0..* | Reference(Organization) | Custodian of the consent
Slices for source[x] | Σ | 0..1 |  | Source from which this consent is taken Slice: Unordered, Closed by type:$this
sourceAttachment |  |  | Attachment |
sourceReference |  |  | Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) |
source[x]:sourceAttachment | O Σ | 0..1 | Attachment | LivingWillDocument
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
policy |  | 0..* | BackboneElement | Policies covered by this consent
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
authority | C | 0..1 | uri | Enforcement source for policy
uri | C | 0..1 | uri | Specific policy covered by this consent
policyRule | Σ C | 0..1 | CodeableConcept | Regulation that this consents to Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples.
verification | Σ | 0..* | BackboneElement | Consent Verified by patient or family
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
verified | Σ | 1..1 | boolean | Has been verified
verifiedWith |  | 0..1 | Reference(Patient | RelatedPerson) | Person who verified
verificationDate |  | 0..1 | dateTime | When consent verified
provision | Σ | 0..1 | BackboneElement | Constraints to the base Consent.policyRule
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
type | Σ | 0..1 | code | deny | permit Binding: ConsentProvisionType (required): How a rule statement is applied, such as adding additional consent or removing consent.
period | Σ | 0..1 | Period | Timeframe for this rule
Slices for actor |  | 0..* | BackboneElement | Who|what controlled by this rule (or group, by role) Slice: Unordered, Open by value:role
actor:All Slices |  |  |  | Content/Rules for all slices
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
role |  | 1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations.
reference |  | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Resource for the actor (or group, by role)
actor:representative |  | 0..1 | BackboneElement | Who|what controlled by this rule (or group, by role)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
role |  | 1..1 | CodeableConcept | How the actor is involved Binding: SecurityRoleType (extensible): How an actor is involved in the consent considerations. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-RoleCode
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: RESPRSN
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
reference | O | 1..1 | Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole | nl core ContactPerson) | Representative
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
action | Σ | 0..* | CodeableConcept | Actions controlled by this rule Binding: ConsentActionCodes (example): Detailed codes for the consent action.
securityLabel | Σ | 0..* | Coding | Security Labels that define affected resources Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
purpose | Σ | 0..* | Coding | Context of activities covered by this rule Binding: PurposeOfUse (3.1.0) (extensible): What purposes of use are controlled by this exception. If more than one label is specified, operations must have all the specified labels.
class | Σ | 0..* | Coding | e.g. Resource Type, Profile, CDA, etc. Binding: ConsentContentClass (extensible): The class (type) of information a consent rule covers.
code | O Σ | 0..1 | CodeableConcept | LivingWillType Binding: WilsverklaringTypeCodelijst (2020-09-01T00:00:00) (required): If this code is found in an instance, then the exception applies.
Obligations | Actor
SHALL:populate-if-known | ACP Actor Provider
SHALL:no-error | ACP Actor Consulter
dataPeriod | Σ | 0..1 | Period | Timeframe for data controlled by this rule
data | Σ | 0..* | BackboneElement | Data controlled by this rule
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
meaning | Σ | 1..1 | code | instance | related | dependents | authoredby Binding: ConsentDataMeaning (required): How a resource reference is interpreted when testing consent restrictions.
reference | Σ | 1..1 | Reference(Resource) | The actual data reference
provision |  | 0..* | See provision (Consent) | Nested Exception Rules
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Consent.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Consent.status | Base | required | ConsentState | 📍4.0.1 | FHIR Std.
Consent.scope | Base | extensible | Consent Scope Codes | 📍4.0.1 | FHIR Std.
Consent.category | Base | extensible | Consent Category Codes | 📍4.0.1 | FHIR Std.
Consent.category:advanceDirectiveCode | Base | extensible | Consent Category Codes | 📍4.0.1 | FHIR Std.
Consent.policyRule | Base | extensible | Consent PolicyRule Codes | 📍4.0.1 | FHIR Std.
Consent.provision.type | Base | required | ConsentProvisionType | 📍4.0.1 | FHIR Std.
Consent.provision.actor.​role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std.
Consent.provision.actor:representative.​role | Base | extensible | SecurityRoleType | 📍4.0.1 | FHIR Std.
Consent.provision.action | Base | example | Consent Action Codes | 📍4.0.1 | FHIR Std.
Consent.provision.securityLabel | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std.
Consent.provision.purpose | Base | extensible | PurposeOfUse | 📍3.1.0 | THO v7.0
Consent.provision.class | Base | extensible | Consent Content Class | 📍4.0.1 | FHIR Std.
Consent.provision.code | Base | required | WilsverklaringTypeCodelijst | 📍2020-09-01T00:00:00 | FHIR implementation of zibs 2020 v0.12
Consent.provision.data.​meaning | Base | required | ConsentDataMeaning | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Consent | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Consent | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Consent | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Consent | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Consent | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Consent.meta, Consent.implicitRules, Consent.language, Consent.text, Consent.extension, Consent.extension:disorder, Consent.extension:disorder.extension, Consent.extension:disorder.value[x], Consent.extension:comment, Consent.extension:comment.extension, Consent.extension:comment.value[x], Consent.modifierExtension, Consent.identifier, Consent.status, Consent.scope, Consent.category, Consent.category:advanceDirectiveCode, Consent.patient, Consent.dateTime, Consent.performer, Consent.organization, Consent.source[x], Consent.source[x]:sourceAttachment, Consent.policy, Consent.policy.extension, Consent.policy.modifierExtension, Consent.policy.authority, Consent.policy.uri, Consent.policyRule, Consent.verification, Consent.verification.extension, Consent.verification.modifierExtension, Consent.verification.verified, Consent.verification.verifiedWith, Consent.verification.verificationDate, Consent.provision, Consent.provision.extension, Consent.provision.modifierExtension, Consent.provision.type, Consent.provision.period, Consent.provision.actor, Consent.provision.actor.extension, Consent.provision.actor.modifierExtension, Consent.provision.actor.role, Consent.provision.actor.reference, Consent.provision.actor:representative, Consent.provision.actor:representative.extension, Consent.provision.actor:representative.modifierExtension, Consent.provision.actor:representative.role, Consent.provision.actor:representative.reference, Consent.provision.action, Consent.provision.securityLabel, Consent.provision.purpose, Consent.provision.class, Consent.provision.code, Consent.provision.dataPeriod, Consent.provision.data, Consent.provision.data.extension, Consent.provision.data.modifierExtension, Consent.provision.data.meaning, Consent.provision.data.reference, Consent.provision.provision | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Consent.extension, Consent.extension:disorder, Consent.extension:disorder.extension, Consent.extension:comment, Consent.extension:comment.extension, Consent.modifierExtension, Consent.policy.extension, Consent.policy.modifierExtension, Consent.verification.extension, Consent.verification.modifierExtension, Consent.provision.extension, Consent.provision.modifierExtension, Consent.provision.actor.extension, Consent.provision.actor.modifierExtension, Consent.provision.actor:representative.extension, Consent.provision.actor:representative.modifierExtension, Consent.provision.data.extension, Consent.provision.data.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
ppc-1 | error | Consent | Either a Policy or PolicyRule | `policy.exists() or policyRule.exists()`
ppc-2 | error | Consent | IF Scope=privacy, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()`
ppc-3 | error | Consent | IF Scope=research, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='research').exists().not()`
ppc-4 | error | Consent | IF Scope=adr, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()`
ppc-5 | error | Consent | IF Scope=treatment, there must be a patient | `patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()`

This structure is derived from NlcoreAdvanceDirective

Summary

Structures

This structure refers to these other structures:

- ACP Patient (https://api.iknl.nl/docs/pzp/r4/StructureDefinition/ACP-Patient|1.0.0-rc2)

Other representations of profile: CSV, Excel, Schematron