FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon

6.5 Resource Permission - Content

Security icon Work GroupMaturity Level: 1 Trial UseSecurity Category: Not Classified Compartments: No defined compartments

Permission resource holds access rules for a given data and context.

A declarative attribute-based access control policy statement to express policies, refrains, and obligations. The Permission resource may be used to record the access control constraints under which data were collected or shared.

Note to Implementers: This resource is under-development, consult the FHIR Permission Confluence page icon for development details, plans, and use-case analysis.

The Permission resource may in the future be used as a provision within a Consent resource.

The Permission resource is intended to be used where Consent resource does not apply or where exposure of the full Consent details are not needed or desired. The Permission resource may be used to express transactional access control rules that may be derived from a Consent. The Permission resource is intended to be used when access control policy rules need to be expressed in an interoperable way other than Consent. Examples are use-cases that are not involving a patient subject. The Permission resource should not be used in a conflicting way with security labels in the .meta.security element.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Permission TU DomainResource Access Rules

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ 0..* Identifier Business Identifier for permission

... status Σ 1..1 code active | entered-in-error | draft | rejected
Binding: Permission Status (Required)
... asserter Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson | HealthcareService) The person or entity that asserts the permission
... validity Σ 0..1 Period The period in which the permission is active
... justification Σ 0..1 BackboneElement The asserted justification for using the data
.... basis Σ 0..* CodeableConcept The regulatory grounds upon which this Permission builds
Binding: Consent PolicyRule Codes (Example)

.... evidence Σ 0..* Reference(Any) Justifing rational

... combining ?!Σ 1..1 code deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
Binding: Permission Rule Combining (Required)
... rule Σ 0..* BackboneElement Constraints to the Permission
This repeating element order: The order of the rules processing is defined in rule combining selected in .combining element.
.... type ?!Σ 0..1 code deny | permit
Binding: Consent Provision Type (Required)
.... data Σ 0..* BackboneElement The selection criteria to identify data that is within scope of this provision

..... resource Σ 0..* BackboneElement Explicit FHIR Resource references

...... meaning Σ 1..1 code instance | related | dependents | authoredby
Binding: Consent Data Meaning (Required)
...... reference Σ 1..1 Reference(Any) The actual data reference
..... security Σ 0..* Coding Security tag code on .meta.security

..... period Σ 0..1 Period Timeframe encompasing data create/update
..... expression Σ 0..1 Expression Expression identifying the data
.... activity Σ 0..* BackboneElement A description or definition of which activities are allowed to be done on the data

..... actor 0..* BackboneElement Who|what is controlled by this rule

...... role 0..1 CodeableConcept How the actor is involved
Binding: Participation Role Type (Extensible)
...... reference Σ 0..1 Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole | DeviceDefinition | Group | HealthcareService) Authorized actor(s)
..... action Σ 0..* CodeableConcept Actions controlled by this rule
Binding: Type Restful Interaction (Preferred)

..... purpose Σ 0..* CodeableConcept The purpose for which the permission is given
Binding: PurposeOfUse icon (Preferred)

.... limit 0..* BackboneElement What limits apply to the use of the data

..... control Σ 0..* CodeableConcept What coded limits apply to the use of the data
Binding: SecurityControlObservationValue icon (Preferred)

..... tag Σ 0..* Coding The sensitivity codes that must be removed from the data
Binding: InformationSensitivityPolicy icon (Preferred)

