Release 5 Draft Ballot

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions

FHIR Infrastructure Work GroupMaturity Level: 0 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.

Cardinality0..*
TypeCanonicalResource
Summaryfalse
Invariants
Defined on 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-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 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.

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.

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.

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.

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

ExampleScenario.name
Element IdExampleScenario.name
Definition

Temporarily retained for tooling purposes.

Cardinality0..1
Typestring
Summarytrue
Comments

Not needed as code will never be generated from one of these

ExampleScenario.title
Element IdExampleScenario.title
Definition

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

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.

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.

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.

Cardinality0..1
Typeboolean
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 published. 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').

Cardinality0..1
TypedateTime
Alternate NamesRevision Date
Summarytrue
Comments

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 that published the example scenario.

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.

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.

Cardinality0..1
Typemarkdown
Summarytrue
Comments

This description can be used to capture details such as why the ExampleScenario was built. 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.

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.

Cardinality0..*
Terminology BindingJurisdiction (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.

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.

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

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

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

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()
Affect this element
exs-3Rule Must have actors if status is active or requiredstatus='active' or status='retired' implies actor.exists()
ExampleScenario.actor.key
Element IdExampleScenario.actor.key
Definition

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

Cardinality1..1
Typestring
Summaryfalse
ExampleScenario.actor.type
Element IdExampleScenario.actor.type
Definition

The category of actor - person or system.

Cardinality1..1
Terminology BindingExampleScenarioActorType (Required)
Typecode
Summaryfalse
ExampleScenario.actor.title
Element IdExampleScenario.actor.title
Definition

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

Cardinality1..1
Typestring
Summaryfalse
ExampleScenario.actor.description
Element IdExampleScenario.actor.description
Definition

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

Cardinality0..1
Typemarkdown
Summaryfalse
ExampleScenario.instance
Element IdExampleScenario.instance
Definition

A single data collection that is shared as part of 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.versionsinstance.content.exists() implies instance.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()
ExampleScenario.instance.key
Element IdExampleScenario.instance.key
Definition

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

Cardinality1..1
Typestring
Summaryfalse
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.

Cardinality1..1
Terminology BindingExample Scenario Resource Type (Extensible)
TypeCoding
Summaryfalse
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.

Cardinality0..1
Typestring
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.

Cardinality0..1
Typecanonical|uri
[x] NoteSee Choice of Data Types 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.

Cardinality1..1
Typestring
Summaryfalse
ExampleScenario.instance.description
Element IdExampleScenario.instance.description
Definition

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

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.

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.version
Element IdExampleScenario.instance.version
Definition

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

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

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.

Cardinality1..1
Typestring
Summaryfalse
ExampleScenario.instance.version.description
Element IdExampleScenario.instance.version.description
Definition

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

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.

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

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.

Cardinality1..1
Typestring
Summaryfalse
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.

Cardinality0..1
Typestring
Summaryfalse
Comments

Required if the referenced instance has versions

ExampleScenario.process
Element IdExampleScenario.process
Definition

A group of operations that represents a significant step within a 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()
ExampleScenario.process.title
Element IdExampleScenario.process.title
Definition

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

Cardinality1..1
Typestring
Summarytrue
ExampleScenario.process.description
Element IdExampleScenario.process.description
Definition

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

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.

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.

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.

Cardinality0..*
Summaryfalse
Invariants
Defined on this element
exs-13Rule Alternative titles must be unique within a stepalternative.title.count() = alternative.title.distinct().count()
exs-16Rule 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.

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.

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.

Cardinality0..1
Typecanonical(ExampleScenario)
Summaryfalse
ExampleScenario.process.step.operation
Element IdExampleScenario.process.step.operation
Definition

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

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 %resource.actor.where(key=%context.initiator).exists()
exs-18Rule If specified, receiver must be a key of an actor within the ExampleScenarioreceiver.exists() implies %resource.actor.where(key=%context.receiver).exists()
ExampleScenario.process.step.operation.type
Element IdExampleScenario.process.step.operation.type
Definition

The standardized type of action (FHIR or otherwise).

Cardinality0..1
Terminology BindingTestScriptOperationCode (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.

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.

Cardinality0..1
Typestring
Summaryfalse
ExampleScenario.process.step.operation.receiver
Element IdExampleScenario.process.step.operation.receiver
Definition

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

Cardinality0..1
Typestring
Summaryfalse
Comments

In some cases, receiver could be same as sender if representing a local operation

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

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

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.

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.

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.

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

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.

Cardinality0..*
Summaryfalse
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.

Cardinality1..1
Typestring
Summaryfalse
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.

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.

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

Cardinality0..1
Typeboolean
Summaryfalse