R5 Final QA

This page is part of the FHIR Specification (v5.0.0-draft-final: Final QA Preview for R5 - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4

FHIR Infrastructure icon Work GroupMaturity Level: 1 Trial UseSecurity Category: Anonymous Compartments: Not linked to any defined compartments

Detailed Descriptions for the elements in the ExampleScenario resource.

ExampleScenario
Element IdExampleScenario
Definition

Example of workflow instance.

Short DisplayExample of workflow instance
Cardinality0..*
TypeCanonicalResource
Summaryfalse
Invariants
Defined on this element
cnl-0Warning Name should be usable as an identifier for the module by machine processing applications such as code generationname.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
exs-3Rule Must have actors if status is active or requiredstatus='active' or status='retired' implies actor.exists()
exs-4Rule Must have processes if status is active or requiredstatus='active' or status='retired' implies process.exists()
exs-6Rule Actor keys must be uniqueactor.key.count() = actor.key.distinct().count()
exs-7Rule Actor titles must be uniqueactor.title.count() = actor.title.distinct().count()
exs-8Rule Instance keys must be uniqueinstance.key.count() = instance.key.distinct().count()
exs-9Rule Instance titles must be uniqueinstance.title.count() = instance.title.distinct().count()
exs-12Rule Process titles must be uniqueprocess.title.count() = process.title.distinct().count()
ExampleScenario.url
Element IdExampleScenario.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 DisplayCanonical identifier for this example scenario, represented as a URI (globally unique)
Cardinality0..1
Typeuri
Requirements

Allows the example scenario to be referenced by a single globally unique identifier.

Summarytrue
Comments

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 problematicexists() implies matches('^[^|# ]+$')
ExampleScenario.identifier
Element IdExampleScenario.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 DisplayAdditional identifier for the example scenario
NoteThis is a business identifier, not a resource identifier (see discussion)
Cardinality0..*
TypeIdentifier
Requirements

Allows externally provided and/or usable business identifiers to be easily associated with the module.

Summarytrue
Comments

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 IdExampleScenario.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 DisplayBusiness version of the example scenario
NoteThis is a business versionId, not a resource version id (see discussion)
Cardinality0..1
Typestring
Summarytrue
Comments

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 IdExampleScenario.versionAlgorithm[x]
Definition

Indicates the mechanism used to compare versions to determine which is more current.

Short DisplayHow to compare versions
Cardinality0..1
Terminology BindingVersion Algorithm (Extensible)
Typestring|Coding
[x] NoteSee Choice of Datatypes for further information about how to use [x]
Summarytrue
Comments

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.

ExampleScenario.name
Element IdExampleScenario.name
Definition

Temporarily retained for tooling purposes.

Short DisplayTo be removed?
Cardinality0..1
Typestring
Summarytrue
Comments

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 generationname.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
ExampleScenario.title
Element IdExampleScenario.title
Definition

A short, descriptive, user-friendly title for the ExampleScenario.

Short DisplayName for this example scenario (human friendly)
Cardinality0..1
Typestring
Summarytrue
Comments

This name does not need to be machine-processing friendly and may contain punctuation, white-space, etc.

ExampleScenario.status
Element IdExampleScenario.status
Definition

The status of this example scenario. Enables tracking the life-cycle of the content.

Short Displaydraft | active | retired | unknown
Cardinality1..1
Terminology BindingPublicationStatus (Required)
Typecode
Is Modifiertrue (Reason: This is labeled as "Is Modifier" because applications should not use a retired {{title}} without due consideration)
Summarytrue
Comments

Allows filtering of example scenarios that are appropriate for use versus not.

Invariants
Affect this element
exs-3Rule Must have actors if status is active or requiredstatus='active' or status='retired' implies actor.exists()
exs-4Rule Must have processes if status is active or requiredstatus='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 IdExampleScenario.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 DisplayFor testing purposes, not real usage
Cardinality0..1
Typeboolean
Meaning if MissingIf absent, this resource is treated as though it is not experimental.
Requirements

Enables experimental content to be developed following the same lifecycle that would be used for a production-level example scenario.

Summarytrue
Comments

Allows filtering of example scenarios that are appropriate for use versus not.

ExampleScenario.date
Element IdExampleScenario.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').

Short DisplayDate last changed
Cardinality0..1
TypedateTime
Alternate NamesRevision Date
Summarytrue
Comments

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.

ExampleScenario.publisher
Element IdExampleScenario.publisher
Definition

The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.

Short DisplayName of the publisher/steward (organization or individual)
Cardinality0..1
Typestring
Requirements

Helps establish the "authority/credibility" of the example scenario. May also allow for contact.

Summarytrue
Comments

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 IdExampleScenario.contact
Definition

Contact details to assist a user in finding and communicating with the publisher.

Short DisplayContact details for the publisher
Cardinality0..*
TypeContactDetail
Summarytrue
Comments

May be a web site, an email address, a telephone number, etc.

ExampleScenario.description
Element IdExampleScenario.description
Definition

A free text natural language description of the ExampleScenario from a consumer's perspective.

Short DisplayNatural language description of the ExampleScenario
Cardinality0..1
Typemarkdown
Summarytrue
Comments

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 IdExampleScenario.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 DisplayThe context that the content is intended to support
Cardinality0..*
TypeUsageContext
Requirements

Assist in searching for appropriate content.

Summarytrue
Comments

When multiple useContexts are specified, there is no expectation that all or any of the contexts apply.

ExampleScenario.jurisdiction
Element IdExampleScenario.jurisdiction
Definition

A legal or geographic region in which the example scenario is intended to be used.

Short DisplayIntended jurisdiction for example scenario (if applicable)
Cardinality0..*
Terminology BindingJurisdiction ValueSet (Extensible)
TypeCodeableConcept
Summarytrue
Comments

It may be possible for the example scenario to be used in jurisdictions other than those for which it was originally designed or intended.

ExampleScenario.purpose
Element IdExampleScenario.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 DisplayThe purpose of the example, e.g. to illustrate a scenario
Cardinality0..1
Typemarkdown
Summaryfalse
Comments

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

Short DisplayUse and/or publishing restrictions
Cardinality0..1
Typemarkdown
Requirements

Consumers must be able to determine any legal restrictions on the use of the example scenario and/or its content.

Alternate NamesLicense; Restrictions
Summaryfalse
Comments

...

ExampleScenario.copyrightLabel
Element IdExampleScenario.copyrightLabel
Definition

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

Short DisplayCopyright holder and year(s)
Cardinality0..1
Typestring
Requirements

Defines the content expected to be rendered in all representations of the artifact.

Summaryfalse
Comments

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 IdExampleScenario.actor
Definition

A system or person who shares or receives an instance within the scenario.

Short DisplayIndividual involved in exchange
Cardinality0..*
Requirements

This is optional to allow for ExampleScenarios that are still draft

Summaryfalse
Invariants
Defined on 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-23Rule actor.key canot be 'OTHER'key != 'OTHER'
Affect this element
exs-3Rule Must have actors if status is active or requiredstatus='active' or status='retired' implies actor.exists()
exs-6Rule Actor keys must be uniqueactor.key.count() = actor.key.distinct().count()
exs-7Rule Actor titles must be uniqueactor.title.count() = actor.title.distinct().count()
exs-17Rule If specified, initiator must be a key of an actor within the ExampleScenarioinitiator.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 ExampleScenarioreceiver.exists() implies receiver = 'OTHER' or %resource.actor.where(key=%context.receiver).exists()
ExampleScenario.actor.key
Element IdExampleScenario.actor.key
Definition

A unique string within the scenario that is used to reference the actor.

Short DisplayID or acronym of the actor
Cardinality1..1
Typestring
Summaryfalse
Invariants
Affect this element
exs-6Rule Actor keys must be uniqueactor.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 ExampleScenarioinitiator.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 ExampleScenarioreceiver.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()
ExampleScenario.actor.type
Element IdExampleScenario.actor.type
Definition

The category of actor - person or system.

Short Displayperson | system
Cardinality1..1
Terminology BindingExample Scenario Actor Type (Required)
Typecode
Summaryfalse
ExampleScenario.actor.title
Element IdExampleScenario.actor.title
Definition

The human-readable name for the actor used when rendering the scenario.

Short DisplayLabel for actor when rendering
Cardinality1..1
Typestring
Summaryfalse
Invariants
Affect this element
exs-7Rule Actor titles must be uniqueactor.title.count() = actor.title.distinct().count()
ExampleScenario.actor.description
Element IdExampleScenario.actor.description
Definition

An explanation of who/what the actor is and its role in the scenario.

Short DisplayDetails about actor
Cardinality0..1
Typemarkdown
Summaryfalse
ExampleScenario.instance
Element IdExampleScenario.instance
Definition

A single data collection that is shared as part of the scenario.

Short DisplayData used in the scenario
Cardinality0..*
Summaryfalse
Invariants
Defined on this element
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.versionscontent.exists() implies version.empty()
exs-10Rule Version keys must be unique within an instanceversion.key.count() = version.key.distinct().count()
exs-11Rule Version titles must be unique within an instanceversion.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 operationversion.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
Affect this element
exs-8Rule Instance keys must be uniqueinstance.key.count() = instance.key.distinct().count()
exs-9Rule Instance titles must be uniqueinstance.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 versionsversionReference.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 instanceReferenceversionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
ExampleScenario.instance.key
Element IdExampleScenario.instance.key
Definition

A unique string within the scenario that is used to reference the instance.

Short DisplayID or acronym of the instance
Cardinality1..1
Typestring
Summaryfalse
Invariants
Affect this element
exs-8Rule Instance keys must be uniqueinstance.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 versionsversionReference.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 instanceReferenceversionReference.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 operationversion.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
ExampleScenario.instance.structureType
Element IdExampleScenario.instance.structureType
Definition

A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of.

Short DisplayData structure for example
Cardinality1..1
Terminology BindingExample Scenario Resource Type (Extensible)
TypeCoding
Summaryfalse
Invariants
Affect this element
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 IdExampleScenario.instance.structureVersion
Definition

Conveys the version of the data structure instantiated. I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.

Short DisplayE.g. 4.0.1
Cardinality0..1
Typestring
Meaning if MissingIf the structureType is a FHIR resource, then the version is the same FHIR version this ExampleScenario is expressed in.
Summaryfalse
Invariants
Affect this element
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 IdExampleScenario.instance.structureProfile[x]
Definition

Refers to a profile, template or other ruleset the instance adheres to.

Short DisplayRules instance adheres to
Cardinality0..1
Typecanonical|uri
[x] NoteSee Choice of Datatypes for further information about how to use [x]
Summaryfalse
ExampleScenario.instance.title
Element IdExampleScenario.instance.title
Definition

A short descriptive label the instance to be used in tables or diagrams.

Short DisplayLabel for instance
Cardinality1..1
Typestring
Summaryfalse
Invariants
Affect this element
exs-9Rule Instance titles must be uniqueinstance.title.count() = instance.title.distinct().count()
ExampleScenario.instance.description
Element IdExampleScenario.instance.description
Definition

An explanation of what the instance contains and what it's for.

Short DisplayHuman-friendly description of the instance
Cardinality0..1
Typemarkdown
Summaryfalse
ExampleScenario.instance.content
Element IdExampleScenario.instance.content
Definition

Points to an instance (typically an example) that shows the data that would corespond to this instance.

Short DisplayExample instance data
Cardinality0..1
TypeReference
Summaryfalse
Comments

If not conveying FHIR data or not using the same version of FHIR as this ExampleScenario instance, the reference must be to a Binary.

Invariants
Affect this element
exs-2Rule instance.content is only allowed if there are no instance.versionscontent.exists() implies version.empty()
ExampleScenario.instance.version
Element IdExampleScenario.instance.version
Definition

Represents the instance as it was at a specific time-point.

Short DisplaySnapshot of instance that changes
NoteThis is a business versionId, not a resource version id (see discussion)
Cardinality0..*
Requirements

Allows representing the 'same' instance as it evolves throughout the scenario.

Summaryfalse
Comments

Not used if an instance doesn't change

Invariants
Affect this element
exs-10Rule Version keys must be unique within an instanceversion.key.count() = version.key.distinct().count()
exs-11Rule Version titles must be unique within an instanceversion.title.count() = version.title.distinct().count()
exs-15Rule versionReference must be specified if the referenced instance defines versionsversionReference.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 instanceReferenceversionReference.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.versionscontent.exists() implies version.empty()
exs-21Warning Instance version should be referenced in at least one operationversion.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
ExampleScenario.instance.version.key
Element IdExampleScenario.instance.version.key
Definition

A unique string within the instance that is used to reference the version of the instance.

Short DisplayID or acronym of the version
Cardinality1..1
Typestring
Summaryfalse
Invariants
Affect this element
exs-10Rule Version keys must be unique within an instanceversion.key.count() = version.key.distinct().count()
exs-16Rule versionReference must be a key of a version within the instance pointed to by instanceReferenceversionReference.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 operationversion.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
ExampleScenario.instance.version.title
Element IdExampleScenario.instance.version.title
Definition

A short descriptive label the version to be used in tables or diagrams.

Short DisplayLabel for instance version
Cardinality1..1
Typestring
Summaryfalse
Invariants
Affect this element
exs-11Rule Version titles must be unique within an instanceversion.title.count() = version.title.distinct().count()
ExampleScenario.instance.version.description
Element IdExampleScenario.instance.version.description
Definition

An explanation of what this specific version of the instance contains and represents.

Short DisplayDetails about version
Cardinality0..1
Typemarkdown
Summaryfalse
ExampleScenario.instance.version.content
Element IdExampleScenario.instance.version.content
Definition

Points to an instance (typically an example) that shows the data that would flow at this point in the scenario.

Short DisplayExample instance version data
Cardinality0..1
TypeReference
Summaryfalse
Comments

If not conveying FHIR data or not using the same version of FHIR as this ExampleScenario instance, the reference must be to a Binary.

ExampleScenario.instance.containedInstance
Element IdExampleScenario.instance.containedInstance
Definition

References to other instances that can be found within this instance (e.g. the observations contained in a bundle).

Short DisplayResources contained in the instance
Cardinality0..*
Summaryfalse
Invariants
Defined on this element
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 versionsversionReference.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 instanceReferenceversionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
ExampleScenario.instance.containedInstance.instanceReference
Element IdExampleScenario.instance.containedInstance.instanceReference
Definition

A reference to the key of an instance found within this one.

Short DisplayKey of contained instance
Cardinality1..1
Typestring
Summaryfalse
Invariants
Affect this element
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 versionsversionReference.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 instanceReferenceversionReference.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 operationversion.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
ExampleScenario.instance.containedInstance.versionReference
Element IdExampleScenario.instance.containedInstance.versionReference
Definition

A reference to the key of a specific version of an instance in this instance.

Short DisplayKey of contained instance version
Cardinality0..1
Typestring
Summaryfalse
Comments

Required if the referenced instance has versions

Invariants
Affect this element
exs-15Rule versionReference must be specified if the referenced instance defines versionsversionReference.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 instanceReferenceversionReference.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 operationversion.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()
ExampleScenario.process
Element IdExampleScenario.process
Definition

A group of operations that represents a significant step within a scenario.

Short DisplayMajor process within scenario
Cardinality0..*
Summaryfalse
Comments

Some scenarios might describe only one process.

Invariants
Defined on 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()
Affect this element
exs-4Rule Must have processes if status is active or requiredstatus='active' or status='retired' implies process.exists()
exs-12Rule Process titles must be uniqueprocess.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 operationversion.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 IdExampleScenario.process.title
Definition

A short descriptive label the process to be used in tables or diagrams.

Short DisplayLabel for procss
Cardinality1..1
Typestring
Summarytrue
Invariants
Affect this element
exs-12Rule Process titles must be uniqueprocess.title.count() = process.title.distinct().count()
ExampleScenario.process.description
Element IdExampleScenario.process.description
Definition

An explanation of what the process represents and what it does.

Short DisplayHuman-friendly description of the process
Cardinality0..1
Typemarkdown
Summaryfalse
ExampleScenario.process.preConditions
Element IdExampleScenario.process.preConditions
Definition

Description of the initial state of the actors, environment and data before the process starts.

Short DisplayStatus before process starts
Cardinality0..1
Typemarkdown
Summaryfalse
ExampleScenario.process.postConditions
Element IdExampleScenario.process.postConditions
Definition

Description of the final state of the actors, environment and data after the process has been successfully completed.

Short DisplayStatus after successful completion
Cardinality0..1
Typemarkdown
Summaryfalse
Comments

Alternate steps might not result in all post conditions holding

ExampleScenario.process.step
Element IdExampleScenario.process.step
Definition

A significant action that occurs as part of the process.

Short DisplayEvent within of the process
Cardinality0..*
Summaryfalse
Invariants
Defined on this element
exs-13Rule Alternative titles must be unique within a stepalternative.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()
ExampleScenario.process.step.number
Element IdExampleScenario.process.step.number
Definition

The sequential number of the step, e.g. 1.2.5.

Short DisplaySequential number of the step
Cardinality0..1
Typestring
Summaryfalse
Comments

If step numbers are simultaneous, they will be the same. Numbers don't have to be numeric. E.g. '2c)' is a valid step number