..... element Σ 0..* string What data elements that must be removed from the data


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Permission (DomainResource)A unique identifier assigned to this permisssionidentifier : Identifier [0..*]Statusstatus : code [1..1] « null (Strength=Required)PermissionStatus! »The person or entity that asserts the permissionasserter : Reference [0..1] « Practitioner|PractitionerRole| Organization|CareTeam|Patient|RelatedPerson|HealthcareService »The date that permission was asserteddate : dateTime [0..*]The period in which the permission is activevalidity : Period [0..1]Defines a procedure for arriving at an access decision given the set of rules (this element modifies the meaning of other elements)combining : code [1..1] « null (Strength=Required)PermissionRuleCombining! »JustificationThis would be a codeableconcept, or a coding, which can be constrained to , for example, the 6 grounds for processing in GDPRbasis : CodeableConcept [0..*] « null (Strength=Example)ConsentPolicyRuleCodes?? »Justifing rationalevidence : Reference [0..*] « Any »Ruledeny | permit (this element modifies the meaning of other elements)type : code [0..1] « null (Strength=Required)ConsentProvisionType! »DataThe data in scope are those with the given codes present in that data .meta.security elementsecurity : Coding [0..*]Clinical or Operational Relevant period of time that bounds the data controlled by this ruleperiod : Period [0..1]Used when other data selection elements are insufficientexpression : Expression [0..1]ResourceHow 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 »ActivityActions controlled by this Ruleaction : CodeableConcept [0..*] « null (Strength=Preferred)TypeRestfulInteraction? »The purpose for which the permission is givenpurpose : CodeableConcept [0..*] « null (Strength=Preferred)PurposeOfUse? »ActorHow the individual is involved in the activity that is described in the rulerole : CodeableConcept [0..1] « null (Strength=Extensible)ParticipationRoleType+ »The actor(s) authorized for the defined activityreference : Reference [0..1] « Device|Group|CareTeam|Organization| Patient|Practitioner|RelatedPerson|PractitionerRole| DeviceDefinition|Group|HealthcareService »LimitOne or more coded restriction such as a refrain or obligationcontrol : CodeableConcept [0..*] « null (Strength=Preferred)SecurityControlObservationVal...? »When this rule authorized data use, any data that is tagged with the code here must be redacted from the data provided for that authorized usetag : Coding [0..*] « null (Strength=Preferred)InformationSensitivityPolicy? »When this rule authorized data use, the data at the path indicated here, must be redacted from the authorized data provided for that authorized useelement : string [0..*]The asserted justification for using the datajustification[0..1]Explicit FHIR Resource referencesresource[0..*]A description or definition of which activities are allowed to be done on the datadata[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..*]A description or definition of which activities are allowed to be done on the dataactivity[0..*]What restrictions must be applied to the use of the data by the actorlimit[0..*]A set of rulesrule[0..*]

XML Template

<Permission xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Business Identifier for permission --></identifier>
 <status value="[code]"/><!-- 1..1 active | entered-in-error | draft | rejected -->
 <asserter><!-- 0..1 Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) The person or entity that asserts the permission --></asserter>
 <date value="[dateTime]"/><!-- 0..* The date that permission was asserted -->
 <validity><!-- 0..1 Period The period in which the permission is active --></validity>
 <justification>  <!-- 0..1 The asserted justification for using the data -->
  <basis><!-- 0..* CodeableConcept The regulatory grounds upon which this Permission builds --></basis>
  <evidence><!-- 0..* Reference(Any) Justifing rational --></evidence>
 </justification>
 <combining value="[code]"/><!-- 1..1 deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny -->
 <rule>  <!-- 0..* Constraints to the Permission -->
  <type value="[code]"/><!-- 0..1 deny | permit -->
  <data>  <!-- 0..* The selection criteria to identify data that is within scope of this provision -->
   <resource>  <!-- 0..* Explicit FHIR Resource references -->
    <meaning value="[code]"/><!-- 1..1 instance | related | dependents | authoredby -->
    <reference><!-- 1..1 Reference(Any) The actual data reference --></reference>
   </resource>
   <security><!-- 0..* Coding Security tag code on .meta.security --></security>
   <period><!-- 0..1 Period Timeframe encompasing data create/update --></period>
   <expression><!-- 0..1 Expression Expression identifying the data --></expression>
  </data>
  <activity>  <!-- 0..* A description or definition of which activities are allowed to be done on the data -->
   <actor>  <!-- 0..* Who|what is controlled by this rule -->
    <role><!-- 0..1 CodeableConcept How the actor is involved --></role>
    <reference><!-- 0..1 Reference(CareTeam|Device|DeviceDefinition|Group|Group|
      HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
      RelatedPerson) Authorized actor(s) --></reference>
   </actor>
   <action><!-- 0..* CodeableConcept Actions controlled by this rule --></action>
   <purpose><!-- 0..* CodeableConcept The purpose for which the permission is given icon --></purpose>
  </activity>
  <limit>  <!-- 0..* What limits apply to the use of the data -->
   <control><!-- 0..* CodeableConcept What coded limits apply to the use of the data icon --></control>
   <tag><!-- 0..* Coding The sensitivity codes that must be removed from the data icon --></tag>
   <element value="[string]"/><!-- 0..* What data elements that must be removed from the data -->
  </limit>
 </rule>
