Release 4 5

This page is part of the FHIR Specification (v4.0.1: R4 (v5.0.0: R5 - Mixed Normative and STU ) ). This is the current published version in it's permanent home (it will always be available at this URL). 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 Group Maturity Level : 0 1   Trial Use Security Category : Anonymous Compartments : Not linked to any No defined compartments

Detailed Descriptions for the elements in the ExampleScenario resource.

should Cardinality: is name and description 1..1? string
ExampleScenario
Element Id ExampleScenario
Definition

Example of workflow instance.

Short Display Example of workflow instance
Cardinality 0..*
Type DomainResource CanonicalResource
Summary false
Invariants
Defined on this element
esc-0 cnl-0 Warning Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}') name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
exs-3 Rule Must have actors if status is active or required status='active' or status='retired' implies actor.exists()
exs-4 Rule Must have processes if status is active or required status='active' or status='retired' implies process.exists()
exs-6 Rule Actor keys must be unique actor.key.count() = actor.key.distinct().count()
exs-7 Rule Actor titles must be unique actor.title.count() = actor.title.distinct().count()
exs-8 Rule Instance keys must be unique instance.key.count() = instance.key.distinct().count()
exs-9 Rule Instance titles must be unique instance.title.count() = instance.title.distinct().count()
exs-12 Rule 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 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)
Cardinality 0..1
Type uri
Requirements

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

Summary true
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-1 Warning 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 )
Cardinality 0..*
Type Identifier
Requirements

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

Summary true
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 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 )
Cardinality 0..1
Type string
Summary true
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.name ExampleScenario.versionAlgorithm[x]
Element Id ExampleScenario.name ExampleScenario.versionAlgorithm[x]
Definition

A natural language name identifying the example scenario. This name should be usable as an identifier for Indicates the module by machine processing applications such as code generation. mechanism used to compare versions to determine which is more current.

Short Display How to compare versions
Cardinality 0..1
Terminology Binding Version Algorithm ( Extensible )
Type string | Coding
Requirements [x] Note See Choice of Datatypes for further information about how to use [x]
Summary true
Comments

Support human navigation If set as a string, this is a FHIRPath expression that has two additional context variables passed in - %version1 and code generation. %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 Id ExampleScenario.name
Definition

Temporarily retained for tooling purposes.

Short Display To be removed?
Cardinality 0..1
Type string
Summary true
Comments

The name is not expected to be globally unique. The name should Not needed as code will never be a simple alphanumeric type name to ensure that it is machine-processing friendly. generated from one of these

Invariants
Affect this element
inv-0 cnl-0 Warning Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}') name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
ExampleScenario.title
To Do Element Id & ExampleScenario.title
Definition

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

Short Display Name for this example scenario (human friendly)
Cardinality 0..1
Type string
Summary true
Comments

This name should does not need to be provided unless the value set is a contained resource (e.g. an anonymous value set in a profile). Most registries will require a name. machine-processing friendly and may contain punctuation, white-space, etc.

ExampleScenario.status
Element Id ExampleScenario.status
Definition

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

Short Display draft | active | retired | unknown
Cardinality 1..1
Terminology Binding PublicationStatus ( Required )
Type code
Is Modifier true (Reason: This is labeled as "Is Modifier" because applications should not use a retired {{title}} without due consideration)
Summary true
Comments

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-3 Rule Must have actors if status is active or required status='active' or status='retired' implies actor.exists()
exs-4 Rule Must have processes if status is active or required status='active' or status='retired' implies process.exists()
exs-5 Rule 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
Cardinality 0..1
Type boolean
Meaning if Missing If 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.

Summary true
Comments

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 published. 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 Display Date last changed
Cardinality 0..1
Type dateTime
Alternate Names Revision Date
Summary true
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.

See guidance around (not) making local changes to elements here .

ExampleScenario.publisher
Element Id ExampleScenario.publisher
Definition

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

Short Display Name of the publisher/steward (organization or individual)
Cardinality 0..1
Type string
Requirements

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

Summary true
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 Id ExampleScenario.contact
Definition

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

Short Display Contact details for the publisher
Cardinality 0..*
Type ContactDetail
Summary true
Comments

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

See guidance around (not) making local changes to elements here .

ExampleScenario.description
Element Id ExampleScenario.description
Definition

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

Short Display Natural language description of the ExampleScenario
Cardinality 0..1
Type markdown
Summary true
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 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
Cardinality 0..*
Type UsageContext
Requirements

