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

12.23 12.32 Resource ExampleScenario - Content

FHIR Infrastructure icon Work Group Maturity Level : 0 1   Trial Use Security Category : Anonymous Compartments : Not linked to any No defined compartments

Example of workflow instance.

Todo This resource is expected to be used in implementation guides or other specifications to provide examples for how certain workflows would manifest. It 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.

PlanDefinitions 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 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 referenced by itself specifically about highlighting how those examples come together in a workflow - who exchanges them and under what circumstances.

  • Resource References: itself

Structure

A human-readable What happens in each alternative option Another nested workflow
Name Flags Card. Type Description & Constraints doco
. . ExampleScenario I TU DomainResource Example of workflow instance
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation
+ Rule: Must have actors if status is active or required
+ Rule: Must have processes if status is active or required
+ Rule: Actor keys must be unique
+ Rule: Actor titles must be unique
+ Rule: Instance keys must be unique
+ Rule: Instance titles must be unique
+ Rule: Process titles must be unique

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
Interfaces Implemented: CanonicalResource
. . . url Σ C 0..1 uri Canonical identifier for this example scenario, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . . identifier Σ 0..* Identifier Additional identifier for the example scenario

. . . version Σ 0..1 string Business version of the example scenario
.... versionAlgorithmString string
.... versionAlgorithmCoding Coding
... name Σ C 0..1 string To be removed?
. . . name title Σ I T 0..1 string Name for this example scenario (computer (human friendly)
. . . status ?! Σ C 1..1 code draft | active | retired | unknown
Binding: PublicationStatus ( Required )
. . . experimental Σ 0..1 boolean For testing purposes, not real usage
. . . date Σ 0..1 dateTime Date last changed
. . . publisher Σ T 0..1 string Name of the publisher publisher/steward (organization or individual)
. . . contact Σ 0..* ContactDetail Contact details for the publisher

. . useContext . description Σ T 0..* 0..1 markdown Natural language description of the ExampleScenario
... useContext Σ 0..* UsageContext The context that the content is intended to support

. . . jurisdiction Σ XD 0..* CodeableConcept Intended jurisdiction for example scenario (if applicable)
Binding: Jurisdiction ValueSet ( Extensible )

. . . purpose T 0..1 markdown The purpose of the example, e.g. to illustrate a scenario
. . . copyright 0..1 markdown Use and/or publishing restrictions
. . . purpose copyrightLabel T 0..1 markdown string The purpose of the example, e.g. to illustrate a scenario Copyright holder and year(s)
. . . actor C 0..* BackboneElement Individual involved in exchange
+ Warning: Actor participating should be referenced in the resource at least one operation
+ Rule: actor.key canot be 'OTHER'

. . . . actorId key C 1..1 string ID or acronym of the actor
. . . . type 1..1 code person | entity system
ExampleScenarioActorType Binding: Example Scenario Actor Type ( Required )
. . . . name title T C 0..1 1..1 string The name of the Label for actor as shown in the page when rendering
. . . . description T 0..1 markdown The description of the Details about actor
. . . instance C 0..* BackboneElement Each resource and each version that Data used in the scenario
+ Rule: StructureVersion is required if structureType is not FHIR (but may still be present even if FHIR)
+ Rule: instance.content is only allowed if there are no instance.versions
+ Rule: Version keys must be unique within an instance
+ Rule: Version titles must be unique within an instance
+ Warning: Instance should be referenced in the workflow at least one location
+ Warning: Instance version should be referenced in at least one operation

. . . . resourceId key C 1..1 string The id ID or acronym of the resource for referencing instance
. . . resourceType . structureType C 1..1 code Coding The type of the resource Data structure for example
ResourceType Binding: Example Scenario Resource Type ( Required Extensible )
. . . . name structureVersion C 0..1 string A short name E.g. 4.0.1
.... structureProfile[x] 0..1 Rules instance adheres to
..... structureProfileCanonical canonical ()
..... structureProfileUri uri
.... title T C 1..1 string Label for the resource instance
. . . . description T 0..1 markdown Human-friendly description of the resource instance
. . . version . content C 0..* 0..1 Reference () Example instance data
.... version C 0..* BackboneElement Snapshot of instance that changes

..... key A specific version C 1..1 string ID or acronym of the resource version
. . . . . versionId title C 1..1 string The identifier of a specific Label for instance version of a resource
. . . . . description T 1..1 0..1 markdown The description of the resource Details about version
. . . . containedInstance . content 0..* 0..1 BackboneElement Reference () Resources contained in the Example instance version data
. . . resourceId . containedInstance C 1..1 0..* string BackboneElement Each resource Resources contained in the instance
+ Rule: InstanceReference must be a key of an instance defined in the ExampleScenario
+ Rule: versionReference must be specified if the referenced instance defines versions
+ Rule: versionReference must be a key of a version within the instance pointed to by instanceReference

. . . . . versionId instanceReference C 0..1 1..1 string A specific version Key of a resource contained in the instance
. . process . . . versionReference C 0..* 0..1 BackboneElement string Each major process - a group Key of operations contained instance version
. . title . process Σ C 1..1 0..* string BackboneElement The diagram title of the group of operations Major process within scenario
+ Rule: Processes must have steps if ExampleScenario status is active or required

. . . . description title Σ T C 0..1 1..1 markdown string A longer description of the group of operations Label for procss
. . . . preConditions description T 0..1 markdown Description Human-friendly description of initial status before the process starts
. . . . postConditions preConditions T 0..1 markdown Description of final status after the Status before process ends starts
. . . step . postConditions T 0..* 0..1 BackboneElement markdown Each step of the process Status after successful completion
. . . process . step C 0..* see process BackboneElement Nested Event within of the process
+ Rule: Alternative titles must be unique within a step
+ Rule: Can have a process, a workflow, one or more operations or none of these, but cannot have a combination

. . . . . pause number 0..1 boolean string If there is a pause in Sequential number of the flow step
. . . . operation . process 0..1 BackboneElement see process Each interaction or action Step is nested process
. . . . number . workflow C 1..1 0..1 string canonical ( ExampleScenario ) The sequential number of the interaction Step is nested workflow
. . . . type . operation C 0..1 string BackboneElement The type Step is simple action
+ Rule: If specified, initiator must be a key of operation - CRUD an actor within the ExampleScenario
+ Rule: If specified, receiver must be a key of an actor within the ExampleScenario
. . . . . name . type 0..1 string Coding The human-friendly name Kind of the interaction action
Binding: Test Script Operation Code ( Extensible )
. . . . . . initiator title 0..1 1..1 string Who starts the transaction Label for step
. . . . . . receiver initiator C 0..1 string Who receives starts the transaction operation
. . . . . . description receiver C 0..1 markdown string A comment to be inserted in Who receives the diagram operation
. . . . . . initiatorActive description T 0..1 boolean markdown Whether the initiator is deactivated right after Human-friendly description of the transaction operation
. . . . . . receiverActive initiatorActive 0..1 boolean Whether the receiver is deactivated right after the transaction Initiator stays active?
. . . . . request . receiverActive 0..1 see containedInstance boolean Each resource instance used by the initiator Receiver stays active?
. . . . . . response request 0..1 see containedInstance Each resource instance used by the responder Instance transmitted on invocation
. . . . . alternative . response 0..1 see containedInstance Instance transmitted on invocation response
..... alternative C 0..* BackboneElement Alternate non-typical step action

. . . . . . title T C 1..1 string Label for alternative
. . . . . . description T 0..1 markdown Human-readable description of each option
. . . . . . step 0..* see step Alternative action(s)

. . . . workflow . pause 0..* 0..1 canonical ( ExampleScenario boolean ) Pause in the flow?

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

ExampleScenario ( DomainResource ) + CanonicalResource 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 url : uri [0..1] 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 identifier : Identifier [0..*] 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 version : string [0..1] A natural language name identifying Indicates the example scenario. This mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » Temporarily retained for tooling purposes name should be usable as an identifier : string [0..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the module by machine processing applications such as code generation ExampleScenario name title : string [0..1] The status of this example scenario. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of an artifact. null (Strength=Required) PublicationStatus ! » « This element has or is affected by some invariants C » 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 experimental : boolean [0..1] 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') date : dateTime [0..1] The name of the organization or individual that published responsible for the release and ongoing maintenance of the example scenario publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] A free text natural language description of the ExampleScenario from a consumer's perspective description : markdown [0..1] 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 useContext : UsageContext [0..*] A legal or geographic region in which the example scenario is intended to be used jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use. null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » 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 copyright : markdown [0..1] 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 purpose : markdown [0..1] Another nested workflow 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 workflow copyright : canonical [0..*] « ExampleScenario markdown » [0..1] 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') copyrightLabel : string [0..1] Actor ID or acronym of A unique string within the scenario that is used to reference the actor actorId key : string [1..1] « This element has or is affected by some invariants C » The type category of actor - person or system type : code [1..1] « The type of actor - system or human. null (Strength=Required) ExampleScenarioActorType ! » The human-readable name of for the actor as shown in used when rendering the page scenario name title : string [0..1] [1..1] « This element has or is affected by some invariants C » The description An explanation of who/what the actor is and its role in the scenario description : markdown [0..1] Instance The id of A unique string within the resource for referencing scenario that is used to reference the instance resourceId key : string [1..1] « This element has or is affected by some invariants C » The type of A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of resourceType structureType : code Coding [1..1] « The type null (Strength=Extensible) ExampleScenarioResourceType + » « This element has or is affected by some invariants C » Conveys the version of resource. (Strength=Required) the data structure instantiated. I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with ResourceType ! structureVersion : string [0..1] « This element has or is affected by some invariants C » Refers to a profile, template or other ruleset the instance adheres to structureProfile[x] : PrimitiveType [0..1] « canonical | uri » A short name for descriptive label the resource instance to be used in tables or diagrams name title : string [0..1] [1..1] « This element has or is affected by some invariants C » Human-friendly description An explanation of what the resource instance contains and what it's for description : markdown [0..1] Points to an instance (typically an example) that shows the data that would corespond to this instance content : Reference [0..1] « » « This element has or is affected by some invariants C » Version The identifier of a specific A unique string within the instance that is used to reference the version of a resource the instance versionId key : string [1..1] « This element has or is affected by some invariants C » The description of A short descriptive label the resource version to be used in tables or diagrams title : string [1..1] « This element has or is affected by some invariants C » An explanation of what this specific version of the instance contains and represents description : markdown [1..1] [0..1] Points to an instance (typically an example) that shows the data that would flow at this point in the scenario content : Reference [0..1] « » ContainedInstance Each resource contained in A reference to the key of an instance found within this one resourceId instanceReference : string [1..1] « This element has or is affected by some invariants C » A reference to the key of a specific version of a resource contained an instance in the this instance versionId versionReference : string [0..1] « This element has or is affected by some invariants C » Process The diagram title of A short descriptive label the group of operations process to be used in tables or diagrams title : string [1..1] « This element has or is affected by some invariants C » A longer description An explanation of what the group of operations process represents and what it does description : markdown [0..1] Description of the initial status state of the actors, environment and data before the process starts preConditions : markdown [0..1] Description of the final status state of the actors, environment and data after the process ends has been successfully completed postConditions : markdown [0..1] Step Step The sequential number of the step, e.g. 1.2.5 number : string [0..1] Indicates that the step is defined by a seaparate scenario instance workflow : canonical [0..1] « ExampleScenario » « This element has or is affected by some invariants C » 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) pause : boolean [0..1] Operation The sequential number of the interaction, e.g. 1.2.5 number : string [1..1] The standardized type of operation - CRUD action (FHIR or otherwise) type : string Coding [0..1] « null (Strength=Extensible) TestScriptOperationCode + » The human-friendly name of A short descriptive label the interaction step to be used in tables or diagrams name title : string [0..1] [1..1] Who starts The system that invokes the transaction action/transmits the data initiator : string [0..1] « This element has or is affected by some invariants C » Who receives The system on which the transaction action is invoked/receives the data receiver : string [0..1] « This element has or is affected by some invariants C » A comment to be inserted in An explanation of what the diagram operation represents and what it does description : markdown [0..1] Whether If false, the initiator is deactivated right after the transaction operation initiatorActive : boolean [0..1] Whether If false, the receiver is deactivated right after the transaction operation receiverActive : boolean [0..1] Alternative The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked title : string [1..1] « This element has or is affected by some invariants C » A human-readable description of the alternative explaining when the alternative should occur rather than the base step description : markdown [0..1] Actor participating in A system or person who shares or receives an instance within the resource scenario actor [0..*] A specific version of Represents the resource instance as it was at a specific time-point version [0..*] Resources contained in the References to other instances that can be found within this instance (e.g. the observations contained in a bundle) containedInstance [0..*] Each resource and each version A single data collection that is present in shared as part of the workflow scenario instance [0..*] Nested process Indicates that the step is a complex sub-process with its own steps process [0..*] [0..1] 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 request [0..1] 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) response [0..1] Each interaction or action The step represents a single operation invoked on receiver by sender operation [0..1] What Indicates the operation, sub-process or scenario that happens in each if the alternative option is selected step [0..*] 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 alternative [0..*] Each step A significant action that occurs as part of the process step [0..*] Each major process - a A group of operations that represents a significant step within a scenario process [0..*]

