Page Status: draft updated 2025-11-03

Permission - HVOOrganizationInteractionPermission

Page index

General information

Profile

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
textC0..1Narrative
containedC0..*Resource
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusS Σ1..1codeBinding
asserterΣ C0..1Reference(CareTeam | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
dateΣ0..*dateTime
id0..1string
extensionC0..*Extension
startS Σ C1..1dateTime
endS Σ C0..1dateTime
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
basisΣ0..*CodeableConcept
evidenceΣ C0..*Reference(Resource)
combiningS Σ ?!1..1codeBindingFixed Value
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
typeΣ ?!0..1codeBindingFixed Value
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
meaningS Σ1..1codeBindingFixed Value
referenceS Σ C1..1Reference(HVOOrganization | HVOOrganizationalUnit)
securityΣ C0..*Coding
periodΣ C0..*Period
expressionS Σ C0..1Expression
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
actorS Σ C0..*Reference(HVODevice)
actionS Σ0..*CodeableConceptBinding
purposeΣ0..*CodeableConceptBinding
limitΣ0..*CodeableConcept
Permission
ShortAccess Rules
Definition

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

Cardinality0..*
Constraints
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.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-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 in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
  • dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
Mappings
  • rim: n/a
  • rim: Entity. Role, or Act
  • rim: Entity, Role, or Act
  • w5: infrastructure.information
Permission.id
ShortLogical id of this artifact
Definition

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

Cardinality0..1
Typeid
SummaryTrue
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.

Permission.meta
ShortMetadata about the resource
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.

Cardinality0..1
TypeMeta
SummaryTrue
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Permission.implicitRules
ShortA set of rules under which this content was created
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.

Cardinality0..1
Typeuri
ModifierTrue
SummaryTrue
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.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Permission.language
ShortLanguage of the resource content
Definition

The base language in which the resource is written.

Cardinality0..1
Typecode
Binding

IETF language tag for a human language

AllLanguages (required)

Additional bindings
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).

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Permission.text
ShortText summary of the resource, for human interpretation
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.

Cardinality0..1
TypeNarrative
Aliasnarrative, html, xhtml, display
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.

ConditionsThe cardinality or value of this element may be affected by these constraints: dom-6
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
  • rim: Act.text?
Permission.contained
ShortContained, inline Resources
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.

Cardinality0..*
TypeResource
Aliasinline resources, anonymous resources, contained 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.

ConditionsThe cardinality or value of this element may be affected by these constraints: dom-2, dom-4, dom-3, dom-5
Mappings
  • rim: n/a
  • rim: Entity. Role, or Act
  • rim: N/A
Permission.extension
ShortAdditional content defined by implementations
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.

Cardinality0..*
TypeExtension
Aliasextensions, user content
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.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.modifierExtension
ShortExtensions that cannot be ignored
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).

Cardinality0..*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content
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.

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.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.status
Shortactive | entered-in-error | draft | rejected
Definition

Status.

Cardinality1..1
Typecode
Binding

Codes identifying the lifecycle stage of a product.

PermissionStatus (required)

Must SupportTrue
SummaryTrue
Comments

Note that FHIR strings SHALL NOT exceed 1,048,576 (1024*1024) characters in size

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • fhirconsent: Consent.status
Permission.asserter
ShortThe person or entity that asserts the permission
Definition

The person or entity that asserts the permission.