Assist in searching for appropriate content.

Summary true
Comments

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

ExampleScenario.jurisdiction
Standards Status This element has a standards status of "Deprecated" which is different from the status of the whole resource
Element Id ExampleScenario.jurisdiction
Definition

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

Short Display Intended jurisdiction for example scenario (if applicable)
Cardinality 0..*
Terminology Binding Jurisdiction ValueSet ( Extensible )
Type CodeableConcept
Summary true
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.

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
Cardinality 0..1
Type markdown
Summary false
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 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.

Short Display Use and/or publishing restrictions
Cardinality 0..1
Type markdown
Requirements

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

Alternate Names License; Restrictions
Summary false
Comments nullFrequently, the copyright differs between the value set and the codes that are included. The copyright statement should clearly differentiate between these when required.

...

ExampleScenario.purpose ExampleScenario.copyrightLabel
Element Id ExampleScenario.purpose ExampleScenario.copyrightLabel
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 short string (<50 characters), suitable for inclusion in a scenario. page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').

Short Display Copyright holder and year(s)
Cardinality 0..1
Type markdown string
Comments Requirements

This element does not describe the usage of Defines the example scenario. Instead, it provides traceability content expected to be rendered in all representations of ''why'' the resource is either needed or ''why'' it is defined as it is. This may artifact.

Summary false
Comments

The (c) symbol should NOT be used to point to source materials or specifications that drove the structure of included in this example scenario. 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

Actor participating in A system or person who shares or receives an instance within the resource. scenario.

Short Display Individual involved in exchange
Cardinality 0..*
Requirements

This is optional to allow for ExampleScenarios that are still draft

Summary false
Invariants
Defined on this element
exs-19 Warning Actor should be referenced in at least one operation %resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()
exs-23 Rule actor.key canot be 'OTHER' key != 'OTHER'
Affect this element
exs-3 Rule Must have actors if status is active or required status='active' or status='retired' implies actor.exists()
exs-6 Rule Actor keys must be unique actor.key.count() = actor.key.distinct().count()
exs-7 Rule Actor titles must be unique actor.title.count() = actor.title.distinct().count()
exs-17 Rule 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-18 Rule 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.actorId ExampleScenario.actor.key
Element Id ExampleScenario.actor.actorId ExampleScenario.actor.key
Definition

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

Short Display ID or acronym of actor. the actor
Cardinality 1..1
Type string
Comments Summary false
Invariants
Affect this element
exs-6 Rule Actor keys must be called ID unique actor.key.count() = actor.key.distinct().count()
exs-23 Rule actor.key canot be 'OTHER' key != 'OTHER'
exs-17 Rule If specified, initiator must be a key of an actor within the ExampleScenario initiator.exists() implies initiator = 'OTHER' or acronym? %resource.actor.where(key=%context.initiator).exists()
exs-18 Rule 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-19 Warning 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 Id ExampleScenario.actor.type
Definition

The type category of actor - person or system.

Short Display person | system
Cardinality 1..1
Terminology Binding ExampleScenarioActorType Example Scenario Actor Type ( Required )
Type code
Summary false
ExampleScenario.actor.name ExampleScenario.actor.title
Element Id ExampleScenario.actor.name ExampleScenario.actor.title
Definition

The human-readable name of for the actor as shown in used when rendering the page. scenario.

Short Display Label for actor when rendering
Cardinality 0..1 1..1
Type string
Comments Summary false
Invariants
Affect this element
exs-7 Rule Actor titles must be unique actor.title.count() = actor.title.distinct().count()
ExampleScenario.actor.description
Element Id ExampleScenario.actor.description
Definition

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

Short Display Details about actor
Cardinality 0..1
Type markdown
Comments Summary Cardinality: is name and description 1..1? false
ExampleScenario.instance
Element Id ExampleScenario.instance
Definition

Each resource and each version A single data collection that is present in shared as part of the workflow. scenario.

