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 2026-01-27 | 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.
changes from R4-R6 Consent:
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 or third party's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: ppc-1 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 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 | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() ![]() |
C | 1..1 | string | The value that is unique Example General: 123456 |
![]() ![]() |
?!Σ | 1..1 | code | draft | active | inactive | not-done | entered-in-error | unknown Binding: ConsentState (required): Indicates the state of the consent. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval Binding: ConsentCategoryCodes (example): 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 |
![]() ![]() |
S | 0..* | Attachment | Source from which this consent is taken |
![]() ![]() ![]() |
ΣC | 1..1 | code | Mime type of the content, with charset etc. Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/xacml+xml |
![]() ![]() ![]() |
Σ | 1..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png |
![]() ![]() |
S | 0..* | Reference(DocumentReference) | Source from which this consent is taken |
![]() ![]() |
1..1 | BackboneElement | Computable version of the backing policy | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
S | 0..1 | Reference(Resource) | Reference backing policy resource |
![]() ![]() ![]() |
S | 0..1 | uri | URI to a computable backing policy |
![]() ![]() |
?!Σ | 0..1 | code | deny | permit Binding: ConsentProvisionType (required): Sets the base decision for Consent to be either permit or deny, with provisions assumed to be a negation of the previous level. |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.identifier:XPS.use | Base | required | IdentifierUse | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.status | Base | required | Consent State | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.category | Base | example | Consent Category Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.sourceAttachment.contentType | Base | required | Mime Types | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.decision | Base | required | Consent Provision Type | 📍6.0.0-ballot3 | 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| ppc-1 | error | Consent | Either a Permission (.provisionReference) or a .provision tree may exist but not both |
provisionReference.exists() or provision.exists()
|
This structure is derived from Consent
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Consent | A healthcare consumer's or third party'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 | 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 | |
![]() ![]() |
S | 0..* | Attachment | Source from which this consent is taken |
![]() ![]() ![]() |
1..1 | code | Mime type of the content, with charset etc. Required Pattern: application/xacml+xml | |
![]() ![]() ![]() |
1..1 | url | Uri where the data can be found | |
![]() ![]() |
S | 0..* | Reference(DocumentReference) | Source from which this consent is taken |
![]() ![]() |
1..1 | BackboneElement | Computable version of the backing policy | |
![]() ![]() ![]() |
S | 0..1 | Reference(Resource) | Reference backing policy resource |
![]() ![]() ![]() |
S | 0..1 | uri | URI to a computable backing policy |
![]() ![]() |
0..0 | Constraints to the base Consent.policyRule/Consent.policy | ||
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Consent | A healthcare consumer's or third party's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: ppc-1 | ||||
![]() ![]() |
Σ | 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: AllLanguages (required): IETF language tag for 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 | ||||
![]() ![]() ![]() |
SΣ | 1..* | Identifier | Identifier for this record (external references) | ||||
![]() ![]() ![]() ![]() |
0..1 | id | 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: IdentifierTypeCodes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | 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 | id | 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 | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | Symbol in syntax defined by the system Fixed Value: oasis:names:tc:xacml:1.0:Policy/@PolicyId | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
C | 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 | |||||
![]() ![]() ![]() ![]() |
C | 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 | active | inactive | not-done | entered-in-error | unknown Binding: ConsentState (required): Indicates the state of the consent. | ||||
![]() ![]() |
Σ | 1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval Binding: ConsentCategoryCodes (example): A classification of the type of consents found in a consent statement. | ||||
![]() ![]() ![]() |
0..1 | id | 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 | date | Fully executed date of the consent | ||||
![]() ![]() |
Σ | 0..1 | Period | Effective period for this Consent | ||||
![]() ![]() |
Σ | 0..* | Reference(CareTeam | Group | HealthcareService | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Who is granting rights according to the policy and rules | ||||
![]() ![]() |
Σ | 0..* | Reference(CareTeam | Group | HealthcareService | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Who is agreeing to the policy and rules | ||||
![]() ![]() |
0..* | Reference(HealthcareService | Organization | Patient | Practitioner) | Consent workflow management | |||||
![]() ![]() |
0..* | Reference(HealthcareService | Organization | Patient | Practitioner) | Consent Enforcer | |||||
![]() ![]() |
S | 0..* | Attachment | Source from which this consent is taken | ||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
ΣC | 1..1 | code | Mime type of the content, with charset etc. Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/xacml+xml | ||||
![]() ![]() ![]() |
Σ | 0..1 | code | Human language of the content (BCP-47) Binding: AllLanguages (required): IETF language tag for a human language.
Example General: en-AU | ||||
![]() ![]() ![]() |
C | 0..1 | base64Binary | Data inline, base64ed | ||||
![]() ![]() ![]() |
Σ | 1..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png | ||||
![]() ![]() ![]() |
Σ | 0..1 | integer64 | Number of bytes of content (if url provided) | ||||
![]() ![]() ![]() |
Σ | 0..1 | base64Binary | Hash of the data (sha-1, base64ed) | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Label to display in place of the data Example General: Official Corporate Logo | ||||
![]() ![]() ![]() |
Σ | 0..1 | dateTime | Date attachment was first created | ||||
![]() ![]() ![]() |
0..1 | positiveInt | Height of the image in pixels (photo/video) | |||||
![]() ![]() ![]() |
0..1 | positiveInt | Width of the image in pixels (photo/video) | |||||
![]() ![]() ![]() |
0..1 | positiveInt | Number of frames if > 1 (photo) | |||||
![]() ![]() ![]() |
0..1 | decimal | Length in seconds (audio / video) | |||||
![]() ![]() ![]() |
0..1 | positiveInt | Number of printed pages | |||||
![]() ![]() |
S | 0..* | Reference(DocumentReference) | Source from which this consent is taken | ||||
![]() ![]() |
0..* | CodeableConcept | Regulations establishing base Consent Binding: ConsentPolicyRuleCodes (example): Regulatory policy examples | |||||
![]() ![]() |
1..1 | BackboneElement | Computable version of the backing policy | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
S | 0..1 | Reference(Resource) | Reference backing policy resource | ||||
![]() ![]() ![]() |
S | 0..1 | uri | URI to a computable backing policy | ||||
![]() ![]() |
0..* | Reference(DocumentReference) | Human Readable Policy | |||||
![]() ![]() |
Σ | 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 | CodeableConcept | Business case of verification Binding: ConsentVerificationCodes (example): Types of Verification/Validation. | |||||
![]() ![]() ![]() |
0..1 | Reference(Organization | Practitioner | PractitionerRole) | Person conducting verification | |||||
![]() ![]() ![]() |
0..1 | Reference(Patient | RelatedPerson | Group) | Person who verified | |||||
![]() ![]() ![]() |
0..* | dateTime | When consent verified | |||||
![]() ![]() |
?!Σ | 0..1 | code | deny | permit Binding: ConsentProvisionType (required): Sets the base decision for Consent to be either permit or deny, with provisions assumed to be a negation of the previous level. | ||||
![]() ![]() |
0..* | Reference(Permission) | Permission Resource for provisions | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.identifier:XPS.use | Base | required | IdentifierUse | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.identifier:XPS.type | Base | extensible | Identifier Type Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.status | Base | required | Consent State | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.category | Base | example | Consent Category Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.sourceAttachment.contentType | Base | required | Mime Types | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.sourceAttachment.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.regulatoryBasis | Base | example | Consent PolicyRule Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.verification.verificationType | Base | example | Consent Vefication Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.decision | Base | required | Consent Provision Type | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.actor.role | Base | extensible | Participation Role Type | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.action | Base | example | Consent Action Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.securityLabel | Base | example | Example set of Security Labels | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.purpose | Base | extensible | PurposeOfUse | 📦3.1.0 | THO v7.0 |
| Consent.provision.documentType | Base | preferred | Consent Content Class | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.resourceType | Base | extensible | Resource Types | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.code | Base | example | Consent Content Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.data.meaning | Base | required | Consent Data Meaning | 📍6.0.0-ballot3 | 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| ppc-1 | error | Consent | Either a Permission (.provisionReference) or a .provision tree may exist but not both |
provisionReference.exists() or provision.exists()
|
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Consent | A healthcare consumer's or third party's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: ppc-1 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 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 | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() ![]() |
C | 1..1 | string | The value that is unique Example General: 123456 |
![]() ![]() |
?!Σ | 1..1 | code | draft | active | inactive | not-done | entered-in-error | unknown Binding: ConsentState (required): Indicates the state of the consent. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval Binding: ConsentCategoryCodes (example): 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 |
![]() ![]() |
S | 0..* | Attachment | Source from which this consent is taken |
![]() ![]() ![]() |
ΣC | 1..1 | code | Mime type of the content, with charset etc. Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/xacml+xml |
![]() ![]() ![]() |
Σ | 1..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png |
![]() ![]() |
S | 0..* | Reference(DocumentReference) | Source from which this consent is taken |
![]() ![]() |
1..1 | BackboneElement | Computable version of the backing policy | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
S | 0..1 | Reference(Resource) | Reference backing policy resource |
![]() ![]() ![]() |
S | 0..1 | uri | URI to a computable backing policy |
![]() ![]() |
?!Σ | 0..1 | code | deny | permit Binding: ConsentProvisionType (required): Sets the base decision for Consent to be either permit or deny, with provisions assumed to be a negation of the previous level. |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.identifier:XPS.use | Base | required | IdentifierUse | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.status | Base | required | Consent State | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.category | Base | example | Consent Category Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.sourceAttachment.contentType | Base | required | Mime Types | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.decision | Base | required | Consent Provision Type | 📍6.0.0-ballot3 | 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| ppc-1 | error | Consent | Either a Permission (.provisionReference) or a .provision tree may exist but not both |
provisionReference.exists() or provision.exists()
|
Differential View
This structure is derived from Consent
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Consent | A healthcare consumer's or third party'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 | 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 | |
![]() ![]() |
S | 0..* | Attachment | Source from which this consent is taken |
![]() ![]() ![]() |
1..1 | code | Mime type of the content, with charset etc. Required Pattern: application/xacml+xml | |
![]() ![]() ![]() |
1..1 | url | Uri where the data can be found | |
![]() ![]() |
S | 0..* | Reference(DocumentReference) | Source from which this consent is taken |
![]() ![]() |
1..1 | BackboneElement | Computable version of the backing policy | |
![]() ![]() ![]() |
S | 0..1 | Reference(Resource) | Reference backing policy resource |
![]() ![]() ![]() |
S | 0..1 | uri | URI to a computable backing policy |
![]() ![]() |
0..0 | Constraints to the base Consent.policyRule/Consent.policy | ||
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Consent | A healthcare consumer's or third party's choices to permit or deny recipients or roles to perform actions for specific purposes and periods of time Constraints: ppc-1 | ||||
![]() ![]() |
Σ | 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: AllLanguages (required): IETF language tag for 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 | ||||
![]() ![]() ![]() |
SΣ | 1..* | Identifier | Identifier for this record (external references) | ||||
![]() ![]() ![]() ![]() |
0..1 | id | 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: IdentifierTypeCodes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | 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 | id | 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 | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | Symbol in syntax defined by the system Fixed Value: oasis:names:tc:xacml:1.0:Policy/@PolicyId | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
C | 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 | |||||
![]() ![]() ![]() ![]() |
C | 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 | active | inactive | not-done | entered-in-error | unknown Binding: ConsentState (required): Indicates the state of the consent. | ||||
![]() ![]() |
Σ | 1..1 | CodeableConcept | Classification of the consent statement - for indexing/retrieval Binding: ConsentCategoryCodes (example): A classification of the type of consents found in a consent statement. | ||||
![]() ![]() ![]() |
0..1 | id | 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 | date | Fully executed date of the consent | ||||
![]() ![]() |
Σ | 0..1 | Period | Effective period for this Consent | ||||
![]() ![]() |
Σ | 0..* | Reference(CareTeam | Group | HealthcareService | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Who is granting rights according to the policy and rules | ||||
![]() ![]() |
Σ | 0..* | Reference(CareTeam | Group | HealthcareService | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole) | Who is agreeing to the policy and rules | ||||
![]() ![]() |
0..* | Reference(HealthcareService | Organization | Patient | Practitioner) | Consent workflow management | |||||
![]() ![]() |
0..* | Reference(HealthcareService | Organization | Patient | Practitioner) | Consent Enforcer | |||||
![]() ![]() |
S | 0..* | Attachment | Source from which this consent is taken | ||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
ΣC | 1..1 | code | Mime type of the content, with charset etc. Binding: MimeTypes (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) Required Pattern: application/xacml+xml | ||||
![]() ![]() ![]() |
Σ | 0..1 | code | Human language of the content (BCP-47) Binding: AllLanguages (required): IETF language tag for a human language.
Example General: en-AU | ||||
![]() ![]() ![]() |
C | 0..1 | base64Binary | Data inline, base64ed | ||||
![]() ![]() ![]() |
Σ | 1..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png | ||||
![]() ![]() ![]() |
Σ | 0..1 | integer64 | Number of bytes of content (if url provided) | ||||
![]() ![]() ![]() |
Σ | 0..1 | base64Binary | Hash of the data (sha-1, base64ed) | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Label to display in place of the data Example General: Official Corporate Logo | ||||
![]() ![]() ![]() |
Σ | 0..1 | dateTime | Date attachment was first created | ||||
![]() ![]() ![]() |
0..1 | positiveInt | Height of the image in pixels (photo/video) | |||||
![]() ![]() ![]() |
0..1 | positiveInt | Width of the image in pixels (photo/video) | |||||
![]() ![]() ![]() |
0..1 | positiveInt | Number of frames if > 1 (photo) | |||||
![]() ![]() ![]() |
0..1 | decimal | Length in seconds (audio / video) | |||||
![]() ![]() ![]() |
0..1 | positiveInt | Number of printed pages | |||||
![]() ![]() |
S | 0..* | Reference(DocumentReference) | Source from which this consent is taken | ||||
![]() ![]() |
0..* | CodeableConcept | Regulations establishing base Consent Binding: ConsentPolicyRuleCodes (example): Regulatory policy examples | |||||
![]() ![]() |
1..1 | BackboneElement | Computable version of the backing policy | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
S | 0..1 | Reference(Resource) | Reference backing policy resource | ||||
![]() ![]() ![]() |
S | 0..1 | uri | URI to a computable backing policy | ||||
![]() ![]() |
0..* | Reference(DocumentReference) | Human Readable Policy | |||||
![]() ![]() |
Σ | 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 | CodeableConcept | Business case of verification Binding: ConsentVerificationCodes (example): Types of Verification/Validation. | |||||
![]() ![]() ![]() |
0..1 | Reference(Organization | Practitioner | PractitionerRole) | Person conducting verification | |||||
![]() ![]() ![]() |
0..1 | Reference(Patient | RelatedPerson | Group) | Person who verified | |||||
![]() ![]() ![]() |
0..* | dateTime | When consent verified | |||||
![]() ![]() |
?!Σ | 0..1 | code | deny | permit Binding: ConsentProvisionType (required): Sets the base decision for Consent to be either permit or deny, with provisions assumed to be a negation of the previous level. | ||||
![]() ![]() |
0..* | Reference(Permission) | Permission Resource for provisions | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Consent.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.identifier:XPS.use | Base | required | IdentifierUse | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.identifier:XPS.type | Base | extensible | Identifier Type Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.status | Base | required | Consent State | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.category | Base | example | Consent Category Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.sourceAttachment.contentType | Base | required | Mime Types | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.sourceAttachment.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.regulatoryBasis | Base | example | Consent PolicyRule Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.verification.verificationType | Base | example | Consent Vefication Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.decision | Base | required | Consent Provision Type | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.actor.role | Base | extensible | Participation Role Type | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.action | Base | example | Consent Action Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.securityLabel | Base | example | Example set of Security Labels | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.purpose | Base | extensible | PurposeOfUse | 📦3.1.0 | THO v7.0 |
| Consent.provision.documentType | Base | preferred | Consent Content Class | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.resourceType | Base | extensible | Resource Types | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.code | Base | example | Consent Content Codes | 📍6.0.0-ballot3 | FHIR Std. |
| Consent.provision.data.meaning | Base | required | Consent Data Meaning | 📍6.0.0-ballot3 | 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| ppc-1 | error | Consent | Either a Permission (.provisionReference) or a .provision tree may exist but not both |
provisionReference.exists() or provision.exists()
|
Other representations of profile: CSV, Excel, Schematron