Cardinality0..1
TypeReference(CareTeam | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
SummaryTrue
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolvable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
  • ref-2: At least one of reference, identifier and display SHALL be present (unless an extension is provided).
    reference.exists() or identifier.exists() or display.exists() or extension.exists()
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • fhirconsent: Consent.grantor, Consent.grantee, Consent.manager, Consent.controller
Permission.date
ShortThe date that permission was asserted
Definition

The date that permission was asserted.

Cardinality0..*
TypedateTime
SummaryTrue
Aliasclass
Comments

UTC offset is allowed for dates and partial dates

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • fhirconsent: Consent.dateTime
Permission.validity
ShortThe period in which the permission is active
Definition

The period in which the permission is active.

Cardinality1..1
TypePeriod
Must SupportTrue
SummaryTrue
Aliastype
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower or equal value than end
    start.hasValue().not() or end.hasValue().not() or (start.lowBoundary() <= end.highBoundary())
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • fhirconsent: Consent.provision.period
Permission.validity.id
ShortUnique id for inter-element referencing
Definition

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

Cardinality0..1
Typestring
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Mappings
  • rim: n/a
Permission.validity.extension
ShortAdditional content defined by implementations
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.

Cardinality0..*
TypeExtension
Aliasextensions, user content
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.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.validity.start
ShortStarting time with inclusive boundary
Definition

The start of the period. The boundary is inclusive.

Cardinality1..1
TypedateTime
Must SupportTrue
SummaryTrue
Comments

If the low element is missing, the meaning is that the low boundary is not known.

ConditionsThe cardinality or value of this element may be affected by these constraints: per-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: DR.1
  • rim: ./low
Permission.validity.end
ShortEnd time with inclusive boundary, if not ongoing
Definition

The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.

Cardinality0..1
TypedateTime
Must SupportTrue
SummaryTrue
Comments

The end value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has an end value of 2012-02-03.

Meaning when missing

If the end of the period is missing, it means that the period is ongoing

ConditionsThe cardinality or value of this element may be affected by these constraints: per-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: DR.2
  • rim: ./high
Permission.justification
ShortThe asserted justification for using the data
Definition

The asserted justification for using the data.

Cardinality0..1
TypeBackboneElement
SummaryTrue
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Permission.justification.id
ShortUnique id for inter-element referencing
Definition

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

Cardinality0..1
Typestring
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Mappings
  • rim: n/a
Permission.justification.extension
ShortAdditional content defined by implementations
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.

Cardinality0..*
TypeExtension
Aliasextensions, user content
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.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.justification.modifierExtension
ShortExtensions that cannot be ignored even if unrecognized
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).

Cardinality0..*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
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.

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.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.justification.basis
ShortThe regulatory grounds upon which this Permission builds
Definition

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

Cardinality0..*
TypeCodeableConcept
Binding

Regulatory policy examples

ConsentPolicyRuleCodes (example)

SummaryTrue
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • fhirconsent: Consent.regulatoryBasis
Permission.justification.evidence
ShortJustifing rational
Definition

Justifing rational.

Cardinality0..*
TypeReference(Resource)
SummaryTrue
Comments

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

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
  • ref-2: At least one of reference, identifier and display SHALL be present (unless an extension is provided).
    reference.exists() or identifier.exists() or display.exists() or extension.exists()
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • fhirconsent: Consent.policyBasis.reference
Permission.combining
Shortdeny-overrides | permit-overrides | ordered-deny-overrides | ordered-permit-overrides | deny-unless-permit | permit-unless-deny
Definition

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

Cardinality1..1
Typecode
Binding

How the rules are to be combined.

PermissionRuleCombining (required)

Must SupportTrue
ModifierTrue
SummaryTrue
Comments
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value
permit-unless-deny
Mappings
  • rim: n/a
Permission.rule
ShortConstraints to the Permission
Definition

A set of rules.

Cardinality0..*
TypeBackboneElement
Must SupportTrue
SummaryTrue
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Permission.rule.id
ShortUnique id for inter-element referencing
Definition

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

Cardinality0..1
Typestring
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Mappings
  • rim: n/a
Permission.rule.extension
ShortAdditional content defined by implementations
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.

Cardinality0..*
TypeExtension
Aliasextensions, user content
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.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.rule.modifierExtension
ShortExtensions that cannot be ignored even if unrecognized
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).

Cardinality0..*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
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.

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.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.rule.type
Shortdeny | permit
Definition

deny | permit.

Cardinality0..1
Typecode
Binding

How a rule statement is applied.