Short Display Data used in the scenario
Cardinality 0..*
Summary false
Invariants
Defined on this element
exs-1 Rule 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-2 Rule instance.content is only allowed if there are no instance.versions content.exists() implies version.empty()
exs-10 Rule Version keys must be unique within an instance version.key.count() = version.key.distinct().count()
exs-11 Rule Version titles must be unique within an instance version.title.count() = version.title.distinct().count()
exs-20 Warning Instance should be referenced in at least one location %resource.process.descendants().select(instanceReference).where($this=%context.key).exists()
exs-21 Warning 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-8 Rule Instance keys must be unique instance.key.count() = instance.key.distinct().count()
exs-9 Rule Instance titles must be unique instance.title.count() = instance.title.distinct().count()
exs-14 Rule InstanceReference must be a key of an instance defined in the ExampleScenario %resource.instance.where(key=%context.instanceReference).exists()
exs-15 Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16 Rule 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.resourceId ExampleScenario.instance.key
Element Id ExampleScenario.instance.resourceId ExampleScenario.instance.key
Definition

The id of A unique string within the resource for referencing. scenario that is used to reference the instance.

Short Display ID or acronym of the instance
Cardinality 1..1
Type string
Summary false
Invariants
Affect this element
exs-8 Rule Instance keys must be unique instance.key.count() = instance.key.distinct().count()
exs-14 Rule InstanceReference must be a key of an instance defined in the ExampleScenario %resource.instance.where(key=%context.instanceReference).exists()
exs-15 Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16 Rule 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-20 Warning Instance should be referenced in at least one location %resource.process.descendants().select(instanceReference).where($this=%context.key).exists()
exs-21 Warning 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.resourceType ExampleScenario.instance.structureType
Element Id ExampleScenario.instance.resourceType ExampleScenario.instance.structureType
Definition

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

Short Display Data structure for example
Cardinality 1..1
Terminology Binding ResourceType Example Scenario Resource Type ( Required Extensible )
Type code Coding
Summary false
Invariants
Affect this element
exs-1 Rule 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.name ExampleScenario.instance.structureVersion
Element Id ExampleScenario.instance.name ExampleScenario.instance.structureVersion
Definition

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

Short Display E.g. 4.0.1
Cardinality 0..1
Type string
To Do Meaning if Missing Should name If the structureType is a FHIR resource, then the version is the same FHIR version this ExampleScenario is expressed in.
Summary false
Invariants
Affect this element
exs-1 Rule StructureVersion is required if structureType is not FHIR (but may still be present even if FHIR) structureType.exists() and description 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.

Short Display Rules instance adheres to
Cardinality 0..1
Type canonical | uri
[x] Note See Choice of Datatypes for further information about how to use [x]
Summary false
ExampleScenario.instance.title
Element Id ExampleScenario.instance.title
Definition

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

Short Display Label for instance
Cardinality 1..1
Type string
Summary false
Invariants
Affect this element
exs-9 Rule Instance titles must be unique instance.title.count() = instance.title.distinct().count()
ExampleScenario.instance.description
Element Id ExampleScenario.instance.description
Definition

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

Short Display Human-friendly description of the resource instance. instance
Cardinality 0..1
Type markdown
To Do Summary Should name and description false
ExampleScenario.instance.content
Element Id ExampleScenario.instance.content
Definition

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

Short Display Example instance data
Cardinality 0..1
Type Reference
Summary false
Comments

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

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

A specific version of Represents the resource. instance as it was at a specific time-point.

Short Display Snapshot of instance that changes
Note This is a business versionId, not a resource version id (see discussion )
Cardinality 0..*
Requirements

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

Summary false
Comments

Not used if an instance doesn't change

Invariants
Affect this element
exs-10 Rule Version keys must be unique within an instance version.key.count() = version.key.distinct().count()
exs-11 Rule Version titles must be unique within an instance version.title.count() = version.title.distinct().count()
exs-15 Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16 Rule 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-2 Rule instance.content is only allowed if there are no instance.versions content.exists() implies version.empty()
exs-21 Warning 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.versionId ExampleScenario.instance.version.key
Element Id ExampleScenario.instance.version.versionId ExampleScenario.instance.version.key
Definition

The identifier A unique string within the instance that is used to reference the version of a specific the instance.

Short Display ID or acronym of the version
Cardinality 1..1
Type string
Summary false
Invariants
Affect this element
exs-10 Rule Version keys must be unique within an instance version.key.count() = version.key.distinct().count()
exs-16 Rule versionReference must be a key of a resource. version within the instance pointed to by instanceReference versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()
exs-21 Warning 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.

Short Display Label for instance version
Cardinality 1..1
Type string
Summary false
Invariants
Affect this element
exs-11 Rule Version titles must be unique within an instance version.title.count() = version.title.distinct().count()
ExampleScenario.instance.version.description
Element Id ExampleScenario.instance.version.description
Definition

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

