This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version. For a full list of available versions, see the Directory of published versions . Page versions: R5R4BR4
cnl-0Warning Name should be usable as an identifier for the module by machine processing applications such as code generation name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
exs-3Rule Must have actors if status is active or required status='active' or status='retired' implies actor.exists()
exs-4Rule Must have processes if status is active or required status='active' or status='retired' implies process.exists()
exs-6Rule Actor keys must be unique actor.key.count() = actor.key.distinct().count()
exs-7Rule Actor titles must be unique actor.title.count() = actor.title.distinct().count()
exs-8Rule Instance keys must be unique instance.key.count() = instance.key.distinct().count()
exs-9Rule Instance titles must be unique instance.title.count() = instance.title.distinct().count()
exs-12Rule Process titles must be unique process.title.count() = process.title.distinct().count()
ExampleScenario.url
Element Id ExampleScenario.url
Definition
An absolute URI that is used to identify this example scenario when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.
Short Display Canonical identifier for this example scenario, represented as a URI (globally unique)
Can be a urn:uuid: or a urn:oid: but real http: addresses are preferred. Multiple instances may share the same URL if they have a distinct version.
The determination of when to create a new version of a resource (same url, new version) vs. defining a new artifact is up to the author. Considerations for making this decision are found in Technical and Business Versions.
In some cases, the resource can no longer be found at the stated url, but the url itself cannot change. Implementations can use the meta.source element to indicate where the current master source of the resource can be found.
Invariants
Defined on this element
cnl-1Warning URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$')
ExampleScenario.identifier
Element Id ExampleScenario.identifier
Definition
A formal identifier that is used to identify this example scenario when it is represented in other formats, or referenced in a specification, model, design or an instance.
Short Display Additional identifier for the example scenario
Note This is a business identifier, not a resource identifier (see discussion)
Typically, this is used for identifiers that can go in an HL7 V3 II (instance identifier) data type, and can then identify this example scenario outside of FHIR, where it is not possible to use the logical URI.
ExampleScenario.version
Element Id ExampleScenario.version
Definition
The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
Short Display Business version of the example scenario
Note This is a business versionId, not a resource version id (see discussion)
There may be different example scenario instances that have the same identifier but different versions. The version can be appended to the url in a reference to allow a reference to a particular business version of the example scenario with the format [url]|[version]. The version SHOULD NOT contain a '#' - see Business Version.
ExampleScenario.versionAlgorithm[x]
Element Id ExampleScenario.versionAlgorithm[x]
Definition
Indicates the mechanism used to compare versions to determine which is more current.
If set as a string, this is a FHIRPath expression that has two additional context variables passed in - %version1 and %version2 and will return a negative number if version1 is newer, a positive number if version2 and a 0 if the version ordering can't be successfully be determined.
Not needed as code will never be generated from one of these
Invariants
Affect this element
cnl-0Warning Name should be usable as an identifier for the module by machine processing applications such as code generation name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
ExampleScenario.title
Element Id ExampleScenario.title
Definition
A short, descriptive, user-friendly title for the ExampleScenario.
Short Display Name for this example scenario (human friendly)
Allows filtering of example scenarios that are appropriate for use versus not.
See guidance around (not) making local changes to elements here.
Invariants
Affect this element
exs-3Rule Must have actors if status is active or required status='active' or status='retired' implies actor.exists()
exs-4Rule Must have processes if status is active or required status='active' or status='retired' implies process.exists()
exs-5Rule Processes must have steps if ExampleScenario status is active or required %resource.status='active' or %resource.status='retired' implies step.exists()
ExampleScenario.experimental
Element Id ExampleScenario.experimental
Definition
A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
Short Display For testing purposes, not real usage
Allows filtering of example scenarios that are appropriate for use versus not.
ExampleScenario.date
Element Id ExampleScenario.date
Definition
The date (and optionally time) when the example scenario was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the example scenario changes. (e.g. the 'content logical definition').
The date is often not tracked until the resource is published, but may be present on draft content. Note that this is not the same as the resource last-modified-date, since the resource may be a secondary representation of the example scenario. Additional specific dates may be added as extensions or be found by consulting Provenances associated with past versions of the resource.
See guidance around (not) making local changes to elements here.
ExampleScenario.publisher
Element Id ExampleScenario.publisher
Definition
The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.
Short Display Name of the publisher/steward (organization or individual)
Usually an organization but may be an individual. The publisher (or steward) of the example scenario is the organization or individual primarily responsible for the maintenance and upkeep of the example scenario. This is not necessarily the same individual or organization that developed and initially authored the content. The publisher is the primary point of contact for questions or issues with the example scenario. This item SHOULD be populated unless the information is available from context.
ExampleScenario.contact
Element Id ExampleScenario.contact
Definition
Contact details to assist a user in finding and communicating with the publisher.
This description can be used to capture details such as comments about misuse. It is not a rendering of the ExampleScenario as conveyed in the 'text' field of the resource itself.
ExampleScenario.useContext
Element Id ExampleScenario.useContext
Definition
The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate example scenario instances.
Short Display The context that the content is intended to support
It may be possible for the example scenario to be used in jurisdictions other than those for which it was originally designed or intended.
DEPRECATION NOTE: For consistency, implementations are encouraged to migrate to using the new 'jurisdiction' code in the useContext element. (I.e. useContext.code indicating http://terminology.hl7.org/CodeSystem/usage-context-type#jurisdiction and useContext.valueCodeableConcept indicating the jurisdiction.)
ExampleScenario.purpose
Element Id ExampleScenario.purpose
Definition
What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.
Short Display The purpose of the example, e.g. to illustrate a scenario
This element does not describe the usage of the example scenario. Instead, it provides traceability of ''why'' the resource is either needed or ''why'' it is defined as it is. This may be used to point to source materials or specifications that drove the structure of this example scenario.
ExampleScenario.copyright
Element Id ExampleScenario.copyright
Definition
A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.
A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
The (c) symbol should NOT be included in this string. It will be added by software when rendering the notation. Full details about licensing, restrictions, warrantees, etc. goes in the more general 'copyright' element.
ExampleScenario.actor
Element Id ExampleScenario.actor
Definition
A system or person who shares or receives an instance within the scenario.
exs-19Warning Actor should be referenced in at least one operation %resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()
exs-23Rule actor.key canot be 'OTHER' key != 'OTHER'
Affect this element
exs-3Rule Must have actors if status is active or required status='active' or status='retired' implies actor.exists()
exs-6Rule Actor keys must be unique actor.key.count() = actor.key.distinct().count()
exs-7Rule Actor titles must be unique actor.title.count() = actor.title.distinct().count()
exs-17Rule If specified, initiator must be a key of an actor within the ExampleScenario initiator.exists() implies initiator = 'OTHER' or %resource.actor.where(key=%context.initiator).exists()
exs-18Rule If specified, receiver must be a key of an actor within the ExampleScenario receiver.exists() implies receiver = 'OTHER' or %resource.actor.where(key=%context.receiver).exists()
ExampleScenario.actor.key
Element Id ExampleScenario.actor.key
Definition
A unique string within the scenario that is used to reference the actor.
exs-6Rule Actor keys must be unique actor.key.count() = actor.key.distinct().count()
exs-23Rule actor.key canot be 'OTHER' key != 'OTHER'
exs-17Rule If specified, initiator must be a key of an actor within the ExampleScenario initiator.exists() implies initiator = 'OTHER' or %resource.actor.where(key=%context.initiator).exists()
exs-18Rule If specified, receiver must be a key of an actor within the ExampleScenario receiver.exists() implies receiver = 'OTHER' or %resource.actor.where(key=%context.receiver).exists()
exs-19Warning Actor should be referenced in at least one operation %resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()
exs-1Rule StructureVersion is required if structureType is not FHIR (but may still be present even if FHIR) structureType.exists() and structureType.memberOf('http://hl7.org/fhir/ValueSet/resource-types').not() implies structureVersion.exists()
exs-2Rule instance.content is only allowed if there are no instance.versions content.exists() implies version.empty()
exs-10Rule Version keys must be unique within an instance version.key.count() = version.key.distinct().count()
exs-11Rule Version titles must be unique within an instance version.title.count() = version.title.distinct().count()
exs-20Warning Instance should be referenced in at least one location %resource.process.descendants().select(instanceReference).where($this=%context.key).exists()
exs-21Warning Instance version should be referenced in at least one operation version.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
Affect this element
exs-8Rule Instance keys must be unique instance.key.count() = instance.key.distinct().count()
exs-9Rule Instance titles must be unique instance.title.count() = instance.title.distinct().count()
exs-14Rule InstanceReference must be a key of an instance defined in the ExampleScenario %resource.instance.where(key=%context.instanceReference).exists()
exs-15Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16Rule versionReference must be a key of a version within the instance pointed to by instanceReference versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
ExampleScenario.instance.key
Element Id ExampleScenario.instance.key
Definition
A unique string within the scenario that is used to reference the instance.
exs-8Rule Instance keys must be unique instance.key.count() = instance.key.distinct().count()
exs-14Rule InstanceReference must be a key of an instance defined in the ExampleScenario %resource.instance.where(key=%context.instanceReference).exists()
exs-15Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16Rule versionReference must be a key of a version within the instance pointed to by instanceReference versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
exs-20Warning Instance should be referenced in at least one location %resource.process.descendants().select(instanceReference).where($this=%context.key).exists()
exs-21Warning Instance version should be referenced in at least one operation version.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
ExampleScenario.instance.structureType
Element Id ExampleScenario.instance.structureType
Definition
A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of.
exs-1Rule StructureVersion is required if structureType is not FHIR (but may still be present even if FHIR) structureType.exists() and structureType.memberOf('http://hl7.org/fhir/ValueSet/resource-types').not() implies structureVersion.exists()
ExampleScenario.instance.structureVersion
Element Id ExampleScenario.instance.structureVersion
Definition
Conveys the version of the data structure instantiated. I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.
exs-1Rule StructureVersion is required if structureType is not FHIR (but may still be present even if FHIR) structureType.exists() and structureType.memberOf('http://hl7.org/fhir/ValueSet/resource-types').not() implies structureVersion.exists()
ExampleScenario.instance.structureProfile[x]
Element Id ExampleScenario.instance.structureProfile[x]
Definition
Refers to a profile, template or other ruleset the instance adheres to.
exs-10Rule Version keys must be unique within an instance version.key.count() = version.key.distinct().count()
exs-11Rule Version titles must be unique within an instance version.title.count() = version.title.distinct().count()
exs-15Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16Rule versionReference must be a key of a version within the instance pointed to by instanceReference versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
exs-2Rule instance.content is only allowed if there are no instance.versions content.exists() implies version.empty()
exs-21Warning Instance version should be referenced in at least one operation version.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
ExampleScenario.instance.version.key
Element Id ExampleScenario.instance.version.key
Definition
A unique string within the instance that is used to reference the version of the instance.
exs-10Rule Version keys must be unique within an instance version.key.count() = version.key.distinct().count()
exs-16Rule versionReference must be a key of a version within the instance pointed to by instanceReference versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
exs-21Warning Instance version should be referenced in at least one operation version.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
ExampleScenario.instance.version.title
Element Id ExampleScenario.instance.version.title
Definition
A short descriptive label the version to be used in tables or diagrams.
exs-14Rule InstanceReference must be a key of an instance defined in the ExampleScenario %resource.instance.where(key=%context.instanceReference).exists()
exs-15Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16Rule versionReference must be a key of a version within the instance pointed to by instanceReference versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
exs-14Rule InstanceReference must be a key of an instance defined in the ExampleScenario %resource.instance.where(key=%context.instanceReference).exists()
exs-15Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16Rule versionReference must be a key of a version within the instance pointed to by instanceReference versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
exs-20Warning Instance should be referenced in at least one location %resource.process.descendants().select(instanceReference).where($this=%context.key).exists()
exs-21Warning Instance version should be referenced in at least one operation version.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
exs-15Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16Rule versionReference must be a key of a version within the instance pointed to by instanceReference versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
exs-21Warning Instance version should be referenced in at least one operation version.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
ExampleScenario.process
Element Id ExampleScenario.process
Definition
A group of operations that represents a significant step within a scenario.
exs-5Rule Processes must have steps if ExampleScenario status is active or required %resource.status='active' or %resource.status='retired' implies step.exists()
Affect this element
exs-4Rule Must have processes if status is active or required status='active' or status='retired' implies process.exists()
exs-12Rule Process titles must be unique process.title.count() = process.title.distinct().count()
exs-22Rule Can have a process, a workflow, one or more operations or none of these, but cannot have a combination (process.exists() implies workflow.empty() and operation.empty()) and (workflow.exists() implies operation.empty())
exs-20Warning Instance should be referenced in at least one location %resource.process.descendants().select(instanceReference).where($this=%context.key).exists()
exs-21Warning Instance version should be referenced in at least one operation version.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
exs-19Warning Actor should be referenced in at least one operation %resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()
ExampleScenario.process.title
Element Id ExampleScenario.process.title
Definition
A short descriptive label the process to be used in tables or diagrams.
exs-13Rule Alternative titles must be unique within a step alternative.title.count() = alternative.title.distinct().count()
exs-22Rule Can have a process, a workflow, one or more operations or none of these, but cannot have a combination (process.exists() implies workflow.empty() and operation.empty()) and (workflow.exists() implies operation.empty())
Affect this element
exs-5Rule Processes must have steps if ExampleScenario status is active or required %resource.status='active' or %resource.status='retired' implies step.exists()
exs-22Rule Can have a process, a workflow, one or more operations or none of these, but cannot have a combination (process.exists() implies workflow.empty() and operation.empty()) and (workflow.exists() implies operation.empty())
ExampleScenario.process.step.operation
Element Id ExampleScenario.process.step.operation
Definition
The step represents a single operation invoked on receiver by sender.
exs-17Rule If specified, initiator must be a key of an actor within the ExampleScenario initiator.exists() implies initiator = 'OTHER' or %resource.actor.where(key=%context.initiator).exists()
exs-18Rule If specified, receiver must be a key of an actor within the ExampleScenario receiver.exists() implies receiver = 'OTHER' or %resource.actor.where(key=%context.receiver).exists()
Affect this element
exs-19Warning Actor should be referenced in at least one operation %resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()
exs-22Rule Can have a process, a workflow, one or more operations or none of these, but cannot have a combination (process.exists() implies workflow.empty() and operation.empty()) and (workflow.exists() implies operation.empty())
ExampleScenario.process.step.operation.type
Element Id ExampleScenario.process.step.operation.type
Definition
The standardized type of action (FHIR or otherwise).
This must either be the 'key' of one of the actors defined in this scenario or the special keyword 'OTHER' if the initiator is not one of the actors defined for the scenario. (Multiple references to 'OTHER' don't necessarily indicate the same actor.)
Invariants
Affect this element
exs-17Rule If specified, initiator must be a key of an actor within the ExampleScenario initiator.exists() implies initiator = 'OTHER' or %resource.actor.where(key=%context.initiator).exists()
exs-19Warning Actor should be referenced in at least one operation %resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()
ExampleScenario.process.step.operation.receiver
Element Id ExampleScenario.process.step.operation.receiver
Definition
The system on which the action is invoked/receives the data.
This must either be the 'key' of one of the actors defined in this scenario or the special keyword 'OTHER' if the receiver is not one of the actors defined for the scenario. (Multiple references to 'OTHER' don't necessarily indicate the same actor.) In some cases, receiver could be same as sender if representing a local operation
Invariants
Affect this element
exs-18Rule If specified, receiver must be a key of an actor within the ExampleScenario receiver.exists() implies receiver = 'OTHER' or %resource.actor.where(key=%context.receiver).exists()
exs-19Warning Actor should be referenced in at least one operation %resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()
This should contain information not already present in the process step. It's more of a description of what the operation in general does - if not already evident from the operation.type
Element Id ExampleScenario.process.step.alternative
Definition
Indicates an alternative step that can be taken instead of the sub-process, scenario or operation. E.g. to represent non-happy-path/exceptional/atypical circumstances.
If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).