ConsentProvisionType (required)

ModifierTrue
SummaryTrue
Comments

Note that FHIR strings SHALL NOT exceed 1,048,576 (1024*1024) characters in size

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value
permit
Mappings
  • rim: n/a
  • fhirconsent: Consent.provision.type
Permission.rule.data
ShortThe selection criteria to identify data that is within scope of this provision
Definition

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

Cardinality0..*
TypeBackboneElement
Must SupportTrue
SummaryTrue
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Permission.rule.data.id
ShortUnique id for inter-element referencing
Definition

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

Cardinality0..1
Typestring
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Mappings
  • rim: n/a
Permission.rule.data.extension
ShortAdditional content defined by implementations
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.

Cardinality0..*
TypeExtension
Aliasextensions, user content
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.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.rule.data.modifierExtension
ShortExtensions that cannot be ignored even if unrecognized
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).

Cardinality0..*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
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.

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.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.rule.data.resource
ShortExplicit FHIR Resource references
Definition

Explicit FHIR Resource references.

Cardinality0..*
TypeBackboneElement
Must SupportTrue
SummaryTrue
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • fhirconsent: Consent.provision.data
Permission.rule.data.resource.id
ShortUnique id for inter-element referencing
Definition

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

Cardinality0..1
Typestring
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Mappings
  • rim: n/a
Permission.rule.data.resource.extension
ShortAdditional content defined by implementations
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.

Cardinality0..*
TypeExtension
Aliasextensions, user content
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.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.rule.data.resource.modifierExtension
ShortExtensions that cannot be ignored even if unrecognized
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).

Cardinality0..*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
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.

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.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.rule.data.resource.meaning
Shortinstance | related | dependents | authoredby
Definition

How the resource reference is interpreted when testing consent restrictions.

Cardinality1..1
Typecode
Binding

How a resource reference is interpreted when testing consent restrictions.

ConsentDataMeaning (required)

Must SupportTrue
SummaryTrue
Comments

Note that FHIR strings SHALL NOT exceed 1,048,576 (1024*1024) characters in size

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value
instance
Mappings
  • rim: n/a
Permission.rule.data.resource.reference
ShortThe actual data reference
Definition

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

Cardinality1..1
TypeReference(HVOOrganization | HVOOrganizationalUnit)
Must SupportTrue
SummaryTrue
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolvable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
  • ref-2: At least one of reference, identifier and display SHALL be present (unless an extension is provided).
    reference.exists() or identifier.exists() or display.exists() or extension.exists()
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
Permission.rule.data.security
ShortSecurity tag code on .meta.security
Definition

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

Cardinality0..*
TypeCoding
SummaryTrue
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.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • cod-1: A Coding SHOULD NOT have a display unless a code is also present. Computation on Coding.display alone is generally unsafe. Consider using CodeableConcept.text
    code.exists().not() implies display.exists().not()
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE subset one of the sets of component 1-3 or 4-6
  • rim: CV
  • orim: fhir:Coding rdfs:subClassOf dt:CDCoding
  • fhirconsent: Consent.provision.securityLabel
Permission.rule.data.period
ShortTimeframe encompasing data create/update
Definition

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

Cardinality0..*
TypePeriod
SummaryTrue
Comments

This has a different sense to the .validity.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower or equal value than end
    start.hasValue().not() or end.hasValue().not() or (start.lowBoundary() <= end.highBoundary())
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • fhirconsent: Consent.provision.dataPeriod
Permission.rule.data.expression
ShortExpression identifying the data
Definition

Used when other data selection elements are insufficient.

Cardinality0..1
TypeExpression
Must SupportTrue
SummaryTrue
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • exp-2: The name must be a valid variable name in most computer languages
    name.hasValue() implies name.matches('[A-Za-z][A-Za-z0-9\\_]{0,63}')
  • exp-1: An expression or a reference must be provided
    expression.exists() or reference.exists()
Mappings
  • rim: n/a
  • fhirconsent: Consent.provision.class, Consent.provision.code, Consent.provision.expression
