R6 Ballot (2nd Draft)

Publish-box (todo)

FHIR Infrastructure icon Work GroupMaturity Level: 1 Trial UseSecurity Category: Anonymous Compartments: No defined compartments

Detailed Descriptions for the elements in the ExampleScenario resource.

ExampleScenario
Element Id ExampleScenario
Definition

Example of workflow instance.

Short Display Example of workflow instance
Cardinality 0..*
Type CanonicalResource
Summary false
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 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)
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-1Warning URL should not contain | or # - these characters make processing canonical references problematicexists() 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.versionAlgorithm[x]
Element Id ExampleScenario.versionAlgorithm[x]
Definition

Indicates the 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
[x] Note See Choice of Datatypes for further information about how to use [x]
Summary true
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 Id ExampleScenario.name
Definition

Temporarily retained for tooling purposes.

Short Display To be removed?
Cardinality 0..1
Type string
Summary true
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 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 does not need to be 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-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 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 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 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

...

ExampleScenario.copyrightLabel
Element Id ExampleScenario.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 Display Copyright holder and year(s)
Cardinality 0..1
Type string
Requirements

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

Summary false
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 Id ExampleScenario.actor
Definition

A system or person who shares or receives an instance within the 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-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 Id ExampleScenario.actor.key
Definition

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

Short Display ID or acronym of the actor
Cardinality 1..1
Type string
Summary false
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 Id ExampleScenario.actor.type
Definition

The category of actor - person or system.

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

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

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

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

Short Display Details about actor
Cardinality 0..1
Type markdown
Summary false
ExampleScenario.instance
Element Id ExampleScenario.instance
Definition

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

Short Display Data used in the scenario
Cardinality 0..*
Summary false
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 Id ExampleScenario.instance.key
Definition

A unique string within the 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-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 Id ExampleScenario.instance.structureType
Definition

A code indicating the 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 Example Scenario Resource Type (Extensible)
Type Coding
Summary false
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 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.

Short Display E.g. 4.0.1
Cardinality 0..1
Type string
Meaning if Missing 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-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.

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 used in tables or diagrams.

Short Display Label for instance
Cardinality 1..1
Type string
Summary false
Invariants
Affect this element
exs-9Rule Instance titles must be uniqueinstance.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 instance
Cardinality 0..1
Type markdown
Summary 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 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 Id ExampleScenario.instance.version
Definition

Represents the 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-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 Id ExampleScenario.instance.version.key
Definition

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

Short Display ID or acronym of the version
Cardinality 1..1
Type string
Summary false
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 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-11Rule Version titles must be unique within an instanceversion.title.count() = version.title.distinct().count()
ExampleScenario.instance.version.description
Element Id ExampleScenario.instance.version.description
Definition

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

Short Display Details about version
Cardinality 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

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-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 Id ExampleScenario.instance.containedInstance.instanceReference
Definition

A reference to the 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-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 Id ExampleScenario.instance.containedInstance.versionReference
Definition

A reference to the key of a specific version of an instance in 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-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 Id ExampleScenario.process
Definition

A group of 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-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 Id ExampleScenario.process.title
Definition

A short descriptive label the 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-12Rule Process titles must be uniqueprocess.title.count() = process.title.distinct().count()
ExampleScenario.process.description
Element Id ExampleScenario.process.description
Definition

An explanation of what the 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 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 state of the actors, environment and data after the process 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

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-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 Id ExampleScenario.process.step.number
Definition

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

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

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

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

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

Short Display Step is simple action
Cardinality 0..1
Summary false
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 Id ExampleScenario.process.step.operation.type
Definition

The standardized type of action (FHIR or otherwise).

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

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

Short Display Label for step
Cardinality 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 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-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 Id ExampleScenario.process.step.operation.receiver
Definition

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

Short Display Who receives the 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-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 Id ExampleScenario.process.step.operation.description
Definition

An explanation of what the 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

If false, the initiator is deactivated right after the 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

If false, the receiver is deactivated right after the 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

A reference to the instance that is transmitted from requester to receiver as part of the 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

A reference to the instance that is transmitted from receiver to requester as part of the 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 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-13Rule Alternative titles must be unique within a stepalternative.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-13Rule Alternative titles must be unique within a stepalternative.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

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

Short Display Alternative action(s)
Cardinality 0..*
Type See ExampleScenario.process.step
Summary false
ExampleScenario.process.step.pause
Element Id ExampleScenario.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 Display Pause in the flow?
Cardinality 0..1
Type boolean
Summary false