XML Template

<ExampleScenario xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <

 <url value="[uri]"/><!-- 0..1 Canonical identifier for this example scenario, represented as a URI (globally unique) -->

 <identifier><!-- 0..* Identifier Additional identifier for the example scenario --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the example scenario -->
 <
 <

 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 0..1 To be removed? -->
 <title value="[string]"/><!-- 0..1 Name for this example scenario (human friendly) -->
 <status value="[code]"/><!-- I 1..1 draft | active | retired | unknown -->

 <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage -->
 <
 <

 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->

 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <description value="[markdown]"/><!-- 0..1 Natural language description of the ExampleScenario -->

 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for example scenario (if applicable) --></jurisdiction>
 <

 <purpose value="[markdown]"/><!-- 0..1 The purpose of the example, e.g. to illustrate a scenario -->
 <
  <
  <
  <
  <

 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->
 <actor>  <!-- I 0..* Individual involved in exchange -->
  <key value="[string]"/><!-- I 1..1 ID or acronym of the actor -->
  <type value="[code]"/><!-- 1..1 person | system -->
  <title value="[string]"/><!-- I 1..1 Label for actor when rendering -->
  <description value="[markdown]"/><!-- 0..1 Details about actor -->

 </actor>
 <
  <
  <
  <
  <
  <
   <
   <

 <instance>  <!-- I 0..* Data used in the scenario -->
  <key value="[string]"/><!-- I 1..1 ID or acronym of the instance -->
  <structureType><!-- I 1..1 Coding Data structure for example --></structureType>
  <structureVersion value="[string]"/><!-- I 0..1 E.g. 4.0.1 -->
  <structureProfile[x]><!-- 0..1 canonical|uri Rules instance adheres to --></structureProfile[x]>
  <title value="[string]"/><!-- I 1..1 Label for instance -->
  <description value="[markdown]"/><!-- 0..1 Human-friendly description of the instance -->
  <content><!-- I 0..1 Reference Example instance data --></content>
  <version>  <!-- I 0..* Snapshot of instance that changes -->
   <key value="[string]"/><!-- I 1..1 ID or acronym of the version -->
   <title value="[string]"/><!-- I 1..1 Label for instance version -->
   <description value="[markdown]"/><!-- 0..1 Details about version -->
   <content><!-- 0..1 Reference Example instance version data --></content>

  </version>
  <
   <
   <

  <containedInstance>  <!-- 0..* Resources contained in the instance -->
   <instanceReference value="[string]"/><!-- I 1..1 Key of contained instance -->
   <versionReference value="[string]"/><!-- I 0..1 Key of contained instance version -->

  </containedInstance>
 </instance>
 <
  <
  <
  <
  <
  <
   <</process>
   <
   <
    <
    <
    <
    <
    <
    <
    <
    <
    <</request>
    <</response>

 <process>  <!-- I 0..* Major process within scenario -->
  <title value="[string]"/><!-- I 1..1 Label for procss -->
  <description value="[markdown]"/><!-- 0..1 Human-friendly description of the process -->
  <preConditions value="[markdown]"/><!-- 0..1 Status before process starts -->
  <postConditions value="[markdown]"/><!-- 0..1 Status after successful completion -->
  <step>  <!-- I 0..* Event within of the process -->
   <number value="[string]"/><!-- 0..1 Sequential number of the step -->
   <process><!-- 0..1 Content as for ExampleScenario.process Step is nested process --></process>
   <workflow><!-- I 0..1 canonical(ExampleScenario) Step is nested workflow --></workflow>
   <operation>  <!-- I 0..1 Step is simple action -->
    <type><!-- 0..1 Coding Kind of action --></type>
    <title value="[string]"/><!-- 1..1 Label for step -->
    <initiator value="[string]"/><!-- I 0..1 Who starts the operation -->
    <receiver value="[string]"/><!-- I 0..1 Who receives the operation -->
    <description value="[markdown]"/><!-- 0..1 Human-friendly description of the operation -->
    <initiatorActive value="[boolean]"/><!-- 0..1 Initiator stays active? -->
    <receiverActive value="[boolean]"/><!-- 0..1 Receiver stays active? -->
    <request><!-- 0..1 Content as for ExampleScenario.instance.containedInstance Instance transmitted on invocation --></request>
    <response><!-- 0..1 Content as for ExampleScenario.instance.containedInstance Instance transmitted on invocation response --></response>

   </operation>
   <
    <
    <
    <</step>

   <alternative>  <!-- I 0..* Alternate non-typical step action -->
    <title value="[string]"/><!-- I 1..1 Label for alternative -->
    <description value="[markdown]"/><!-- 0..1 Human-readable description of option -->
    <step><!-- 0..* Content as for ExampleScenario.process.step Alternative action(s) --></step>

   </alternative>
   <pause value="[boolean]"/><!-- 0..1 Pause in the flow? -->

  </step>
 </process>
 <</workflow>