Permission.rule.activity
ShortA description or definition of which activities are allowed to be done on the data
Definition

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

Cardinality0..*
TypeBackboneElement
Must SupportTrue
SummaryTrue
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Permission.rule.activity.id
ShortUnique id for inter-element referencing
Definition

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

Cardinality0..1
Typestring
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Mappings
  • rim: n/a
Permission.rule.activity.extension
ShortAdditional content defined by implementations
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.

Cardinality0..*
TypeExtension
Aliasextensions, user content
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.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.rule.activity.modifierExtension
ShortExtensions that cannot be ignored even if unrecognized
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).

Cardinality0..*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
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.

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.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Permission.rule.activity.actor
ShortAuthorized actor(s)
Definition

The actor(s) authorized for the defined activity.

Cardinality0..*
TypeReference(HVODevice)
Must SupportTrue
SummaryTrue
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolvable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
  • ref-2: At least one of reference, identifier and display SHALL be present (unless an extension is provided).
    reference.exists() or identifier.exists() or display.exists() or extension.exists()
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • fhirconsent: Consent.provision.actor
Permission.rule.activity.action
ShortActions controlled by this rule
Definition

Actions controlled by this Rule.

Cardinality0..*
TypeCodeableConcept
Binding

Detailed codes for the action.

TypeRestfulInteraction (required)

Must SupportTrue
SummaryTrue
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'.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • fhirconsent: Consent.provision.action
Permission.rule.activity.purpose
ShortThe purpose for which the permission is given
Definition

The purpose for which the permission is given.

Cardinality0..*
TypeCodeableConcept
Binding

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

PurposeOfUse (preferred)

SummaryTrue
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • fhirconsent: Consent.provision.purpose
Permission.rule.limit
ShortWhat limits apply to the use of the data
Definition

What limits apply to the use of the data.

Cardinality0..*
TypeCodeableConcept
Binding

Obligations and Refrains

SecurityLabelEventExamples (example)