ExampleScenario.process.step.process
Element IdExampleScenario.process.step.process
Definition

Indicates that the step is a complex sub-process with its own steps.

Short DisplayStep is nested process
Cardinality0..1
TypeSee ExampleScenario.process
Summaryfalse
ExampleScenario.process.step.workflow
Element IdExampleScenario.process.step.workflow
Definition

Indicates that the step is defined by a seaparate scenario instance.

Short DisplayStep is nested workflow
Cardinality0..1
Typecanonical(ExampleScenario)
Summaryfalse
Invariants
Affect this element
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 IdExampleScenario.process.step.operation
Definition

The step represents a single operation invoked on receiver by sender.

Short DisplayStep is simple action
Cardinality0..1
Summaryfalse
Invariants
Defined on this element
exs-17Rule If specified, initiator must be a key of an actor within the ExampleScenarioinitiator.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 ExampleScenarioreceiver.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 IdExampleScenario.process.step.operation.type
Definition

The standardized type of action (FHIR or otherwise).

Short DisplayKind of action
Cardinality0..1
Terminology BindingTest Script Operation Code (Extensible)
TypeCoding
Summaryfalse
ExampleScenario.process.step.operation.title
Element IdExampleScenario.process.step.operation.title
Definition

A short descriptive label the step to be used in tables or diagrams.

