HL7 FHIR Implementation Guide: Data Access Policies
1.0.0-current - International flag

HL7 FHIR Implementation Guide: Data Access Policies, published by HL7 International / Security. This guide is not an authorized publication; it is the continuous build for version 1.0.0-current built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/data-access-policies/ and changes regularly. See the Directory of published versions

Resource: Permission - Detailed Descriptions

Page standards status: Trial-use Maturity Level: 1

Definitions for the Permission resource

Guidance on how to interpret the contents of this table can be foundhere

0. Permission
Definition

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


A resource that includes narrative, extensions, and contained resources.

ShortAccess RulesA resource with narrative, extensions, and contained resources
Control0..*
Is Modifierfalse
Must Supportfalse
Summaryfalse
Invariantsdom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource (contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty())
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated (contained.meta.versionId.empty() and contained.meta.lastUpdated.empty())
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
dom-6: A resource should have narrative for robust management (text.`div`.exists())
2. Permission.id
Definition

The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

ShortLogical id of this artifact
Comments

Within the context of the FHIR RESTful interactions, the resource has an id except for cases like the create and conditional update. Otherwise, the use of the resouce id depends on the given use case.

Control0..1
Typeid
Is Modifierfalse
Must Supportfalse
Summarytrue
4. Permission.meta
Definition

The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

ShortMetadata about the resource
Control0..1
TypeMeta
Is Modifierfalse
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
6. Permission.implicitRules
Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

ShortA set of rules under which this content was created
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of its narrative along with other profiles, value sets, etc.

Control0..1
Typeuri
Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies its meaning or interpretation
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
8. Permission.language
Definition

The base language in which the resource is written.

ShortLanguage of the resource content
Comments

Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

