Release 4B Snapshot #1

This page is part of the FHIR Specification v4.3.0-snapshot1: R4B Snapshot to support the Jan 2022 Connectathon. About the R4B version of FHIR. The current officially released version is 4.3.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

6.2 Resource Consent - Content

Community Based Collaborative Care Work GroupMaturity Level: 2 Trial UseSecurity Category: Patient Compartments: Patient

A record of a healthcare consumer’s choices, which permits or denies identified recipient(s) or recipient role(s) to perform one or more actions within a given policy context, for specific purposes and periods of time.

The purpose of this Resource is to be used to express a Consent regarding Healthcare. There are four anticipated uses for the Consent Resource, all of which are written or verbal agreements by a healthcare consumer [grantor] or a personal representative, made to an authorized entity [grantee] concerning authorized or restricted actions with any limitations on purpose of use, and handling instructions to which the authorized entity must comply:

  • Privacy Consent Directive: Agreement to collect, access, use or disclose (share) information.
  • Medical Treatment Consent Directive: Consent to undergo a specific treatment (or record of refusal to consent).
  • Research Consent Directive: Consent to participate in research protocol and information sharing required.
  • Advance Care Directives: Consent to instructions for potentially needed medical treatment (e.g. DNR).

This resource is scoped to cover all four uses, but at this time, only the privacy use case is modeled. The scope of the resource may change when the other possible scopes are investigated, tested, or profiled.

A FHIR Consent Directive instance is considered the encoded legally binding Consent Directive if it meets requirements of a policy domain requirements for an enforceable contract. In some domains, electronic signatures of one or both of the parties to the content of an encoded representation of a Consent Form is deemed to constitute a legally binding Consent Directive. Some domains accept a notary’s electronic signature over the wet or electronic signature of a party to the Consent Directive as the additional identity proofing required to make an encoded Consent Directive legally binding. Other domains may only accept a wet signature or might not require the parties’ signatures at all.

Whatever the criteria are for making an encoded FHIR Consent Directive legally binding, anything less than a legally binding representation of a Consent Directive must be identified as such, i.e., as a derivative of the legally binding Consent Directive, which has specific usage in Consent Directive workflow management.

Definitions:

ConsentThe record of a healthcare consumer’s policy choices, which permits or denies identified recipient(s) or recipient role(s) to perform one or more actions within a given policy context, for specific purposes and periods of time
Consent DirectiveThe legal record of a healthcare consumer's agreement with a party responsible for enforcing the consumer’s choices, which permits or denies identified actors or roles to perform actions affecting the consumer within a given context for specific purposes and periods of time
Consent FormHuman readable consent content describing one or more actions impacting the grantor for which the grantee would be authorized or prohibited from performing. It includes the terms, rules, and conditions pertaining to the authorization or restrictions, such as effective time, applicability or scope, purposes of use, obligations and prohibitions to which the grantee must comply. Once a Consent Form is “executed” by means required by policy, such as verbal agreement, wet signature, or electronic/digital signature, it becomes a legally binding Consent Directive.
Consent Directive DerivativeConsent Content that conveys the minimal set of information needed to manage Consent Directive workflow, including providing Consent Directive content sufficient to:
  • Represent a Consent Directive
  • Register or index a Consent Directive
  • Query and respond about a Consent Directive
  • Retrieve a Consent Directive
  • Notify authorized entities about Consent Directive status changes
  • Determine entities authorized to collect, access, use or disclose information about the Consent Directive or about the information governed by the Consent Directive.

Derived Consent content includes the Security Labels encoding the applicable privacy and security policies. Consent Security Labels inform recipients about specific access control measures required for compliance.

Consent StatementA Consent Directive derivative has less than full fidelity to the legally binding Consent Directive from which it was "transcribed". It provides recipients with the full content representation they may require for compliance purposes, and typically include a reference to or an attached unstructured representation for recipients needing an exact copy of the legal agreement.
Consent RegistrationThe legal record of a healthcare consumer's agreement with a party responsible for enforcing the consumer’s choices, which permits or denies identified actors or roles to perform actions affecting the consumer within a given context for specific purposes and periods of timeA Consent Directive derivative that conveys the minimal set of information needed to register an active and revoked Consent Directive, or to update Consent status as it changes during its lifecycle.
Consent Query/Response TypesThe FHIR Consent Resource specifies multiple Consent Search parameters, which support many types of queries for Consent Resource content. There are several Query/Response patterns that are typically used for obtaining information about consent directive content for the following use cases:
  • Find Active Consent Directive: A query that includes sufficient consent directive content to determine whether a specific party is authorized to share information governed by a consent directive with another specific party. The Response is either:
    • “Yes” meaning that both parties are authorized to share the information with one another.
    • “No” meaning that the authorized querier is not permitted to share with another specific party
    • “No information found” meaning that there is no active Consent Directive in which the querier is authorized to share the governed information.
  • Find Consent Directive Authorized Entities: A query that includes sufficient consent directive content to return a list of entities with which the querier is authorized to share governed information. The response to an authorized querier is the list of any authorized entities with which the querier is permitted to share governed information. The response to an unauthorized querier is that “no information is found”.
  • Find Consent Directive(s): A query that includes sufficient consent directive content to return a list of Consent Directive metadata for an authorized querier to determine what Consent Directives are available, and to locate and retrieve one or more of those Consent Directives as needed.