</Permission>

JSON Template

{doco
  "resourceType" : "Permission",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Business Identifier for permission
  "status" : "<code>", // R!  active | entered-in-error | draft | rejected
  "asserter" : { Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) }, // The person or entity that asserts the permission
  "date" : ["<dateTime>"], // The date that permission was asserted
  "validity" : { Period }, // The period in which the permission is active
  "justification" : { // The asserted justification for using the data
    "basis" : [{ CodeableConcept }], // The regulatory grounds upon which this Permission builds
    "evidence" : [{ Reference(Any) }] // Justifing rational
  },
  "combining" : "<code>", // R!  deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
  "rule" : [{ // Constraints to the Permission
    "type" : "<code>", // deny | permit
    "data" : [{ // The selection criteria to identify data that is within scope of this provision
      "resource" : [{ // Explicit FHIR Resource references
        "meaning" : "<code>", // R!  instance | related | dependents | authoredby
        "reference" : { Reference(Any) } // R!  The actual data reference
      }],
      "security" : [{ Coding }], // Security tag code on .meta.security
      "period" : { Period }, // Timeframe encompasing data create/update
      "expression" : { Expression } // Expression identifying the data
    }],
    "activity" : [{ // A description or definition of which activities are allowed to be done on the data
      "actor" : [{ // Who|what is controlled by this rule
        "role" : { CodeableConcept }, // How the actor is involved
        "reference" : { Reference(CareTeam|Device|DeviceDefinition|Group|Group|
      HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
      RelatedPerson) } // Authorized actor(s)
      }],
      "action" : [{ CodeableConcept }], // Actions controlled by this rule
      "purpose" : [{ CodeableConcept }] // The purpose for which the permission is given icon
    }],
    "limit" : [{ // What limits apply to the use of the data
      "control" : [{ CodeableConcept }], // What coded limits apply to the use of the data icon
      "tag" : [{ Coding }], // The sensitivity codes that must be removed from the data icon
      "element" : ["<string>"] // What data elements that must be removed from the data
    }]
  }]
}

Turtle Template

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