</ExampleScenario>

JSON Template

{doco
  "resourceType" : "ExampleScenario",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "

  "url" : "<uri>", // Canonical identifier for this example scenario, represented as a URI (globally unique)

  "identifier" : [{ Identifier }], // Additional identifier for the example scenario
  "version" : "<string>", // Business version of the example scenario
  "
  "

  // versionAlgorithm[x]: How to compare versions. One of these 2:
  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I To be removed?
  "title" : "<string>", // Name for this example scenario (human friendly)
  "status" : "<code>", // I R!  draft | active | retired | unknown

  "experimental" : <boolean>, // For testing purposes, not real usage
  "
  "

  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)

  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the ExampleScenario

  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for example scenario (if applicable)
  "

  "purpose" : "<markdown>", // The purpose of the example, e.g. to illustrate a scenario
  "
    "
    "
    "
    "

  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "copyrightLabel" : "<string>", // Copyright holder and year(s)
  "actor" : [{ // I Individual involved in exchange
    "key" : "<string>", // I R!  ID or acronym of the actor
    "type" : "<code>", // R!  person | system
    "title" : "<string>", // I R!  Label for actor when rendering
    "description" : "<markdown>" // Details about actor

  }],
  "
    "
    "
    "
    "
    "
      "
      "

  "instance" : [{ // I Data used in the scenario
    "key" : "<string>", // I R!  ID or acronym of the instance
    "structureType" : { Coding }, // I R!  Data structure for example
    "structureVersion" : "<string>", // I E.g. 4.0.1
    // structureProfile[x]: Rules instance adheres to. One of these 2:

    "structureProfileCanonical" : "<canonical>",
    "structureProfileUri" : "<uri>",
    "title" : "<string>", // I R!  Label for instance
    "description" : "<markdown>", // Human-friendly description of the instance
    "content" : { Reference }, // I Example instance data
    "version" : [{ // I Snapshot of instance that changes
      "key" : "<string>", // I R!  ID or acronym of the version
      "title" : "<string>", // I R!  Label for instance version
      "description" : "<markdown>", // Details about version
      "content" : { Reference } // Example instance version data

    }],
    "
      "
      "

    "containedInstance" : [{ // Resources contained in the instance
      "instanceReference" : "<string>", // I R!  Key of contained instance
      "versionReference" : "<string>" // I Key of contained instance version

    }]
  }],
  "
    "
    "
    "
    "
    "
      "
      "
      "
        "
        "
        "
        "
        "
        "
        "
        "
        "
        "

  "process" : [{ // I Major process within scenario
    "title" : "<string>", // I R!  Label for procss
    "description" : "<markdown>", // Human-friendly description of the process
    "preConditions" : "<markdown>", // Status before process starts
    "postConditions" : "<markdown>", // Status after successful completion
    "step" : [{ // I Event within of the process
      "number" : "<string>", // Sequential number of the step
      "process" : { Content as for ExampleScenario.process }, // Step is nested process
      "workflow" : "<canonical(ExampleScenario)>", // I Step is nested workflow
      "operation" : { // I Step is simple action
        "type" : { Coding }, // Kind of action
        "title" : "<string>", // R!  Label for step
        "initiator" : "<string>", // I Who starts the operation
        "receiver" : "<string>", // I Who receives the operation
        "description" : "<markdown>", // Human-friendly description of the operation
        "initiatorActive" : <boolean>, // Initiator stays active?
        "receiverActive" : <boolean>, // Receiver stays active?
        "request" : { Content as for ExampleScenario.instance.containedInstance }, // Instance transmitted on invocation
        "response" : { Content as for ExampleScenario.instance.containedInstance } // Instance transmitted on invocation response

      },
      "
        "
        "
        "
      }]

      "alternative" : [{ // I Alternate non-typical step action
        "title" : "<string>", // I R!  Label for alternative
        "description" : "<markdown>", // Human-readable description of option
        "step" : [{ Content as for ExampleScenario.process.step }] // Alternative action(s)
      }],
      "pause" : <boolean> // Pause in the flow?

    }]
  }],
  "

  }]

}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:ExampleScenario;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
      fhir:
      fhir:
    ], ...;
  ], ...;
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
      fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
      ];
      fhir:
        fhir:
        fhir:
        fhir:
      ], ...;
    ], ...;
  ], ...;
  fhir:

  fhir:url [ uri ] ; # 0..1 Canonical identifier for this example scenario, represented as a URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the example scenario
  fhir:version [ string ] ; # 0..1 Business version of the example scenario
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:string ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 0..1 I To be removed?
  fhir:title [ string ] ; # 0..1 Name for this example scenario (human friendly)
  fhir:status [ code ] ; # 1..1 I draft | active | retired | unknown
  fhir:experimental [ boolean ] ; # 0..1 For testing purposes, not real usage
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the ExampleScenario
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Intended jurisdiction for example scenario (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 The purpose of the example, e.g. to illustrate a scenario
  fhir:copyright [ markdown ] ; # 0..1 Use and/or publishing restrictions
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:actor ( [ # 0..* I Individual involved in exchange
    fhir:key [ string ] ; # 1..1 I ID or acronym of the actor
    fhir:type [ code ] ; # 1..1 person | system
    fhir:title [ string ] ; # 1..1 I Label for actor when rendering
    fhir:description [ markdown ] ; # 0..1 Details about actor
  ] ... ) ;
  fhir:instance ( [ # 0..* I Data used in the scenario
    fhir:key [ string ] ; # 1..1 I ID or acronym of the instance
    fhir:structureType [ Coding ] ; # 1..1 I Data structure for example
    fhir:structureVersion [ string ] ; # 0..1 I E.g. 4.0.1
    # structureProfile[x] : 0..1 Rules instance adheres to. One of these 2
      fhir:structureProfile [  a fhir:canonical ; canonical ]
      fhir:structureProfile [  a fhir:uri ; uri ]
    fhir:title [ string ] ; # 1..1 I Label for instance
    fhir:description [ markdown ] ; # 0..1 Human-friendly description of the instance
    fhir:content [ Reference ] ; # 0..1 I Example instance data
    fhir:version ( [ # 0..* I Snapshot of instance that changes
      fhir:key [ string ] ; # 1..1 I ID or acronym of the version
      fhir:title [ string ] ; # 1..1 I Label for instance version
      fhir:description [ markdown ] ; # 0..1 Details about version
      fhir:content [ Reference ] ; # 0..1 Example instance version data
    ] ... ) ;
    fhir:containedInstance ( [ # 0..* Resources contained in the instance
      fhir:instanceReference [ string ] ; # 1..1 I Key of contained instance
      fhir:versionReference [ string ] ; # 0..1 I Key of contained instance version
    ] ... ) ;
  ] ... ) ;
  fhir:process ( [ # 0..* I Major process within scenario
    fhir:title [ string ] ; # 1..1 I Label for procss
    fhir:description [ markdown ] ; # 0..1 Human-friendly description of the process
    fhir:preConditions [ markdown ] ; # 0..1 Status before process starts
    fhir:postConditions [ markdown ] ; # 0..1 Status after successful completion
    fhir:step ( [ # 0..* I Event within of the process
      fhir:number [ string ] ; # 0..1 Sequential number of the step
      fhir:process [ See ExampleScenario.process ] ; # 0..1 Step is nested process
      fhir:workflow [ canonical(ExampleScenario) ] ; # 0..1 I Step is nested workflow
      fhir:operation [ # 0..1 I Step is simple action
        fhir:type [ Coding ] ; # 0..1 Kind of action
        fhir:title [ string ] ; # 1..1 Label for step
        fhir:initiator [ string ] ; # 0..1 I Who starts the operation
        fhir:receiver [ string ] ; # 0..1 I Who receives the operation
        fhir:description [ markdown ] ; # 0..1 Human-friendly description of the operation
        fhir:initiatorActive [ boolean ] ; # 0..1 Initiator stays active?
        fhir:receiverActive [ boolean ] ; # 0..1 Receiver stays active?
        fhir:request [ See ExampleScenario.instance.containedInstance ] ; # 0..1 Instance transmitted on invocation
        fhir:response [ See ExampleScenario.instance.containedInstance ] ; # 0..1 Instance transmitted on invocation response
      ] ;
      fhir:alternative ( [ # 0..* I Alternate non-typical step action
        fhir:title [ string ] ; # 1..1 I Label for alternative
        fhir:description [ markdown ] ; # 0..1 Human-readable description of option
        fhir:step  ( [ See ExampleScenario.process.step ] ... ) ; # 0..* Alternative action(s)
      ] ... ) ;
      fhir:pause [ boolean ] ; # 0..1 Pause in the flow?
    ] ... ) ;
  ] ... ) ;

]