Policy contextAny organizational or jurisdictional policies, which may limit the consumer’s policy choices, and which includes the named range of actions allowed
Healthcare ConsumerThe individual establishing his/her personal consent (i.e. Consenter). In FHIR, this is referred to as the 'Patient' though this word is not used across all contexts of care

Privacy policies define how Individually Identifiable Health Information (IIHI) is to be collected, accessed, used and disclosed. A Privacy Consent Directive as a legal record of a patient's (e.g. a healthcare consumer) agreement with a party responsible for enforcing the patient's choices, which permits or denies identified actors or roles to perform actions affecting the patient within a given context for specific purposes and periods of time. All consent directives have a policy context, which is any set of organizational or jurisdictional policies which may limit the consumer’s policy choices, and which include a named range of actions allowed. In addition, Privacy Consent Directives provide the ability for a healthcare consumer to delegate authority to a Substitute Decision Maker who may act on behalf of that individual. Alternatively, a consumer may author/publish their privacy preferences as a self-declared Privacy Consent Directive.

The Consent resource on FHIR provides support for alternative representations for expressing interoperable health information privacy consent directives in a standard form for the exchange and enforcement by sending, intermediating, or receiving systems of privacy policies that can be enforced by consuming systems (e.g., scanned documents, of computable structured entries elements, FHIR structures with optional attached, or referenced unstructured representations.) It may be used to represent the Privacy Consent Directive itself, a Consent Statement, which electronically represents a Consent Directive, or Consent Metadata, which is the minimum necessary consent content derived from a Consent Directive for use in workflow management.

Consent management - particularly privacy consent - is complicated by the fact that consent to share is often itself necessary to protect. The need to protect the privacy of the privacy statement itself competes with the execution of the consent statement. For this reason, it is common to deal with 'consent statements' that are only partial representations of the full consent statement that the patient provided.

For this reason, the consent resource contains two elements that refer back to the source: a master identifier, and a direct reference to content from which this Consent Statement was derived. That reference can be one of several things:

The consent statements represent a chain that refers back to the original source consent directive. Applications may be able to follow the chain back to the source but should not generally assume that they are authorized to do this.

Consent Directives are executed by verbal acknowledge or by being signed - either on paper, or digitally. Consent Signatures will be found in the Provenance resource (example consent and signature). Implementation Guides will generally make rules about what signatures are required, and how they are to be shared and used.

Change to "The Consent resource is structured with a base policy (represented as Consent.policy/Consent.policyRule) which is either opt-in or opt-out, followed by a listing of exceptions to that policy (represented as Consent.provision(s)). The exceptions can be additional positive or negative exceptions upon the base policy. The set of exceptions include a list of data objects, list of authors, list of recipients, list of Organizations, list of purposeOfUse, and Date Range.

The enforcement of the Privacy Consent Directive is not included but is expected that enforcement can be done using a mix of the various Access Control enforcement methodologies (e.g. OAuth, UMA, XACML). This enforcement includes the details of the enforcement meaning of the elements of the Privacy Consent Directive, such as the rules in place when there is an opt-in consent would be specific about which organizational roles have access to what kinds of resources (e.g. RBAC, ABAC). The specification of these details is not in scope for the Consent resource.

This resource is referenced by itself and ResearchSubject.

This resource implements the Event pattern.

Structure

UML Diagram (Legend)

Consent (DomainResource)Unique identifier for this copy of the Consent Statementidentifier : Identifier [0..*]Indicates the current state of this consent (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)ConsentState! »A selector of the type of consent being presented: ADR, Privacy, Treatment, Research. This list is now extensible (this element modifies the meaning of other elements)scope : CodeableConcept [1..1] « null (Strength=Extensible)ConsentScopeCodes+ »A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statementscategory : CodeableConcept [1..*] « null (Strength=Extensible)ConsentCategoryCodes+ »The patient/healthcare consumer to whom this consent appliespatient : Reference [0..1] « Patient »When this Consent was issued / created / indexeddateTime : dateTime [0..1]Either the Grantor, which is the entity responsible for granting the rights listed in a Consent Directive or the Grantee, which is the entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitionsperformer : Reference [0..*] « Organization|Patient|Practitioner| RelatedPerson|PractitionerRole »The organization that manages the consent, and the framework within which it is executedorganization : Reference [0..*] « Organization »The source on which this consent statement is based. The source might be a scanned original paper form, or a reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent documentsource[x] : Element [0..1] « Attachment|Reference(Consent| DocumentReference|Contract|QuestionnaireResponse) »A reference to the specific base computable regulation or policypolicyRule : CodeableConcept [0..1] « null (Strength=Extensible)ConsentPolicyRuleCodes+ »PolicyEntity or Organization having regulatory jurisdiction or accountability for enforcing policies pertaining to Consent Directivesauthority : uri [0..1]The references to the policies that are included in this consent scope. Policies may be organizational, but are often defined jurisdictionally, or in lawuri : uri [0..1]VerificationHas the instruction been verifiedverified : boolean [1..1]Who verified the instruction (Patient, Relative or other Authorized Person)verifiedWith : Reference [0..1] « Patient|RelatedPerson »Date verification was collectedverificationDate : dateTime [0..1]provisionAction to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rulestype : code [0..1] « null (Strength=Required)ConsentProvisionType! »The timeframe in this rule is validperiod : Period [0..1]Actions controlled by this Ruleaction : CodeableConcept [0..*] « null (Strength=Example)ConsentActionCodes?? »A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exceptionsecurityLabel : Coding [0..*] « null (Strength=Extensible)All Security Labels+ »The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rulepurpose : Coding [0..*] « null (Strength=Extensible)PurposeOfUse+ »The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates toclass : Coding [0..*] « null (Strength=Extensible)ConsentContentClass+ »If this code is found in an instance, then the rule appliescode : CodeableConcept [0..*] « null (Strength=Example)ConsentContentCodes?? »Clinical or Operational Relevant period of time that bounds the data controlled by this ruledataPeriod : Period [0..1]provisionActorHow the individual is involved in the resources content that is described in the exceptionrole : CodeableConcept [1..1] « null (Strength=Extensible)SecurityRoleType+ »The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers')reference : Reference [1..1] « Device|Group|CareTeam|Organization| Patient|Practitioner|RelatedPerson|PractitionerRole »provisionDataHow the resource reference is interpreted when testing consent restrictionsmeaning : code [1..1] « null (Strength=Required)ConsentDataMeaning! »A reference to a specific resource that defines which resources are covered by this consentreference : Reference [1..1] « Any »The references to the policies that are included in this consent scope. Policies may be organizational, but are often defined jurisdictionally, or in lawpolicy[0..*]Whether a treatment instruction (e.g. artificial respiration yes or no) was verified with the patient, his/her family or another authorized personverification[0..*]Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers')actor[0..*]The resources controlled by this rule if specific resources are referenceddata[0..*]Rules which provide exceptions to the base rule or subrulesprovision[0..*]An exception to the base policy of this consent. An exception can be an addition or removal of access permissionsprovision[0..1]