Control0..1
BindingThe codes SHALL be taken from AllLanguageshttp://hl7.org/fhir/ValueSet/all-languages|6.0.0-ballot3
(required to http://hl7.org/fhir/ValueSet/all-languages|6.0.0-ballot3)

IETF language tag for a human language

Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supportfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
10. Permission.text
Definition

A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

ShortText summary of the resource, for human interpretation
Comments

Contained resources do not have a narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

Control0..1
This element is affected by the following invariants: dom-6
TypeNarrative
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate Namesnarrative, html, xhtml, display
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
12. Permission.contained
Definition

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.

ShortContained, inline Resources
Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags in their meta elements, but SHALL NOT have security labels. Contained resources may be a resource type defined in the FHIR specification, or an additional resource.

Control0..*
This element is affected by the following invariants: dom-2, dom-4, dom-3, dom-5
TypeResource
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate Namesinline resources, anonymous resources, contained resources
14. Permission.extension
Definition

May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
SlicingThis element introduces a set of slices on Permission.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 16. Permission.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
    Must Supportfalse
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    SlicingThis element introduces a set of slices on Permission.modifierExtension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 18. Permission.identifier
      Definition

      A unique identifier assigned to this permission.

      ShortBusiness Identifier for permission
      NoteThis is a business identifier, not a resource identifier (see discussion)
      Control0..*
      TypeIdentifier
      Summarytrue
      Requirements

      Allows permission to be distinguished and referenced.

      20. Permission.status
      Definition

      Status.

      Shortactive | entered-in-error | draft | rejected
      Control1..1
      BindingThe codes SHALL be taken from PermissionStatusVShttp://hl7.org/fhir/ValueSet/permission-status-vs
      (required to http://hl7.org/fhir/ValueSet/permission-status-vs)

      Codes identifying the lifecycle stage of a product.

      Typecode
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      22. Permission.asserter
      Definition

      The person or entity that asserts the permission.

      ShortThe person or entity that asserts the permission
      Control0..1
      TypeReference(Practitioner, PractitionerRole, Organization, CareTeam, Patient, RelatedPerson, HealthcareService)
      Summarytrue
      24. Permission.date
      Definition

      The date that permission was asserted.

      ShortThe date that permission was asserted
      Control0..*
      TypedateTime
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Alternate Namesclass
      26. Permission.validity
      Definition

      The period in which the permission is active.

      ShortThe period in which the permission is active
      Control0..1
      TypePeriod
      Summarytrue
      Alternate Namestype
      28. Permission.justification
      Definition

      The asserted justification for using the data.

      ShortThe asserted justification for using the data
      Control0..1
      TypeBackboneElement
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
      30. Permission.justification.id
      Definition

      Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

      ShortUnique id for inter-element referencing
      Control0..1
      This element is affected by the following invariants: ele-1
      Typeidstring
      Is Modifierfalse
      XML FormatIn the XML format, this property is represented as an attribute.
      Summaryfalse
      32. Permission.justification.extension
      Definition

      May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

      ShortAdditional content defined by implementations
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..*
      TypeExtension
      Is Modifierfalse
      Summaryfalse
      Alternate Namesextensions, user content
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      SlicingThis element introduces a set of slices on Permission.justification.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 34. Permission.justification.modifierExtension
        Definition

        May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

        Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

        ShortExtensions that cannot be ignored even if unrecognized
        Comments

        There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

        Control0..*
        TypeExtension
        Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
        Summarytrue
        Requirements

        Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

        Alternate Namesextensions, user content, modifiers
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        36. Permission.justification.basis
        Definition

        This would be a codeableconcept, or a coding, for example, the 6 grounds for processing in GDPR.

        ShortThe regulatory grounds upon which this Permission builds
        Control0..*
        BindingFor example codes, see ConsentPolicyRuleCodeshttp://hl7.org/fhir/ValueSet/consent-policy
        (example to http://hl7.org/fhir/ValueSet/consent-policy)

        Regulatory policy examples

        TypeCodeableConcept
        Summarytrue
        38. Permission.justification.evidence
        ShortJustifing rational
        Comments

        While any resource may be used, DocumentReference, Consent, PlanDefinition, and Contract would be most frequent

        Control0..*
        TypeReference(Resource)
        Summarytrue
        40. Permission.combining
        Definition

        Defines a procedure for arriving at an access decision given the set of rules.

        Shortdeny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
        Comments

        see XACML Combining Rules

        Control1..1
        BindingThe codes SHALL be taken from PermissionRuleCombiningVShttp://hl7.org/fhir/ValueSet/permission-rule-combining-vs
        (required to http://hl7.org/fhir/ValueSet/permission-rule-combining-vs)

        How the rules are to be combined.

        Typecode
        Is Modifiertrue because Defines how the rules are to be combined.
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        42. Permission.rule
        Definition

        A set of rules.

        ShortConstraints to the Permission
        Comments

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

        Control0..*
        TypeBackboneElement
        Summarytrue
        Invariantsprm-1: If the import element is populated then the type, data, and activity shall not be populated (import.exists() implies type.exists().not() and data.exists().not() and activity.exists().not())
        ele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
        44. Permission.rule.id
        Definition

        Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

        ShortUnique id for inter-element referencing
        Control0..1
        This element is affected by the following invariants: ele-1
        Typeidstring
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        46. Permission.rule.extension
        Definition

        May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

        ShortAdditional content defined by implementations
        Comments

        There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

        Control0..*
        TypeExtension
        Is Modifierfalse
        Summaryfalse
        Alternate Namesextensions, user content
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        SlicingThis element introduces a set of slices on Permission.rule.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
        • value @ url
        • 48. Permission.rule.modifierExtension
          Definition

          May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

          Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

          ShortExtensions that cannot be ignored even if unrecognized
          Comments

          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

          Control0..*
          TypeExtension
          Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
          Summarytrue
          Requirements

          Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

          Alternate Namesextensions, user content, modifiers
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          50. Permission.rule.import
          Definition

          This rule is expressed in another Permission resource.

          ShortReference to a Permission
          Control0..1
          This element is affected by the following invariants: prm-1
          TypeReference(Permission)
          Is Modifierfalse
          Summarytrue
          52. Permission.rule.type
          Definition

          deny | permit.

          Shortdeny | permit
          Control0..1
          This element is affected by the following invariants: prm-1
          BindingThe codes SHALL be taken from ConsentProvisionTypehttp://hl7.org/fhir/ValueSet/consent-provision-type
          (required to http://hl7.org/fhir/ValueSet/consent-provision-type)

          How a rule statement is applied.

          Typecode
          Is Modifiertrue because Sets the context for the meaning of the rules.
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          Summarytrue
          54. Permission.rule.data
          Definition

          A description or definition of which activities are allowed to be done on the data.

          ShortThe selection criteria to identify data that is within scope of this provision
          Comments

          Within a .rule any repetitions 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 repetitions 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 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 repetition may also be done at the data level as described above.

          Control0..*
          This element is affected by the following invariants: prm-1
          TypeBackboneElement
          Summarytrue
          Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
          56. Permission.rule.data.id
          Definition

          Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

          ShortUnique id for inter-element referencing
          Control0..1
          This element is affected by the following invariants: ele-1
          Typeidstring
          Is Modifierfalse
          XML FormatIn the XML format, this property is represented as an attribute.
          Summaryfalse
          58. Permission.rule.data.extension
          Definition

          May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

          ShortAdditional content defined by implementations
          Comments

          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

          Control0..*
          TypeExtension
          Is Modifierfalse
          Summaryfalse
          Alternate Namesextensions, user content
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          SlicingThis element introduces a set of slices on Permission.rule.data.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
          • value @ url
          • 60. Permission.rule.data.modifierExtension
            Definition

            May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

            ShortExtensions that cannot be ignored even if unrecognized
            Comments

            There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

            Control0..*
            TypeExtension
            Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
            Summarytrue
            Requirements

            Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

            Alternate Namesextensions, user content, modifiers
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            62. Permission.rule.data.resource
            ShortExplicit FHIR Resource references
            Control0..*
            TypeBackboneElement
            Summarytrue
            Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
            64. Permission.rule.data.resource.id
            Definition

            Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

            ShortUnique id for inter-element referencing
            Control0..1
            This element is affected by the following invariants: ele-1
            Typeidstring
            Is Modifierfalse
            XML FormatIn the XML format, this property is represented as an attribute.
            Summaryfalse
            66. Permission.rule.data.resource.extension
            Definition

            May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

            ShortAdditional content defined by implementations
            Comments

            There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

            Control0..*
            TypeExtension
            Is Modifierfalse
            Summaryfalse
            Alternate Namesextensions, user content
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            SlicingThis element introduces a set of slices on Permission.rule.data.resource.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
            • value @ url
            • 68. Permission.rule.data.resource.modifierExtension
              Definition

              May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

              Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

              ShortExtensions that cannot be ignored even if unrecognized
              Comments

              There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

              Control0..*
              TypeExtension
              Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
              Summarytrue
              Requirements

              Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

              Alternate Namesextensions, user content, modifiers
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              70. Permission.rule.data.resource.meaning
              Definition

              How the resource reference is interpreted when testing consent restrictions.

              Shortinstance | related | dependents | authoredby
              Control1..1
              BindingThe codes SHALL be taken from ConsentDataMeaninghttp://hl7.org/fhir/ValueSet/consent-data-meaning
              (required to http://hl7.org/fhir/ValueSet/consent-data-meaning)

              How a resource reference is interpreted when testing consent restrictions.

              Typecode
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              Summarytrue
              72. Permission.rule.data.resource.reference
              Definition

              A reference to a specific resource that defines which resources are covered by this consent.

              ShortThe actual data reference
              Control1..1
              TypeReference(Resource)
              Summarytrue
              74. Permission.rule.data.resourceType
              Definition

              The resourceType(s) covered by this rule. The type can be a FHIR resource type or a profile on a type that indicates what information the rule applies to.

              Shorte.g. Resource Type, Profile, etc
              Comments

              The intention of the resourceType element is that the codes refer to profiles or document types defined in a standard or an implementation guide somewhere.

              Control0..*
              BindingUnless not suitable, these codes SHALL be taken from ResourceTypehttp://hl7.org/fhir/ValueSet/resource-types
              (extensible to http://hl7.org/fhir/ValueSet/resource-types)

              The resource types a consent provision covers.

              TypeCoding
              Summarytrue
              76. Permission.rule.data.security
              Definition

              The data in scope are those with the given codes present in that data .meta.security element.

              ShortSecurity tag code on .meta.security
              Comments

              Note the ConfidentialityCode vocabulary indicates the highest value, thus a security label of "R" then it applies to all resources that are labeled "R" or lower. E.g. for Confidentiality, it's a high water mark. For other kinds of security labels, subsumption logic applies. When the purpose of use tag is on the data, access request purpose of use shall not conflict.

              Control0..*
              TypeCoding
              Summarytrue
              78. Permission.rule.data.period
              Definition

              Clinical or Operational Relevant period of time that bounds the data controlled by this rule.

              ShortTimeframe encompasing data create/update
              Comments

              This has a different sense to the .validity.

              Control0..1
              TypePeriod
              Summarytrue
              80. Permission.rule.data.expression
              Definition

              Used when other data selection elements are insufficient.

              ShortExpression identifying the data
              Control0..1
              TypeExpression
              Summarytrue
              82. Permission.rule.activity
              Definition

              A description or definition of which activities are allowed to be done on the data.

              ShortA description or definition of which activities are allowed to be done on the data
              Comments

              Within a .rule any repetitions of the .activity element are in an OR relationship. That is to say that the rule applies to all the repetitions of .activity. Thus to identify one rule that applies to both TREAT and HOPERAT, one would have one rule with repetitions at the .activity level. 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.

              Control0..*
              This element is affected by the following invariants: prm-1
              TypeBackboneElement
              Summarytrue
              Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
              84. Permission.rule.activity.id
              Definition

              Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

              ShortUnique id for inter-element referencing
              Control0..1
              This element is affected by the following invariants: ele-1
              Typeidstring
              Is Modifierfalse
              XML FormatIn the XML format, this property is represented as an attribute.
              Summaryfalse
              86. Permission.rule.activity.extension
              Definition

              May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

              ShortAdditional content defined by implementations
              Comments

              There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

              Control0..*
              TypeExtension
              Is Modifierfalse
              Summaryfalse
              Alternate Namesextensions, user content
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              SlicingThis element introduces a set of slices on Permission.rule.activity.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
              • value @ url
              • 88. Permission.rule.activity.modifierExtension
                Definition

                May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                ShortExtensions that cannot be ignored even if unrecognized
                Comments

                There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                Control0..*
                TypeExtension
                Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                Summarytrue
                Requirements

                Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                Alternate Namesextensions, user content, modifiers
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                90. Permission.rule.activity.actor
                Definition

                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').

                ShortWho|what is controlled by this rule
                Comments

                When both reference and role are given the actor is only selected when that reference actor is functionally carrying out that role.

                Control0..*
                TypeBackboneElement
                Meaning if MissingThere is no specific actor associated with the rule
                Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
                92. Permission.rule.activity.actor.id
                Definition

                Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                ShortUnique id for inter-element referencing
                Control0..1
                This element is affected by the following invariants: ele-1
                Typeidstring
                Is Modifierfalse
                XML FormatIn the XML format, this property is represented as an attribute.
                Summaryfalse
                94. Permission.rule.activity.actor.extension
                Definition

                May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                ShortAdditional content defined by implementations
                Comments

                There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                Control0..*
                TypeExtension
                Is Modifierfalse
                Summaryfalse
                Alternate Namesextensions, user content
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                SlicingThis element introduces a set of slices on Permission.rule.activity.actor.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                • value @ url
                • 96. Permission.rule.activity.actor.modifierExtension
                  Definition

                  May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                  Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                  ShortExtensions that cannot be ignored even if unrecognized
                  Comments

                  There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                  Control0..*
                  TypeExtension
                  Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                  Summarytrue
                  Requirements

                  Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                  Alternate Namesextensions, user content, modifiers
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  98. Permission.rule.activity.actor.role
                  Definition

                  How the individual is involved in the activity that is described in the rule.

                  ShortHow the actor is involved
                  Control0..1
                  BindingUnless not suitable, these codes SHALL be taken from ParticipationRoleTypehttp://hl7.org/fhir/ValueSet/participation-role-type
                  (extensible to http://hl7.org/fhir/ValueSet/participation-role-type)

                  How an actor is involved in the rule.

                  TypeCodeableConcept
                  100. Permission.rule.activity.actor.reference
                  Definition

                  The actor(s) authorized for the defined activity.

                  ShortAuthorized actor(s)
                  Control0..1
                  TypeReference(Device, Group, CareTeam, Organization, Patient, Practitioner, RelatedPerson, PractitionerRole, DeviceDefinition, HealthcareService)
                  Summarytrue
                  102. Permission.rule.activity.action
                  Definition

                  Actions controlled by this Rule.

                  ShortActions controlled by this rule
                  Comments

                  Note that this is the direct action (not the grounds for the action covered in the purpose element). At present, the only action in the understood and tested scope of this resource is 'read'.

                  Control0..*
                  BindingThe codes SHOULD be taken from TypeRestfulInteractionhttp://hl7.org/fhir/ValueSet/type-restful-interaction
                  (preferred to http://hl7.org/fhir/ValueSet/type-restful-interaction)

                  Detailed codes for the action.

                  TypeCodeableConcept
                  Summarytrue
                  104. Permission.rule.activity.purpose
                  Definition

                  The purpose for which the permission is given.

                  ShortThe purpose for which the permission is given
                  Control0..*
                  BindingThe codes SHOULD be taken from PurposeOfUse (3.1.0)http://terminology.hl7.org/ValueSet/v3-PurposeOfUse|3.1.0
                  (preferred to http://terminology.hl7.org/ValueSet/v3-PurposeOfUse|3.1.0)

                  What purposes of use are controlled by this exception. If more than one label is specified, operations must have all the specified labels.

                  TypeCodeableConcept
                  Summarytrue
                  106. Permission.rule.limit
                  Definition

                  What restrictions must be applied to the use of the data by the actor.

                  ShortWhat limits apply to the use of the data
                  Comments

                  Within a .rule all repetitions 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.

                  Control0..*
                  TypeBackboneElement
                  Meaning if MissingThere is no limit beyond those specified in the authorized activity to the authorized data.
                  Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
                  108. Permission.rule.limit.id
                  Definition

                  Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                  ShortUnique id for inter-element referencing
                  Control0..1
                  This element is affected by the following invariants: ele-1
                  Typeidstring
                  Is Modifierfalse
                  XML FormatIn the XML format, this property is represented as an attribute.
                  Summaryfalse
                  110. Permission.rule.limit.extension
                  Definition

                  May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                  ShortAdditional content defined by implementations
                  Comments

                  There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                  Control0..*
                  TypeExtension
                  Is Modifierfalse
                  Summaryfalse
                  Alternate Namesextensions, user content
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  SlicingThis element introduces a set of slices on Permission.rule.limit.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                  • value @ url
                  • 112. Permission.rule.limit.modifierExtension
                    Definition

                    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                    ShortExtensions that cannot be ignored even if unrecognized
                    Comments

                    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                    Control0..*
                    TypeExtension
                    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                    Summarytrue
                    Requirements

                    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                    Alternate Namesextensions, user content, modifiers
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    114. Permission.rule.limit.control
                    Definition

                    One or more coded restriction such as a refrain or obligation.

                    ShortWhat coded limits apply to the use of the data
                    Control0..*
                    BindingThe codes SHOULD be taken from SecurityControlObservationValue (3.0.0)http://terminology.hl7.org/ValueSet/v3-SecurityControlObservationValue|3.0.0
                    (preferred to http://terminology.hl7.org/ValueSet/v3-SecurityControlObservationValue|3.0.0)

                    Obligations and Refrains

                    TypeCodeableConcept
                    Summarytrue
                    116. Permission.rule.limit.tag
                    Definition

                    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 use.

                    ShortThe sensitivity codes that must be removed from the data
                    Control0..*
                    BindingThe codes SHOULD be taken from InformationSensitivityPolicy (3.0.0)http://terminology.hl7.org/ValueSet/v3-InformationSensitivityPolicy|3.0.0
                    (preferred to http://terminology.hl7.org/ValueSet/v3-InformationSensitivityPolicy|3.0.0)

                    Sensitivity tags

                    TypeCoding
                    Summarytrue
                    118. Permission.rule.limit.element
                    Definition

                    When this rule authorized data use, the data at the path indicated here, must be redacted from the authorized data provided for that authorized use.

                    ShortWhat data elements that must be removed from the data
                    Comments

                    The path identifies the element and is expressed as a . separated list of ancestor elements, beginning with the name of the resource or extension.

                    Control0..*
                    Typestring
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Summarytrue

                    Guidance on how to interpret the contents of this table can be foundhere

                    0. Permission
                    Definition

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

                    ShortAccess Rules
                    Control0..*
                    2. Permission.identifier
                    Definition

                    A unique identifier assigned to this permission.

                    ShortBusiness Identifier for permission
                    NoteThis is a business identifier, not a resource identifier (see discussion)
                    Control0..*
                    TypeIdentifier
                    Requirements

                    Allows permission to be distinguished and referenced.

                    4. Permission.status
                    Definition

                    Status.

                    Shortactive | entered-in-error | draft | rejected
                    Control1..1
                    BindingThe codes SHALL be taken from PermissionStatusVS
                    (required to http://hl7.org/fhir/ValueSet/permission-status-vs)

                    Codes identifying the lifecycle stage of a product.

                    Typecode
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    6. Permission.asserter
                    Definition

                    The person or entity that asserts the permission.

                    ShortThe person or entity that asserts the permission
                    Control0..1
                    TypeReference(Practitioner, PractitionerRole, Organization, CareTeam, Patient, RelatedPerson, HealthcareService)
                    8. Permission.date
                    Definition

                    The date that permission was asserted.

                    ShortThe date that permission was asserted
                    Control0..*
                    TypedateTime
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Alternate Namesclass
                    10. Permission.validity
                    Definition

                    The period in which the permission is active.

                    ShortThe period in which the permission is active
                    Control0..1
                    TypePeriod
                    Alternate Namestype
                    12. Permission.justification
                    Definition

                    The asserted justification for using the data.

                    ShortThe asserted justification for using the data
                    Control0..1
                    TypeBackboneElement
                    14. Permission.justification.basis
                    Definition

                    This would be a codeableconcept, or a coding, for example, the 6 grounds for processing in GDPR.

                    ShortThe regulatory grounds upon which this Permission builds
                    Control0..*
                    BindingFor example codes, see ConsentPolicyRuleCodes
                    (example to http://hl7.org/fhir/ValueSet/consent-policy)

                    Regulatory policy examples

                    TypeCodeableConcept
                    16. Permission.justification.evidence
                    ShortJustifing rational
                    Comments

                    While any resource may be used, DocumentReference, Consent, PlanDefinition, and Contract would be most frequent

                    Control0..*
                    TypeReference(Resource)
                    18. Permission.combining
                    Definition

                    Defines a procedure for arriving at an access decision given the set of rules.

                    Shortdeny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
                    Comments

                    see XACML Combining Rules

                    Control1..1
                    BindingThe codes SHALL be taken from PermissionRuleCombiningVS
                    (required to http://hl7.org/fhir/ValueSet/permission-rule-combining-vs)

                    How the rules are to be combined.

                    Typecode
                    Is Modifiertrue because Defines how the rules are to be combined.
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    20. Permission.rule
                    Definition

                    A set of rules.

                    ShortConstraints to the Permission
                    Comments

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

                    Control0..*
                    TypeBackboneElement
                    Invariantsprm-1: If the import element is populated then the type, data, and activity shall not be populated (import.exists() implies type.exists().not() and data.exists().not() and activity.exists().not())
                    22. Permission.rule.import
                    Definition

                    This rule is expressed in another Permission resource.

                    ShortReference to a Permission
                    Control0..1
                    This element is affected by the following invariants: prm-1
                    TypeReference(Permission)
                    Is Modifierfalse
                    24. Permission.rule.type
                    Definition

                    deny | permit.

                    Shortdeny | permit
                    Control0..1
                    This element is affected by the following invariants: prm-1
                    BindingThe codes SHALL be taken from ConsentProvisionType
                    (required to http://hl7.org/fhir/ValueSet/consent-provision-type)

                    How a rule statement is applied.

                    Typecode
                    Is Modifiertrue because Sets the context for the meaning of the rules.
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    26. Permission.rule.data
                    Definition

                    A description or definition of which activities are allowed to be done on the data.

                    ShortThe selection criteria to identify data that is within scope of this provision
                    Comments

                    Within a .rule any repetitions 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 repetitions 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 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 repetition may also be done at the data level as described above.

                    Control0..*
                    This element is affected by the following invariants: prm-1
                    TypeBackboneElement
                    28. Permission.rule.data.resource
                    ShortExplicit FHIR Resource references
                    Control0..*
                    TypeBackboneElement
                    30. Permission.rule.data.resource.meaning
                    Definition

                    How the resource reference is interpreted when testing consent restrictions.

                    Shortinstance | related | dependents | authoredby
                    Control1..1
                    BindingThe codes SHALL be taken from ConsentDataMeaning
                    (required to http://hl7.org/fhir/ValueSet/consent-data-meaning)

                    How a resource reference is interpreted when testing consent restrictions.

                    Typecode
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    32. Permission.rule.data.resource.reference
                    Definition

                    A reference to a specific resource that defines which resources are covered by this consent.

                    ShortThe actual data reference
                    Control1..1
                    TypeReference(Resource)
                    34. Permission.rule.data.resourceType
                    Definition

                    The resourceType(s) covered by this rule. The type can be a FHIR resource type or a profile on a type that indicates what information the rule applies to.

                    Shorte.g. Resource Type, Profile, etc
                    Comments

                    The intention of the resourceType element is that the codes refer to profiles or document types defined in a standard or an implementation guide somewhere.

                    Control0..*
                    BindingUnless not suitable, these codes SHALL be taken from ResourceType
                    (extensible to http://hl7.org/fhir/ValueSet/resource-types)

                    The resource types a consent provision covers.

                    TypeCoding
                    36. Permission.rule.data.security
                    Definition

                    The data in scope are those with the given codes present in that data .meta.security element.

                    ShortSecurity tag code on .meta.security
                    Comments

                    Note the ConfidentialityCode vocabulary indicates the highest value, thus a security label of "R" then it applies to all resources that are labeled "R" or lower. E.g. for Confidentiality, it's a high water mark. For other kinds of security labels, subsumption logic applies. When the purpose of use tag is on the data, access request purpose of use shall not conflict.

                    Control0..*
                    TypeCoding
                    38. Permission.rule.data.period
                    Definition

                    Clinical or Operational Relevant period of time that bounds the data controlled by this rule.

                    ShortTimeframe encompasing data create/update
                    Comments

                    This has a different sense to the .validity.

                    Control0..1
                    TypePeriod
                    40. Permission.rule.data.expression
                    Definition

                    Used when other data selection elements are insufficient.

                    ShortExpression identifying the data
                    Control0..1
                    TypeExpression
                    42. Permission.rule.activity
                    Definition

                    A description or definition of which activities are allowed to be done on the data.

                    ShortA description or definition of which activities are allowed to be done on the data
                    Comments

                    Within a .rule any repetitions of the .activity element are in an OR relationship. That is to say that the rule applies to all the repetitions of .activity. Thus to identify one rule that applies to both TREAT and HOPERAT, one would have one rule with repetitions at the .activity level. 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.

                    Control0..*
                    This element is affected by the following invariants: prm-1
                    TypeBackboneElement
                    44. Permission.rule.activity.actor
                    Definition

                    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').

                    ShortWho|what is controlled by this rule
                    Comments

                    When both reference and role are given the actor is only selected when that reference actor is functionally carrying out that role.

                    Control0..*
                    TypeBackboneElement
                    Meaning if MissingThere is no specific actor associated with the rule
                    46. Permission.rule.activity.actor.role
                    Definition

                    How the individual is involved in the activity that is described in the rule.

                    ShortHow the actor is involved
                    Control0..1
                    BindingUnless not suitable, these codes SHALL be taken from ParticipationRoleType
                    (extensible to http://hl7.org/fhir/ValueSet/participation-role-type)

                    How an actor is involved in the rule.

                    TypeCodeableConcept
                    48. Permission.rule.activity.actor.reference
                    Definition

                    The actor(s) authorized for the defined activity.

                    ShortAuthorized actor(s)
                    Control0..1
                    TypeReference(Device, Group, CareTeam, Organization, Patient, Practitioner, RelatedPerson, PractitionerRole, DeviceDefinition, HealthcareService)
                    50. Permission.rule.activity.action
                    Definition

                    Actions controlled by this Rule.

                    ShortActions controlled by this rule
                    Comments

                    Note that this is the direct action (not the grounds for the action covered in the purpose element). At present, the only action in the understood and tested scope of this resource is 'read'.

                    Control0..*
                    BindingThe codes SHOULD be taken from TypeRestfulInteraction
                    (preferred to http://hl7.org/fhir/ValueSet/type-restful-interaction)

                    Detailed codes for the action.

                    TypeCodeableConcept
                    52. Permission.rule.activity.purpose
                    Definition

                    The purpose for which the permission is given.

                    ShortThe purpose for which the permission is given
                    Control0..*
                    BindingThe codes SHOULD be taken from PurposeOfUse (3.1.0)
                    (preferred to http://terminology.hl7.org/ValueSet/v3-PurposeOfUse|3.1.0)

                    What purposes of use are controlled by this exception. If more than one label is specified, operations must have all the specified labels.

                    TypeCodeableConcept
                    54. Permission.rule.limit
                    Definition

                    What restrictions must be applied to the use of the data by the actor.

                    ShortWhat limits apply to the use of the data
                    Comments

                    Within a .rule all repetitions 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.

                    Control0..*
                    TypeBackboneElement
                    Meaning if MissingThere is no limit beyond those specified in the authorized activity to the authorized data.
                    56. Permission.rule.limit.control
                    Definition

                    One or more coded restriction such as a refrain or obligation.

                    ShortWhat coded limits apply to the use of the data
                    Control0..*
                    BindingThe codes SHOULD be taken from SecurityControlObservationValue (3.0.0)
                    (preferred to http://terminology.hl7.org/ValueSet/v3-SecurityControlObservationValue|3.0.0)

                    Obligations and Refrains

                    TypeCodeableConcept
                    58. Permission.rule.limit.tag
                    Definition

                    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 use.

                    ShortThe sensitivity codes that must be removed from the data
                    Control0..*
                    BindingThe codes SHOULD be taken from InformationSensitivityPolicy (3.0.0)
                    (preferred to http://terminology.hl7.org/ValueSet/v3-InformationSensitivityPolicy|3.0.0)

                    Sensitivity tags

                    TypeCoding
                    60. Permission.rule.limit.element
                    Definition

                    When this rule authorized data use, the data at the path indicated here, must be redacted from the authorized data provided for that authorized use.

                    ShortWhat data elements that must be removed from the data
                    Comments

                    The path identifies the element and is expressed as a . separated list of ancestor elements, beginning with the name of the resource or extension.

                    Control0..*
                    Typestring
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension

                    Guidance on how to interpret the contents of this table can be foundhere

                    0. Permission
                    Definition

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

                    ShortAccess Rules
                    Control0..*
                    Is Modifierfalse
                    Must Supportfalse
                    Summaryfalse
                    Invariantsdom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
                    dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource (contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty())
                    dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated (contained.meta.versionId.empty() and contained.meta.lastUpdated.empty())
                    dom-5: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
                    dom-6: A resource should have narrative for robust management (text.`div`.exists())
                    2. Permission.id
                    Definition

                    The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

                    ShortLogical id of this artifact
                    Comments

                    Within the context of the FHIR RESTful interactions, the resource has an id except for cases like the create and conditional update. Otherwise, the use of the resouce id depends on the given use case.

                    Control0..1
                    Typeid
                    Is Modifierfalse
                    Must Supportfalse
                    Summarytrue
                    4. Permission.meta
                    Definition

                    The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

                    ShortMetadata about the resource
                    Control0..1
                    TypeMeta
                    Is Modifierfalse
                    Must Supportfalse
                    Summarytrue
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    6. Permission.implicitRules
                    Definition

                    A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

                    ShortA set of rules under which this content was created
                    Comments

                    Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of its narrative along with other profiles, value sets, etc.

                    Control0..1
                    Typeuri
                    Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies its meaning or interpretation
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Must Supportfalse
                    Summarytrue
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    8. Permission.language
                    Definition

                    The base language in which the resource is written.

                    ShortLanguage of the resource content
                    Comments

                    Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

                    Control0..1
                    BindingThe codes SHALL be taken from AllLanguages
                    (required to http://hl7.org/fhir/ValueSet/all-languages|6.0.0-ballot3)

                    IETF language tag for a human language

                    Typecode
                    Is Modifierfalse
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Must Supportfalse
                    Summaryfalse
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    10. Permission.text
                    Definition

                    A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

                    ShortText summary of the resource, for human interpretation
                    Comments

                    Contained resources do not have a narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

                    Control0..1
                    This element is affected by the following invariants: dom-6
                    TypeNarrative
                    Is Modifierfalse
                    Must Supportfalse
                    Summaryfalse
                    Alternate Namesnarrative, html, xhtml, display
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    12. Permission.contained
                    Definition

                    These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.

                    ShortContained, inline Resources
                    Comments

                    This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags in their meta elements, but SHALL NOT have security labels. Contained resources may be a resource type defined in the FHIR specification, or an additional resource.

                    Control0..*
                    This element is affected by the following invariants: dom-2, dom-4, dom-3, dom-5
                    TypeResource
                    Is Modifierfalse
                    Must Supportfalse
                    Summaryfalse
                    Alternate Namesinline resources, anonymous resources, contained resources
                    14. Permission.extension
                    Definition

                    May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                    ShortAdditional content defined by implementations
                    Comments

                    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                    Control0..*
                    TypeExtension
                    Is Modifierfalse
                    Must Supportfalse
                    Summaryfalse
                    Alternate Namesextensions, user content
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    SlicingThis element introduces a set of slices on Permission.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                    • value @ url
                    • 16. Permission.modifierExtension
                      Definition

                      May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                      Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                      ShortExtensions that cannot be ignored
                      Comments

                      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                      Control0..*
                      TypeExtension
                      Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
                      Must Supportfalse
                      Summarytrue
                      Requirements

                      Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                      Alternate Namesextensions, user content
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      SlicingThis element introduces a set of slices on Permission.modifierExtension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                      • value @ url
                      • 18. Permission.identifier
                        Definition

                        A unique identifier assigned to this permission.

                        ShortBusiness Identifier for permission
                        NoteThis is a business identifier, not a resource identifier (see discussion)
                        Control0..*
                        TypeIdentifier
                        Summarytrue
                        Requirements

                        Allows permission to be distinguished and referenced.

                        20. Permission.status
                        Definition

                        Status.

                        Shortactive | entered-in-error | draft | rejected
                        Control1..1
                        BindingThe codes SHALL be taken from PermissionStatusVS
                        (required to http://hl7.org/fhir/ValueSet/permission-status-vs)

                        Codes identifying the lifecycle stage of a product.

                        Typecode
                        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                        Summarytrue
                        22. Permission.asserter
                        Definition

                        The person or entity that asserts the permission.

                        ShortThe person or entity that asserts the permission
                        Control0..1
                        TypeReference(Practitioner, PractitionerRole, Organization, CareTeam, Patient, RelatedPerson, HealthcareService)
                        Summarytrue
                        24. Permission.date
                        Definition

                        The date that permission was asserted.

                        ShortThe date that permission was asserted
                        Control0..*
                        TypedateTime
                        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                        Summarytrue
                        Alternate Namesclass
                        26. Permission.validity
                        Definition

                        The period in which the permission is active.

                        ShortThe period in which the permission is active
                        Control0..1
                        TypePeriod
                        Summarytrue
                        Alternate Namestype
                        28. Permission.justification
                        Definition

                        The asserted justification for using the data.

                        ShortThe asserted justification for using the data
                        Control0..1
                        TypeBackboneElement
                        Summarytrue
                        Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
                        30. Permission.justification.id
                        Definition

                        Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                        ShortUnique id for inter-element referencing
                        Control0..1
                        This element is affected by the following invariants: ele-1
                        Typeid
                        Is Modifierfalse
                        XML FormatIn the XML format, this property is represented as an attribute.
                        Summaryfalse
                        32. Permission.justification.extension
                        Definition

                        May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                        ShortAdditional content defined by implementations
                        Comments

                        There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                        Control0..*
                        TypeExtension
                        Is Modifierfalse
                        Summaryfalse
                        Alternate Namesextensions, user content
                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                        SlicingThis element introduces a set of slices on Permission.justification.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                        • value @ url
                        • 34. Permission.justification.modifierExtension
                          Definition

                          May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                          Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                          ShortExtensions that cannot be ignored even if unrecognized
                          Comments

                          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                          Control0..*
                          TypeExtension
                          Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                          Summarytrue
                          Requirements

                          Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                          Alternate Namesextensions, user content, modifiers
                          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                          36. Permission.justification.basis
                          Definition

                          This would be a codeableconcept, or a coding, for example, the 6 grounds for processing in GDPR.

                          ShortThe regulatory grounds upon which this Permission builds
                          Control0..*
                          BindingFor example codes, see ConsentPolicyRuleCodes
                          (example to http://hl7.org/fhir/ValueSet/consent-policy)

                          Regulatory policy examples

                          TypeCodeableConcept
                          Summarytrue
                          38. Permission.justification.evidence
                          ShortJustifing rational
                          Comments

                          While any resource may be used, DocumentReference, Consent, PlanDefinition, and Contract would be most frequent

                          Control0..*
                          TypeReference(Resource)
                          Summarytrue
                          40. Permission.combining
                          Definition

                          Defines a procedure for arriving at an access decision given the set of rules.

                          Shortdeny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
                          Comments

                          see XACML Combining Rules

                          Control1..1
                          BindingThe codes SHALL be taken from PermissionRuleCombiningVS
                          (required to http://hl7.org/fhir/ValueSet/permission-rule-combining-vs)

                          How the rules are to be combined.

                          Typecode
                          Is Modifiertrue because Defines how the rules are to be combined.
                          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                          Summarytrue
                          42. Permission.rule
                          Definition

                          A set of rules.

                          ShortConstraints to the Permission
                          Comments

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

                          Control0..*
                          TypeBackboneElement
                          Summarytrue
                          Invariantsprm-1: If the import element is populated then the type, data, and activity shall not be populated (import.exists() implies type.exists().not() and data.exists().not() and activity.exists().not())
                          ele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
                          44. Permission.rule.id
                          Definition

                          Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                          ShortUnique id for inter-element referencing
                          Control0..1
                          This element is affected by the following invariants: ele-1
                          Typeid
                          Is Modifierfalse
                          XML FormatIn the XML format, this property is represented as an attribute.
                          Summaryfalse
                          46. Permission.rule.extension
                          Definition

                          May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                          ShortAdditional content defined by implementations
                          Comments

                          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                          Control0..*
                          TypeExtension
                          Is Modifierfalse
                          Summaryfalse
                          Alternate Namesextensions, user content
                          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                          SlicingThis element introduces a set of slices on Permission.rule.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                          • value @ url
                          • 48. Permission.rule.modifierExtension
                            Definition

                            May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                            ShortExtensions that cannot be ignored even if unrecognized
                            Comments

                            There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                            Control0..*
                            TypeExtension
                            Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                            Summarytrue
                            Requirements

                            Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                            Alternate Namesextensions, user content, modifiers
                            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                            50. Permission.rule.import
                            Definition

                            This rule is expressed in another Permission resource.

                            ShortReference to a Permission
                            Control0..1
                            This element is affected by the following invariants: prm-1
                            TypeReference(Permission)
                            Is Modifierfalse
                            Summarytrue
                            52. Permission.rule.type
                            Definition

                            deny | permit.

                            Shortdeny | permit
                            Control0..1
                            This element is affected by the following invariants: prm-1
                            BindingThe codes SHALL be taken from ConsentProvisionType
                            (required to http://hl7.org/fhir/ValueSet/consent-provision-type)

                            How a rule statement is applied.

                            Typecode
                            Is Modifiertrue because Sets the context for the meaning of the rules.
                            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                            Summarytrue
                            54. Permission.rule.data
                            Definition

                            A description or definition of which activities are allowed to be done on the data.

                            ShortThe selection criteria to identify data that is within scope of this provision
                            Comments

                            Within a .rule any repetitions 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 repetitions 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 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 repetition may also be done at the data level as described above.

                            Control0..*
                            This element is affected by the following invariants: prm-1
                            TypeBackboneElement
                            Summarytrue
                            Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
                            56. Permission.rule.data.id
                            Definition

                            Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                            ShortUnique id for inter-element referencing
                            Control0..1
                            This element is affected by the following invariants: ele-1
                            Typeid
                            Is Modifierfalse
                            XML FormatIn the XML format, this property is represented as an attribute.
                            Summaryfalse
                            58. Permission.rule.data.extension
                            Definition

                            May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                            ShortAdditional content defined by implementations
                            Comments

                            There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                            Control0..*
                            TypeExtension
                            Is Modifierfalse
                            Summaryfalse
                            Alternate Namesextensions, user content
                            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                            SlicingThis element introduces a set of slices on Permission.rule.data.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                            • value @ url
                            • 60. Permission.rule.data.modifierExtension
                              Definition

                              May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                              Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                              ShortExtensions that cannot be ignored even if unrecognized
                              Comments

                              There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                              Control0..*
                              TypeExtension
                              Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                              Summarytrue
                              Requirements

                              Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                              Alternate Namesextensions, user content, modifiers
                              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                              62. Permission.rule.data.resource
                              ShortExplicit FHIR Resource references
                              Control0..*
                              TypeBackboneElement
                              Summarytrue
                              Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
                              64. Permission.rule.data.resource.id
                              Definition

                              Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                              ShortUnique id for inter-element referencing
                              Control0..1
                              This element is affected by the following invariants: ele-1
                              Typeid
                              Is Modifierfalse
                              XML FormatIn the XML format, this property is represented as an attribute.
                              Summaryfalse
                              66. Permission.rule.data.resource.extension
                              Definition

                              May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                              ShortAdditional content defined by implementations
                              Comments

                              There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                              Control0..*
                              TypeExtension
                              Is Modifierfalse
                              Summaryfalse
                              Alternate Namesextensions, user content
                              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                              SlicingThis element introduces a set of slices on Permission.rule.data.resource.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                              • value @ url
                              • 68. Permission.rule.data.resource.modifierExtension
                                Definition

                                May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                                Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                                ShortExtensions that cannot be ignored even if unrecognized
                                Comments

                                There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                                Control0..*
                                TypeExtension
                                Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                                Summarytrue
                                Requirements

                                Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                                Alternate Namesextensions, user content, modifiers
                                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                70. Permission.rule.data.resource.meaning
                                Definition

                                How the resource reference is interpreted when testing consent restrictions.

                                Shortinstance | related | dependents | authoredby
                                Control1..1
                                BindingThe codes SHALL be taken from ConsentDataMeaning
                                (required to http://hl7.org/fhir/ValueSet/consent-data-meaning)

                                How a resource reference is interpreted when testing consent restrictions.

                                Typecode
                                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                Summarytrue
                                72. Permission.rule.data.resource.reference
                                Definition

                                A reference to a specific resource that defines which resources are covered by this consent.

                                ShortThe actual data reference
                                Control1..1
                                TypeReference(Resource)
                                Summarytrue
                                74. Permission.rule.data.resourceType
                                Definition

                                The resourceType(s) covered by this rule. The type can be a FHIR resource type or a profile on a type that indicates what information the rule applies to.

                                Shorte.g. Resource Type, Profile, etc
                                Comments

                                The intention of the resourceType element is that the codes refer to profiles or document types defined in a standard or an implementation guide somewhere.

                                Control0..*
                                BindingUnless not suitable, these codes SHALL be taken from ResourceType
                                (extensible to http://hl7.org/fhir/ValueSet/resource-types)

                                The resource types a consent provision covers.

                                TypeCoding
                                Summarytrue
                                76. Permission.rule.data.security
                                Definition

                                The data in scope are those with the given codes present in that data .meta.security element.

                                ShortSecurity tag code on .meta.security
                                Comments

                                Note the ConfidentialityCode vocabulary indicates the highest value, thus a security label of "R" then it applies to all resources that are labeled "R" or lower. E.g. for Confidentiality, it's a high water mark. For other kinds of security labels, subsumption logic applies. When the purpose of use tag is on the data, access request purpose of use shall not conflict.

                                Control0..*
                                TypeCoding
                                Summarytrue
                                78. Permission.rule.data.period
                                Definition

                                Clinical or Operational Relevant period of time that bounds the data controlled by this rule.

                                ShortTimeframe encompasing data create/update
                                Comments

                                This has a different sense to the .validity.

                                Control0..1
                                TypePeriod
                                Summarytrue
                                80. Permission.rule.data.expression
                                Definition

                                Used when other data selection elements are insufficient.

                                ShortExpression identifying the data
                                Control0..1
                                TypeExpression
                                Summarytrue
                                82. Permission.rule.activity
                                Definition

                                A description or definition of which activities are allowed to be done on the data.

                                ShortA description or definition of which activities are allowed to be done on the data
                                Comments

                                Within a .rule any repetitions of the .activity element are in an OR relationship. That is to say that the rule applies to all the repetitions of .activity. Thus to identify one rule that applies to both TREAT and HOPERAT, one would have one rule with repetitions at the .activity level. 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.

                                Control0..*
                                This element is affected by the following invariants: prm-1
                                TypeBackboneElement
                                Summarytrue
                                Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
                                84. Permission.rule.activity.id
                                Definition

                                Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                                ShortUnique id for inter-element referencing
                                Control0..1
                                This element is affected by the following invariants: ele-1
                                Typeid
                                Is Modifierfalse
                                XML FormatIn the XML format, this property is represented as an attribute.
                                Summaryfalse
                                86. Permission.rule.activity.extension
                                Definition

                                May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                                ShortAdditional content defined by implementations
                                Comments

                                There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                                Control0..*
                                TypeExtension
                                Is Modifierfalse
                                Summaryfalse
                                Alternate Namesextensions, user content
                                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                SlicingThis element introduces a set of slices on Permission.rule.activity.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                                • value @ url
                                • 88. Permission.rule.activity.modifierExtension
                                  Definition

                                  May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                                  Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                                  ShortExtensions that cannot be ignored even if unrecognized
                                  Comments

                                  There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                                  Control0..*
                                  TypeExtension
                                  Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                                  Summarytrue
                                  Requirements

                                  Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                                  Alternate Namesextensions, user content, modifiers
                                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                  90. Permission.rule.activity.actor
                                  Definition

                                  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').

                                  ShortWho|what is controlled by this rule
                                  Comments

                                  When both reference and role are given the actor is only selected when that reference actor is functionally carrying out that role.

                                  Control0..*
                                  TypeBackboneElement
                                  Meaning if MissingThere is no specific actor associated with the rule
                                  Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
                                  92. Permission.rule.activity.actor.id
                                  Definition

                                  Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                                  ShortUnique id for inter-element referencing
                                  Control0..1
                                  This element is affected by the following invariants: ele-1
                                  Typeid
                                  Is Modifierfalse
                                  XML FormatIn the XML format, this property is represented as an attribute.
                                  Summaryfalse
                                  94. Permission.rule.activity.actor.extension
                                  Definition

                                  May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                                  ShortAdditional content defined by implementations
                                  Comments

                                  There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                                  Control0..*
                                  TypeExtension
                                  Is Modifierfalse
                                  Summaryfalse
                                  Alternate Namesextensions, user content
                                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                  SlicingThis element introduces a set of slices on Permission.rule.activity.actor.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                                  • value @ url
                                  • 96. Permission.rule.activity.actor.modifierExtension
                                    Definition

                                    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                                    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                                    ShortExtensions that cannot be ignored even if unrecognized
                                    Comments

                                    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                                    Control0..*
                                    TypeExtension
                                    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                                    Summarytrue
                                    Requirements

                                    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                                    Alternate Namesextensions, user content, modifiers
                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                    98. Permission.rule.activity.actor.role
                                    Definition

                                    How the individual is involved in the activity that is described in the rule.

                                    ShortHow the actor is involved
                                    Control0..1
                                    BindingUnless not suitable, these codes SHALL be taken from ParticipationRoleType
                                    (extensible to http://hl7.org/fhir/ValueSet/participation-role-type)

                                    How an actor is involved in the rule.

                                    TypeCodeableConcept
                                    100. Permission.rule.activity.actor.reference
                                    Definition

                                    The actor(s) authorized for the defined activity.

                                    ShortAuthorized actor(s)
                                    Control0..1
                                    TypeReference(Device, Group, CareTeam, Organization, Patient, Practitioner, RelatedPerson, PractitionerRole, DeviceDefinition, HealthcareService)
                                    Summarytrue
                                    102. Permission.rule.activity.action
                                    Definition

                                    Actions controlled by this Rule.

                                    ShortActions controlled by this rule
                                    Comments

                                    Note that this is the direct action (not the grounds for the action covered in the purpose element). At present, the only action in the understood and tested scope of this resource is 'read'.

                                    Control0..*
                                    BindingThe codes SHOULD be taken from TypeRestfulInteraction
                                    (preferred to http://hl7.org/fhir/ValueSet/type-restful-interaction)

                                    Detailed codes for the action.

                                    TypeCodeableConcept
                                    Summarytrue
                                    104. Permission.rule.activity.purpose
                                    Definition

                                    The purpose for which the permission is given.

                                    ShortThe purpose for which the permission is given
                                    Control0..*
                                    BindingThe codes SHOULD be taken from PurposeOfUse (3.1.0)
                                    (preferred to http://terminology.hl7.org/ValueSet/v3-PurposeOfUse|3.1.0)

                                    What purposes of use are controlled by this exception. If more than one label is specified, operations must have all the specified labels.

                                    TypeCodeableConcept
                                    Summarytrue
                                    106. Permission.rule.limit
                                    Definition

                                    What restrictions must be applied to the use of the data by the actor.

                                    ShortWhat limits apply to the use of the data
                                    Comments

                                    Within a .rule all repetitions 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.

                                    Control0..*
                                    TypeBackboneElement
                                    Meaning if MissingThere is no limit beyond those specified in the authorized activity to the authorized data.
                                    Invariantsele-1: All FHIR elements must have a @value or children or both (hasValue() or (children().count() > id.count()))
                                    108. Permission.rule.limit.id
                                    Definition

                                    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                                    ShortUnique id for inter-element referencing
                                    Control0..1
                                    This element is affected by the following invariants: ele-1
                                    Typeid
                                    Is Modifierfalse
                                    XML FormatIn the XML format, this property is represented as an attribute.
                                    Summaryfalse
                                    110. Permission.rule.limit.extension
                                    Definition

                                    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                                    ShortAdditional content defined by implementations
                                    Comments

                                    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                                    Control0..*
                                    TypeExtension
                                    Is Modifierfalse
                                    Summaryfalse
                                    Alternate Namesextensions, user content
                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                    SlicingThis element introduces a set of slices on Permission.rule.limit.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                                    • value @ url
                                    • 112. Permission.rule.limit.modifierExtension
                                      Definition

                                      May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                                      Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                                      ShortExtensions that cannot be ignored even if unrecognized
                                      Comments

                                      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                                      Control0..*
                                      TypeExtension
                                      Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                                      Summarytrue
                                      Requirements

                                      Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                                      Alternate Namesextensions, user content, modifiers
                                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                      114. Permission.rule.limit.control
                                      Definition

                                      One or more coded restriction such as a refrain or obligation.

                                      ShortWhat coded limits apply to the use of the data
                                      Control0..*
                                      BindingThe codes SHOULD be taken from SecurityControlObservationValue (3.0.0)
                                      (preferred to http://terminology.hl7.org/ValueSet/v3-SecurityControlObservationValue|3.0.0)

                                      Obligations and Refrains

                                      TypeCodeableConcept
                                      Summarytrue
                                      116. Permission.rule.limit.tag
                                      Definition

                                      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 use.

                                      ShortThe sensitivity codes that must be removed from the data
                                      Control0..*
                                      BindingThe codes SHOULD be taken from InformationSensitivityPolicy (3.0.0)
                                      (preferred to http://terminology.hl7.org/ValueSet/v3-InformationSensitivityPolicy|3.0.0)

                                      Sensitivity tags

                                      TypeCoding
                                      Summarytrue
                                      118. Permission.rule.limit.element
                                      Definition

                                      When this rule authorized data use, the data at the path indicated here, must be redacted from the authorized data provided for that authorized use.

                                      ShortWhat data elements that must be removed from the data
                                      Comments

                                      The path identifies the element and is expressed as a . separated list of ancestor elements, beginning with the name of the resource or extension.

                                      Control0..*
                                      Typestring
                                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                      Summarytrue