R6 Ballot (2nd Draft)

Publish-box (todo)

6.2 Resource Consent - Content

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

A record of a healthcare consumer’s choices or choices made on their behalf by a third party, 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, Restriction, or Prohibition 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.

This resource is scoped to cover all three uses, but at this time, only the privacy use case is fully modeled, others are being used but no formal modelling exists. The scope of the resource may change when the other possible scopes are investigated, tested, or profiled. HL7 is working on Advance Directives and would welcome participation by the community.

Usage of the Provenance icon resource may be the best way to manage the tracking of the changes to Consent. In addition, the DocumentReference icon may be used as an attachment to show the stages of consent ceremony with additional or updated document(s) attached at each stage. Contract icon may also be used in this fashion where as signatures are gathered or conditions applied, the Contract resource can be updated and attached to the Consent.

In its simplest form, the Consent resource provides the means to record the content and the metadata of a consent (either implicit consent as an event or an explicit consent document). At this level of implementation, basic metadata about the Consent (e.g., status, data and time, patient, and organization) is recorded in the corresponding attributes of the Consent resource to enable consent discovery by indexing, searching, and retrieval of consents based on this metadata. The sourceAttachment and/or sourceReference elements can be used to record the original consent document either in the form of a pointer to another resource or in the form of an attachment.

In a more advanced usage of the Consent resource, in addition to recording the metadata and potentially the original content, the privacy preferences stated in the consent are encoded directly in the form of machine-readable rules. These rules can be processed by a decision engine to adjudicate whether the consent permits a specific given activity (e.g., sharing the patient information with a requester or enrolling the patient in a research project). In other words, the Consent resource is used directly to record rules that can be used by a rules engine to understand and enforce the preferences expressed by the consenter as they were intended.

The current version of the Consent resource provides two different mechanisms for recording computable rules:

  • the provision structure which provides a simple structure for capturing most common privacy rules.
  • the policyBasis attribute which provides a more flexible mechanism to reference a policy coded in a policy language of choice (e.g., XACML icon, ODRL icon, etc.).

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: an inline attachment 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 acknowledgement or by being signed - either on paper, or digitally. Consent Signatures will be found in the Provenance resource. Implementation Guides will generally make rules about what signatures are required, and how they are to be shared and used.

The Consent resource is structured with a base policy (represented as Consent.decision) which is either permit or deny, 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.

Structure

See the Extensions for this resource

UML Diagram (Legend)