XML Template

<Consent xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Identifier for this record (external references) --></identifier>
 <status value="[code]"/><!-- 1..1 draft | proposed | active | rejected | inactive | entered-in-error -->
 <scope><!-- 1..1 CodeableConcept Which of the four areas this resource covers (extensible) --></scope>
 <category><!-- 1..* CodeableConcept Classification of the consent statement - for indexing/retrieval --></category>
 <patient><!-- 0..1 Reference(Patient) Who the consent applies to --></patient>
 <dateTime value="[dateTime]"/><!-- 0..1 When this Consent was created or indexed -->
 <performer><!-- 0..* Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Who is agreeing to the policy and rules --></performer>
 <organization><!-- 0..* Reference(Organization) Custodian of the consent --></organization>
 <source[x]><!-- 0..1 Attachment|Reference(Consent|Contract|DocumentReference|
   QuestionnaireResponse) Source from which this consent is taken --></source[x]>
 <policy>  <!-- 0..* Policies covered by this consent -->
  <authority value="[uri]"/><!-- ?? 0..1 Enforcement source for policy -->
  <uri value="[uri]"/><!-- ?? 0..1 Specific policy covered by this consent -->
 </policy>
 <policyRule><!-- ?? 0..1 CodeableConcept Regulation that this consents to --></policyRule>
 <verification>  <!-- 0..* Consent Verified by patient or family -->
  <verified value="[boolean]"/><!-- 1..1 Has been verified -->
  <verifiedWith><!-- 0..1 Reference(Patient|RelatedPerson) Person who verified --></verifiedWith>
  <verificationDate value="[dateTime]"/><!-- 0..1 When consent verified -->
 </verification>
 <provision>  <!-- 0..1 Constraints to the base Consent.policyRule -->
  <type value="[code]"/><!-- 0..1 deny | permit -->
  <period><!-- 0..1 Period Timeframe for this rule --></period>
  <actor>  <!-- 0..* Who|what controlled by this rule (or group, by role) -->
   <role><!-- 1..1 CodeableConcept How the actor is involved --></role>
   <reference><!-- 1..1 Reference(CareTeam|Device|Group|Organization|Patient|
     Practitioner|PractitionerRole|RelatedPerson) Resource for the actor (or group, by role) --></reference>
  </actor>
  <action><!-- 0..* CodeableConcept Actions controlled by this rule --></action>
  <securityLabel><!-- 0..* Coding Security Labels that define affected resources --></securityLabel>
  <purpose><!-- 0..* Coding Context of activities covered by this rule  --></purpose>
  <class><!-- 0..* Coding e.g. Resource Type, Profile, CDA, etc. --></class>
  <code><!-- 0..* CodeableConcept e.g. LOINC or SNOMED CT code, etc. in the content --></code>
  <dataPeriod><!-- 0..1 Period Timeframe for data controlled by this rule --></dataPeriod>
  <data>  <!-- 0..* Data controlled by this rule -->
   <meaning value="[code]"/><!-- 1..1 instance | related | dependents | authoredby -->
   <reference><!-- 1..1 Reference(Any) The actual data reference --></reference>
  </data>
  <provision><!-- 0..* Content as for Consent.provision Nested Exception Rules --></provision>
 </provision>
</Consent>

JSON Template