Changes since R3 from both R4 and R4B

ExampleScenario
ExampleScenario.versionAlgorithm[x]
  • Added Element
ExampleScenario.title
  • Added Element
ExampleScenario.description
  • Added Element
ExampleScenario.copyrightLabel
  • Added Element
ExampleScenario.actor.key
  • Renamed from actorId to key
ExampleScenario.actor.type
  • Remove code entity
  • Add code system
ExampleScenario.actor.title
  • Renamed from name to title
  • Min Cardinality changed from 0 to 1
ExampleScenario.instance.key
  • Renamed from resourceId to key
ExampleScenario.instance.structureType
  • Renamed from resourceType to structureType
  • Type changed from code to Coding
  • Change binding strength from required to extensible
  • Change value set from http://hl7.org/fhir/ValueSet/resource-types|4.0.0 to Example Scenario Resource Type
ExampleScenario.instance.structureVersion
  • Added Element
ExampleScenario.instance.structureProfile[x]
  • Added Element
ExampleScenario.instance.title
  • Renamed from name to title
  • Min Cardinality changed from 0 to 1
ExampleScenario.instance.content
  • Added Element
ExampleScenario.instance.version.key
  • Added Mandatory Element
ExampleScenario.instance.version.title
  • Added Mandatory Element
ExampleScenario.instance.version.description
  • Min Cardinality changed from 1 to 0
ExampleScenario.instance.version.content
  • Added Element
ExampleScenario.instance.containedInstance.instanceReference
  • Renamed from resourceId to instanceReference
ExampleScenario.instance.containedInstance.versionReference
  • Renamed from versionId to versionReference
ExampleScenario.process.step.number
  • Moved from ExampleScenario.process.step.operation to ExampleScenario.process.step
  • Min Cardinality changed from 1 to 0
ExampleScenario.process.step.process
  • Max Cardinality changed from * to 1
ExampleScenario.process.step.workflow
  • Moved from ExampleScenario to ExampleScenario.process.step
  • Max Cardinality changed from * to 1
ExampleScenario.process.step.operation.type
  • Type changed from string to Coding
  • Add Binding `http://hl7.org/fhir/ValueSet/testscript-operation-codes` (extensible)
ExampleScenario.process.step.operation.title
  • Renamed from name to title
  • Min Cardinality changed from 0 to 1
ExampleScenario.instance.version.versionId
  • Deleted

This resource did not exist in Release 2 See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .

Structure

A human-readable What happens in each alternative option Another nested workflow
Name Flags Card. Type Description & Constraints doco
. . ExampleScenario I TU DomainResource Example of workflow instance
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation
+ Rule: Must have actors if status is active or required
+ Rule: Must have processes if status is active or required
+ Rule: Actor keys must be unique
+ Rule: Actor titles must be unique
+ Rule: Instance keys must be unique
+ Rule: Instance titles must be unique
+ Rule: Process titles must be unique

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
Interfaces Implemented: CanonicalResource
. . . url Σ C 0..1 uri Canonical identifier for this example scenario, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . . identifier Σ 0..* Identifier Additional identifier for the example scenario