Short DisplayLabel for step
Cardinality1..1
Typestring
Summaryfalse
ExampleScenario.process.step.operation.initiator
Element IdExampleScenario.process.step.operation.initiator
Definition

The system that invokes the action/transmits the data.

Short DisplayWho starts the operation
Cardinality0..1
Typestring
Summaryfalse
Comments

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 ExampleScenarioinitiator.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 IdExampleScenario.process.step.operation.receiver
Definition

The system on which the action is invoked/receives the data.

Short DisplayWho receives the operation
Cardinality0..1
Typestring
Summaryfalse
Comments

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 ExampleScenarioreceiver.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()
ExampleScenario.process.step.operation.description
Element IdExampleScenario.process.step.operation.description
Definition

An explanation of what the operation represents and what it does.

Short DisplayHuman-friendly description of the operation
Cardinality0..1
Typemarkdown
Summaryfalse
Comments

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

ExampleScenario.process.step.operation.initiatorActive
Element IdExampleScenario.process.step.operation.initiatorActive
Definition

If false, the initiator is deactivated right after the operation.

Short DisplayInitiator stays active?
Cardinality0..1
Typeboolean
Requirements

The notion of 'activation' in a flow diagram is used to indicate 'who has responsibility/is still doing work'.

Summaryfalse
Comments