{doco
  "resourceType" : "Consent",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Identifier for this record (external references)
  "status" : "<code>", // R!  draft | proposed | active | rejected | inactive | entered-in-error
  "scope" : { CodeableConcept }, // R!  Which of the four areas this resource covers (extensible)
  "category" : [{ CodeableConcept }], // R!  Classification of the consent statement - for indexing/retrieval
  "patient" : { Reference(Patient) }, // Who the consent applies to
  "dateTime" : "<dateTime>", // When this Consent was created or indexed
  "performer" : [{ Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }], // Who is agreeing to the policy and rules
  "organization" : [{ Reference(Organization) }], // Custodian of the consent
  // source[x]: Source from which this consent is taken. One of these 2:
  "sourceAttachment" : { Attachment },
  "sourceReference" : { Reference(Consent|Contract|DocumentReference|
   QuestionnaireResponse) },
  "policy" : [{ // Policies covered by this consent
    "authority" : "<uri>", // C? Enforcement source for policy
    "uri" : "<uri>" // C? Specific policy covered by this consent
  }],
  "policyRule" : { CodeableConcept }, // C? Regulation that this consents to
  "verification" : [{ // Consent Verified by patient or family
    "verified" : <boolean>, // R!  Has been verified
    "verifiedWith" : { Reference(Patient|RelatedPerson) }, // Person who verified
    "verificationDate" : "<dateTime>" // When consent verified
  }],
  "provision" : { // Constraints to the base Consent.policyRule
    "type" : "<code>", // deny | permit
    "period" : { Period }, // Timeframe for this rule
    "actor" : [{ // Who|what controlled by this rule (or group, by role)
      "role" : { CodeableConcept }, // R!  How the actor is involved
      "reference" : { Reference(CareTeam|Device|Group|Organization|Patient|
     Practitioner|PractitionerRole|RelatedPerson) } // R!  Resource for the actor (or group, by role)
    }],
    "action" : [{ CodeableConcept }], // Actions controlled by this rule
    "securityLabel" : [{ Coding }], // Security Labels that define affected resources
    "purpose" : [{ Coding }], // Context of activities covered by this rule 
    "class" : [{ Coding }], // e.g. Resource Type, Profile, CDA, etc.
    "code" : [{ CodeableConcept }], // e.g. LOINC or SNOMED CT code, etc. in the content
    "dataPeriod" : { Period }, // Timeframe for data controlled by this rule
    "data" : [{ // Data controlled by this rule
      "meaning" : "<code>", // R!  instance | related | dependents | authoredby
      "reference" : { Reference(Any) } // R!  The actual data reference
    }],
    "provision" : [{ Content as for Consent.provision }] // Nested Exception Rules
  }
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Consent;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Consent.identifier [ Identifier ], ... ; # 0..* Identifier for this record (external references)
  fhir:Consent.status [ code ]; # 1..1 draft | proposed | active | rejected | inactive | entered-in-error
  fhir:Consent.scope [ CodeableConcept ]; # 1..1 Which of the four areas this resource covers (extensible)
  fhir:Consent.category [ CodeableConcept ], ... ; # 1..* Classification of the consent statement - for indexing/retrieval
  fhir:Consent.patient [ Reference(Patient) ]; # 0..1 Who the consent applies to
  fhir:Consent.dateTime [ dateTime ]; # 0..1 When this Consent was created or indexed
  fhir:Consent.performer [ Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ], ... ; # 0..* Who is agreeing to the policy and rules
  fhir:Consent.organization [ Reference(Organization) ], ... ; # 0..* Custodian of the consent
  # Consent.source[x] : 0..1 Source from which this consent is taken. One of these 2
    fhir:Consent.sourceAttachment [ Attachment ]
    fhir:Consent.sourceReference [ Reference(Consent|Contract|DocumentReference|QuestionnaireResponse) ]
  fhir:Consent.policy [ # 0..* Policies covered by this consent
    fhir:Consent.policy.authority [ uri ]; # 0..1 Enforcement source for policy
    fhir:Consent.policy.uri [ uri ]; # 0..1 Specific policy covered by this consent
  ], ...;
  fhir:Consent.policyRule [ CodeableConcept ]; # 0..1 Regulation that this consents to
  fhir:Consent.verification [ # 0..* Consent Verified by patient or family
    fhir:Consent.verification.verified [ boolean ]; # 1..1 Has been verified
    fhir:Consent.verification.verifiedWith [ Reference(Patient|RelatedPerson) ]; # 0..1 Person who verified
    fhir:Consent.verification.verificationDate [ dateTime ]; # 0..1 When consent verified
  ], ...;
  fhir:Consent.provision [ # 0..1 Constraints to the base Consent.policyRule
    fhir:Consent.provision.type [ code ]; # 0..1 deny | permit
    fhir:Consent.provision.period [ Period ]; # 0..1 Timeframe for this rule
    fhir:Consent.provision.actor [ # 0..* Who|what controlled by this rule (or group, by role)
      fhir:Consent.provision.actor.role [ CodeableConcept ]; # 1..1 How the actor is involved
      fhir:Consent.provision.actor.reference [ Reference(CareTeam|Device|Group|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ]; # 1..1 Resource for the actor (or group, by role)
    ], ...;
    fhir:Consent.provision.action [ CodeableConcept ], ... ; # 0..* Actions controlled by this rule
    fhir:Consent.provision.securityLabel [ Coding ], ... ; # 0..* Security Labels that define affected resources
    fhir:Consent.provision.purpose [ Coding ], ... ; # 0..* Context of activities covered by this rule
    fhir:Consent.provision.class [ Coding ], ... ; # 0..* e.g. Resource Type, Profile, CDA, etc.
    fhir:Consent.provision.code [ CodeableConcept ], ... ; # 0..* e.g. LOINC or SNOMED CT code, etc. in the content
    fhir:Consent.provision.dataPeriod [ Period ]; # 0..1 Timeframe for data controlled by this rule
    fhir:Consent.provision.data [ # 0..* Data controlled by this rule
      fhir:Consent.provision.data.meaning [ code ]; # 1..1 instance | related | dependents | authoredby
      fhir:Consent.provision.data.reference [ Reference(Any) ]; # 1..1 The actual data reference
    ], ...;
    fhir:Consent.provision.provision [ See Consent.provision ], ... ; # 0..* Nested Exception Rules
  ];
]

Changes since R3

Consent
Consent.status
  • Change value set from http://hl7.org/fhir/ValueSet/consent-state-codes|4.0.0 to http://hl7.org/fhir/ValueSet/consent-state-codes|4.3.0-snapshot1
Consent.provision.type
  • Change value set from http://hl7.org/fhir/ValueSet/consent-provision-type|4.0.0 to http://hl7.org/fhir/ValueSet/consent-provision-type|4.3.0-snapshot1
Consent.provision.data.meaning
  • Change value set from http://hl7.org/fhir/ValueSet/consent-data-meaning|4.0.0 to http://hl7.org/fhir/ValueSet/consent-data-meaning|4.3.0-snapshot1

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 12 tests that all execute ok. All tests pass round-trip testing and 12 r3 resources are invalid (0 errors).)