SummaryTrue
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="HVOOrganizationInteractionPermission" />
<url value="http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationInteractionPermission" />
<version value="0.1.0" />
<name value="HVOOrganizationInteractionPermission" />
<status value="draft" />
<fhirVersion value="5.0.0" />
<kind value="resource" />
<abstract value="false" />
<type value="Permission" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Permission" />
<derivation value="constraint" />
<element id="Permission.status">
<path value="Permission.status" />
<mustSupport value="true" />
</element>
<element id="Permission.validity">
<path value="Permission.validity" />
<min value="1" />
<mustSupport value="true" />
</element>
<element id="Permission.validity.start">
<path value="Permission.validity.start" />
<min value="1" />
<mustSupport value="true" />
</element>
<element id="Permission.validity.end">
<path value="Permission.validity.end" />
<mustSupport value="true" />
</element>
<element id="Permission.combining">
<path value="Permission.combining" />
<fixedCode value="permit-unless-deny" />
<mustSupport value="true" />
</element>
<element id="Permission.rule">
<path value="Permission.rule" />
<mustSupport value="true" />
</element>
<element id="Permission.rule.type">
<path value="Permission.rule.type" />
<fixedCode value="permit" />
</element>
<element id="Permission.rule.data">
<path value="Permission.rule.data" />
<mustSupport value="true" />
</element>
<element id="Permission.rule.data.resource">
<path value="Permission.rule.data.resource" />
<mustSupport value="true" />
</element>
<element id="Permission.rule.data.resource.meaning">
<path value="Permission.rule.data.resource.meaning" />
<fixedCode value="instance" />
<mustSupport value="true" />
</element>
<element id="Permission.rule.data.resource.reference">
<path value="Permission.rule.data.resource.reference" />
<code value="Reference" />
<targetProfile value="http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganization" />
<targetProfile value="http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationalUnit" />
</type>
<mustSupport value="true" />
</element>
<element id="Permission.rule.data.expression">
<path value="Permission.rule.data.expression" />
<mustSupport value="true" />
</element>
<element id="Permission.rule.activity">
<path value="Permission.rule.activity" />
<mustSupport value="true" />
</element>
<element id="Permission.rule.activity.actor">
<path value="Permission.rule.activity.actor" />
<code value="Reference" />
<targetProfile value="http://electronichealth.se/fhir/hvo/StructureDefinition/HVODevice" />
</type>
<mustSupport value="true" />
</element>
<element id="Permission.rule.activity.action">
<path value="Permission.rule.activity.action" />
<mustSupport value="true" />
<strength value="required" />
<valueSet value="http://hl7.org/fhir/ValueSet/type-restful-interaction" />
</binding>
</element>
</differential>
</StructureDefinition>
{
"resourceType": "StructureDefinition",
"id": "HVOOrganizationInteractionPermission",
"url": "http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationInteractionPermission",
"version": "0.1.0",
"name": "HVOOrganizationInteractionPermission",
"status": "draft",
"fhirVersion": "5.0.0",
"kind": "resource",
"abstract": false,
"type": "Permission",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Permission",
"derivation": "constraint",
"element": [
{
"id": "Permission.status",
"path": "Permission.status",
"mustSupport": true
},
{
"id": "Permission.validity",
"path": "Permission.validity",
"min": 1,
"mustSupport": true
},
{
"id": "Permission.validity.start",
"path": "Permission.validity.start",
"min": 1,
"mustSupport": true
},
{
"id": "Permission.validity.end",
"path": "Permission.validity.end",
"mustSupport": true
},
{
"id": "Permission.combining",
"path": "Permission.combining",
"fixedCode": "permit-unless-deny",
"mustSupport": true
},
{
"id": "Permission.rule",
"path": "Permission.rule",
"mustSupport": true
},
{
"id": "Permission.rule.type",
"path": "Permission.rule.type",
"fixedCode": "permit"
},
{
"id": "Permission.rule.data",
"path": "Permission.rule.data",
"mustSupport": true
},
{
"id": "Permission.rule.data.resource",
"path": "Permission.rule.data.resource",
"mustSupport": true
},
{
"id": "Permission.rule.data.resource.meaning",
"path": "Permission.rule.data.resource.meaning",
"fixedCode": "instance",
"mustSupport": true
},
{
"id": "Permission.rule.data.resource.reference",
"path": "Permission.rule.data.resource.reference",
"type": [
{
"code": "Reference",
"http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganization",
"http://electronichealth.se/fhir/hvo/StructureDefinition/HVOOrganizationalUnit"
]
}
],
"mustSupport": true
},
{
"id": "Permission.rule.data.expression",
"path": "Permission.rule.data.expression",
"mustSupport": true
},
{
"id": "Permission.rule.activity",
"path": "Permission.rule.activity",
"mustSupport": true
},
{
"id": "Permission.rule.activity.actor",
"path": "Permission.rule.activity.actor",
"type": [
{
"code": "Reference",
"http://electronichealth.se/fhir/hvo/StructureDefinition/HVODevice"
]
}
],
"mustSupport": true
},
{
"id": "Permission.rule.activity.action",
"path": "Permission.rule.activity.action",
"mustSupport": true,
"binding": {
"strength": "required",
"valueSet": "http://hl7.org/fhir/ValueSet/type-restful-interaction"
}
}
]
}
}

Details

The must-support flag indicates that the element is expected in some use cases, and a missing flag that the element is never used.

To declare what system has permission to do what the permission details, use the rule.activity.actor element to reference a Device with the system ID in the identifier.value field. What action the system is authorized to do is filled in using the rule.activity.action element. What HVOOrganization or HVOOrganizationalUnit the system is allowed to perform the declared action on is expressed using the rule.data.resource element, where the meaning should be set to instance so that the reference is interpreted as an instance of HVOOrganization/HVOOrganizationalUnit.

Supported operations