. . . version Σ 0..1 string Business version of the example scenario
.... versionAlgorithmString string
.... versionAlgorithmCoding Coding
... name Σ C 0..1 string To be removed?
. . . name title Σ I T 0..1 string Name for this example scenario (computer (human friendly)
. . . status ?! Σ C 1..1 code draft | active | retired | unknown
Binding: PublicationStatus ( Required )
. . . experimental Σ 0..1 boolean For testing purposes, not real usage
. . . date Σ 0..1 dateTime Date last changed
. . . publisher Σ T 0..1 string Name of the publisher publisher/steward (organization or individual)
. . . contact Σ 0..* ContactDetail Contact details for the publisher

. . useContext . description Σ T 0..* 0..1 markdown Natural language description of the ExampleScenario
... useContext Σ 0..* UsageContext The context that the content is intended to support

. . . jurisdiction Σ XD 0..* CodeableConcept Intended jurisdiction for example scenario (if applicable)
Binding: Jurisdiction ValueSet ( Extensible )

. . . purpose T 0..1 markdown The purpose of the example, e.g. to illustrate a scenario
. . . copyright 0..1 markdown Use and/or publishing restrictions
. . . purpose copyrightLabel T 0..1 markdown string The purpose of the example, e.g. to illustrate a scenario Copyright holder and year(s)
. . . actor C 0..* BackboneElement Individual involved in exchange
+ Warning: Actor participating should be referenced in the resource at least one operation
+ Rule: actor.key canot be 'OTHER'

. . . . actorId key C 1..1 string ID or acronym of the actor
. . . . type 1..1 code person | entity system
ExampleScenarioActorType Binding: Example Scenario Actor Type ( Required )
. . . . name title T C 0..1 1..1 string The name of the Label for actor as shown in the page when rendering
. . . . description T 0..1 markdown The description of the Details about actor
. . . instance C 0..* BackboneElement Each resource and each version that Data used in the scenario
+ Rule: StructureVersion is required if structureType is not FHIR (but may still be present even if FHIR)
+ Rule: instance.content is only allowed if there are no instance.versions
+ Rule: Version keys must be unique within an instance
+ Rule: Version titles must be unique within an instance
+ Warning: Instance should be referenced in the workflow at least one location
+ Warning: Instance version should be referenced in at least one operation

. . . . resourceId key C 1..1 string The id ID or acronym of the resource for referencing instance
. . . resourceType . structureType C 1..1 code Coding The type of the resource Data structure for example
ResourceType Binding: Example Scenario Resource Type ( Required Extensible )
. . . . name structureVersion C 0..1 string A short name E.g. 4.0.1
.... structureProfile[x] 0..1 Rules instance adheres to
..... structureProfileCanonical canonical ()
..... structureProfileUri uri
.... title T C 1..1 string Label for the resource instance
. . . . description T 0..1 markdown Human-friendly description of the resource instance
. . . version . content C 0..1 Reference () Example instance data
.... version C 0..* BackboneElement Snapshot of instance that changes

..... key A specific version C 1..1 string ID or acronym of the resource version
. . . . . versionId title C 1..1 string The identifier of a specific Label for instance version of a resource
. . . . . description T 1..1 0..1 markdown The description of the resource Details about version
. . . . containedInstance . content 0..* 0..1 BackboneElement Reference () Resources contained in the Example instance version data
. . . resourceId . containedInstance C 1..1 0..* string BackboneElement Each resource Resources contained in the instance
+ Rule: InstanceReference must be a key of an instance defined in the ExampleScenario
+ Rule: versionReference must be specified if the referenced instance defines versions
+ Rule: versionReference must be a key of a version within the instance pointed to by instanceReference

. . . . . versionId instanceReference C 0..1 1..1 string A specific version Key of a resource contained in the instance
. . process . . . versionReference C 0..* 0..1 BackboneElement string Each major process - a group Key of operations contained instance version
. . title . process Σ C 1..1 0..* string BackboneElement The diagram title of the group of operations Major process within scenario
+ Rule: Processes must have steps if ExampleScenario status is active or required

. . . . description title Σ T C 0..1 1..1 markdown string A longer description of the group of operations Label for procss
. . . . preConditions description T 0..1 markdown Description Human-friendly description of initial status before the process starts
. . . . postConditions preConditions T 0..1 markdown Description of final status after the Status before process ends starts
. . . step . postConditions T 0..* 0..1 BackboneElement markdown Each step of the process Status after successful completion
. . . process . step C 0..* see process BackboneElement Nested Event within of the process
+ Rule: Alternative titles must be unique within a step
+ Rule: Can have a process, a workflow, one or more operations or none of these, but cannot have a combination

. . . . . pause number 0..1 boolean string If there is a pause in Sequential number of the flow step
. . . . operation . process 0..1 BackboneElement see process Each interaction or action Step is nested process
. . . . number . workflow C 1..1 0..1 string canonical ( ExampleScenario ) The sequential number of the interaction Step is nested workflow
. . . . type . operation C 0..1 string BackboneElement The type Step is simple action
+ Rule: If specified, initiator must be a key of operation - CRUD an actor within the ExampleScenario
+ Rule: If specified, receiver must be a key of an actor within the ExampleScenario
. . . . . name . type 0..1 string Coding The human-friendly name Kind of the interaction action
Binding: Test Script Operation Code ( Extensible )
. . . . . . initiator title 0..1 1..1 string Who starts the transaction Label for step
. . . . . . receiver initiator C 0..1 string Who receives starts the transaction operation
. . . . . . description receiver C 0..1 markdown string A comment to be inserted in Who receives the diagram operation
. . . . . . initiatorActive description T 0..1 boolean markdown Whether the initiator is deactivated right after Human-friendly description of the transaction operation
. . . . . . receiverActive initiatorActive 0..1 boolean Whether the receiver is deactivated right after the transaction Initiator stays active?
. . . . . request . receiverActive 0..1 see containedInstance boolean Each resource instance used by the initiator Receiver stays active?
. . . . . . response request 0..1 see containedInstance Each resource instance used by the responder Instance transmitted on invocation
. . . . . alternative . response 0..1 see containedInstance Instance transmitted on invocation response
..... alternative C 0..* BackboneElement Alternate non-typical step action

. . . . . . title T C 1..1 string Label for alternative
. . . . . . description T 0..1 markdown Human-readable description of each option
. . . . . . step 0..* see step Alternative action(s)

. . . . workflow . pause 0..* 0..1 canonical ( ExampleScenario boolean ) Pause in the flow?

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

ExampleScenario ( DomainResource ) + CanonicalResource 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 url : uri [0..1] 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 identifier : Identifier [0..*] 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 version : string [0..1] A natural language name identifying Indicates the example scenario. This mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » Temporarily retained for tooling purposes name should be usable as an identifier : string [0..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the module by machine processing applications such as code generation ExampleScenario name title : string [0..1] The status of this example scenario. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of an artifact. null (Strength=Required) PublicationStatus ! » « This element has or is affected by some invariants C » 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 experimental : boolean [0..1] 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') date : dateTime [0..1] The name of the organization or individual that published responsible for the release and ongoing maintenance of the example scenario publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] A free text natural language description of the ExampleScenario from a consumer's perspective description : markdown [0..1] 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 useContext : UsageContext [0..*] A legal or geographic region in which the example scenario is intended to be used jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use. null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » 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 copyright : markdown [0..1] 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 purpose : markdown [0..1] Another nested workflow 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 workflow copyright : canonical [0..*] « ExampleScenario markdown » [0..1] 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') copyrightLabel : string [0..1] Actor ID or acronym of A unique string within the scenario that is used to reference the actor actorId key : string [1..1] « This element has or is affected by some invariants C » The type category of actor - person or system type : code [1..1] « The type of actor - system or human. null (Strength=Required) ExampleScenarioActorType ! » The human-readable name of for the actor as shown in used when rendering the page scenario name title : string [0..1] [1..1] « This element has or is affected by some invariants C » The description An explanation of who/what the actor is and its role in the scenario description : markdown [0..1] Instance The id of A unique string within the resource for referencing scenario that is used to reference the instance resourceId key : string [1..1] « This element has or is affected by some invariants C » The type of A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of resourceType structureType : code Coding [1..1] « The type null (Strength=Extensible) ExampleScenarioResourceType + » « This element has or is affected by some invariants C » Conveys the version of resource. (Strength=Required) the data structure instantiated. I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with ResourceType ! structureVersion : string [0..1] « This element has or is affected by some invariants C » Refers to a profile, template or other ruleset the instance adheres to structureProfile[x] : PrimitiveType [0..1] « canonical | uri » A short name for descriptive label the resource instance to be used in tables or diagrams name title : string [0..1] [1..1] « This element has or is affected by some invariants C » Human-friendly description An explanation of what the resource instance contains and what it's for description : markdown [0..1] Points to an instance (typically an example) that shows the data that would corespond to this instance content : Reference [0..1] « » « This element has or is affected by some invariants C » Version The identifier of a specific A unique string within the instance that is used to reference the version of a resource the instance versionId key : string [1..1] « This element has or is affected by some invariants C » The description of A short descriptive label the resource version to be used in tables or diagrams title : string [1..1] « This element has or is affected by some invariants C » An explanation of what this specific version of the instance contains and represents description : markdown [1..1] [0..1] Points to an instance (typically an example) that shows the data that would flow at this point in the scenario content : Reference [0..1] « » ContainedInstance Each resource contained in A reference to the key of an instance found within this one resourceId instanceReference : string [1..1] « This element has or is affected by some invariants C » A reference to the key of a specific version of a resource contained an instance in the this instance versionId versionReference : string [0..1] « This element has or is affected by some invariants C » Process The diagram title of A short descriptive label the group of operations process to be used in tables or diagrams title : string [1..1] « This element has or is affected by some invariants C » A longer description An explanation of what the group of operations process represents and what it does description : markdown [0..1] Description of the initial status state of the actors, environment and data before the process starts preConditions : markdown [0..1] Description of the final status state of the actors, environment and data after the process ends has been successfully completed postConditions : markdown [0..1] Step Step The sequential number of the step, e.g. 1.2.5 number : string [0..1] Indicates that the step is defined by a seaparate scenario instance workflow : canonical [0..1] « ExampleScenario » « This element has or is affected by some invariants C » 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) pause : boolean [0..1] Operation The sequential number of the interaction, e.g. 1.2.5 number : string [1..1] The standardized type of operation - CRUD action (FHIR or otherwise) type : string Coding [0..1] « null (Strength=Extensible) TestScriptOperationCode + » The human-friendly name of A short descriptive label the interaction step to be used in tables or diagrams name title : string [0..1] [1..1] Who starts The system that invokes the transaction action/transmits the data initiator : string [0..1] « This element has or is affected by some invariants C » Who receives The system on which the transaction action is invoked/receives the data receiver : string [0..1] « This element has or is affected by some invariants C » A comment to be inserted in An explanation of what the diagram operation represents and what it does description : markdown [0..1] Whether If false, the initiator is deactivated right after the transaction operation initiatorActive : boolean [0..1] Whether If false, the receiver is deactivated right after the transaction operation receiverActive : boolean [0..1] Alternative The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked title : string [1..1] « This element has or is affected by some invariants C » A human-readable description of the alternative explaining when the alternative should occur rather than the base step description : markdown [0..1] Actor participating in A system or person who shares or receives an instance within the resource scenario actor [0..*] A specific version of Represents the resource instance as it was at a specific time-point version [0..*] Resources contained in the References to other instances that can be found within this instance (e.g. the observations contained in a bundle) containedInstance [0..*] Each resource and each version A single data collection that is present in shared as part of the workflow scenario instance [0..*] Nested process Indicates that the step is a complex sub-process with its own steps process [0..*] [0..1] 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 request [0..1] 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) response [0..1] Each interaction or action The step represents a single operation invoked on receiver by sender operation [0..1] What Indicates the operation, sub-process or scenario that happens in each if the alternative option is selected step [0..*] 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 alternative [0..*] Each step A significant action that occurs as part of the process step [0..*] Each major process - a A group of operations that represents a significant step within a scenario process [0..*]