Short Display Details about version
Cardinality 1..1 0..1
Type markdown
Summary false
ExampleScenario.instance.version.content
Element Id ExampleScenario.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 Display Example instance version data
Cardinality 0..1
Type Reference
Summary false
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 Id ExampleScenario.instance.containedInstance
Definition

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

Short Display Resources contained in the instance
Cardinality 0..*
Summary false
Invariants
Defined on this element
exs-14 Rule InstanceReference must be a key of an instance defined in the ExampleScenario %resource.instance.where(key=%context.instanceReference).exists()
exs-15 Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16 Rule 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.containedInstance.resourceId ExampleScenario.instance.containedInstance.instanceReference
Element Id ExampleScenario.instance.containedInstance.resourceId ExampleScenario.instance.containedInstance.instanceReference
Definition

Each resource contained in A reference to the instance. key of an instance found within this one.

Short Display Key of contained instance
Cardinality 1..1
Type string
Summary false
Invariants
Affect this element
exs-14 Rule InstanceReference must be a key of an instance defined in the ExampleScenario %resource.instance.where(key=%context.instanceReference).exists()
exs-15 Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16 Rule 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-20 Warning Instance should be referenced in at least one location %resource.process.descendants().select(instanceReference).where($this=%context.key).exists()
exs-21 Warning 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.containedInstance.versionId ExampleScenario.instance.containedInstance.versionReference
Element Id ExampleScenario.instance.containedInstance.versionId ExampleScenario.instance.containedInstance.versionReference
Definition

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

Short Display Key of contained instance version
Cardinality 0..1
Type string
Summary false
Comments

Required if the referenced instance has versions

Invariants
Affect this element
exs-15 Rule versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
exs-16 Rule 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-21 Warning 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

Each major process - a A group of operations. operations that represents a significant step within a scenario.

Short Display Major process within scenario
Cardinality 0..*
Summary false
Comments

Some scenarios might describe only one process.

Invariants
Defined on this element
exs-5 Rule 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-4 Rule Must have processes if status is active or required status='active' or status='retired' implies process.exists()
exs-12 Rule Process titles must be unique process.title.count() = process.title.distinct().count()
exs-22 Rule 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-20 Warning Instance should be referenced in at least one location %resource.process.descendants().select(instanceReference).where($this=%context.key).exists()
exs-21 Warning 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-19 Warning 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

The diagram title of A short descriptive label the group of operations. process to be used in tables or diagrams.

Short Display Label for procss
Cardinality 1..1
Type string
Summary true
Invariants
Affect this element
exs-12 Rule Process titles must be unique process.title.count() = process.title.distinct().count()
ExampleScenario.process.description
Element Id ExampleScenario.process.description
Definition

A longer description An explanation of what the group of operations. process represents and what it does.

Short Display Human-friendly description of the process
Cardinality 0..1
Type markdown
Summary false
ExampleScenario.process.preConditions
Element Id ExampleScenario.process.preConditions
Definition

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

Short Display Status before process starts
Cardinality 0..1
Type markdown
Summary false
ExampleScenario.process.postConditions
Element Id ExampleScenario.process.postConditions
Definition

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

Short Display Status after successful completion
Cardinality 0..1
Type markdown
Summary false
Comments

Alternate steps might not result in all post conditions holding

ExampleScenario.process.step
Element Id ExampleScenario.process.step
Definition

Each step A significant action that occurs as part of the process.

Short Display Event within of the process
Cardinality 0..*
Summary false
Invariants
Defined on this element
exs-13 Rule Alternative titles must be unique within a step alternative.title.count() = alternative.title.distinct().count()
exs-22 Rule 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-5 Rule Processes must have steps if ExampleScenario status is active or required %resource.status='active' or %resource.status='retired' implies step.exists()
ExampleScenario.process.step.process ExampleScenario.process.step.number
Element Id ExampleScenario.process.step.process ExampleScenario.process.step.number
Definition

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

Short Display Sequential number of the step
Cardinality 0..* 0..1
Type See ExampleScenario.process string
Summary false
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.pause ExampleScenario.process.step.process
Element Id ExampleScenario.process.step.pause ExampleScenario.process.step.process
Definition

If there Indicates that the step is a pause in the flow. complex sub-process with its own steps.

Short Display Step is nested process
Cardinality 0..1
Type boolean See ExampleScenario.process
Summary false
ExampleScenario.process.step.operation ExampleScenario.process.step.workflow
Element Id ExampleScenario.process.step.operation ExampleScenario.process.step.workflow
Definition