Consent (DomainResource)Unique identifier for this copy of the Consent Statementidentifier : Identifier [0..*]Indicates the current state of this Consent resource (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)ConsentState! »A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statementscategory : CodeableConcept [0..*] « null (Strength=Example)ConsentCategoryCodes?? »The patient/healthcare practitioner or group of persons to whom this consent appliessubject : Reference [0..1] « Patient|Practitioner|Group »Date the consent instance was agreed todate : date [0..1]Effective period for this Consent Resource and all provisions unless specified in that provisionperiod : Period [0..1]The entity responsible for granting the rights listed in a Consent Directivegrantor : Reference [0..*] « CareTeam|HealthcareService|Organization| Patient|Practitioner|RelatedPerson|PractitionerRole »The entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitionsgrantee : Reference [0..*] « CareTeam|HealthcareService|Organization| Patient|Practitioner|RelatedPerson|PractitionerRole »The actor that manages the consent through its lifecyclemanager : Reference [0..*] « HealthcareService|Organization|Patient| Practitioner »The actor that controls/enforces the access according to the consentcontroller : Reference [0..*] « HealthcareService|Organization| Patient|Practitioner »The source on which this consent statement is based. The source might be a scanned original paper formsourceAttachment : Attachment [0..*]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 documentsourceReference : Reference [0..*] « Consent|DocumentReference| Contract|QuestionnaireResponse »A set of codes that indicate the regulatory basis (if any) that this consent supportsregulatoryBasis : CodeableConcept [0..*] « null (Strength=Example)ConsentPolicyRuleCodes?? »A Reference to the human readable policy explaining the basis for the ConsentpolicyText : Reference [0..*] « DocumentReference »Action to take - permit or deny - as default (this element modifies the meaning of other elements)decision : code [0..1] « null (Strength=Required)ConsentProvisionType! »PolicyBasisA Reference that identifies the policy the organization will enforce for this Consentreference : Reference [0..1] « Any »A URL that links to a computable version of the policy the organization will enforce for this Consenturl : url [0..1]VerificationHas the instruction been verifiedverified : boolean [1..1]Extensible list of verification type starting with verification and re-validationverificationType : CodeableConcept [0..1] « null (Strength=Example)ConsentVerificationCodes?? »The person who conducted the verification/validation of the Grantor decisionverifiedBy : Reference [0..1] « Organization|Practitioner| PractitionerRole »Who verified the instruction (Patient, Relative or other Authorized Person)verifiedWith : Reference [0..1] « Patient|RelatedPerson »Date(s) verification was collectedverificationDate : dateTime [0..*]provisionTimeframe for this provisionperiod : Period [0..1]Actions controlled by this provisionaction : 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=Example)SecurityLabelExamples?? »The context of the activities a user is taking - why the user is accessing the data - that are controlled by this provisionpurpose : Coding [0..*] « null (Strength=Extensible)PurposeOfUse+ »The documentType(s) covered by this provision. The type can be a CDA document, or some other type that indicates what sort of information the consent relates todocumentType : Coding [0..*] « null (Strength=Preferred)ConsentContentClass? »The resourceType(s) covered by this provision. The type can be a FHIR resource type or a profile on a type that indicates what information the consent relates toresourceType : Coding [0..*] « null (Strength=Extensible)ResourceType+ »If this code is found in an instance, then the provision appliescode : CodeableConcept [0..*] « null (Strength=Example)ConsentContentCodes?? »Clinical or Operational Relevant period of time that bounds the data controlled by this provisiondataPeriod : Period [0..1]A computable (FHIRPath or other) definition of what is controlled by this consentexpression : Expression [0..1]provisionActorHow the individual is involved in the resources content that is described in the exceptionrole : CodeableConcept [0..1] « null (Strength=Extensible)ParticipationRoleType+ »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 [0..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 »A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some formpolicyBasis[0..1]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 provision. Use group to identify a set of actors by some property they share (e.g. 'admitting officers')actor[0..*]The resources controlled by this provision if specific resources are referenceddata[0..*]Provisions which provide exceptions to the base provision or subprovisionsprovision[0..*]An exception to the base policy of this consent. An exception can be an addition or removal of access permissionsprovision[0..*]

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 | active | inactive | not-done | entered-in-error | unknown -->
 <category><!-- 0..* CodeableConcept Classification of the consent statement - for indexing/retrieval --></category>
 <subject><!-- 0..1 Reference(Group|Patient|Practitioner) Who the consent applies to --></subject>
 <date value="[date]"/><!-- 0..1 Fully executed date of the consent -->
 <period><!-- 0..1 Period Effective period for this Consent --></period>
 <grantor><!-- 0..* Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) Who is granting rights according to the policy and rules --></grantor>
 <grantee><!-- 0..* Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) Who is agreeing to the policy and rules --></grantee>
 <manager><!-- 0..* Reference(HealthcareService|Organization|Patient|Practitioner) Consent workflow management --></manager>
 <controller><!-- 0..* Reference(HealthcareService|Organization|Patient|
   Practitioner) Consent Enforcer --></controller>
 <sourceAttachment><!-- 0..* Attachment Source from which this consent is taken --></sourceAttachment>
 <sourceReference><!-- 0..* Reference(Consent|Contract|DocumentReference|
   QuestionnaireResponse) Source from which this consent is taken --></sourceReference>
 <regulatoryBasis><!-- 0..* CodeableConcept Regulations establishing base Consent --></regulatoryBasis>
 <policyBasis>  <!-- 0..1 Computable version of the backing policy -->
  <reference><!-- 0..1 Reference(Any) Reference backing policy resource --></reference>
  <url value="[url]"/><!-- 0..1 URL to a computable backing policy -->
 </policyBasis>
 <policyText><!-- 0..* Reference(DocumentReference) Human Readable Policy --></policyText>
 <verification>  <!-- 0..* Consent Verified by patient or family -->
  <verified value="[boolean]"/><!-- 1..1 Has been verified -->
  <verificationType><!-- 0..1 CodeableConcept Business case of verification --></verificationType>
  <verifiedBy><!-- 0..1 Reference(Organization|Practitioner|PractitionerRole) Person conducting verification --></verifiedBy>
  <verifiedWith><!-- 0..1 Reference(Patient|RelatedPerson) Person who verified --></verifiedWith>
  <verificationDate value="[dateTime]"/><!-- 0..* When consent verified -->
 </verification>
 <decision value="[code]"/><!-- 0..1 deny | permit -->
 <provision>  <!-- 0..* Constraints to the base Consent.policyRule/Consent.policy -->
  <period><!-- 0..1 Period Timeframe for this provision --></period>
  <actor>  <!-- 0..* Who|what controlled by this provision (or group, by role) -->
   <role><!-- 0..1 CodeableConcept How the actor is involved --></role>
   <reference><!-- 0..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 provision --></action>
  <securityLabel><!-- 0..* Coding Security Labels that define affected resources --></securityLabel>
  <purpose><!-- 0..* Coding Context of activities covered by this provision icon --></purpose>
  <documentType><!-- 0..* Coding e.g. Resource Type, Profile, CDA, etc --></documentType>
  <resourceType><!-- 0..* Coding e.g. Resource Type, Profile, etc --></resourceType>
  <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 provision --></dataPeriod>
  <data>  <!-- 0..* Data controlled by this provision -->
   <meaning value="[code]"/><!-- 1..1 instance | related | dependents | authoredby -->
   <reference><!-- 1..1 Reference(Any) The actual data reference --></reference>
  </data>
  <expression><!-- 0..1 Expression A computable expression of the consent --></expression>
  <provision><!-- 0..* Content as for Consent.provision Nested Exception Provisions --></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 | active | inactive | not-done | entered-in-error | unknown
  "category" : [{ CodeableConcept }], // Classification of the consent statement - for indexing/retrieval
  "subject" : { Reference(Group|Patient|Practitioner) }, // Who the consent applies to
  "date" : "<date>", // Fully executed date of the consent
  "period" : { Period }, // Effective period for this Consent
  "grantor" : [{ Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) }], // Who is granting rights according to the policy and rules
  "grantee" : [{ Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) }], // Who is agreeing to the policy and rules
  "manager" : [{ Reference(HealthcareService|Organization|Patient|Practitioner) }], // Consent workflow management
  "controller" : [{ Reference(HealthcareService|Organization|Patient|
   Practitioner) }], // Consent Enforcer
  "sourceAttachment" : [{ Attachment }], // Source from which this consent is taken
  "sourceReference" : [{ Reference(Consent|Contract|DocumentReference|
   QuestionnaireResponse) }], // Source from which this consent is taken
  "regulatoryBasis" : [{ CodeableConcept }], // Regulations establishing base Consent
  "policyBasis" : { // Computable version of the backing policy
    "reference" : { Reference(Any) }, // Reference backing policy resource
    "url" : "<url>" // URL to a computable backing policy
  },
  "policyText" : [{ Reference(DocumentReference) }], // Human Readable Policy
  "verification" : [{ // Consent Verified by patient or family
    "verified" : <boolean>, // R!  Has been verified
    "verificationType" : { CodeableConcept }, // Business case of verification
    "verifiedBy" : { Reference(Organization|Practitioner|PractitionerRole) }, // Person conducting verification
    "verifiedWith" : { Reference(Patient|RelatedPerson) }, // Person who verified
    "verificationDate" : ["<dateTime>"] // When consent verified
  }],
  "decision" : "<code>", // deny | permit
  "provision" : [{ // Constraints to the base Consent.policyRule/Consent.policy
    "period" : { Period }, // Timeframe for this provision
    "actor" : [{ // Who|what controlled by this provision (or group, by role)
      "role" : { CodeableConcept }, // How the actor is involved
      "reference" : { Reference(CareTeam|Device|Group|Organization|Patient|
     Practitioner|PractitionerRole|RelatedPerson) } // Resource for the actor (or group, by role)
    }],
    "action" : [{ CodeableConcept }], // Actions controlled by this provision
    "securityLabel" : [{ Coding }], // Security Labels that define affected resources
    "purpose" : [{ Coding }], // Context of activities covered by this provision icon
    "documentType" : [{ Coding }], // e.g. Resource Type, Profile, CDA, etc
    "resourceType" : [{ Coding }], // e.g. Resource Type, Profile, etc
    "code" : [{ CodeableConcept }], // e.g. LOINC or SNOMED CT code, etc. in the content
    "dataPeriod" : { Period }, // Timeframe for data controlled by this provision
    "data" : [{ // Data controlled by this provision
      "meaning" : "<code>", // R!  instance | related | dependents | authoredby
      "reference" : { Reference(Any) } // R!  The actual data reference
    }],
    "expression" : { Expression }, // A computable expression of the consent
    "provision" : [{ Content as for Consent.provision }] // Nested Exception Provisions
  }]
}

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:identifier  ( [ Identifier ] ... ) ; # 0..* Identifier for this record (external references)
  fhir:status [ code ] ; # 1..1 draft | active | inactive | not-done | entered-in-error | unknown
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Classification of the consent statement - for indexing/retrieval
  fhir:subject [ Reference(Group|Patient|Practitioner) ] ; # 0..1 Who the consent applies to
  fhir:date [ date ] ; # 0..1 Fully executed date of the consent
  fhir:period [ Period ] ; # 0..1 Effective period for this Consent
  fhir:grantor  ( [ Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ... ) ; # 0..* Who is granting rights according to the policy and rules
  fhir:grantee  ( [ Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ... ) ; # 0..* Who is agreeing to the policy and rules
  fhir:manager  ( [ Reference(HealthcareService|Organization|Patient|Practitioner) ] ... ) ; # 0..* Consent workflow management
  fhir:controller  ( [ Reference(HealthcareService|Organization|Patient|Practitioner) ] ... ) ; # 0..* Consent Enforcer
  fhir:sourceAttachment  ( [ Attachment ] ... ) ; # 0..* Source from which this consent is taken
  fhir:sourceReference  ( [ Reference(Consent|Contract|DocumentReference|QuestionnaireResponse) ] ... ) ; # 0..* Source from which this consent is taken
  fhir:regulatoryBasis  ( [ CodeableConcept ] ... ) ; # 0..* Regulations establishing base Consent
  fhir:policyBasis [ # 0..1 Computable version of the backing policy
    fhir:reference [ Reference(Any) ] ; # 0..1 Reference backing policy resource
    fhir:url [ url ] ; # 0..1 URL to a computable backing policy
  ] ;
  fhir:policyText  ( [ Reference(DocumentReference) ] ... ) ; # 0..* Human Readable Policy
  fhir:verification ( [ # 0..* Consent Verified by patient or family
    fhir:verified [ boolean ] ; # 1..1 Has been verified
    fhir:verificationType [ CodeableConcept ] ; # 0..1 Business case of verification
    fhir:verifiedBy [ Reference(Organization|Practitioner|PractitionerRole) ] ; # 0..1 Person conducting verification
    fhir:verifiedWith [ Reference(Patient|RelatedPerson) ] ; # 0..1 Person who verified
    fhir:verificationDate  ( [ dateTime ] ... ) ; # 0..* When consent verified
  ] ... ) ;
  fhir:decision [ code ] ; # 0..1 deny | permit
  fhir:provision ( [ # 0..* Constraints to the base Consent.policyRule/Consent.policy
    fhir:period [ Period ] ; # 0..1 Timeframe for this provision
    fhir:actor ( [ # 0..* Who|what controlled by this provision (or group, by role)
      fhir:role [ CodeableConcept ] ; # 0..1 How the actor is involved
      fhir:reference [ Reference(CareTeam|Device|Group|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ; # 0..1 Resource for the actor (or group, by role)
    ] ... ) ;
    fhir:action  ( [ CodeableConcept ] ... ) ; # 0..* Actions controlled by this provision
    fhir:securityLabel  ( [ Coding ] ... ) ; # 0..* Security Labels that define affected resources
    fhir:purpose  ( [ Coding ] ... ) ; # 0..* Context of activities covered by this provision
    fhir:documentType  ( [ Coding ] ... ) ; # 0..* e.g. Resource Type, Profile, CDA, etc
    fhir:resourceType  ( [ Coding ] ... ) ; # 0..* e.g. Resource Type, Profile, etc
    fhir:code  ( [ CodeableConcept ] ... ) ; # 0..* e.g. LOINC or SNOMED CT code, etc. in the content
    fhir:dataPeriod [ Period ] ; # 0..1 Timeframe for data controlled by this provision
    fhir:data ( [ # 0..* Data controlled by this provision
      fhir:meaning [ code ] ; # 1..1 instance | related | dependents | authoredby
      fhir:reference [ Reference(Any) ] ; # 1..1 The actual data reference
    ] ... ) ;
    fhir:expression [ Expression ] ; # 0..1 A computable expression of the consent
    fhir:provision  ( [ See Consent.provision ] ... ) ; # 0..* Nested Exception Provisions
  ] ... ) ;
]

Changes from both R4 and R4B

Consent
Consent.status
  • Remove codes proposed, rejected
  • Add codes not-done, unknown
Consent.category
  • Min Cardinality changed from 1 to 0
  • Remove Binding `http://hl7.org/fhir/ValueSet/consent-category` (extensible)
Consent.subject
  • Renamed from patient to subject
  • Type Reference: Added Target Types Practitioner, Group
Consent.date
  • Renamed from dateTime to date
  • Type changed from dateTime to date
Consent.period
  • Added Element
Consent.grantor
  • Added Element
Consent.grantee
  • Renamed from performer to grantee
  • Type Reference: Added Target Types CareTeam, HealthcareService
Consent.manager
  • Added Element
Consent.controller
  • Added Element
Consent.sourceAttachment
  • Added Element
Consent.sourceReference
  • Added Element
Consent.regulatoryBasis
  • Added Element
Consent.policyBasis
  • Renamed from policy to policyBasis
  • Max Cardinality changed from * to 1
Consent.policyBasis.reference
  • Added Element
Consent.policyBasis.url
  • Added Element
Consent.policyText
  • Added Element
Consent.verification.verificationType
  • Added Element
Consent.verification.verifiedBy
  • Added Element
Consent.verification.verificationDate
  • Max Cardinality changed from 1 to *
Consent.decision
  • Moved from Consent.provision.type to decision
  • Now marked as Modifier
Consent.provision
  • Max Cardinality changed from 1 to *
Consent.provision.actor.role
Consent.provision.actor.reference
  • Min Cardinality changed from 1 to 0
Consent.provision.securityLabel
  • Remove Binding `http://hl7.org/fhir/ValueSet/security-labels` (extensible)
Consent.provision.documentType
  • Added Element
Consent.provision.resourceType
Consent.provision.expression
  • Added Element
Consent.scope
  • Deleted (-> Merged with Consent.category)
Consent.organization
  • Deleted (-> split into Consent.manager and Consent.controller)
Consent.source[x]
  • Deleted
Consent.policy.authority
  • Deleted
Consent.policy.uri
  • Deleted
Consent.policyRule
  • Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

Structure

See the Extensions for this resource

UML Diagram (Legend)

Consent (DomainResource)Unique identifier for this copy of the Consent Statementidentifier : Identifier [0..*]Indicates the current state of this Consent resource (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)ConsentState! »A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statementscategory : CodeableConcept [0..*] « null (Strength=Example)ConsentCategoryCodes?? »The patient/healthcare practitioner or group of persons to whom this consent appliessubject : Reference [0..1] « Patient|Practitioner|Group »Date the consent instance was agreed todate : date [0..1]Effective period for this Consent Resource and all provisions unless specified in that provisionperiod : Period [0..1]The entity responsible for granting the rights listed in a Consent Directivegrantor : Reference [0..*] « CareTeam|HealthcareService|Organization| Patient|Practitioner|RelatedPerson|PractitionerRole »The entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitionsgrantee : Reference [0..*] « CareTeam|HealthcareService|Organization| Patient|Practitioner|RelatedPerson|PractitionerRole »The actor that manages the consent through its lifecyclemanager : Reference [0..*] « HealthcareService|Organization|Patient| Practitioner »The actor that controls/enforces the access according to the consentcontroller : Reference [0..*] « HealthcareService|Organization| Patient|Practitioner »The source on which this consent statement is based. The source might be a scanned original paper formsourceAttachment : Attachment [0..*]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 documentsourceReference : Reference [0..*] « Consent|DocumentReference| Contract|QuestionnaireResponse »A set of codes that indicate the regulatory basis (if any) that this consent supportsregulatoryBasis : CodeableConcept [0..*] « null (Strength=Example)ConsentPolicyRuleCodes?? »A Reference to the human readable policy explaining the basis for the ConsentpolicyText : Reference [0..*] « DocumentReference »Action to take - permit or deny - as default (this element modifies the meaning of other elements)decision : code [0..1] « null (Strength=Required)ConsentProvisionType! »PolicyBasisA Reference that identifies the policy the organization will enforce for this Consentreference : Reference [0..1] « Any »A URL that links to a computable version of the policy the organization will enforce for this Consenturl : url [0..1]VerificationHas the instruction been verifiedverified : boolean [1..1]Extensible list of verification type starting with verification and re-validationverificationType : CodeableConcept [0..1] « null (Strength=Example)ConsentVerificationCodes?? »The person who conducted the verification/validation of the Grantor decisionverifiedBy : Reference [0..1] « Organization|Practitioner| PractitionerRole »Who verified the instruction (Patient, Relative or other Authorized Person)verifiedWith : Reference [0..1] « Patient|RelatedPerson »Date(s) verification was collectedverificationDate : dateTime [0..*]provisionTimeframe for this provisionperiod : Period [0..1]Actions controlled by this provisionaction : 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=Example)SecurityLabelExamples?? »The context of the activities a user is taking - why the user is accessing the data - that are controlled by this provisionpurpose : Coding [0..*] « null (Strength=Extensible)PurposeOfUse+ »The documentType(s) covered by this provision. The type can be a CDA document, or some other type that indicates what sort of information the consent relates todocumentType : Coding [0..*] « null (Strength=Preferred)ConsentContentClass? »The resourceType(s) covered by this provision. The type can be a FHIR resource type or a profile on a type that indicates what information the consent relates toresourceType : Coding [0..*] « null (Strength=Extensible)ResourceType+ »If this code is found in an instance, then the provision appliescode : CodeableConcept [0..*] « null (Strength=Example)ConsentContentCodes?? »Clinical or Operational Relevant period of time that bounds the data controlled by this provisiondataPeriod : Period [0..1]A computable (FHIRPath or other) definition of what is controlled by this consentexpression : Expression [0..1]provisionActorHow the individual is involved in the resources content that is described in the exceptionrole : CodeableConcept [0..1] « null (Strength=Extensible)ParticipationRoleType+ »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 [0..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 »A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some formpolicyBasis[0..1]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 provision. Use group to identify a set of actors by some property they share (e.g. 'admitting officers')actor[0..*]The resources controlled by this provision if specific resources are referenceddata[0..*]Provisions which provide exceptions to the base provision or subprovisionsprovision[0..*]An exception to the base policy of this consent. An exception can be an addition or removal of access permissionsprovision[0..*]

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 | active | inactive | not-done | entered-in-error | unknown -->
 <category><!-- 0..* CodeableConcept Classification of the consent statement - for indexing/retrieval --></category>
 <subject><!-- 0..1 Reference(Group|Patient|Practitioner) Who the consent applies to --></subject>
 <date value="[date]"/><!-- 0..1 Fully executed date of the consent -->
 <period><!-- 0..1 Period Effective period for this Consent --></period>
 <grantor><!-- 0..* Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) Who is granting rights according to the policy and rules --></grantor>
 <grantee><!-- 0..* Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) Who is agreeing to the policy and rules --></grantee>
 <manager><!-- 0..* Reference(HealthcareService|Organization|Patient|Practitioner) Consent workflow management --></manager>
 <controller><!-- 0..* Reference(HealthcareService|Organization|Patient|
   Practitioner) Consent Enforcer --></controller>
 <sourceAttachment><!-- 0..* Attachment Source from which this consent is taken --></sourceAttachment>
 <sourceReference><!-- 0..* Reference(Consent|Contract|DocumentReference|
   QuestionnaireResponse) Source from which this consent is taken --></sourceReference>
 <regulatoryBasis><!-- 0..* CodeableConcept Regulations establishing base Consent --></regulatoryBasis>
 <policyBasis>  <!-- 0..1 Computable version of the backing policy -->
  <reference><!-- 0..1 Reference(Any) Reference backing policy resource --></reference>
  <url value="[url]"/><!-- 0..1 URL to a computable backing policy -->
 </policyBasis>
 <policyText><!-- 0..* Reference(DocumentReference) Human Readable Policy --></policyText>
 <verification>  <!-- 0..* Consent Verified by patient or family -->
  <verified value="[boolean]"/><!-- 1..1 Has been verified -->
  <verificationType><!-- 0..1 CodeableConcept Business case of verification --></verificationType>
  <verifiedBy><!-- 0..1 Reference(Organization|Practitioner|PractitionerRole) Person conducting verification --></verifiedBy>
  <verifiedWith><!-- 0..1 Reference(Patient|RelatedPerson) Person who verified --></verifiedWith>
  <verificationDate value="[dateTime]"/><!-- 0..* When consent verified -->
 </verification>
 <decision value="[code]"/><!-- 0..1 deny | permit -->
 <provision>  <!-- 0..* Constraints to the base Consent.policyRule/Consent.policy -->
  <period><!-- 0..1 Period Timeframe for this provision --></period>
  <actor>  <!-- 0..* Who|what controlled by this provision (or group, by role) -->
   <role><!-- 0..1 CodeableConcept How the actor is involved --></role>
   <reference><!-- 0..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 provision --></action>
  <securityLabel><!-- 0..* Coding Security Labels that define affected resources --></securityLabel>
  <purpose><!-- 0..* Coding Context of activities covered by this provision icon --></purpose>
  <documentType><!-- 0..* Coding e.g. Resource Type, Profile, CDA, etc --></documentType>
  <resourceType><!-- 0..* Coding e.g. Resource Type, Profile, etc --></resourceType>
  <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 provision --></dataPeriod>
  <data>  <!-- 0..* Data controlled by this provision -->
   <meaning value="[code]"/><!-- 1..1 instance | related | dependents | authoredby -->
   <reference><!-- 1..1 Reference(Any) The actual data reference --></reference>
  </data>
  <expression><!-- 0..1 Expression A computable expression of the consent --></expression>
  <provision><!-- 0..* Content as for Consent.provision Nested Exception Provisions --></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 | active | inactive | not-done | entered-in-error | unknown
  "category" : [{ CodeableConcept }], // Classification of the consent statement - for indexing/retrieval
  "subject" : { Reference(Group|Patient|Practitioner) }, // Who the consent applies to
  "date" : "<date>", // Fully executed date of the consent
  "period" : { Period }, // Effective period for this Consent
  "grantor" : [{ Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) }], // Who is granting rights according to the policy and rules
  "grantee" : [{ Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) }], // Who is agreeing to the policy and rules
  "manager" : [{ Reference(HealthcareService|Organization|Patient|Practitioner) }], // Consent workflow management
  "controller" : [{ Reference(HealthcareService|Organization|Patient|
   Practitioner) }], // Consent Enforcer
  "sourceAttachment" : [{ Attachment }], // Source from which this consent is taken
  "sourceReference" : [{ Reference(Consent|Contract|DocumentReference|
   QuestionnaireResponse) }], // Source from which this consent is taken
  "regulatoryBasis" : [{ CodeableConcept }], // Regulations establishing base Consent
  "policyBasis" : { // Computable version of the backing policy
    "reference" : { Reference(Any) }, // Reference backing policy resource
    "url" : "<url>" // URL to a computable backing policy
  },
  "policyText" : [{ Reference(DocumentReference) }], // Human Readable Policy
  "verification" : [{ // Consent Verified by patient or family
    "verified" : <boolean>, // R!  Has been verified
    "verificationType" : { CodeableConcept }, // Business case of verification
    "verifiedBy" : { Reference(Organization|Practitioner|PractitionerRole) }, // Person conducting verification
    "verifiedWith" : { Reference(Patient|RelatedPerson) }, // Person who verified
    "verificationDate" : ["<dateTime>"] // When consent verified
  }],
  "decision" : "<code>", // deny | permit
  "provision" : [{ // Constraints to the base Consent.policyRule/Consent.policy
    "period" : { Period }, // Timeframe for this provision
    "actor" : [{ // Who|what controlled by this provision (or group, by role)
      "role" : { CodeableConcept }, // How the actor is involved
      "reference" : { Reference(CareTeam|Device|Group|Organization|Patient|
     Practitioner|PractitionerRole|RelatedPerson) } // Resource for the actor (or group, by role)
    }],
    "action" : [{ CodeableConcept }], // Actions controlled by this provision
    "securityLabel" : [{ Coding }], // Security Labels that define affected resources
    "purpose" : [{ Coding }], // Context of activities covered by this provision icon
    "documentType" : [{ Coding }], // e.g. Resource Type, Profile, CDA, etc
    "resourceType" : [{ Coding }], // e.g. Resource Type, Profile, etc
    "code" : [{ CodeableConcept }], // e.g. LOINC or SNOMED CT code, etc. in the content
    "dataPeriod" : { Period }, // Timeframe for data controlled by this provision
    "data" : [{ // Data controlled by this provision
      "meaning" : "<code>", // R!  instance | related | dependents | authoredby
      "reference" : { Reference(Any) } // R!  The actual data reference
    }],
    "expression" : { Expression }, // A computable expression of the consent
    "provision" : [{ Content as for Consent.provision }] // Nested Exception Provisions
  }]
}

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:identifier  ( [ Identifier ] ... ) ; # 0..* Identifier for this record (external references)
  fhir:status [ code ] ; # 1..1 draft | active | inactive | not-done | entered-in-error | unknown
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Classification of the consent statement - for indexing/retrieval
  fhir:subject [ Reference(Group|Patient|Practitioner) ] ; # 0..1 Who the consent applies to
  fhir:date [ date ] ; # 0..1 Fully executed date of the consent
  fhir:period [ Period ] ; # 0..1 Effective period for this Consent
  fhir:grantor  ( [ Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ... ) ; # 0..* Who is granting rights according to the policy and rules
  fhir:grantee  ( [ Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ... ) ; # 0..* Who is agreeing to the policy and rules
  fhir:manager  ( [ Reference(HealthcareService|Organization|Patient|Practitioner) ] ... ) ; # 0..* Consent workflow management
  fhir:controller  ( [ Reference(HealthcareService|Organization|Patient|Practitioner) ] ... ) ; # 0..* Consent Enforcer
  fhir:sourceAttachment  ( [ Attachment ] ... ) ; # 0..* Source from which this consent is taken
  fhir:sourceReference  ( [ Reference(Consent|Contract|DocumentReference|QuestionnaireResponse) ] ... ) ; # 0..* Source from which this consent is taken
  fhir:regulatoryBasis  ( [ CodeableConcept ] ... ) ; # 0..* Regulations establishing base Consent
  fhir:policyBasis [ # 0..1 Computable version of the backing policy
    fhir:reference [ Reference(Any) ] ; # 0..1 Reference backing policy resource
    fhir:url [ url ] ; # 0..1 URL to a computable backing policy
  ] ;
  fhir:policyText  ( [ Reference(DocumentReference) ] ... ) ; # 0..* Human Readable Policy
  fhir:verification ( [ # 0..* Consent Verified by patient or family
    fhir:verified [ boolean ] ; # 1..1 Has been verified
    fhir:verificationType [ CodeableConcept ] ; # 0..1 Business case of verification
    fhir:verifiedBy [ Reference(Organization|Practitioner|PractitionerRole) ] ; # 0..1 Person conducting verification
    fhir:verifiedWith [ Reference(Patient|RelatedPerson) ] ; # 0..1 Person who verified
    fhir:verificationDate  ( [ dateTime ] ... ) ; # 0..* When consent verified
  ] ... ) ;
  fhir:decision [ code ] ; # 0..1 deny | permit
  fhir:provision ( [ # 0..* Constraints to the base Consent.policyRule/Consent.policy
    fhir:period [ Period ] ; # 0..1 Timeframe for this provision
    fhir:actor ( [ # 0..* Who|what controlled by this provision (or group, by role)
      fhir:role [ CodeableConcept ] ; # 0..1 How the actor is involved
      fhir:reference [ Reference(CareTeam|Device|Group|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ; # 0..1 Resource for the actor (or group, by role)
    ] ... ) ;
    fhir:action  ( [ CodeableConcept ] ... ) ; # 0..* Actions controlled by this provision
    fhir:securityLabel  ( [ Coding ] ... ) ; # 0..* Security Labels that define affected resources
    fhir:purpose  ( [ Coding ] ... ) ; # 0..* Context of activities covered by this provision
    fhir:documentType  ( [ Coding ] ... ) ; # 0..* e.g. Resource Type, Profile, CDA, etc
    fhir:resourceType  ( [ Coding ] ... ) ; # 0..* e.g. Resource Type, Profile, etc
    fhir:code  ( [ CodeableConcept ] ... ) ; # 0..* e.g. LOINC or SNOMED CT code, etc. in the content
    fhir:dataPeriod [ Period ] ; # 0..1 Timeframe for data controlled by this provision
    fhir:data ( [ # 0..* Data controlled by this provision
      fhir:meaning [ code ] ; # 1..1 instance | related | dependents | authoredby
      fhir:reference [ Reference(Any) ] ; # 1..1 The actual data reference
    ] ... ) ;
    fhir:expression [ Expression ] ; # 0..1 A computable expression of the consent
    fhir:provision  ( [ See Consent.provision ] ... ) ; # 0..* Nested Exception Provisions
  ] ... ) ;
]

Changes from both R4 and R4B

Consent
Consent.status
  • Remove codes proposed, rejected
  • Add codes not-done, unknown
Consent.category
  • Min Cardinality changed from 1 to 0
  • Remove Binding `http://hl7.org/fhir/ValueSet/consent-category` (extensible)
Consent.subject
  • Renamed from patient to subject
  • Type Reference: Added Target Types Practitioner, Group
Consent.date
  • Renamed from dateTime to date
  • Type changed from dateTime to date
Consent.period
  • Added Element
Consent.grantor
  • Added Element
Consent.grantee
  • Renamed from performer to grantee
  • Type Reference: Added Target Types CareTeam, HealthcareService
Consent.manager
  • Added Element
Consent.controller
  • Added Element
Consent.sourceAttachment
  • Added Element
Consent.sourceReference
  • Added Element
Consent.regulatoryBasis
  • Added Element
Consent.policyBasis
  • Renamed from policy to policyBasis
  • Max Cardinality changed from * to 1
Consent.policyBasis.reference
  • Added Element
Consent.policyBasis.url
  • Added Element
Consent.policyText
  • Added Element
Consent.verification.verificationType
  • Added Element
Consent.verification.verifiedBy
  • Added Element
Consent.verification.verificationDate
  • Max Cardinality changed from 1 to *
Consent.decision
  • Moved from Consent.provision.type to decision
  • Now marked as Modifier
Consent.provision
  • Max Cardinality changed from 1 to *
Consent.provision.actor.role
Consent.provision.actor.reference
  • Min Cardinality changed from 1 to 0
Consent.provision.securityLabel
  • Remove Binding `http://hl7.org/fhir/ValueSet/security-labels` (extensible)
Consent.provision.documentType
  • Added Element
Consent.provision.resourceType
Consent.provision.expression
  • Added Element
Consent.scope
  • Deleted (-> Merged with Consent.category)
Consent.organization
  • Deleted (-> split into Consent.manager and Consent.controller)
Consent.source[x]
  • Deleted
Consent.policy.authority
  • Deleted
Consent.policy.uri
  • Deleted
Consent.policyRule
  • Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis

Path ValueSet Type Documentation
Consent.status ConsentState Required

Indicates the state of the consent.

Consent.category ConsentCategoryCodes Example

This value set includes sample Consent Directive Type codes, including several consent directive related LOINC codes; HL7 VALUE SET: ActConsentType(2.16.840.1.113883.1.11.19897); examples of US realm consent directive legal descriptions and references to online and/or downloadable forms such as the SSA-827 Authorization to Disclose Information to the Social Security Administration; and other anticipated consent directives related to participation in a clinical trial, medical procedures, reproductive procedures; health care directive (Living Will); advance directive, do not resuscitate (DNR); Physician Orders for Life-Sustaining Treatment (POLST)

Consent.regulatoryBasis ConsentPolicyRuleCodes Example

This value set includes sample Regulatory consent policy types from the US and other regions.

Consent.verification.verificationType ConsentVerificationCodes Example

This value set includes base Consent Verification codes.

Consent.decision ConsentProvisionType Required

How a rule statement is applied, such as adding additional consent or removing consent.

Consent.provision.actor.role ParticipationRoleType Extensible

This FHIR value set is comprised of Actor participation Type codes, which can be used to value FHIR agents, actors, and other role elements. The codes are intended to express how the agent participated in some activity. Sometimes refered to the agent functional-role relative to the activity.

Consent.provision.action ConsentActionCodes Example

This value set includes sample Consent Action codes.

Consent.provision.securityLabel SecurityLabelExamples Example

A sample of security labels from Healthcare Privacy and Security Classification System as the combination of data and event codes.

Consent.provision.purpose PurposeOfUse icon Extensible

Supports communication of purpose of use at a general level.

Consent.provision.documentType ConsentContentClass Preferred

This value set includes the FHIR resource types, along with some other important content class codes

Consent.provision.resourceType ResourceType Extensible

Concrete FHIR Resource Types

Consent.provision.code ConsentContentCodes Example

This example value set contains all LOINC code

Consent.provision.data.meaning ConsentDataMeaning Required

How a resource reference is interpreted when testing consent restrictions.

The Consent resource has a reference to a single PolicyBasis. Many organizations will work in a context where multiple different consent regulations and policies apply. In these cases, the single 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 regulations an exception is make in regard to, the RegulatoryBasis may be used.

Policies attached to PolicyBasis should be written using positive language. For an example, a patient wanting to opt-out will be recorded with an opt-in policy where the Consent.provision[0].type indicates "deny".

The following is the general model of Privacy Consent Directives.

There are context setting parameters:

  1. Who - The patientor third-party grantor
  2. What - The data - specific resources are listed, empty list means all data covered by the consent.
  3. Where Required - The location boundary and authority boundary of this consent policy domain.
  4. Where Accountability Lies - The organization or performer
  5. When - The date issued or captured
  6. When - The timeframe for which the Consent applies
  7. How - The actions covered. (such as purposes of use that are covered)
  8. Whom - The actor 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.

For each of these patterns (positive or negative pattern), there can be exceptions. These exceptions are explicitly recorded in the provision element.

The provision structure provides a mechanism for modeling consent rules in a machine-readable and computable way. This is the FHIR Consent's native mechanism for expressing and encoding policy rules within the resource --an alternative to using an external policy language.

The default decision of the consent is stated by the decision attribute (permit or deny) and provisions state the exceptions to the base decision. Each provision may have its own sub-provisions that, in turn, state the exceptions to the rules stated in the parent provision. The following figure depicts this structure:

consent provisions

For example, if the base decision for a consent is permit, the first level of provisions express exceptions to this decision, therefore, the decision when matching these provisions will be a deny. The immediate child provisions to any of these provisions would express exceptions to their deny decision, therefore, their effect, when matched, will be permit.

The provision structure provides a rich mechanism to construct complex rules using logical AND and OR:

  • Provisions at the same level of depth are interpreted as disjunctive (i.e., OR-ed). This means that matching any of the sibling provisions at one level constitutes an exception to the rule stated in the parent provision.
  • Within a provision, the conditions implied by different attributes are interpreted conjunctively (i.e., AND-ed). This means that in order to match the provision, all the attributes must match.
  • Within an attribute, if the attribute is multi-valued, the values are interpreted as disjunctive (i.e., OR-ed). This means that matching any of the values listed for the attribute is sufficient for the attribute to match. For single-valued attributes, matching is simply based on matching the value of the attribute.

If the value of an attribute is a code from a hierarchical code structure (e.g., a Confidentiality code icon), the subsumption relationship between the codes in the hierarchy must be considered in the interpretation of the provision:

  • If the (implicit or explicit) type of the provision is permit, all the subsumed descending codes (that are below the mentioned code in the hierarchy) are also permitted. For example, if a provision permits access to very restricted (V) data, it also permits access to restricted (R) data.
  • If the (implicit or explicit) type of the provision is deny, all the subsuming parent codes (that are above the mentioned code in the hierarchy) are also denied. For example, if a provision denies access to restricted (R) data, it also denies access to very restricted (V) data.

The following figure visualizes this in the course of an example.

consent provisions example

The base decision is a deny to which the first exception, expressed in the first provision, states that during the time period from 01/01/2020 to 31/12/2022 all access by Org A is permitted. In order to match this provision, and therefore for this permit decision to be applicable, the requestor identifier must match Org A AND the current date must be within the range 01/01/2020-31/12/2022.

The subsequent child provisions state exceptions to this base rule. Matching any of these provisions results in a deny since these are exceptions to a permit parent provision.

  • access is denied if the purpose of use is marketing (HMK).
  • access is denied if the requested data is restricted (R). Note that this implies access is also denied if the requested data is very restricted (V).
  • access is denied if the purpose of use is payment (PAY) unless:
    • content type is Claims, OR Claim Responses, OR Accounts.

Tracking changes in consent can be managed in two possible ways:

  1. Submitting changes to the Consent resource and tracking the changes via a versioning server
  2. Submitting a new Consent resource and marking the old resource as inactive

HL7 does not recommend a specific method.

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:

Consent The record of a healthcare consumer’s policy choices or choices made on their behalf by a third party, 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 Directive The legal record of a healthcare consumer's agreement or agreements made on their behalf with a party responsible for enforcing the consumer’s choices or choices made on their behalf by a third party, 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 Form Human 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 Derivative Consent 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 Statement A 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 Registration The 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.
Policy context Any organizational or jurisdictional policies, which may limit the consumer’s policy choices, and which includes the named range of actions allowed
Healthcare Consumer The 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.

The following steps represent the optimal path for searching for a Consent resource.

  1. Request one or more Consent where status=active by Consent.scope (with patient(s), if none specified, get all). Policy will decide how to deal with multiple per patient and how to iterate through (e.g., select most recent).
  2. Locally inspect Consent.provision for base policy acceptance/denial with Consent.policyRule
  3. If policyRule not understandable, refer to Privacy Office
  4. Locally inspect Consent.provision for contexts (e.g., provision.purpose, provision.actor, etc.) as above
  5. Inspect Consent.provision.provision (et.al) for exceptions

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Expression In Common
action token Actions controlled by this rule Consent.provision.action
actor reference Resource for the actor (or group, by role) Consent.provision.actor.reference
(Practitioner, Group, Organization, CareTeam, Device, Patient, PractitionerRole, RelatedPerson)
category token Classification of the consent statement - for indexing/retrieval Consent.category
controller reference Consent Enforcer Consent.controller
(Practitioner, Organization, Patient, HealthcareService)
data reference The actual data reference Consent.provision.data.reference
(Any)
date date When consent was agreed to Consent.date 26 Resources
grantee reference Who is agreeing to the policy and rules Consent.grantee
(Practitioner, Organization, CareTeam, Patient, HealthcareService, PractitionerRole, RelatedPerson)
identifier token Identifier for this record (external references) Consent.identifier 65 Resources
manager reference Consent workflow management Consent.manager
(Practitioner, Organization, Patient, HealthcareService)
patient reference Who the consent applies to Consent.subject.where(resolve() is Patient)
(Patient)
65 Resources
period date Timeframe for this rule Consent.provision.period
purpose token Context of activities covered by this rule Consent.provision.purpose
security-label token Security Labels that define affected resources Consent.provision.securityLabel
source-reference reference Search by reference to a Consent, DocumentReference, Contract or QuestionnaireResponse Consent.sourceReference
(Consent, Contract, QuestionnaireResponse, DocumentReference)
status token draft | active | inactive | entered-in-error | unknown Consent.status
subject reference Who the consent applies to Consent.subject
(Practitioner, Group, Patient)
verified token Has been verified Consent.verification.verified
verified-date date When consent verified Consent.verification.verificationDate