XML Template

<ExampleScenario xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <

 <url value="[uri]"/><!-- 0..1 Canonical identifier for this example scenario, represented as a URI (globally unique) -->

 <identifier><!-- 0..* Identifier Additional identifier for the example scenario --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the example scenario -->
 <
 <

 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 0..1 To be removed? -->
 <title value="[string]"/><!-- 0..1 Name for this example scenario (human friendly) -->
 <status value="[code]"/><!-- I 1..1 draft | active | retired | unknown -->

 <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage -->
 <
 <

 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->

 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <description value="[markdown]"/><!-- 0..1 Natural language description of the ExampleScenario -->

 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for example scenario (if applicable) --></jurisdiction>
 <

 <purpose value="[markdown]"/><!-- 0..1 The purpose of the example, e.g. to illustrate a scenario -->
 <
  <
  <
  <
  <

 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->
 <actor>  <!-- I 0..* Individual involved in exchange -->
  <key value="[string]"/><!-- I 1..1 ID or acronym of the actor -->
  <type value="[code]"/><!-- 1..1 person | system -->
  <title value="[string]"/><!-- I 1..1 Label for actor when rendering -->
  <description value="[markdown]"/><!-- 0..1 Details about actor -->

 </actor>
 <
  <
  <
  <
  <
  <
   <
   <

 <instance>  <!-- I 0..* Data used in the scenario -->
  <key value="[string]"/><!-- I 1..1 ID or acronym of the instance -->
  <structureType><!-- I 1..1 Coding Data structure for example --></structureType>
  <structureVersion value="[string]"/><!-- I 0..1 E.g. 4.0.1 -->
  <structureProfile[x]><!-- 0..1 canonical|uri Rules instance adheres to --></structureProfile[x]>
  <title value="[string]"/><!-- I 1..1 Label for instance -->
  <description value="[markdown]"/><!-- 0..1 Human-friendly description of the instance -->
  <content><!-- I 0..1 Reference Example instance data --></content>
  <version>  <!-- I 0..* Snapshot of instance that changes -->
   <key value="[string]"/><!-- I 1..1 ID or acronym of the version -->
   <title value="[string]"/><!-- I 1..1 Label for instance version -->
   <description value="[markdown]"/><!-- 0..1 Details about version -->
   <content><!-- 0..1 Reference Example instance version data --></content>

  </version>
  <
   <
   <

  <containedInstance>  <!-- 0..* Resources contained in the instance -->
   <instanceReference value="[string]"/><!-- I 1..1 Key of contained instance -->
   <versionReference value="[string]"/><!-- I 0..1 Key of contained instance version -->

  </containedInstance>
 </instance>
 <
  <
  <
  <
  <
  <
   <</process>
   <
   <
    <
    <
    <
    <
    <
    <
    <
    <
    <</request>
    <</response>

 <process>  <!-- I 0..* Major process within scenario -->
  <title value="[string]"/><!-- I 1..1 Label for procss -->
  <description value="[markdown]"/><!-- 0..1 Human-friendly description of the process -->
  <preConditions value="[markdown]"/><!-- 0..1 Status before process starts -->
  <postConditions value="[markdown]"/><!-- 0..1 Status after successful completion -->
  <step>  <!-- I 0..* Event within of the process -->
   <number value="[string]"/><!-- 0..1 Sequential number of the step -->
   <process><!-- 0..1 Content as for ExampleScenario.process Step is nested process --></process>
   <workflow><!-- I 0..1 canonical(ExampleScenario) Step is nested workflow --></workflow>
   <operation>  <!-- I 0..1 Step is simple action -->
    <type><!-- 0..1 Coding Kind of action --></type>
    <title value="[string]"/><!-- 1..1 Label for step -->
    <initiator value="[string]"/><!-- I 0..1 Who starts the operation -->
    <receiver value="[string]"/><!-- I 0..1 Who receives the operation -->
    <description value="[markdown]"/><!-- 0..1 Human-friendly description of the operation -->
    <initiatorActive value="[boolean]"/><!-- 0..1 Initiator stays active? -->
    <receiverActive value="[boolean]"/><!-- 0..1 Receiver stays active? -->
    <request><!-- 0..1 Content as for ExampleScenario.instance.containedInstance Instance transmitted on invocation --></request>
    <response><!-- 0..1 Content as for ExampleScenario.instance.containedInstance Instance transmitted on invocation response --></response>

   </operation>
   <
    <
    <
    <</step>

   <alternative>  <!-- I 0..* Alternate non-typical step action -->
    <title value="[string]"/><!-- I 1..1 Label for alternative -->
    <description value="[markdown]"/><!-- 0..1 Human-readable description of option -->
    <step><!-- 0..* Content as for ExampleScenario.process.step Alternative action(s) --></step>

   </alternative>
   <pause value="[boolean]"/><!-- 0..1 Pause in the flow? -->

  </step>
 </process>
 <</workflow>

</ExampleScenario>

JSON Template