[ a fhir:Permission;
  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..* Business Identifier for permission
  fhir:status [ code ] ; # 1..1 active | entered-in-error | draft | rejected
  fhir:asserter [ Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ; # 0..1 The person or entity that asserts the permission
  fhir:date  ( [ dateTime ] ... ) ; # 0..* The date that permission was asserted
  fhir:validity [ Period ] ; # 0..1 The period in which the permission is active
  fhir:justification [ # 0..1 The asserted justification for using the data
    fhir:basis  ( [ CodeableConcept ] ... ) ; # 0..* The regulatory grounds upon which this Permission builds
    fhir:evidence  ( [ Reference(Any) ] ... ) ; # 0..* Justifing rational
  ] ;
  fhir:combining [ code ] ; # 1..1 deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
  fhir:rule ( [ # 0..* Constraints to the Permission
    fhir:type [ code ] ; # 0..1 deny | permit
    fhir:data ( [ # 0..* The selection criteria to identify data that is within scope of this provision
      fhir:resource ( [ # 0..* Explicit FHIR Resource references
        fhir:meaning [ code ] ; # 1..1 instance | related | dependents | authoredby
        fhir:reference [ Reference(Any) ] ; # 1..1 The actual data reference
      ] ... ) ;
      fhir:security  ( [ Coding ] ... ) ; # 0..* Security tag code on .meta.security
      fhir:period [ Period ] ; # 0..1 Timeframe encompasing data create/update
      fhir:expression [ Expression ] ; # 0..1 Expression identifying the data
    ] ... ) ;
    fhir:activity ( [ # 0..* A description or definition of which activities are allowed to be done on the data
      fhir:actor ( [ # 0..* Who|what is controlled by this rule
        fhir:role [ CodeableConcept ] ; # 0..1 How the actor is involved
        fhir:reference [ Reference(CareTeam|Device|DeviceDefinition|Group|Group|HealthcareService|Organization|
  Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Authorized actor(s)
      ] ... ) ;
      fhir:action  ( [ CodeableConcept ] ... ) ; # 0..* Actions controlled by this rule
      fhir:purpose  ( [ CodeableConcept ] ... ) ; # 0..* The purpose for which the permission is given
    ] ... ) ;
    fhir:limit ( [ # 0..* What limits apply to the use of the data
      fhir:control  ( [ CodeableConcept ] ... ) ; # 0..* What coded limits apply to the use of the data
      fhir:tag  ( [ Coding ] ... ) ; # 0..* The sensitivity codes that must be removed from the data
      fhir:element  ( [ string ] ... ) ; # 0..* What data elements that must be removed from the data
    ] ... ) ;
  ] ... ) ;
]

Changes from both R4 and R4B

This resource did not exist in Release R4

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Permission TU DomainResource Access Rules

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ 0..* Identifier Business Identifier for permission

... status Σ 1..1 code active | entered-in-error | draft | rejected
Binding: Permission Status (Required)
... asserter Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson | HealthcareService) The person or entity that asserts the permission
... validity Σ 0..1 Period The period in which the permission is active
... justification Σ 0..1 BackboneElement The asserted justification for using the data
.... basis Σ 0..* CodeableConcept The regulatory grounds upon which this Permission builds
Binding: Consent PolicyRule Codes (Example)

.... evidence Σ 0..* Reference(Any) Justifing rational

... combining ?!Σ 1..1 code deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
Binding: Permission Rule Combining (Required)
... rule Σ 0..* BackboneElement Constraints to the Permission
This repeating element order: The order of the rules processing is defined in rule combining selected in .combining element.
.... type ?!Σ 0..1 code deny | permit
Binding: Consent Provision Type (Required)
.... data Σ 0..* BackboneElement The selection criteria to identify data that is within scope of this provision

..... resource Σ 0..* BackboneElement Explicit FHIR Resource references

...... meaning Σ 1..1 code instance | related | dependents | authoredby
Binding: Consent Data Meaning (Required)
...... reference Σ 1..1 Reference(Any) The actual data reference
..... security Σ 0..* Coding Security tag code on .meta.security

..... period Σ 0..1 Period Timeframe encompasing data create/update
..... expression Σ 0..1 Expression Expression identifying the data
.... activity Σ 0..* BackboneElement A description or definition of which activities are allowed to be done on the data

..... actor 0..* BackboneElement Who|what is controlled by this rule

...... role 0..1 CodeableConcept How the actor is involved
Binding: Participation Role Type (Extensible)
...... reference Σ 0..1 Reference(Device | Group | CareTeam | Organization | Patient | Practitioner | RelatedPerson | PractitionerRole | DeviceDefinition | Group | HealthcareService) Authorized actor(s)
..... action Σ 0..* CodeableConcept Actions controlled by this rule
Binding: Type Restful Interaction (Preferred)

..... purpose Σ 0..* CodeableConcept The purpose for which the permission is given
Binding: PurposeOfUse icon (Preferred)

.... limit 0..* BackboneElement What limits apply to the use of the data

..... control Σ 0..* CodeableConcept What coded limits apply to the use of the data
Binding: SecurityControlObservationValue icon (Preferred)

..... tag Σ 0..* Coding The sensitivity codes that must be removed from the data
Binding: InformationSensitivityPolicy icon (Preferred)

..... element Σ 0..* string What data elements that must be removed from the data


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Permission (DomainResource)A unique identifier assigned to this permisssionidentifier : Identifier [0..*]Statusstatus : code [1..1] « null (Strength=Required)PermissionStatus! »The person or entity that asserts the permissionasserter : Reference [0..1] « Practitioner|PractitionerRole| Organization|CareTeam|Patient|RelatedPerson|HealthcareService »The date that permission was asserteddate : dateTime [0..*]The period in which the permission is activevalidity : Period [0..1]Defines a procedure for arriving at an access decision given the set of rules (this element modifies the meaning of other elements)combining : code [1..1] « null (Strength=Required)PermissionRuleCombining! »JustificationThis would be a codeableconcept, or a coding, which can be constrained to , for example, the 6 grounds for processing in GDPRbasis : CodeableConcept [0..*] « null (Strength=Example)ConsentPolicyRuleCodes?? »Justifing rationalevidence : Reference [0..*] « Any »Ruledeny | permit (this element modifies the meaning of other elements)type : code [0..1] « null (Strength=Required)ConsentProvisionType! »DataThe data in scope are those with the given codes present in that data .meta.security elementsecurity : Coding [0..*]Clinical or Operational Relevant period of time that bounds the data controlled by this ruleperiod : Period [0..1]Used when other data selection elements are insufficientexpression : Expression [0..1]ResourceHow 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 »ActivityActions controlled by this Ruleaction : CodeableConcept [0..*] « null (Strength=Preferred)TypeRestfulInteraction? »The purpose for which the permission is givenpurpose : CodeableConcept [0..*] « null (Strength=Preferred)PurposeOfUse? »ActorHow the individual is involved in the activity that is described in the rulerole : CodeableConcept [0..1] « null (Strength=Extensible)ParticipationRoleType+ »The actor(s) authorized for the defined activityreference : Reference [0..1] « Device|Group|CareTeam|Organization| Patient|Practitioner|RelatedPerson|PractitionerRole| DeviceDefinition|Group|HealthcareService »LimitOne or more coded restriction such as a refrain or obligationcontrol : CodeableConcept [0..*] « null (Strength=Preferred)SecurityControlObservationVal...? »When this rule authorized data use, any data that is tagged with the code here must be redacted from the data provided for that authorized usetag : Coding [0..*] « null (Strength=Preferred)InformationSensitivityPolicy? »When this rule authorized data use, the data at the path indicated here, must be redacted from the authorized data provided for that authorized useelement : string [0..*]The asserted justification for using the datajustification[0..1]Explicit FHIR Resource referencesresource[0..*]A description or definition of which activities are allowed to be done on the datadata[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..*]A description or definition of which activities are allowed to be done on the dataactivity[0..*]What restrictions must be applied to the use of the data by the actorlimit[0..*]A set of rulesrule[0..*]

XML Template

<Permission xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Business Identifier for permission --></identifier>
 <status value="[code]"/><!-- 1..1 active | entered-in-error | draft | rejected -->
 <asserter><!-- 0..1 Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) The person or entity that asserts the permission --></asserter>
 <date value="[dateTime]"/><!-- 0..* The date that permission was asserted -->
 <validity><!-- 0..1 Period The period in which the permission is active --></validity>
 <justification>  <!-- 0..1 The asserted justification for using the data -->
  <basis><!-- 0..* CodeableConcept The regulatory grounds upon which this Permission builds --></basis>
  <evidence><!-- 0..* Reference(Any) Justifing rational --></evidence>
 </justification>
 <combining value="[code]"/><!-- 1..1 deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny -->
 <rule>  <!-- 0..* Constraints to the Permission -->
  <type value="[code]"/><!-- 0..1 deny | permit -->
  <data>  <!-- 0..* The selection criteria to identify data that is within scope of this provision -->
   <resource>  <!-- 0..* Explicit FHIR Resource references -->
    <meaning value="[code]"/><!-- 1..1 instance | related | dependents | authoredby -->
    <reference><!-- 1..1 Reference(Any) The actual data reference --></reference>
   </resource>
   <security><!-- 0..* Coding Security tag code on .meta.security --></security>
   <period><!-- 0..1 Period Timeframe encompasing data create/update --></period>
   <expression><!-- 0..1 Expression Expression identifying the data --></expression>
  </data>
  <activity>  <!-- 0..* A description or definition of which activities are allowed to be done on the data -->
   <actor>  <!-- 0..* Who|what is controlled by this rule -->
    <role><!-- 0..1 CodeableConcept How the actor is involved --></role>
    <reference><!-- 0..1 Reference(CareTeam|Device|DeviceDefinition|Group|Group|
      HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
      RelatedPerson) Authorized actor(s) --></reference>
   </actor>
   <action><!-- 0..* CodeableConcept Actions controlled by this rule --></action>
   <purpose><!-- 0..* CodeableConcept The purpose for which the permission is given icon --></purpose>
  </activity>
  <limit>  <!-- 0..* What limits apply to the use of the data -->
   <control><!-- 0..* CodeableConcept What coded limits apply to the use of the data icon --></control>
   <tag><!-- 0..* Coding The sensitivity codes that must be removed from the data icon --></tag>
   <element value="[string]"/><!-- 0..* What data elements that must be removed from the data -->
  </limit>
 </rule>
</Permission>

JSON Template

{doco
  "resourceType" : "Permission",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Business Identifier for permission
  "status" : "<code>", // R!  active | entered-in-error | draft | rejected
  "asserter" : { Reference(CareTeam|HealthcareService|Organization|Patient|
   Practitioner|PractitionerRole|RelatedPerson) }, // The person or entity that asserts the permission
  "date" : ["<dateTime>"], // The date that permission was asserted
  "validity" : { Period }, // The period in which the permission is active
  "justification" : { // The asserted justification for using the data
    "basis" : [{ CodeableConcept }], // The regulatory grounds upon which this Permission builds
    "evidence" : [{ Reference(Any) }] // Justifing rational
  },
  "combining" : "<code>", // R!  deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
  "rule" : [{ // Constraints to the Permission
    "type" : "<code>", // deny | permit
    "data" : [{ // The selection criteria to identify data that is within scope of this provision
      "resource" : [{ // Explicit FHIR Resource references
        "meaning" : "<code>", // R!  instance | related | dependents | authoredby
        "reference" : { Reference(Any) } // R!  The actual data reference
      }],
      "security" : [{ Coding }], // Security tag code on .meta.security
      "period" : { Period }, // Timeframe encompasing data create/update
      "expression" : { Expression } // Expression identifying the data
    }],
    "activity" : [{ // A description or definition of which activities are allowed to be done on the data
      "actor" : [{ // Who|what is controlled by this rule
        "role" : { CodeableConcept }, // How the actor is involved
        "reference" : { Reference(CareTeam|Device|DeviceDefinition|Group|Group|
      HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
      RelatedPerson) } // Authorized actor(s)
      }],
      "action" : [{ CodeableConcept }], // Actions controlled by this rule
      "purpose" : [{ CodeableConcept }] // The purpose for which the permission is given icon
    }],
    "limit" : [{ // What limits apply to the use of the data
      "control" : [{ CodeableConcept }], // What coded limits apply to the use of the data icon
      "tag" : [{ Coding }], // The sensitivity codes that must be removed from the data icon
      "element" : ["<string>"] // What data elements that must be removed from the data
    }]
  }]
}

Turtle Template

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


[ a fhir:Permission;
  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..* Business Identifier for permission
  fhir:status [ code ] ; # 1..1 active | entered-in-error | draft | rejected
  fhir:asserter [ Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ; # 0..1 The person or entity that asserts the permission
  fhir:date  ( [ dateTime ] ... ) ; # 0..* The date that permission was asserted
  fhir:validity [ Period ] ; # 0..1 The period in which the permission is active
  fhir:justification [ # 0..1 The asserted justification for using the data
    fhir:basis  ( [ CodeableConcept ] ... ) ; # 0..* The regulatory grounds upon which this Permission builds
    fhir:evidence  ( [ Reference(Any) ] ... ) ; # 0..* Justifing rational
  ] ;
  fhir:combining [ code ] ; # 1..1 deny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
  fhir:rule ( [ # 0..* Constraints to the Permission
    fhir:type [ code ] ; # 0..1 deny | permit
    fhir:data ( [ # 0..* The selection criteria to identify data that is within scope of this provision
      fhir:resource ( [ # 0..* Explicit FHIR Resource references
        fhir:meaning [ code ] ; # 1..1 instance | related | dependents | authoredby
        fhir:reference [ Reference(Any) ] ; # 1..1 The actual data reference
      ] ... ) ;
      fhir:security  ( [ Coding ] ... ) ; # 0..* Security tag code on .meta.security
      fhir:period [ Period ] ; # 0..1 Timeframe encompasing data create/update
      fhir:expression [ Expression ] ; # 0..1 Expression identifying the data
    ] ... ) ;
    fhir:activity ( [ # 0..* A description or definition of which activities are allowed to be done on the data
      fhir:actor ( [ # 0..* Who|what is controlled by this rule
        fhir:role [ CodeableConcept ] ; # 0..1 How the actor is involved
        fhir:reference [ Reference(CareTeam|Device|DeviceDefinition|Group|Group|HealthcareService|Organization|
  Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Authorized actor(s)
      ] ... ) ;
      fhir:action  ( [ CodeableConcept ] ... ) ; # 0..* Actions controlled by this rule
      fhir:purpose  ( [ CodeableConcept ] ... ) ; # 0..* The purpose for which the permission is given
    ] ... ) ;
    fhir:limit ( [ # 0..* What limits apply to the use of the data
      fhir:control  ( [ CodeableConcept ] ... ) ; # 0..* What coded limits apply to the use of the data
      fhir:tag  ( [ Coding ] ... ) ; # 0..* The sensitivity codes that must be removed from the data
      fhir:element  ( [ string ] ... ) ; # 0..* What data elements that must be removed from the data
    ] ... ) ;
  ] ... ) ;
]

Changes from both R4 and R4B

This resource did not exist in Release R4

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
Permission.status PermissionStatus Required

Codes identifying the lifecycle stage of a product.

Permission.justification.basis ConsentPolicyRuleCodes Example

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

Permission.combining PermissionRuleCombining Required

Codes identifying rule combining algorithm.

Permission.rule.type ConsentProvisionType Required

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

Permission.rule.data.resource.meaning ConsentDataMeaning Required

How a resource reference is interpreted when testing consent restrictions.

Permission.rule.activity.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.

Permission.rule.activity.action TypeRestfulInteraction Preferred

Operations supported by REST at the type or instance level.

Permission.rule.activity.purpose PurposeOfUse icon Preferred

Supports communication of purpose of use at a general level.

Permission.rule.limit.control SecurityControlObservationValue icon Preferred

Security observation values used to indicate security control metadata. V:SecurityControl is the union of V:SecurityPolicy, V:ObligationPolicy, V:RefrainPolicy, V:PurposeOfUse, and V:GeneralPurpose of Use, V:PrivacyMark, V:SecurityLabelMark, and V:ControlledUnclassifiedInformation used to populate the SecurityControlObservationValue attribute in order to convey one or more nonhierarchical security control metadata dictating handling caveats including, purpose of use, obligation policy, refrain policy, dissemination controls and privacy marks to which a custodian or receiver is required to comply.

Permission.rule.limit.tag InformationSensitivityPolicy icon Preferred

Sensitivity codes are not useful for interoperability outside of a policy domain because sensitivity policies are typically localized and vary drastically across policy domains even for the same information category because of differing organizational business rules, security policies, and jurisdictional requirements. For example, an "employee" sensitivity code would make little sense for use outside of a policy domain. "Taboo" would rarely be useful outside of a policy domain unless there are jurisdictional requirements requiring that a provider disclose sensitive information to a patient directly.

Sensitivity codes may be more appropriate in a legacy system's Master Files in order to notify those who access a patient's orders and observations about the sensitivity policies that apply. Newer systems may have a security engine that uses a sensitivity policy's criteria directly. The specializable Sensitivity Act.code may be useful in some scenarious if used in combination with a sensitivity identifier and/or Act.title.

Each .rule is evaulated within the combining rule identified in the .combining element.

Within a .rule any repititions of the .data element are in an OR relationship. That is to say that the data identified by the rule is all the data identified by all repititions of .data. Thus to identify one rule that applies to data tagged with STD and data that is tagged with HIV, one would repeat this at the .data level.

Within a .rule any repititions of the .activity element are in an OR relationship. That is to say that the rule applies to all the repititions of .activity. Thus to identify one rule that applies to both TREAT and HOPERAT, one would have one rule with repititions at the .activity level.

Within a .rule all repititions of the .limit all apply to the rule. That is to say if there are multiple limits, and the rule permits the activity, then all the identified limits are applied to that authorized activity.

Within the .data element, all elements and all repetitions of elements, are in an AND relationship. Thus to select data that has both STD and HIV one puts both into one .rule. To have different rules for STD from HIV, one would need to have two .rule elements. To have a rule that applies to both, those that have just STD and just HIV, this repitition may also be done at the data level as described above.

Within the .activity element, all elements and all repetitions of elements, are in an AND relationship. Thus to control an actity that is covering purpose of both TREAT and HOPERAT, one rule with an .activity .purpose holding both TREAT and HOPERAT can define that rule. However this will not cover activities covering only TREAT, for that repeat at the .activity with just a .purpose of TREAT.

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
identifier token The unique id for a particular permission Permission.identifier
status token active | entered-in-error | draft | rejected Permission.status