John Moehrke XACML Consent Example
0.1.0 - ci-build
John Moehrke XACML Consent Example, published by John Moehrke (Moehrke Research LLC). This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/JohnMoehrke/xacml-consent/ and changes regularly. See the Directory of published versions
| Official URL: http://johnmoehrke.github.io/xacml-consent/StructureDefinition/fhir-consent-xacml | Version: 0.1.0 | |||
| Draft as of 2025-12-29 | Computable Name: FHIRConsentXACML | |||
A FHIR Consent resource that references XACML policies for access control, without including any rules directly in the Consent. Therefore, it does not include any provisions directly within the Consent. The actual access rules are defined in the referenced XACML policy documents.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
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: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 1..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by type:type.coding.code Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() |
SΣ | 1..* | Identifier | Identifier for this record (external references) Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 |
![]() ![]() |
?!Σ | 1..1 | code | draft | proposed | active | rejected | inactive | entered-in-error Binding: ConsentState (required): Indicates the state of the consent. |
![]() ![]() |
?!Σ | 1..1 | CodeableConcept | Which of the four areas this resource covers (extensible) Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() |
Σ | 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. |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: 59284-0 | |
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who the consent applies to |
![]() ![]() |
Σ | 1..1 | Source from which this consent is taken | |
![]() ![]() ![]() |
Attachment | |||
![]() ![]() ![]() |
Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | |||
![]() ![]() |
1..1 | BackboneElement | Policies covered by this consent | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
C | 1..1 | uri | Specific policy covered by this consent |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.identifier:XPS.use | Base | required | IdentifierUse | 📍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. |
| 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 | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| 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 Consent
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Consent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time | |
![]() ![]() |
1..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by type:type.coding.code | |
![]() ![]() ![]() |
S | 1..* | Identifier | Identifier for this record (external references) |
![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | code | Symbol in syntax defined by the system Fixed Value: oasis:names:tc:xacml:1.0:Policy/@PolicyId | |
![]() ![]() ![]() ![]() |
1..1 | string | The value that is unique | |
![]() ![]() |
||||
![]() ![]() ![]() |
1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |
![]() ![]() |
1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval | |
![]() ![]() ![]() |
1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: 59284-0 | |
![]() ![]() |
1..1 | Reference(Patient) | Who the consent applies to | |
![]() ![]() |
1..1 | Attachment, Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | Source from which this consent is taken | |
![]() ![]() |
1..1 | BackboneElement | Policies covered by this consent | |
![]() ![]() ![]() |
1..1 | uri | Specific policy covered by this consent | |
![]() ![]() |
0..0 | Constraints to the base Consent.policyRule | ||
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
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: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 1..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by type:type.coding.code Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() |
SΣ | 1..* | Identifier | Identifier for this record (external references) Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | Code defined by a terminology system | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | uri | Identity of the terminology system | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Fixed Value: oasis:names:tc:xacml:1.0:Policy/@PolicyId | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) | ||||
![]() ![]() |
?!Σ | 1..1 | code | draft | proposed | active | rejected | inactive | entered-in-error Binding: ConsentState (required): Indicates the state of the consent. | ||||
![]() ![]() |
?!Σ | 1..1 | CodeableConcept | Which of the four areas this resource covers (extensible) Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() |
Σ | 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. | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: 59284-0 | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who the consent applies to | ||||
![]() ![]() |
Σ | 0..1 | dateTime | When this Consent was created or indexed | ||||
![]() ![]() |
Σ | 0..* | Reference(Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Who is agreeing to the policy and rules | ||||
![]() ![]() |
Σ | 0..* | Reference(Organization) | Custodian of the consent | ||||
![]() ![]() |
Σ | 1..1 | Source from which this consent is taken | |||||
![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() |
Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | |||||||
![]() ![]() |
1..1 | BackboneElement | Policies covered by this consent | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
C | 0..1 | uri | Enforcement source for policy | ||||
![]() ![]() ![]() |
C | 1..1 | uri | Specific policy covered by this consent | ||||
![]() ![]() |
ΣC | 0..1 | CodeableConcept | Regulation that this consents to Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Consent Verified by patient or family | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | boolean | Has been verified | ||||
![]() ![]() ![]() |
0..1 | Reference(Patient | RelatedPerson) | Person who verified | |||||
![]() ![]() ![]() |
0..1 | dateTime | When consent verified | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Consent.identifier:XPS.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Consent.identifier:XPS.type | Base | extensible | IdentifierType | 📍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.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.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 | example | Consent Content Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.data.meaning | Base | required | ConsentDataMeaning | 📍4.0.1 | FHIR Std. |
| 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 | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| 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()
|
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
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: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 1..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by type:type.coding.code Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() |
SΣ | 1..* | Identifier | Identifier for this record (external references) Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} |
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 |
![]() ![]() |
?!Σ | 1..1 | code | draft | proposed | active | rejected | inactive | entered-in-error Binding: ConsentState (required): Indicates the state of the consent. |
![]() ![]() |
?!Σ | 1..1 | CodeableConcept | Which of the four areas this resource covers (extensible) Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() |
Σ | 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. |
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: 59284-0 | |
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who the consent applies to |
![]() ![]() |
Σ | 1..1 | Source from which this consent is taken | |
![]() ![]() ![]() |
Attachment | |||
![]() ![]() ![]() |
Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | |||
![]() ![]() |
1..1 | BackboneElement | Policies covered by this consent | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
C | 1..1 | uri | Specific policy covered by this consent |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.identifier:XPS.use | Base | required | IdentifierUse | 📍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. |
| 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 | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| 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 Consent
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Consent | A healthcare consumer's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time | |
![]() ![]() |
1..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by type:type.coding.code | |
![]() ![]() ![]() |
S | 1..* | Identifier | Identifier for this record (external references) |
![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | code | Symbol in syntax defined by the system Fixed Value: oasis:names:tc:xacml:1.0:Policy/@PolicyId | |
![]() ![]() ![]() ![]() |
1..1 | string | The value that is unique | |
![]() ![]() |
||||
![]() ![]() ![]() |
1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |
![]() ![]() |
1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval | |
![]() ![]() ![]() |
1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: 59284-0 | |
![]() ![]() |
1..1 | Reference(Patient) | Who the consent applies to | |
![]() ![]() |
1..1 | Attachment, Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | Source from which this consent is taken | |
![]() ![]() |
1..1 | BackboneElement | Policies covered by this consent | |
![]() ![]() ![]() |
1..1 | uri | Specific policy covered by this consent | |
![]() ![]() |
0..0 | Constraints to the base Consent.policyRule | ||
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
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: ppc-1, ppc-2, ppc-3, ppc-4, ppc-5 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 1..* | Identifier | Identifier for this record (external references) Slice: Unordered, Open by type:type.coding.code Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() |
SΣ | 1..* | Identifier | Identifier for this record (external references) Example General: {"system":"http://acme.org/identifier/local/eCMS","value":"Local eCMS identifier"} | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | Coding | Code defined by a terminology system | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | uri | Identity of the terminology system | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Fixed Value: oasis:names:tc:xacml:1.0:Policy/@PolicyId | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | uri | The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) | ||||
![]() ![]() |
?!Σ | 1..1 | code | draft | proposed | active | rejected | inactive | entered-in-error Binding: ConsentState (required): Indicates the state of the consent. | ||||
![]() ![]() |
?!Σ | 1..1 | CodeableConcept | Which of the four areas this resource covers (extensible) Binding: ConsentScopeCodes (extensible): The four anticipated uses for the Consent Resource. | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/consentscope | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: patient-privacy | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() |
Σ | 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. | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
Σ | 1..1 | Coding | Code defined by a terminology system Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://loinc.org | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: 59284-0 | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() |
Σ | 0..1 | string | Plain text representation of the concept | ||||
![]() ![]() |
Σ | 1..1 | Reference(Patient) | Who the consent applies to | ||||
![]() ![]() |
Σ | 0..1 | dateTime | When this Consent was created or indexed | ||||
![]() ![]() |
Σ | 0..* | Reference(Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Who is agreeing to the policy and rules | ||||
![]() ![]() |
Σ | 0..* | Reference(Organization) | Custodian of the consent | ||||
![]() ![]() |
Σ | 1..1 | Source from which this consent is taken | |||||
![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() |
Reference(Consent | DocumentReference | Contract | QuestionnaireResponse) | |||||||
![]() ![]() |
1..1 | BackboneElement | Policies covered by this consent | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
C | 0..1 | uri | Enforcement source for policy | ||||
![]() ![]() ![]() |
C | 1..1 | uri | Specific policy covered by this consent | ||||
![]() ![]() |
ΣC | 0..1 | CodeableConcept | Regulation that this consents to Binding: ConsentPolicyRuleCodes (extensible): Regulatory policy examples. | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Consent Verified by patient or family | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | boolean | Has been verified | ||||
![]() ![]() ![]() |
0..1 | Reference(Patient | RelatedPerson) | Person who verified | |||||
![]() ![]() ![]() |
0..1 | dateTime | When consent verified | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Consent.identifier:XPS.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Consent.identifier:XPS.type | Base | extensible | IdentifierType | 📍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.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.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 | example | Consent Content Codes | 📍4.0.1 | FHIR Std. |
| Consent.provision.data.meaning | Base | required | ConsentDataMeaning | 📍4.0.1 | FHIR Std. |
| 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 | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| 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()
|
Other representations of profile: CSV, Excel, Schematron