{doco
  "resourceType" : "ExampleScenario",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "

  "url" : "<uri>", // Canonical identifier for this example scenario, represented as a URI (globally unique)

  "identifier" : [{ Identifier }], // Additional identifier for the example scenario
  "version" : "<string>", // Business version of the example scenario
  "
  "

  // versionAlgorithm[x]: How to compare versions. One of these 2:
  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I To be removed?
  "title" : "<string>", // Name for this example scenario (human friendly)
  "status" : "<code>", // I R!  draft | active | retired | unknown

  "experimental" : <boolean>, // For testing purposes, not real usage
  "
  "

  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)

  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the ExampleScenario

  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for example scenario (if applicable)
  "

  "purpose" : "<markdown>", // The purpose of the example, e.g. to illustrate a scenario
  "
    "
    "
    "
    "

  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "copyrightLabel" : "<string>", // Copyright holder and year(s)
  "actor" : [{ // I Individual involved in exchange
    "key" : "<string>", // I R!  ID or acronym of the actor
    "type" : "<code>", // R!  person | system
    "title" : "<string>", // I R!  Label for actor when rendering
    "description" : "<markdown>" // Details about actor

  }],
  "
    "
    "
    "
    "
    "
      "
      "

  "instance" : [{ // I Data used in the scenario
    "key" : "<string>", // I R!  ID or acronym of the instance
    "structureType" : { Coding }, // I R!  Data structure for example
    "structureVersion" : "<string>", // I E.g. 4.0.1
    // structureProfile[x]: Rules instance adheres to. One of these 2:

    "structureProfileCanonical" : "<canonical>",
    "structureProfileUri" : "<uri>",
    "title" : "<string>", // I R!  Label for instance
    "description" : "<markdown>", // Human-friendly description of the instance
    "content" : { Reference }, // I Example instance data
    "version" : [{ // I Snapshot of instance that changes
      "key" : "<string>", // I R!  ID or acronym of the version
      "title" : "<string>", // I R!  Label for instance version
      "description" : "<markdown>", // Details about version
      "content" : { Reference } // Example instance version data

    }],
    "
      "
      "

    "containedInstance" : [{ // Resources contained in the instance
      "instanceReference" : "<string>", // I R!  Key of contained instance
      "versionReference" : "<string>" // I Key of contained instance version

    }]
  }],
  "
    "
    "
    "
    "
    "
      "
      "
      "
        "
        "
        "
        "
        "
        "
        "
        "
        "
        "

  "process" : [{ // I Major process within scenario
    "title" : "<string>", // I R!  Label for procss
    "description" : "<markdown>", // Human-friendly description of the process
    "preConditions" : "<markdown>", // Status before process starts
    "postConditions" : "<markdown>", // Status after successful completion
    "step" : [{ // I Event within of the process
      "number" : "<string>", // Sequential number of the step
      "process" : { Content as for ExampleScenario.process }, // Step is nested process
      "workflow" : "<canonical(ExampleScenario)>", // I Step is nested workflow
      "operation" : { // I Step is simple action
        "type" : { Coding }, // Kind of action
        "title" : "<string>", // R!  Label for step
        "initiator" : "<string>", // I Who starts the operation
        "receiver" : "<string>", // I Who receives the operation
        "description" : "<markdown>", // Human-friendly description of the operation
        "initiatorActive" : <boolean>, // Initiator stays active?
        "receiverActive" : <boolean>, // Receiver stays active?
        "request" : { Content as for ExampleScenario.instance.containedInstance }, // Instance transmitted on invocation
        "response" : { Content as for ExampleScenario.instance.containedInstance } // Instance transmitted on invocation response

      },
      "
        "
        "
        "
      }]

      "alternative" : [{ // I Alternate non-typical step action
        "title" : "<string>", // I R!  Label for alternative
        "description" : "<markdown>", // Human-readable description of option
        "step" : [{ Content as for ExampleScenario.process.step }] // Alternative action(s)
      }],
      "pause" : <boolean> // Pause in the flow?

    }]
  }],
  "

  }]

}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:ExampleScenario;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
      fhir:
      fhir:
    ], ...;
  ], ...;
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
      fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
        fhir:
      ];
      fhir:
        fhir:
        fhir:
        fhir:
      ], ...;
    ], ...;
  ], ...;
  fhir:

  fhir:url [ uri ] ; # 0..1 Canonical identifier for this example scenario, represented as a URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the example scenario
  fhir:version [ string ] ; # 0..1 Business version of the example scenario
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:string ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 0..1 I To be removed?
  fhir:title [ string ] ; # 0..1 Name for this example scenario (human friendly)
  fhir:status [ code ] ; # 1..1 I draft | active | retired | unknown
  fhir:experimental [ boolean ] ; # 0..1 For testing purposes, not real usage
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the ExampleScenario
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Intended jurisdiction for example scenario (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 The purpose of the example, e.g. to illustrate a scenario
  fhir:copyright [ markdown ] ; # 0..1 Use and/or publishing restrictions
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:actor ( [ # 0..* I Individual involved in exchange
    fhir:key [ string ] ; # 1..1 I ID or acronym of the actor
    fhir:type [ code ] ; # 1..1 person | system
    fhir:title [ string ] ; # 1..1 I Label for actor when rendering
    fhir:description [ markdown ] ; # 0..1 Details about actor
  ] ... ) ;
  fhir:instance ( [ # 0..* I Data used in the scenario
    fhir:key [ string ] ; # 1..1 I ID or acronym of the instance
    fhir:structureType [ Coding ] ; # 1..1 I Data structure for example
    fhir:structureVersion [ string ] ; # 0..1 I E.g. 4.0.1
    # structureProfile[x] : 0..1 Rules instance adheres to. One of these 2
      fhir:structureProfile [  a fhir:canonical ; canonical ]
      fhir:structureProfile [  a fhir:uri ; uri ]
    fhir:title [ string ] ; # 1..1 I Label for instance
    fhir:description [ markdown ] ; # 0..1 Human-friendly description of the instance
    fhir:content [ Reference ] ; # 0..1 I Example instance data
    fhir:version ( [ # 0..* I Snapshot of instance that changes
      fhir:key [ string ] ; # 1..1 I ID or acronym of the version
      fhir:title [ string ] ; # 1..1 I Label for instance version
      fhir:description [ markdown ] ; # 0..1 Details about version
      fhir:content [ Reference ] ; # 0..1 Example instance version data
    ] ... ) ;
    fhir:containedInstance ( [ # 0..* Resources contained in the instance
      fhir:instanceReference [ string ] ; # 1..1 I Key of contained instance
      fhir:versionReference [ string ] ; # 0..1 I Key of contained instance version
    ] ... ) ;
  ] ... ) ;
  fhir:process ( [ # 0..* I Major process within scenario
    fhir:title [ string ] ; # 1..1 I Label for procss
    fhir:description [ markdown ] ; # 0..1 Human-friendly description of the process
    fhir:preConditions [ markdown ] ; # 0..1 Status before process starts
    fhir:postConditions [ markdown ] ; # 0..1 Status after successful completion
    fhir:step ( [ # 0..* I Event within of the process
      fhir:number [ string ] ; # 0..1 Sequential number of the step
      fhir:process [ See ExampleScenario.process ] ; # 0..1 Step is nested process
      fhir:workflow [ canonical(ExampleScenario) ] ; # 0..1 I Step is nested workflow
      fhir:operation [ # 0..1 I Step is simple action
        fhir:type [ Coding ] ; # 0..1 Kind of action
        fhir:title [ string ] ; # 1..1 Label for step
        fhir:initiator [ string ] ; # 0..1 I Who starts the operation
        fhir:receiver [ string ] ; # 0..1 I Who receives the operation
        fhir:description [ markdown ] ; # 0..1 Human-friendly description of the operation
        fhir:initiatorActive [ boolean ] ; # 0..1 Initiator stays active?
        fhir:receiverActive [ boolean ] ; # 0..1 Receiver stays active?
        fhir:request [ See ExampleScenario.instance.containedInstance ] ; # 0..1 Instance transmitted on invocation
        fhir:response [ See ExampleScenario.instance.containedInstance ] ; # 0..1 Instance transmitted on invocation response
      ] ;
      fhir:alternative ( [ # 0..* I Alternate non-typical step action
        fhir:title [ string ] ; # 1..1 I Label for alternative
        fhir:description [ markdown ] ; # 0..1 Human-readable description of option
        fhir:step  ( [ See ExampleScenario.process.step ] ... ) ; # 0..* Alternative action(s)
      ] ... ) ;
      fhir:pause [ boolean ] ; # 0..1 Pause in the flow?
    ] ... ) ;
  ] ... ) ;

]

Changes since Release 3 from both R4 and R4B

ExampleScenario
ExampleScenario.versionAlgorithm[x]
  • Added Element