Structure

UML Diagram (Legend)

Consent (DomainResource)Unique identifier for this copy of the Consent Statementidentifier : Identifier [0..*]Indicates the current state of this consent (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)ConsentState! »A selector of the type of consent being presented: ADR, Privacy, Treatment, Research. This list is now extensible (this element modifies the meaning of other elements)scope : CodeableConcept [1..1] « null (Strength=Extensible)ConsentScopeCodes+ »A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statementscategory : CodeableConcept [1..*] « null (Strength=Extensible)ConsentCategoryCodes+ »The patient/healthcare consumer to whom this consent appliespatient : Reference [0..1] « Patient »When this Consent was issued / created / indexeddateTime : dateTime [0..1]Either the Grantor, which is the entity responsible for granting the rights listed in a Consent Directive or the Grantee, which is the entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitionsperformer : Reference [0..*] « Organization|Patient|Practitioner| RelatedPerson|PractitionerRole »The organization that manages the consent, and the framework within which it is executedorganization : Reference [0..*] « Organization »The source on which this consent statement is based. The source might be a scanned original paper form, or a reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent documentsource[x] : Element [0..1] « Attachment|Reference(Consent| DocumentReference|Contract|QuestionnaireResponse) »A reference to the specific base computable regulation or policypolicyRule : CodeableConcept [0..1] « null (Strength=Extensible)ConsentPolicyRuleCodes+ »PolicyEntity or Organization having regulatory jurisdiction or accountability for enforcing policies pertaining to Consent Directivesauthority : uri [0..1]The references to the policies that are included in this consent scope. Policies may be organizational, but are often defined jurisdictionally, or in lawuri : uri [0..1]VerificationHas the instruction been verifiedverified : boolean [1..1]Who verified the instruction (Patient, Relative or other Authorized Person)verifiedWith : Reference [0..1] « Patient|RelatedPerson »Date verification was collectedverificationDate : dateTime [0..1]provisionAction to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rulestype : code [0..1] « null (Strength=Required)ConsentProvisionType! »The timeframe in this rule is validperiod : Period [0..1]Actions controlled by this Ruleaction : CodeableConcept [0..*] « null (Strength=Example)ConsentActionCodes?? »A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exceptionsecurityLabel : Coding [0..*] « null (Strength=Extensible)All Security Labels+ »The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rulepurpose : Coding [0..*] « null (Strength=Extensible)PurposeOfUse+ »The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates toclass : Coding [0..*] « null (Strength=Extensible)ConsentContentClass+ »If this code is found in an instance, then the rule appliescode : CodeableConcept [0..*] « null (Strength=Example)ConsentContentCodes?? »Clinical or Operational Relevant period of time that bounds the data controlled by this ruledataPeriod : Period [0..1]provisionActorHow the individual is involved in the resources content that is described in the exceptionrole : CodeableConcept [1..1] « null (Strength=Extensible)SecurityRoleType+ »The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers')reference : Reference [1..1] « Device|Group|CareTeam|Organization| Patient|Practitioner|RelatedPerson|PractitionerRole »provisionDataHow the resource reference is interpreted when testing consent restrictionsmeaning : code [1..1] « null (Strength=Required)ConsentDataMeaning! »A reference to a specific resource that defines which resources are covered by this consentreference : Reference [1..1] « Any »The references to the policies that are included in this consent scope. Policies may be organizational, but are often defined jurisdictionally, or in lawpolicy[0..*]Whether a treatment instruction (e.g. artificial respiration yes or no) was verified with the patient, his/her family or another authorized personverification[0..*]Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers')actor[0..*]The resources controlled by this rule if specific resources are referenceddata[0..*]Rules which provide exceptions to the base rule or subrulesprovision[0..*]An exception to the base policy of this consent. An exception can be an addition or removal of access permissionsprovision[0..1]

XML Template