De-activation of an actor means they have no further role until such time as they are the recipient of an operation.

ExampleScenario.process.step.operation.receiverActive
Element IdExampleScenario.process.step.operation.receiverActive
Definition

If false, the receiver is deactivated right after the operation.

Short DisplayReceiver stays active?
Cardinality0..1
Typeboolean
Requirements

The notion of 'activation' in a flow diagram is used to indicate 'who has responsibility/is still doing work'.

Summaryfalse
Comments

De-activation of an actor means they have no further role until such time as they are the recipient of an operation.

ExampleScenario.process.step.operation.request
Element IdExampleScenario.process.step.operation.request
Definition

A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation.

Short DisplayInstance transmitted on invocation
Cardinality0..1
TypeSee ExampleScenario.instance.containedInstance
Summaryfalse
ExampleScenario.process.step.operation.response
Element IdExampleScenario.process.step.operation.response
Definition

A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any).

Short DisplayInstance transmitted on invocation response
Cardinality0..1
TypeSee ExampleScenario.instance.containedInstance
Summaryfalse
ExampleScenario.process.step.alternative
Element IdExampleScenario.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.

Short DisplayAlternate non-typical step action
Cardinality0..*
Summaryfalse
Invariants
Affect this element
exs-13Rule Alternative titles must be unique within a stepalternative.title.count() = alternative.title.distinct().count()
ExampleScenario.process.step.alternative.title
Element IdExampleScenario.process.step.alternative.title
Definition

The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.

Short DisplayLabel for alternative
Cardinality1..1
Typestring
Summaryfalse
Invariants
Affect this element
exs-13Rule Alternative titles must be unique within a stepalternative.title.count() = alternative.title.distinct().count()
ExampleScenario.process.step.alternative.description
Element IdExampleScenario.process.step.alternative.description
Definition

A human-readable description of the alternative explaining when the alternative should occur rather than the base step.

Short DisplayHuman-readable description of option
Cardinality0..1
Typemarkdown
Summaryfalse
ExampleScenario.process.step.alternative.step
Element IdExampleScenario.process.step.alternative.step
Definition

Indicates the operation, sub-process or scenario that happens if the alternative option is selected.

Short DisplayAlternative action(s)
Cardinality0..*
TypeSee ExampleScenario.process.step
Summaryfalse
ExampleScenario.process.step.pause
Element IdExampleScenario.process.step.pause
Definition

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

Short DisplayPause in the flow?
Cardinality0..1
Typeboolean
Summaryfalse