ExampleScenario.title
  • Added Element
ExampleScenario.description
  • Added Element
ExampleScenario.copyrightLabel
  • Added Element
ExampleScenario.actor.key
  • Renamed from actorId to key
ExampleScenario.actor.type
  • Remove code entity
  • Add code system
ExampleScenario.actor.title
  • Renamed from name to title
  • Min Cardinality changed from 0 to 1
ExampleScenario.instance.key
  • Renamed from resourceId to key
ExampleScenario.instance.structureType
  • Renamed from resourceType to structureType
  • Type changed from code to Coding
  • Change binding strength from required to extensible
  • Change value set from http://hl7.org/fhir/ValueSet/resource-types|4.0.0 to Example Scenario Resource Type
ExampleScenario.instance.structureVersion
  • Added Element
ExampleScenario.instance.structureProfile[x]
  • Added Element
ExampleScenario.instance.title
  • Renamed from name to title
  • Min Cardinality changed from 0 to 1
ExampleScenario.instance.content
  • Added Element
ExampleScenario.instance.version.key
  • Added Mandatory Element
ExampleScenario.instance.version.title
  • Added Mandatory Element
ExampleScenario.instance.version.description
  • Min Cardinality changed from 1 to 0
ExampleScenario.instance.version.content
  • Added Element
ExampleScenario.instance.containedInstance.instanceReference
  • Renamed from resourceId to instanceReference
ExampleScenario.instance.containedInstance.versionReference
  • Renamed from versionId to versionReference
ExampleScenario.process.step.number
  • Moved from ExampleScenario.process.step.operation to ExampleScenario.process.step
  • Min Cardinality changed from 1 to 0
ExampleScenario.process.step.process
  • Max Cardinality changed from * to 1
ExampleScenario.process.step.workflow
  • Moved from ExampleScenario to ExampleScenario.process.step
  • Max Cardinality changed from * to 1
ExampleScenario.process.step.operation.type
  • Type changed from string to Coding
  • Add Binding `http://hl7.org/fhir/ValueSet/testscript-operation-codes` (extensible)
ExampleScenario.process.step.operation.title
  • Renamed from name to title
  • Min Cardinality changed from 0 to 1
ExampleScenario.instance.version.versionId
  • Deleted

This resource did not exist in Release 2 See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .

 

See the Profiles & Extensions and the alternate Additional definitions: Master Definition XML + JSON , XML Schema / Schematron + JSON Schema , ShEx (for Turtle ) + see , the extensions spreadsheet version & the dependency analysis

ExampleScenario.instance.resourceType
Path Definition ValueSet Type Reference Documentation
ExampleScenario.versionAlgorithm[x] VersionAlgorithm Extensible

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

ExampleScenario.status The lifecycle status of an artifact. PublicationStatus Required PublicationStatus

The lifecycle status of an artifact.

ExampleScenario.jurisdiction Countries and regions within which this artifact is targeted for use. JurisdictionValueSet Extensible Jurisdiction ValueSet

This value set defines a base set of codes for country, country subdivision and region for indicating where a resource is intended to be used.

Note: The codes for countries and country subdivisions are taken from ISO 3166 icon while the codes for "supra-national" regions are from UN Standard country or area codes for statistical use (M49) icon.

ExampleScenario.actor.type ExampleScenarioActorType Required

The type of actor - system or human.

ExampleScenario.instance.structureType ExampleScenarioResourceType Required Extensible ExampleScenarioActorType

Types of resource structures that can be passed in or out of exchange operations. Not necessarily FHIR.

ExampleScenario.process.step.operation.type The type of resource. TestScriptOperationCode (a valid code from FHIR Restful Interactions ) Required Extensible ResourceType

This value set defines a set of codes that are used to indicate the supported operations of a testing engine or tool.

id UniqueKey Level Location Description Expression
esc-0 img  cnl-0 Warning (base) 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}$')
img  exs-1 Rule ExampleScenario.instance 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()
img  cnl-1 Warning ExampleScenario.url URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$')
img  exs-2 Rule ExampleScenario.instance instance.content is only allowed if there are no instance.versions content.exists() implies version.empty()
img  exs-3 Rule (base) Must have actors if status is active or required status='active' or status='retired' implies actor.exists()
img  exs-4 Rule (base) Must have processes if status is active or required status='active' or status='retired' implies process.exists()
img  exs-5 Rule ExampleScenario.process Processes must have steps if ExampleScenario status is active or required %resource.status='active' or %resource.status='retired' implies step.exists()
img  exs-6 Rule (base) Actor keys must be unique actor.key.count() = actor.key.distinct().count()
img  exs-7 Rule (base) Actor titles must be unique actor.title.count() = actor.title.distinct().count()
img  exs-8 Rule (base) Instance keys must be unique instance.key.count() = instance.key.distinct().count()
img  exs-9 Rule (base) Instance titles must be unique instance.title.count() = instance.title.distinct().count()
img  exs-10 Rule ExampleScenario.instance Version keys must be unique within an instance version.key.count() = version.key.distinct().count()
img  exs-11 Rule ExampleScenario.instance Version titles must be unique within an instance version.title.count() = version.title.distinct().count()
img  exs-12 Rule (base) Process titles must be unique process.title.count() = process.title.distinct().count()
img  exs-13 Rule ExampleScenario.process.step Alternative titles must be unique within a step alternative.title.count() = alternative.title.distinct().count()
img  exs-14 Rule ExampleScenario.instance.containedInstance InstanceReference must be a key of an instance defined in the ExampleScenario %resource.instance.where(key=%context.instanceReference).exists()
img  exs-15 Rule ExampleScenario.instance.containedInstance versionReference must be specified if the referenced instance defines versions versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()
img  exs-16 Rule ExampleScenario.instance.containedInstance 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()
img  exs-17 Rule ExampleScenario.process.step.operation 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()
img  exs-18 Rule ExampleScenario.process.step.operation 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()
img  exs-19 Warning ExampleScenario.actor Actor should be referenced in at least one operation %resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()
img  exs-20 Warning ExampleScenario.instance Instance should be referenced in at least one location %resource.process.descendants().select(instanceReference).where($this=%context.key).exists()
img  exs-21 Warning ExampleScenario.instance 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()
img  exs-22 Rule ExampleScenario.process.step 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())
img  exs-23 Rule ExampleScenario.actor actor.key canot be 'OTHER' key != 'OTHER'

Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Expression In Common
context token A use context assigned to the example scenario (ExampleScenario.useContext.value as CodeableConcept) (ExampleScenario.useContext.value.ofType(CodeableConcept)) 30 Resources
context-quantity quantity A quantity- or range-valued use context assigned to the example scenario (ExampleScenario.useContext.value as Quantity) (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value as Range) (ExampleScenario.useContext.value.ofType(Range)) 30 Resources
context-type token A type of use context assigned to the example scenario ExampleScenario.useContext.code 30 Resources
context-type-quantity composite A use context type and quantity- or range-based value assigned to the example scenario On ExampleScenario.useContext:
  context-type: code
  context-quantity: value.as(Quantity) value.ofType(Quantity) | value.as(Range) value.ofType(Range)
30 Resources
context-type-value composite A use context type and value assigned to the example scenario On ExampleScenario.useContext:
  context-type: code
  context: value.as(CodeableConcept) value.ofType(CodeableConcept)
30 Resources
date date The example scenario publication date ExampleScenario.date 30 Resources
identifier token External identifier for the example scenario ExampleScenario.identifier 34 Resources
jurisdiction token Intended jurisdiction for the example scenario ExampleScenario.jurisdiction 26 Resources
name string Computationally friendly name of the example scenario ExampleScenario.name 26 Resources
publisher string Name of the publisher of the example scenario ExampleScenario.publisher 30 Resources
status token The current status of the example scenario ExampleScenario.status 35 Resources
url uri The uri that identifies the example scenario ExampleScenario.url 34 Resources
version token The business version of the example scenario ExampleScenario.version 30 Resources