--- type: "resource" title: "ExampleScenario" resource: "ExampleScenario" --- # ExampleScenario ## Introduction ## Scope and Usage ExampleScenario provides examples for how certain data exchange workflows might manifest. This resource is similar to [ImplementationGuide](implementationguide), [Requirements](requirements), [ActorDefinition](actordefinition), and other resources that will typically only be exchanged as part of implementation guide packages and will be used by implementers to understand how to design systems rather than being used to share information between clinical systems. This resource can be used to show how instances would evolve over time as well as the interplay of systems over time to accomplish a particular end-state. It will frequently be used to generate sequence diagrams, but also provides further information about all of the entities within the sequence diagrams, including the instances shared as part of the exchange. This resource is most useful when documenting more complex flows rather than simple RESTful invocations or other request-response pairs. ## Boundaries and Relationships [PlanDefinitions](plandefinition) also describe actors and sequences of interactions between them, including alternatives. However, PlanDefinition defines what's allowed, while ExampleScenario represents a potential pathway through what's allowed. While an ExampleScenario can define alternatives, it doesn't necessarily call out all of them. Instead, it highlights the path(s) of interest to help a reader understand what's possible or how a particular scenario might work. Any resource can be an 'example' in a specification. This resource is specifically about highlighting how those examples come together in a workflow - who exchanges them and under what circumstances. ## Background and Context Provides additional detail on exactly how the resource is to be used ## Notes Example Scenarios help to make the expected behavior of a collection of systems adhering to a guide more concrete. It allows the author to say "Imagine you have a patient in situation X and Y needs to happen. This is what the exchanges between the various imaginary systems might look like for that specific patient." Creating examples is a lot of work, and creating ExampleScenarios is often an order of magnitude more work, but being able to see the resulting diagrams of flows and click through to see the specific instances that are being exchanged can be extremely helpful in solidifying implementer understanding of the 'workflow' implied by an implementation guide. In addition to the examples provided in the examples tab, you can also see some useful examples of ExampleScenario in the [Physical Activity implementation guide](https://hl7.org/fhir/us/physical-activity/STU1/artifacts.html#7). ### Contained There are two notions of 'contained' in this resource - the generic 'contained' element inherited from DomainResource that allows other resources to be nested inside this ExampleScenario (e.g. Provenance, structureProfiles, or instance or instance.version content). There is also a containedInstance element on ExampleScenario.instance. This latter element reflects the nesting of content within the data shared as part of a scenario. For example, highlighting that an instance initially received on its own (e.g. an Observation) is later conveyed in a Bundle (as a document, message or search response), or potentially a resource that was nested as a 'contained' resource in one instance is available in non-contained form or contained inside a different resource in a separate instance. In short, 'ExampleScenario.contained' is for nesting resources inside the ExampleScenario. ExampleScenario.instance.containedInstance reflects the nesting of data being transmitted by an ExampleScenario operation as part of the scenario. ## StructureDefinition ### Elements (Simplified) - **[ExampleScenario](/examplescenario-definitions#ExampleScenario)** [0..*]: - A computable description of a set of actors and the interactions between those actors - **[ExampleScenario.url](/examplescenario-definitions#ExampleScenario.url)** [0..1]: [uri](/uri) Canonical identifier for this example scenario, represented as a URI (globally unique) - **[ExampleScenario.identifier](/examplescenario-definitions#ExampleScenario.identifier)** [0..*]: [Identifier](/Identifier) Additional identifier for the example scenario - **[ExampleScenario.version](/examplescenario-definitions#ExampleScenario.version)** [0..1]: [string](/string) Business version of the example scenario - **[ExampleScenario.versionAlgorithm[x]](/examplescenario-definitions#ExampleScenario.versionAlgorithm%5Bx%5D)** [0..1]: [string](/string), [Coding](/Coding) extensible:[version-algorithm](/valueset-version-algorithm) How to compare versions - **[ExampleScenario.name](/examplescenario-definitions#ExampleScenario.name)** [0..1]: [string](/string) Name for this example scenario (computer friendly) - **[ExampleScenario.title](/examplescenario-definitions#ExampleScenario.title)** [0..1]: [string](/string) Name for this example scenario (human friendly) - **[ExampleScenario.status](/examplescenario-definitions#ExampleScenario.status)** [1..1]: [code](/code) required:[publication-status](/valueset-publication-status) draft | active | retired | unknown - **[ExampleScenario.experimental](/examplescenario-definitions#ExampleScenario.experimental)** [0..1]: [boolean](/boolean) For testing only - never for real usage - **[ExampleScenario.date](/examplescenario-definitions#ExampleScenario.date)** [0..1]: [dateTime](/dateTime) Date last changed - **[ExampleScenario.publisher](/examplescenario-definitions#ExampleScenario.publisher)** [0..1]: [string](/string) Name of the publisher/steward (organization or individual) - **[ExampleScenario.contact](/examplescenario-definitions#ExampleScenario.contact)** [0..*]: [ContactDetail](/ContactDetail) Contact details for the publisher - **[ExampleScenario.description](/examplescenario-definitions#ExampleScenario.description)** [0..1]: [markdown](/markdown) Natural language description of the ExampleScenario - **[ExampleScenario.useContext](/examplescenario-definitions#ExampleScenario.useContext)** [0..*]: [UsageContext](/UsageContext) The context that the content is intended to support - **[ExampleScenario.jurisdiction](/examplescenario-definitions#ExampleScenario.jurisdiction)** [0..*]: [CodeableConcept](/CodeableConcept) extensible:[jurisdiction](/valueset-jurisdiction) Jurisdiction of the authority that maintains the example scenario (if applicable) - **[ExampleScenario.purpose](/examplescenario-definitions#ExampleScenario.purpose)** [0..1]: [markdown](/markdown) The purpose of the example, e.g. to illustrate a scenario - **[ExampleScenario.copyright](/examplescenario-definitions#ExampleScenario.copyright)** [0..1]: [markdown](/markdown) Notice about intellectual property ownership, can include restrictions on use - **[ExampleScenario.copyrightLabel](/examplescenario-definitions#ExampleScenario.copyrightLabel)** [0..1]: [string](/string) Copyright holder and year(s) - **[ExampleScenario.actor](/examplescenario-definitions#ExampleScenario.actor)** [0..*]: [BackboneElement](/BackboneElement) Individual involved in exchange - **[ExampleScenario.actor.key](/examplescenario-definitions#ExampleScenario.actor.key)** [1..1]: [string](/string) ID or acronym of the actor - **[ExampleScenario.actor.type](/examplescenario-definitions#ExampleScenario.actor.type)** [0..1]: [code](/code) required:[actordefinition-actor-type](/valueset-actordefinition-actor-type) person | system | collective | other - **[ExampleScenario.actor.title](/examplescenario-definitions#ExampleScenario.actor.title)** [1..1]: [string](/string) Label for actor when rendering - **[ExampleScenario.actor.description](/examplescenario-definitions#ExampleScenario.actor.description)** [0..1]: [markdown](/markdown) Details about actor - **[ExampleScenario.actor.definition](/examplescenario-definitions#ExampleScenario.actor.definition)** [0..1]: [canonical](/canonical) Formal definition of actor - **[ExampleScenario.instance](/examplescenario-definitions#ExampleScenario.instance)** [0..*]: [BackboneElement](/BackboneElement) Data used in the scenario - **[ExampleScenario.instance.key](/examplescenario-definitions#ExampleScenario.instance.key)** [1..1]: [string](/string) ID or acronym of the instance - **[ExampleScenario.instance.structureType](/examplescenario-definitions#ExampleScenario.instance.structureType)** [1..1]: [Coding](/Coding) extensible:[examplescenario-instance-type](/valueset-examplescenario-instance-type) Data structure for example - **[ExampleScenario.instance.structureVersion](/examplescenario-definitions#ExampleScenario.instance.structureVersion)** [0..1]: [string](/string) E.g. 4.0.1 - **[ExampleScenario.instance.structureProfile[x]](/examplescenario-definitions#ExampleScenario.instance.structureProfile%5Bx%5D)** [0..1]: [canonical](/canonical), [uri](/uri) Rules instance adheres to - **[ExampleScenario.instance.title](/examplescenario-definitions#ExampleScenario.instance.title)** [1..1]: [string](/string) Label for instance - **[ExampleScenario.instance.description](/examplescenario-definitions#ExampleScenario.instance.description)** [0..1]: [markdown](/markdown) Human-friendly description of the instance - **[ExampleScenario.instance.content](/examplescenario-definitions#ExampleScenario.instance.content)** [0..1]: [Reference](/Reference) Example instance data - **[ExampleScenario.instance.version](/examplescenario-definitions#ExampleScenario.instance.version)** [0..*]: [BackboneElement](/BackboneElement) Snapshot of instance that changes - **[ExampleScenario.instance.version.key](/examplescenario-definitions#ExampleScenario.instance.version.key)** [1..1]: [string](/string) ID or acronym of the version - **[ExampleScenario.instance.version.title](/examplescenario-definitions#ExampleScenario.instance.version.title)** [1..1]: [string](/string) Label for instance version - **[ExampleScenario.instance.version.description](/examplescenario-definitions#ExampleScenario.instance.version.description)** [0..1]: [markdown](/markdown) Details about version - **[ExampleScenario.instance.version.content](/examplescenario-definitions#ExampleScenario.instance.version.content)** [0..1]: [Reference](/Reference) Example instance version data - **[ExampleScenario.instance.containedInstance](/examplescenario-definitions#ExampleScenario.instance.containedInstance)** [0..*]: [BackboneElement](/BackboneElement) Resources contained in the instance - **[ExampleScenario.instance.containedInstance.instanceReference](/examplescenario-definitions#ExampleScenario.instance.containedInstance.instanceReference)** [1..1]: [string](/string) Key of contained instance - **[ExampleScenario.instance.containedInstance.versionReference](/examplescenario-definitions#ExampleScenario.instance.containedInstance.versionReference)** [0..1]: [string](/string) Key of contained instance version - **[ExampleScenario.process](/examplescenario-definitions#ExampleScenario.process)** [0..*]: [BackboneElement](/BackboneElement) Major process within scenario - **[ExampleScenario.process.title](/examplescenario-definitions#ExampleScenario.process.title)** [1..1]: [string](/string) Label for procss - **[ExampleScenario.process.description](/examplescenario-definitions#ExampleScenario.process.description)** [0..1]: [markdown](/markdown) Human-friendly description of the process - **[ExampleScenario.process.preConditions](/examplescenario-definitions#ExampleScenario.process.preConditions)** [0..1]: [markdown](/markdown) Status before process starts - **[ExampleScenario.process.postConditions](/examplescenario-definitions#ExampleScenario.process.postConditions)** [0..1]: [markdown](/markdown) Status after successful completion - **[ExampleScenario.process.step](/examplescenario-definitions#ExampleScenario.process.step)** [0..*]: [BackboneElement](/BackboneElement) Event within of the process - **[ExampleScenario.process.step.number](/examplescenario-definitions#ExampleScenario.process.step.number)** [0..1]: [string](/string) Sequential number of the step - **[ExampleScenario.process.step.process](/examplescenario-definitions#ExampleScenario.process.step.process)** [0..1]: - Step is nested process - **[ExampleScenario.process.step.workflow](/examplescenario-definitions#ExampleScenario.process.step.workflow)** [0..1]: [canonical](/canonical) Step is nested workflow - **[ExampleScenario.process.step.operation](/examplescenario-definitions#ExampleScenario.process.step.operation)** [0..1]: [BackboneElement](/BackboneElement) Step is simple action - **[ExampleScenario.process.step.operation.type](/examplescenario-definitions#ExampleScenario.process.step.operation.type)** [0..1]: [Coding](/Coding) extensible:[examplescenario-operation-codes](/valueset-examplescenario-operation-codes) Kind of action - **[ExampleScenario.process.step.operation.title](/examplescenario-definitions#ExampleScenario.process.step.operation.title)** [1..1]: [string](/string) Label for step - **[ExampleScenario.process.step.operation.initiator](/examplescenario-definitions#ExampleScenario.process.step.operation.initiator)** [0..1]: [string](/string) Who starts the operation - **[ExampleScenario.process.step.operation.receiver](/examplescenario-definitions#ExampleScenario.process.step.operation.receiver)** [0..1]: [string](/string) Who receives the operation - **[ExampleScenario.process.step.operation.description](/examplescenario-definitions#ExampleScenario.process.step.operation.description)** [0..1]: [markdown](/markdown) Human-friendly description of the operation - **[ExampleScenario.process.step.operation.initiatorActive](/examplescenario-definitions#ExampleScenario.process.step.operation.initiatorActive)** [0..1]: [boolean](/boolean) Initiator stays active? - **[ExampleScenario.process.step.operation.receiverActive](/examplescenario-definitions#ExampleScenario.process.step.operation.receiverActive)** [0..1]: [boolean](/boolean) Receiver stays active? - **[ExampleScenario.process.step.operation.request](/examplescenario-definitions#ExampleScenario.process.step.operation.request)** [0..1]: - Instance transmitted on invocation - **[ExampleScenario.process.step.operation.response](/examplescenario-definitions#ExampleScenario.process.step.operation.response)** [0..1]: - Instance transmitted on invocation response - **[ExampleScenario.process.step.alternative](/examplescenario-definitions#ExampleScenario.process.step.alternative)** [0..*]: [BackboneElement](/BackboneElement) Alternate non-typical step action - **[ExampleScenario.process.step.alternative.title](/examplescenario-definitions#ExampleScenario.process.step.alternative.title)** [1..1]: [string](/string) Label for alternative - **[ExampleScenario.process.step.alternative.description](/examplescenario-definitions#ExampleScenario.process.step.alternative.description)** [0..1]: [markdown](/markdown) Human-readable description of option - **[ExampleScenario.process.step.alternative.step](/examplescenario-definitions#ExampleScenario.process.step.alternative.step)** [0..*]: - Alternative action(s) - **[ExampleScenario.process.step.pause](/examplescenario-definitions#ExampleScenario.process.step.pause)** [0..1]: [boolean](/boolean) Pause in the flow? ## Mappings - [ExampleScenario Mappings](/examplescenario-mappings) — 14 mapping entries ## Resource Packs ### list-ExampleScenario-packs.xml ```xml ``` ## Search Parameters - [context](/examplescenario-search#context) — **token** — A use context assigned to the example scenario — `(ExampleScenario.useContext.value.ofType(CodeableConcept))` - [context-quantity](/examplescenario-search#context-quantity) — **quantity** — A quantity- or range-valued use context assigned to the example scenario — `(ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range))` - [context-type](/examplescenario-search#context-type) — **token** — A type of use context assigned to the example scenario — `ExampleScenario.useContext.code` - [context-type-quantity](/examplescenario-search#context-type-quantity) — **composite** — A use context type and quantity- or range-based value assigned to the example scenario — `ExampleScenario.useContext` - [context-type-value](/examplescenario-search#context-type-value) — **composite** — A use context type and value assigned to the example scenario — `ExampleScenario.useContext` - [date](/examplescenario-search#date) — **date** — The example scenario publication date — `ExampleScenario.date` - [identifier](/examplescenario-search#identifier) — **token** — External identifier for the example scenario — `ExampleScenario.identifier` - [jurisdiction](/examplescenario-search#jurisdiction) — **token** — Jurisdiction of the authority that maintains the the example scenario — `ExampleScenario.jurisdiction` - [name](/examplescenario-search#name) — **string** — Computationally friendly name of the example scenario — `ExampleScenario.name` - [publisher](/examplescenario-search#publisher) — **string** — Name of the publisher of the example scenario — `ExampleScenario.publisher` - [status](/examplescenario-search#status) — **token** — The current status of the example scenario — `ExampleScenario.status` - [url](/examplescenario-search#url) — **uri** — The uri that identifies the example scenario — `ExampleScenario.url` - [version](/examplescenario-search#version) — **token** — The business version of the example scenario — `ExampleScenario.version` - [experimental](/examplescenario-search#experimental) — **token** — Whether the ExampleScenario is experimental — `ExampleScenario.experimental` [Full Search Parameters](/examplescenario-search) ## Examples - [example](/examplescenario-example-example) — examplescenario-example — Example of examplescenario - [example-laborder](/examplescenario-example-example-laborder) — examplescenario-example-laborder — Example of examplescenario - Lab order tracking with Task - [examplescenario-example](/examplescenario-example-examplescenario-example) — examplescenario-example - [examplescenario-example-laborder](/examplescenario-example-examplescenario-example-laborder) — examplescenario-example-laborder - [examplescenario-examples-header](/examplescenario-example-examplescenario-examples-header) — examplescenario-examples-header [Full Examples](/examplescenario-examples) ## Mapping Exceptions ### examplescenario-fivews-mapping-exceptions.xml ### Divergent Elements - **FiveWs.what[x]** → **ExampleScenario.instance** ### Unmapped Elements - **FiveWs.author** — Not relevant for this resource - **FiveWs.actor** — Not relevant for this resource - **FiveWs.cause** — Not relevant for this resource - **FiveWs.where** — Not relevant for this resource - **FiveWs.context** — Unknown - **FiveWs.init** — Not relevant for this resource - **FiveWs.source** — Not relevant for this resource - **FiveWs.grade** — Not relevant for this resource - **FiveWs.planned** — Not relevant for this resource - **FiveWs.done** — Not relevant for this resource - **FiveWs.subject** — Not relevant for this resource