<Consent xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Identifier for this record (external references) --></identifier>
 <status value="[code]"/><!-- 1..1 draft | proposed | active | rejected | inactive | entered-in-error -->
 <scope><!-- 1..1 CodeableConcept Which of the four areas this resource covers (extensible) --></scope>
 <category><!-- 1..* CodeableConcept Classification of the consent statement - for indexing/retrieval --></category>
 <patient><!-- 0..1 Reference(Patient) Who the consent applies to --></patient>
 <dateTime value="[dateTime]"/><!-- 0..1 When this Consent was created or indexed -->
 <performer><!-- 0..* Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Who is agreeing to the policy and rules --></performer>
 <organization><!-- 0..* Reference(Organization) Custodian of the consent --></organization>
 <source[x]><!-- 0..1 Attachment|Reference(Consent|Contract|DocumentReference|
   QuestionnaireResponse) Source from which this consent is taken --></source[x]>
 <policy>  <!-- 0..* Policies covered by this consent -->
  <authority value="[uri]"/><!-- ?? 0..1 Enforcement source for policy -->
  <uri value="[uri]"/><!-- ?? 0..1 Specific policy covered by this consent -->
 </policy>
 <policyRule><!-- ?? 0..1 CodeableConcept Regulation that this consents to --></policyRule>
 <verification>  <!-- 0..* Consent Verified by patient or family -->
  <verified value="[boolean]"/><!-- 1..1 Has been verified -->
  <verifiedWith><!-- 0..1 Reference(Patient|RelatedPerson) Person who verified --></verifiedWith>
  <verificationDate value="[dateTime]"/><!-- 0..1 When consent verified -->
 </verification>
 <provision>  <!-- 0..1 Constraints to the base Consent.policyRule -->
  <type value="[code]"/><!-- 0..1 deny | permit -->
  <period><!-- 0..1 Period Timeframe for this rule --></period>
  <actor>  <!-- 0..* Who|what controlled by this rule (or group, by role) -->
   <role><!-- 1..1 CodeableConcept How the actor is involved --></role>
   <reference><!-- 1..1 Reference(CareTeam|Device|Group|Organization|Patient|
     Practitioner|PractitionerRole|RelatedPerson) Resource for the actor (or group, by role) --></reference>
  </actor>
  <action><!-- 0..* CodeableConcept Actions controlled by this rule --></action>
  <securityLabel><!-- 0..* Coding Security Labels that define affected resources --></securityLabel>
  <purpose><!-- 0..* Coding Context of activities covered by this rule  --></purpose>
  <class><!-- 0..* Coding e.g. Resource Type, Profile, CDA, etc. --></class>
  <code><!-- 0..* CodeableConcept e.g. LOINC or SNOMED CT code, etc. in the content --></code>
  <dataPeriod><!-- 0..1 Period Timeframe for data controlled by this rule --></dataPeriod>
  <data>  <!-- 0..* Data controlled by this rule -->
   <meaning value="[code]"/><!-- 1..1 instance | related | dependents | authoredby -->
   <reference><!-- 1..1 Reference(Any) The actual data reference --></reference>
  </data>
  <provision><!-- 0..* Content as for Consent.provision Nested Exception Rules --></provision>
 </provision>
</Consent>

JSON Template