Each interaction or action. Indicates that the step is defined by a seaparate scenario instance.

Short Display Step is nested workflow
Cardinality 0..1
Type canonical ( ExampleScenario )
Summary false
Invariants
Affect this element
exs-22 Rule 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.number ExampleScenario.process.step.operation
Element Id ExampleScenario.process.step.operation.number ExampleScenario.process.step.operation
Definition

The sequential number of the interaction, e.g. 1.2.5. step represents a single operation invoked on receiver by sender.

Short Display Step is simple action
Cardinality 1..1 0..1
Type Summary false
Invariants
Defined on this element
exs-17 Rule 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-18 Rule 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-19 Warning Actor should be referenced in at least one operation %resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()
exs-22 Rule 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 operation - CRUD. action (FHIR or otherwise).

Short Display Kind of action
Cardinality 0..1
Terminology Binding Test Script Operation Code ( Extensible )
Type string Coding
Summary false
ExampleScenario.process.step.operation.name ExampleScenario.process.step.operation.title
Element Id ExampleScenario.process.step.operation.name ExampleScenario.process.step.operation.title
Definition

The human-friendly name of A short descriptive label the interaction. step to be used in tables or diagrams.

Short Display Label for step
Cardinality 0..1 1..1
Type string
Summary false
ExampleScenario.process.step.operation.initiator
Element Id ExampleScenario.process.step.operation.initiator
Definition

The system that invokes the action/transmits the data.

Short Display Who starts the transaction. operation
Cardinality 0..1
Type string
Summary false
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-17 Rule 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-19 Warning 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.

Short Display Who receives the transaction. operation
Cardinality 0..1
Type string
Summary false
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-18 Rule 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-19 Warning 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 Id ExampleScenario.process.step.operation.description
Definition

A comment to be inserted in An explanation of what the diagram. operation represents and what it does.

Short Display Human-friendly description of the operation
Cardinality 0..1
Type markdown
Summary false
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 Id ExampleScenario.process.step.operation.initiatorActive
Definition

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

Short Display Initiator stays active?
Cardinality 0..1
Type boolean
Requirements

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

Summary false
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 Id ExampleScenario.process.step.operation.receiverActive
Definition

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

Short Display Receiver stays active?
Cardinality 0..1
Type boolean
Requirements

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

Summary false
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 Id ExampleScenario.process.step.operation.request
Definition

Each resource A reference to the instance used by that is transmitted from requester to receiver as part of the initiator. invocation of the operation.

Short Display Instance transmitted on invocation
Cardinality 0..1
Type See ExampleScenario.instance.containedInstance
Summary false
ExampleScenario.process.step.operation.response
Element Id ExampleScenario.process.step.operation.response
Definition

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

Short Display Instance transmitted on invocation response
Cardinality 0..1
Type See ExampleScenario.instance.containedInstance
Summary false
ExampleScenario.process.step.alternative
Element Id ExampleScenario.process.step.alternative
Definition

Indicates an alternative step that can be taken instead of the operations on the base step in exceptional/atypical sub-process, scenario or operation. E.g. to represent non-happy-path/exceptional/atypical circumstances.

Short Display Alternate non-typical step action
Cardinality 0..*
Summary false
Invariants
Affect this element
exs-13 Rule Alternative titles must be unique within a step alternative.title.count() = alternative.title.distinct().count()
ExampleScenario.process.step.alternative.title
Element Id ExampleScenario.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 Display Label for alternative
Cardinality 1..1
Type string
Summary false
Invariants
Affect this element
exs-13 Rule Alternative titles must be unique within a step alternative.title.count() = alternative.title.distinct().count()
ExampleScenario.process.step.alternative.description
Element Id ExampleScenario.process.step.alternative.description
Definition

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

Short Display Human-readable description of option
Cardinality 0..1
Type markdown
Summary false
ExampleScenario.process.step.alternative.step
Element Id ExampleScenario.process.step.alternative.step
Definition

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

Short Display Alternative action(s)
Cardinality 0..*
Type See ExampleScenario.process.step
Summary false
ExampleScenario.workflow ExampleScenario.process.step.pause
Element Id ExampleScenario.workflow ExampleScenario.process.step.pause
Definition

Another nested workflow. 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 Display Pause in the flow?
Cardinality 0..* 0..1
Type canonical boolean ( ExampleScenario
Summary ) false