{doco
  "resourceType" : "Consent",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Identifier for this record (external references)
  "status" : "<code>", // R!  draft | proposed | active | rejected | inactive | entered-in-error
  "scope" : { CodeableConcept }, // R!  Which of the four areas this resource covers (extensible)
  "category" : [{ CodeableConcept }], // R!  Classification of the consent statement - for indexing/retrieval
  "patient" : { Reference(Patient) }, // Who the consent applies to
  "dateTime" : "<dateTime>", // When this Consent was created or indexed
  "performer" : [{ Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }], // Who is agreeing to the policy and rules
  "organization" : [{ Reference(Organization) }], // Custodian of the consent
  // source[x]: Source from which this consent is taken. One of these 2:
  "sourceAttachment" : { Attachment },
  "sourceReference" : { Reference(Consent|Contract|DocumentReference|
   QuestionnaireResponse) },
  "policy" : [{ // Policies covered by this consent
    "authority" : "<uri>", // C? Enforcement source for policy
    "uri" : "<uri>" // C? Specific policy covered by this consent
  }],
  "policyRule" : { CodeableConcept }, // C? Regulation that this consents to
  "verification" : [{ // Consent Verified by patient or family
    "verified" : <boolean>, // R!  Has been verified
    "verifiedWith" : { Reference(Patient|RelatedPerson) }, // Person who verified
    "verificationDate" : "<dateTime>" // When consent verified
  }],
  "provision" : { // Constraints to the base Consent.policyRule
    "type" : "<code>", // deny | permit
    "period" : { Period }, // Timeframe for this rule
    "actor" : [{ // Who|what controlled by this rule (or group, by role)
      "role" : { CodeableConcept }, // R!  How the actor is involved
      "reference" : { Reference(CareTeam|Device|Group|Organization|Patient|
     Practitioner|PractitionerRole|RelatedPerson) } // R!  Resource for the actor (or group, by role)
    }],
    "action" : [{ CodeableConcept }], // Actions controlled by this rule
    "securityLabel" : [{ Coding }], // Security Labels that define affected resources
    "purpose" : [{ Coding }], // Context of activities covered by this rule 
    "class" : [{ Coding }], // e.g. Resource Type, Profile, CDA, etc.
    "code" : [{ CodeableConcept }], // e.g. LOINC or SNOMED CT code, etc. in the content
    "dataPeriod" : { Period }, // Timeframe for data controlled by this rule
    "data" : [{ // Data controlled by this rule
      "meaning" : "<code>", // R!  instance | related | dependents | authoredby
      "reference" : { Reference(Any) } // R!  The actual data reference
    }],
    "provision" : [{ Content as for Consent.provision }] // Nested Exception Rules
  }
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Consent;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Consent.identifier [ Identifier ], ... ; # 0..* Identifier for this record (external references)
  fhir:Consent.status [ code ]; # 1..1 draft | proposed | active | rejected | inactive | entered-in-error
  fhir:Consent.scope [ CodeableConcept ]; # 1..1 Which of the four areas this resource covers (extensible)
  fhir:Consent.category [ CodeableConcept ], ... ; # 1..* Classification of the consent statement - for indexing/retrieval
  fhir:Consent.patient [ Reference(Patient) ]; # 0..1 Who the consent applies to
  fhir:Consent.dateTime [ dateTime ]; # 0..1 When this Consent was created or indexed
  fhir:Consent.performer [ Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ], ... ; # 0..* Who is agreeing to the policy and rules
  fhir:Consent.organization [ Reference(Organization) ], ... ; # 0..* Custodian of the consent
  # Consent.source[x] : 0..1 Source from which this consent is taken. One of these 2
    fhir:Consent.sourceAttachment [ Attachment ]
    fhir:Consent.sourceReference [ Reference(Consent|Contract|DocumentReference|QuestionnaireResponse) ]
  fhir:Consent.policy [ # 0..* Policies covered by this consent
    fhir:Consent.policy.authority [ uri ]; # 0..1 Enforcement source for policy
    fhir:Consent.policy.uri [ uri ]; # 0..1 Specific policy covered by this consent
  ], ...;
  fhir:Consent.policyRule [ CodeableConcept ]; # 0..1 Regulation that this consents to
  fhir:Consent.verification [ # 0..* Consent Verified by patient or family
    fhir:Consent.verification.verified [ boolean ]; # 1..1 Has been verified
    fhir:Consent.verification.verifiedWith [ Reference(Patient|RelatedPerson) ]; # 0..1 Person who verified
    fhir:Consent.verification.verificationDate [ dateTime ]; # 0..1 When consent verified
  ], ...;
  fhir:Consent.provision [ # 0..1 Constraints to the base Consent.policyRule
    fhir:Consent.provision.type [ code ]; # 0..1 deny | permit
    fhir:Consent.provision.period [ Period ]; # 0..1 Timeframe for this rule
    fhir:Consent.provision.actor [ # 0..* Who|what controlled by this rule (or group, by role)
      fhir:Consent.provision.actor.role [ CodeableConcept ]; # 1..1 How the actor is involved
      fhir:Consent.provision.actor.reference [ Reference(CareTeam|Device|Group|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ]; # 1..1 Resource for the actor (or group, by role)
    ], ...;
    fhir:Consent.provision.action [ CodeableConcept ], ... ; # 0..* Actions controlled by this rule
    fhir:Consent.provision.securityLabel [ Coding ], ... ; # 0..* Security Labels that define affected resources
    fhir:Consent.provision.purpose [ Coding ], ... ; # 0..* Context of activities covered by this rule
    fhir:Consent.provision.class [ Coding ], ... ; # 0..* e.g. Resource Type, Profile, CDA, etc.
    fhir:Consent.provision.code [ CodeableConcept ], ... ; # 0..* e.g. LOINC or SNOMED CT code, etc. in the content
    fhir:Consent.provision.dataPeriod [ Period ]; # 0..1 Timeframe for data controlled by this rule
    fhir:Consent.provision.data [ # 0..* Data controlled by this rule
      fhir:Consent.provision.data.meaning [ code ]; # 1..1 instance | related | dependents | authoredby
      fhir:Consent.provision.data.reference [ Reference(Any) ]; # 1..1 The actual data reference
    ], ...;
    fhir:Consent.provision.provision [ See Consent.provision ], ... ; # 0..* Nested Exception Rules
  ];
]

Changes since Release 3

Consent
Consent.status
  • Change value set from http://hl7.org/fhir/ValueSet/consent-state-codes|4.0.0 to http://hl7.org/fhir/ValueSet/consent-state-codes|4.3.0-snapshot1
Consent.provision.type
  • Change value set from http://hl7.org/fhir/ValueSet/consent-provision-type|4.0.0 to http://hl7.org/fhir/ValueSet/consent-provision-type|4.3.0-snapshot1
Consent.provision.data.meaning
  • Change value set from http://hl7.org/fhir/ValueSet/consent-data-meaning|4.0.0 to http://hl7.org/fhir/ValueSet/consent-data-meaning|4.3.0-snapshot1

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 12 tests that all execute ok. All tests pass round-trip testing and 12 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the dependency analysis

PathDefinitionTypeReference
Consent.status RequiredConsentState
Consent.scope ExtensibleConsentScopeCodes
Consent.category ExtensibleConsentCategoryCodes
Consent.policyRule ExtensibleConsentPolicyRuleCodes
Consent.provision.type RequiredConsentProvisionType
Consent.provision.actor.role ExtensibleSecurityRoleType
Consent.provision.action ExampleConsentActionCodes
Consent.provision.securityLabel ExtensibleAll Security Labels
Consent.provision.purpose ExtensiblePurposeOfUse
Consent.provision.class ExtensibleConsentContentClass
Consent.provision.code ExampleConsentContentCodes
Consent.provision.data.meaning RequiredConsentDataMeaning

idLevelLocationDescriptionExpression
ppc-1Rule (base)Either a Policy or PolicyRulepolicy.exists() or policyRule.exists()
ppc-2Rule (base)IF Scope=privacy, there must be a patientpatient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()
ppc-3Rule (base)IF Scope=research, there must be a patientpatient.exists() or scope.coding.where(system='something' and code='research').exists().not()
ppc-4Rule (base)IF Scope=adr, there must be a patientpatient.exists() or scope.coding.where(system='something' and code='adr').exists().not()
ppc-5Rule (base)IF Scope=treatment, there must be a patientpatient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()

The Consent resource has a reference to a single policyRule. Many organizations will work in a context where multiple different consent regulations and policies apply. In these cases, the single policy rule reference refers to a policy document that resolves and reconciles the various policies and presents a single policy for patient consent. If it is still necessary to track which of the underlying policies an exception is make in regard to, the policy may be used.

The following is the general model of Privacy Consent Directives.

There are context setting parameters:

  1. Who - The patient
  2. What - The data - specific resources are listed, empty list means all data covered by the consent.
  3. Where - The domain and authority - what is the location boundary and authority boundary of this consent
  4. When - The issued or captured
  5. When - The timeframe for which the Consent applies
  6. How - The actions covered. (such as purposes of use that are covered)
  7. Whom - The recipient are grantees by the consent.

A Privacy Consent may transition through many states including: that no consent has been sought, consent has been proposed, consent has been rejected, and consent approved.

There are set of patterns.

  1. No consent: All settings need a policy for when no consent has been captured. Often this allows treatment only.;
  2. Opt-out: No sharing allowed for the specified domain, location, actions, and purposes;
  3. Opt-out with exceptions: No sharing allowed, with some exceptions where it is allowed. Example: Withhold Authorization for Treatment except for Emergency Treatment;
  4. Opt-in: Sharing for some purpose of use is authorized Sharing allowed for Treatment, Payment, and normal Operations; and
  5. Opt-in with restrictions: Sharing allowed, but the patient may make exceptions (See the Canadian examples).

For each of these patterns (positive or negative pattern), there can be exceptions. These exceptions are explicitly recorded in Consent.provision sub-trees.

Five categories of Privacy Consent Directives are described in the Office of the National Coordinator for Health Information (ONC) Consent Directives Document released March 31, 2010, and include the following US-specific "Core consent options" for electronic exchange:

  1. No consent: Health information of patients is automatically included—patients cannot opt out;
  2. Opt-out: Default is for health information of patients to be included automatically, but the patient can opt out completely;
  3. Opt-out with exceptions: Default is for health information of patients to be included, but the patient can opt out completely or allow only select data to be included;
  4. Opt-in: Default is that no patient health information is included; patients must actively express consent to be included, but if they do so then their information must be all in or all out; and
  5. Opt-in with restrictions: Default is that no patient health information is made available, but the patient may allow a subset of select data to be included.

A common exception is to explicitly exclude or explicitly include a period of time.

The following scenarios are based on existing jurisdictional policy and are realized in existing systems in Canada. The default policy is one of implied consent for the provision of care, so these scenarios all deal with withdrawal or withholding consent for that purpose. In other jurisdictions, where an express consent model is used (Opt-In), these examples would contain the phrase "consent to" rather than "withhold" or "withdraw" consent for.

  1. Withhold or withdraw consent for disclosure of records related to specific domain (e.g. DI, LAB, etc.)
  2. Withhold or withdraw consent for disclosure of a specific record (e.g. Lab Order/Result)
  3. Withhold or withdraw consent for disclosure to a specific provider organization
  4. Withhold or withdraw consent for disclosure to a specific provider agent (an individual within an organization)
  5. Withhold or withdraw consent for disclosure of records that were authored by a specific organization (or service delivery location).
  6. Combinations of the above

Also shown is an example where a Patient has authorized disclosure to a specific individual for purposes directed by the patient (possibly not a treatment case).

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
actiontokenActions controlled by this ruleConsent.provision.action
actorreferenceResource for the actor (or group, by role)Consent.provision.actor.reference
(Practitioner, Group, Organization, CareTeam, Device, Patient, PractitionerRole, RelatedPerson)
categorytokenClassification of the consent statement - for indexing/retrievalConsent.category
consentorreferenceWho is agreeing to the policy and rulesConsent.performer
(Practitioner, Organization, Patient, PractitionerRole, RelatedPerson)
datareferenceThe actual data referenceConsent.provision.data.reference
(Any)
datedateWhen this Consent was created or indexedConsent.dateTime
identifiertokenIdentifier for this record (external references)Consent.identifier
organizationreferenceCustodian of the consentConsent.organization
(Organization)
patientreferenceWho the consent applies toConsent.patient
(Patient)
perioddateTimeframe for this ruleConsent.provision.period
purposetokenContext of activities covered by this ruleConsent.provision.purpose
scopetokenWhich of the four areas this resource covers (extensible)Consent.scope
security-labeltokenSecurity Labels that define affected resourcesConsent.provision.securityLabel
source-referencereferenceSearch by reference to a Consent, DocumentReference, Contract or QuestionnaireResponseConsent.source
(Consent, Contract, QuestionnaireResponse, DocumentReference)
statustokendraft | proposed | active | rejected | inactive | entered-in-errorConsent.status