This page is part of the FHIR Specification (v5.0.0-snapshot3: R5 Snapshot #3, to support Connectathon 32). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4
FHIR Infrastructure Work Group | Maturity Level: 1 | Trial Use | Security Category: Anonymous | Compartments: Not linked to any defined compartments |
Example of workflow instance.
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 specifically about highlighting how those examples come together in a workflow - who exchanges them and under what circumstances.
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ExampleScenario | 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 |
versionAlgorithm[x] | Σ | 0..1 | How to compare versions Version Algorithm (Extensible) | |
versionAlgorithmString | string | |||
versionAlgorithmCoding | Coding | |||
name | Σ | 0..1 | string | To be removed? |
title | ΣT | 0..1 | string | Name for this example scenario (human friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown 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/steward (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
description | ΣT | 0..1 | markdown | Natural language description of the ExampleScenario |
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for example scenario (if applicable) 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 | |
copyrightLabel | T | 0..1 | string | Copyright holder and year(s) |
actor | C | 0..* | BackboneElement | Individual involved in exchange + Warning: Actor should be referenced in at least one operation + Rule: actor.key canot be 'OTHER' |
key | 1..1 | string | ID or acronym of the actor | |
type | 1..1 | code | person | system ExampleScenarioActorType (Required) | |
title | T | 1..1 | string | Label for actor when rendering |
description | T | 0..1 | markdown | Details about actor |
instance | C | 0..* | BackboneElement | 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 at least one location + Warning: Instance version should be referenced in at least one operation |
key | 1..1 | string | ID or acronym of the instance | |
structureType | 1..1 | Coding | Data structure for example Example Scenario Resource Type (Extensible) | |
structureVersion | C | 0..1 | string | E.g. 4.0.1 |
structureProfile[x] | 0..1 | Rules instance adheres to | ||
structureProfileCanonical | canonical() | |||
structureProfileUri | uri | |||
title | T | 1..1 | string | Label for instance |
description | T | 0..1 | markdown | Human-friendly description of the instance |
content | 0..1 | Reference() | Example instance data | |
version | 0..* | BackboneElement | Snapshot of instance that changes | |
key | 1..1 | string | ID or acronym of the version | |
title | 1..1 | string | Label for instance version | |
description | T | 0..1 | markdown | Details about version |
content | 0..1 | Reference() | Example instance version data | |
containedInstance | C | 0..* | BackboneElement | 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 |
instanceReference | 1..1 | string | Key of contained instance | |
versionReference | 0..1 | string | Key of contained instance version | |
process | C | 0..* | BackboneElement | Major process within scenario + Rule: Processes must have steps if ExampleScenario status is active or required |
title | ΣT | 1..1 | string | Label for procss |
description | T | 0..1 | markdown | Human-friendly description of the process |
preConditions | T | 0..1 | markdown | Status before process starts |
postConditions | T | 0..1 | markdown | Status after successful completion |
step | C | 0..* | BackboneElement | 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 |
number | 0..1 | string | Sequential number of the step | |
process | 0..1 | see process | Step is nested process | |
workflow | 0..1 | canonical(ExampleScenario) | Step is nested workflow | |
operation | C | 0..1 | BackboneElement | Step is simple action + Rule: If specified, initiator must be a key of an actor within the ExampleScenario + Rule: If specified, receiver must be a key of an actor within the ExampleScenario |
type | 0..1 | Coding | Kind of action TestScriptOperationCode (Extensible) | |
title | 1..1 | string | Label for step | |
initiator | 0..1 | string | Who starts the operation | |
receiver | 0..1 | string | Who receives the operation | |
description | T | 0..1 | markdown | Human-friendly description of the operation |
initiatorActive | 0..1 | boolean | Initiator stays active? | |
receiverActive | 0..1 | boolean | Receiver stays active? | |
request | 0..1 | see containedInstance | Instance transmitted on invocation | |
response | 0..1 | see containedInstance | Instance transmitted on invocation response | |
alternative | 0..* | BackboneElement | Alternate non-typical step action | |
title | T | 1..1 | string | Label for alternative |
description | T | 0..1 | markdown | Human-readable description of option |
step | 0..* | see step | Alternative action(s) | |
pause | 0..1 | boolean | Pause in the flow? | |
Documentation for this format |
See the Extensions for this resource
UML Diagram (Legend)
XML Template
<ExampleScenario xmlns="http://hl7.org/fhir"> <!-- 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]"/><!-- 0..1 To be removed? --> <title value="[string]"/><!-- 0..1 Name for this example scenario (human friendly) --> <status value="[code]"/><!-- 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]"/><!-- 1..1 ID or acronym of the actor --> <type value="[code]"/><!-- 1..1 person | system --> <title value="[string]"/><!-- 1..1 Label for actor when rendering --> <description value="[markdown]"/><!-- 0..1 Details about actor --> </actor> <instance> <!-- 0..* Data used in the scenario --> <key value="[string]"/><!-- 1..1 ID or acronym of the instance --> <structureType><!-- 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]"/><!-- 1..1 Label for instance --> <description value="[markdown]"/><!-- 0..1 Human-friendly description of the instance --> <content><!-- 0..1 Reference Example instance data --></content> <version> <!-- 0..* Snapshot of instance that changes --> <key value="[string]"/><!-- 1..1 ID or acronym of the version --> <title value="[string]"/><!-- 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]"/><!-- 1..1 Key of contained instance --> <versionReference value="[string]"/><!-- 0..1 Key of contained instance version --> </containedInstance> </instance> <process> <!-- I 0..* Major process within scenario --> <title value="[string]"/><!-- 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><!-- 0..1 canonical(ExampleScenario) Step is nested workflow --></workflow> <operation> <!-- 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]"/><!-- 0..1 Who starts the operation --> <receiver value="[string]"/><!-- 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> <alternative> <!-- 0..* Alternate non-typical step action --> <title value="[string]"/><!-- 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> </ExampleScenario>
JSON Template
{ "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>", // To be removed? "title" : "<string>", // Name for this example scenario (human friendly) "status" : "<code>", // 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>", // R! ID or acronym of the actor "type" : "<code>", // R! person | system "title" : "<string>", // R! Label for actor when rendering "description" : "<markdown>" // Details about actor }], "instance" : [{ // Data used in the scenario "key" : "<string>", // R! ID or acronym of the instance "structureType" : { Coding }, // 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>", // R! Label for instance "description" : "<markdown>", // Human-friendly description of the instance "content" : { Reference }, // Example instance data "version" : [{ // Snapshot of instance that changes "key" : "<string>", // R! ID or acronym of the version "title" : "<string>", // R! Label for instance version "description" : "<markdown>", // Details about version "content" : { Reference } // Example instance version data }], "containedInstance" : [{ // Resources contained in the instance "instanceReference" : "<string>", // R! Key of contained instance "versionReference" : "<string>" // Key of contained instance version }] }], "process" : [{ // I Major process within scenario "title" : "<string>", // 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)>", // Step is nested workflow "operation" : { // Step is simple action "type" : { Coding }, // Kind of action "title" : "<string>", // R! Label for step "initiator" : "<string>", // Who starts the operation "receiver" : "<string>", // 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" : [{ // Alternate non-typical step action "title" : "<string>", // 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/> . [ 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:ExampleScenario.url [ uri ]; # 0..1 Canonical identifier for this example scenario, represented as a URI (globally unique) fhir:ExampleScenario.identifier [ Identifier ], ... ; # 0..* Additional identifier for the example scenario fhir:ExampleScenario.version [ string ]; # 0..1 Business version of the example scenario # ExampleScenario.versionAlgorithm[x] : 0..1 How to compare versions. One of these 2 fhir:ExampleScenario.versionAlgorithmString [ string ] fhir:ExampleScenario.versionAlgorithmCoding [ Coding ] fhir:ExampleScenario.name [ string ]; # 0..1 To be removed? fhir:ExampleScenario.title [ string ]; # 0..1 Name for this example scenario (human friendly) fhir:ExampleScenario.status [ code ]; # 1..1 draft | active | retired | unknown fhir:ExampleScenario.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:ExampleScenario.date [ dateTime ]; # 0..1 Date last changed fhir:ExampleScenario.publisher [ string ]; # 0..1 Name of the publisher/steward (organization or individual) fhir:ExampleScenario.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:ExampleScenario.description [ markdown ]; # 0..1 Natural language description of the ExampleScenario fhir:ExampleScenario.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:ExampleScenario.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for example scenario (if applicable) fhir:ExampleScenario.purpose [ markdown ]; # 0..1 The purpose of the example, e.g. to illustrate a scenario fhir:ExampleScenario.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions fhir:ExampleScenario.copyrightLabel [ string ]; # 0..1 Copyright holder and year(s) fhir:ExampleScenario.actor [ # 0..* I Individual involved in exchange fhir:ExampleScenario.actor.key [ string ]; # 1..1 ID or acronym of the actor fhir:ExampleScenario.actor.type [ code ]; # 1..1 person | system fhir:ExampleScenario.actor.title [ string ]; # 1..1 Label for actor when rendering fhir:ExampleScenario.actor.description [ markdown ]; # 0..1 Details about actor ], ...; fhir:ExampleScenario.instance [ # 0..* Data used in the scenario fhir:ExampleScenario.instance.key [ string ]; # 1..1 ID or acronym of the instance fhir:ExampleScenario.instance.structureType [ Coding ]; # 1..1 Data structure for example fhir:ExampleScenario.instance.structureVersion [ string ]; # 0..1 I E.g. 4.0.1 # ExampleScenario.instance.structureProfile[x] : 0..1 Rules instance adheres to. One of these 2 fhir:ExampleScenario.instance.structureProfileCanonical [ canonical ] fhir:ExampleScenario.instance.structureProfileUri [ uri ] fhir:ExampleScenario.instance.title [ string ]; # 1..1 Label for instance fhir:ExampleScenario.instance.description [ markdown ]; # 0..1 Human-friendly description of the instance fhir:ExampleScenario.instance.content [ Reference ]; # 0..1 Example instance data fhir:ExampleScenario.instance.version [ # 0..* Snapshot of instance that changes fhir:ExampleScenario.instance.version.key [ string ]; # 1..1 ID or acronym of the version fhir:ExampleScenario.instance.version.title [ string ]; # 1..1 Label for instance version fhir:ExampleScenario.instance.version.description [ markdown ]; # 0..1 Details about version fhir:ExampleScenario.instance.version.content [ Reference ]; # 0..1 Example instance version data ], ...; fhir:ExampleScenario.instance.containedInstance [ # 0..* Resources contained in the instance fhir:ExampleScenario.instance.containedInstance.instanceReference [ string ]; # 1..1 Key of contained instance fhir:ExampleScenario.instance.containedInstance.versionReference [ string ]; # 0..1 Key of contained instance version ], ...; ], ...; fhir:ExampleScenario.process [ # 0..* I Major process within scenario fhir:ExampleScenario.process.title [ string ]; # 1..1 Label for procss fhir:ExampleScenario.process.description [ markdown ]; # 0..1 Human-friendly description of the process fhir:ExampleScenario.process.preConditions [ markdown ]; # 0..1 Status before process starts fhir:ExampleScenario.process.postConditions [ markdown ]; # 0..1 Status after successful completion fhir:ExampleScenario.process.step [ # 0..* I Event within of the process fhir:ExampleScenario.process.step.number [ string ]; # 0..1 Sequential number of the step fhir:ExampleScenario.process.step.process [ See ExampleScenario.process ]; # 0..1 Step is nested process fhir:ExampleScenario.process.step.workflow [ canonical(ExampleScenario) ]; # 0..1 Step is nested workflow fhir:ExampleScenario.process.step.operation [ # 0..1 Step is simple action fhir:ExampleScenario.process.step.operation.type [ Coding ]; # 0..1 Kind of action fhir:ExampleScenario.process.step.operation.title [ string ]; # 1..1 Label for step fhir:ExampleScenario.process.step.operation.initiator [ string ]; # 0..1 Who starts the operation fhir:ExampleScenario.process.step.operation.receiver [ string ]; # 0..1 Who receives the operation fhir:ExampleScenario.process.step.operation.description [ markdown ]; # 0..1 Human-friendly description of the operation fhir:ExampleScenario.process.step.operation.initiatorActive [ boolean ]; # 0..1 Initiator stays active? fhir:ExampleScenario.process.step.operation.receiverActive [ boolean ]; # 0..1 Receiver stays active? fhir:ExampleScenario.process.step.operation.request [ See ExampleScenario.instance.containedInstance ]; # 0..1 Instance transmitted on invocation fhir:ExampleScenario.process.step.operation.response [ See ExampleScenario.instance.containedInstance ]; # 0..1 Instance transmitted on invocation response ]; fhir:ExampleScenario.process.step.alternative [ # 0..* Alternate non-typical step action fhir:ExampleScenario.process.step.alternative.title [ string ]; # 1..1 Label for alternative fhir:ExampleScenario.process.step.alternative.description [ markdown ]; # 0..1 Human-readable description of option fhir:ExampleScenario.process.step.alternative.step [ See ExampleScenario.process.step ], ... ; # 0..* Alternative action(s) ], ...; fhir:ExampleScenario.process.step.pause [ boolean ]; # 0..1 Pause in the flow? ], ...; ], ...; ]
Changes since R4
ExampleScenario | |
ExampleScenario.versionAlgorithm[x] |
|
ExampleScenario.title |
|
ExampleScenario.description |
|
ExampleScenario.copyrightLabel |
|
ExampleScenario.actor.key |
|
ExampleScenario.actor.title |
|
ExampleScenario.instance.key |
|
ExampleScenario.instance.structureType |
|
ExampleScenario.instance.structureVersion |
|
ExampleScenario.instance.structureProfile[x] |
|
ExampleScenario.instance.title |
|
ExampleScenario.instance.content |
|
ExampleScenario.instance.version.key |
|
ExampleScenario.instance.version.title |
|
ExampleScenario.instance.version.description |
|
ExampleScenario.instance.version.content |
|
ExampleScenario.instance.containedInstance.instanceReference |
|
ExampleScenario.instance.containedInstance.versionReference |
|
ExampleScenario.process.step.number |
|
ExampleScenario.process.step.process |
|
ExampleScenario.process.step.workflow |
|
ExampleScenario.process.step.operation.type |
|
ExampleScenario.process.step.operation.title |
|
ExampleScenario.actor.actorId |
|
ExampleScenario.actor.name |
|
ExampleScenario.instance.resourceId |
|
ExampleScenario.instance.resourceType |
|
ExampleScenario.instance.name |
|
ExampleScenario.instance.version.versionId |
|
ExampleScenario.instance.containedInstance.resourceId |
|
ExampleScenario.instance.containedInstance.versionId |
|
ExampleScenario.process.step.operation.number |
|
ExampleScenario.process.step.operation.name |
|
ExampleScenario.workflow |
|
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ExampleScenario | 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 |
versionAlgorithm[x] | Σ | 0..1 | How to compare versions Version Algorithm (Extensible) | |
versionAlgorithmString | string | |||
versionAlgorithmCoding | Coding | |||
name | Σ | 0..1 | string | To be removed? |
title | ΣT | 0..1 | string | Name for this example scenario (human friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown 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/steward (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
description | ΣT | 0..1 | markdown | Natural language description of the ExampleScenario |
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for example scenario (if applicable) 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 | |
copyrightLabel | T | 0..1 | string | Copyright holder and year(s) |
actor | C | 0..* | BackboneElement | Individual involved in exchange + Warning: Actor should be referenced in at least one operation + Rule: actor.key canot be 'OTHER' |
key | 1..1 | string | ID or acronym of the actor | |
type | 1..1 | code | person | system ExampleScenarioActorType (Required) | |
title | T | 1..1 | string | Label for actor when rendering |
description | T | 0..1 | markdown | Details about actor |
instance | C | 0..* | BackboneElement | 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 at least one location + Warning: Instance version should be referenced in at least one operation |
key | 1..1 | string | ID or acronym of the instance | |
structureType | 1..1 | Coding | Data structure for example Example Scenario Resource Type (Extensible) | |
structureVersion | C | 0..1 | string | E.g. 4.0.1 |
structureProfile[x] | 0..1 | Rules instance adheres to | ||
structureProfileCanonical | canonical() | |||
structureProfileUri | uri | |||
title | T | 1..1 | string | Label for instance |
description | T | 0..1 | markdown | Human-friendly description of the instance |
content | 0..1 | Reference() | Example instance data | |
version | 0..* | BackboneElement | Snapshot of instance that changes | |
key | 1..1 | string | ID or acronym of the version | |
title | 1..1 | string | Label for instance version | |
description | T | 0..1 | markdown | Details about version |
content | 0..1 | Reference() | Example instance version data | |
containedInstance | C | 0..* | BackboneElement | 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 |
instanceReference | 1..1 | string | Key of contained instance | |
versionReference | 0..1 | string | Key of contained instance version | |
process | C | 0..* | BackboneElement | Major process within scenario + Rule: Processes must have steps if ExampleScenario status is active or required |
title | ΣT | 1..1 | string | Label for procss |
description | T | 0..1 | markdown | Human-friendly description of the process |
preConditions | T | 0..1 | markdown | Status before process starts |
postConditions | T | 0..1 | markdown | Status after successful completion |
step | C | 0..* | BackboneElement | 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 |
number | 0..1 | string | Sequential number of the step | |
process | 0..1 | see process | Step is nested process | |
workflow | 0..1 | canonical(ExampleScenario) | Step is nested workflow | |
operation | C | 0..1 | BackboneElement | Step is simple action + Rule: If specified, initiator must be a key of an actor within the ExampleScenario + Rule: If specified, receiver must be a key of an actor within the ExampleScenario |
type | 0..1 | Coding | Kind of action TestScriptOperationCode (Extensible) | |
title | 1..1 | string | Label for step | |
initiator | 0..1 | string | Who starts the operation | |
receiver | 0..1 | string | Who receives the operation | |
description | T | 0..1 | markdown | Human-friendly description of the operation |
initiatorActive | 0..1 | boolean | Initiator stays active? | |
receiverActive | 0..1 | boolean | Receiver stays active? | |
request | 0..1 | see containedInstance | Instance transmitted on invocation | |
response | 0..1 | see containedInstance | Instance transmitted on invocation response | |
alternative | 0..* | BackboneElement | Alternate non-typical step action | |
title | T | 1..1 | string | Label for alternative |
description | T | 0..1 | markdown | Human-readable description of option |
step | 0..* | see step | Alternative action(s) | |
pause | 0..1 | boolean | Pause in the flow? | |
Documentation for this format |
See the Extensions for this resource
XML Template
<ExampleScenario xmlns="http://hl7.org/fhir"> <!-- 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]"/><!-- 0..1 To be removed? --> <title value="[string]"/><!-- 0..1 Name for this example scenario (human friendly) --> <status value="[code]"/><!-- 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]"/><!-- 1..1 ID or acronym of the actor --> <type value="[code]"/><!-- 1..1 person | system --> <title value="[string]"/><!-- 1..1 Label for actor when rendering --> <description value="[markdown]"/><!-- 0..1 Details about actor --> </actor> <instance> <!-- 0..* Data used in the scenario --> <key value="[string]"/><!-- 1..1 ID or acronym of the instance --> <structureType><!-- 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]"/><!-- 1..1 Label for instance --> <description value="[markdown]"/><!-- 0..1 Human-friendly description of the instance --> <content><!-- 0..1 Reference Example instance data --></content> <version> <!-- 0..* Snapshot of instance that changes --> <key value="[string]"/><!-- 1..1 ID or acronym of the version --> <title value="[string]"/><!-- 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]"/><!-- 1..1 Key of contained instance --> <versionReference value="[string]"/><!-- 0..1 Key of contained instance version --> </containedInstance> </instance> <process> <!-- I 0..* Major process within scenario --> <title value="[string]"/><!-- 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><!-- 0..1 canonical(ExampleScenario) Step is nested workflow --></workflow> <operation> <!-- 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]"/><!-- 0..1 Who starts the operation --> <receiver value="[string]"/><!-- 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> <alternative> <!-- 0..* Alternate non-typical step action --> <title value="[string]"/><!-- 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> </ExampleScenario>
JSON Template
{ "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>", // To be removed? "title" : "<string>", // Name for this example scenario (human friendly) "status" : "<code>", // 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>", // R! ID or acronym of the actor "type" : "<code>", // R! person | system "title" : "<string>", // R! Label for actor when rendering "description" : "<markdown>" // Details about actor }], "instance" : [{ // Data used in the scenario "key" : "<string>", // R! ID or acronym of the instance "structureType" : { Coding }, // 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>", // R! Label for instance "description" : "<markdown>", // Human-friendly description of the instance "content" : { Reference }, // Example instance data "version" : [{ // Snapshot of instance that changes "key" : "<string>", // R! ID or acronym of the version "title" : "<string>", // R! Label for instance version "description" : "<markdown>", // Details about version "content" : { Reference } // Example instance version data }], "containedInstance" : [{ // Resources contained in the instance "instanceReference" : "<string>", // R! Key of contained instance "versionReference" : "<string>" // Key of contained instance version }] }], "process" : [{ // I Major process within scenario "title" : "<string>", // 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)>", // Step is nested workflow "operation" : { // Step is simple action "type" : { Coding }, // Kind of action "title" : "<string>", // R! Label for step "initiator" : "<string>", // Who starts the operation "receiver" : "<string>", // 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" : [{ // Alternate non-typical step action "title" : "<string>", // 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/> . [ 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:ExampleScenario.url [ uri ]; # 0..1 Canonical identifier for this example scenario, represented as a URI (globally unique) fhir:ExampleScenario.identifier [ Identifier ], ... ; # 0..* Additional identifier for the example scenario fhir:ExampleScenario.version [ string ]; # 0..1 Business version of the example scenario # ExampleScenario.versionAlgorithm[x] : 0..1 How to compare versions. One of these 2 fhir:ExampleScenario.versionAlgorithmString [ string ] fhir:ExampleScenario.versionAlgorithmCoding [ Coding ] fhir:ExampleScenario.name [ string ]; # 0..1 To be removed? fhir:ExampleScenario.title [ string ]; # 0..1 Name for this example scenario (human friendly) fhir:ExampleScenario.status [ code ]; # 1..1 draft | active | retired | unknown fhir:ExampleScenario.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:ExampleScenario.date [ dateTime ]; # 0..1 Date last changed fhir:ExampleScenario.publisher [ string ]; # 0..1 Name of the publisher/steward (organization or individual) fhir:ExampleScenario.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:ExampleScenario.description [ markdown ]; # 0..1 Natural language description of the ExampleScenario fhir:ExampleScenario.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:ExampleScenario.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for example scenario (if applicable) fhir:ExampleScenario.purpose [ markdown ]; # 0..1 The purpose of the example, e.g. to illustrate a scenario fhir:ExampleScenario.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions fhir:ExampleScenario.copyrightLabel [ string ]; # 0..1 Copyright holder and year(s) fhir:ExampleScenario.actor [ # 0..* I Individual involved in exchange fhir:ExampleScenario.actor.key [ string ]; # 1..1 ID or acronym of the actor fhir:ExampleScenario.actor.type [ code ]; # 1..1 person | system fhir:ExampleScenario.actor.title [ string ]; # 1..1 Label for actor when rendering fhir:ExampleScenario.actor.description [ markdown ]; # 0..1 Details about actor ], ...; fhir:ExampleScenario.instance [ # 0..* Data used in the scenario fhir:ExampleScenario.instance.key [ string ]; # 1..1 ID or acronym of the instance fhir:ExampleScenario.instance.structureType [ Coding ]; # 1..1 Data structure for example fhir:ExampleScenario.instance.structureVersion [ string ]; # 0..1 I E.g. 4.0.1 # ExampleScenario.instance.structureProfile[x] : 0..1 Rules instance adheres to. One of these 2 fhir:ExampleScenario.instance.structureProfileCanonical [ canonical ] fhir:ExampleScenario.instance.structureProfileUri [ uri ] fhir:ExampleScenario.instance.title [ string ]; # 1..1 Label for instance fhir:ExampleScenario.instance.description [ markdown ]; # 0..1 Human-friendly description of the instance fhir:ExampleScenario.instance.content [ Reference ]; # 0..1 Example instance data fhir:ExampleScenario.instance.version [ # 0..* Snapshot of instance that changes fhir:ExampleScenario.instance.version.key [ string ]; # 1..1 ID or acronym of the version fhir:ExampleScenario.instance.version.title [ string ]; # 1..1 Label for instance version fhir:ExampleScenario.instance.version.description [ markdown ]; # 0..1 Details about version fhir:ExampleScenario.instance.version.content [ Reference ]; # 0..1 Example instance version data ], ...; fhir:ExampleScenario.instance.containedInstance [ # 0..* Resources contained in the instance fhir:ExampleScenario.instance.containedInstance.instanceReference [ string ]; # 1..1 Key of contained instance fhir:ExampleScenario.instance.containedInstance.versionReference [ string ]; # 0..1 Key of contained instance version ], ...; ], ...; fhir:ExampleScenario.process [ # 0..* I Major process within scenario fhir:ExampleScenario.process.title [ string ]; # 1..1 Label for procss fhir:ExampleScenario.process.description [ markdown ]; # 0..1 Human-friendly description of the process fhir:ExampleScenario.process.preConditions [ markdown ]; # 0..1 Status before process starts fhir:ExampleScenario.process.postConditions [ markdown ]; # 0..1 Status after successful completion fhir:ExampleScenario.process.step [ # 0..* I Event within of the process fhir:ExampleScenario.process.step.number [ string ]; # 0..1 Sequential number of the step fhir:ExampleScenario.process.step.process [ See ExampleScenario.process ]; # 0..1 Step is nested process fhir:ExampleScenario.process.step.workflow [ canonical(ExampleScenario) ]; # 0..1 Step is nested workflow fhir:ExampleScenario.process.step.operation [ # 0..1 Step is simple action fhir:ExampleScenario.process.step.operation.type [ Coding ]; # 0..1 Kind of action fhir:ExampleScenario.process.step.operation.title [ string ]; # 1..1 Label for step fhir:ExampleScenario.process.step.operation.initiator [ string ]; # 0..1 Who starts the operation fhir:ExampleScenario.process.step.operation.receiver [ string ]; # 0..1 Who receives the operation fhir:ExampleScenario.process.step.operation.description [ markdown ]; # 0..1 Human-friendly description of the operation fhir:ExampleScenario.process.step.operation.initiatorActive [ boolean ]; # 0..1 Initiator stays active? fhir:ExampleScenario.process.step.operation.receiverActive [ boolean ]; # 0..1 Receiver stays active? fhir:ExampleScenario.process.step.operation.request [ See ExampleScenario.instance.containedInstance ]; # 0..1 Instance transmitted on invocation fhir:ExampleScenario.process.step.operation.response [ See ExampleScenario.instance.containedInstance ]; # 0..1 Instance transmitted on invocation response ]; fhir:ExampleScenario.process.step.alternative [ # 0..* Alternate non-typical step action fhir:ExampleScenario.process.step.alternative.title [ string ]; # 1..1 Label for alternative fhir:ExampleScenario.process.step.alternative.description [ markdown ]; # 0..1 Human-readable description of option fhir:ExampleScenario.process.step.alternative.step [ See ExampleScenario.process.step ], ... ; # 0..* Alternative action(s) ], ...; fhir:ExampleScenario.process.step.pause [ boolean ]; # 0..1 Pause in the flow? ], ...; ], ...; ]
Changes since Release 4
ExampleScenario | |
ExampleScenario.versionAlgorithm[x] |
|
ExampleScenario.title |
|
ExampleScenario.description |
|
ExampleScenario.copyrightLabel |
|
ExampleScenario.actor.key |
|
ExampleScenario.actor.title |
|
ExampleScenario.instance.key |
|
ExampleScenario.instance.structureType |
|
ExampleScenario.instance.structureVersion |
|
ExampleScenario.instance.structureProfile[x] |
|
ExampleScenario.instance.title |
|
ExampleScenario.instance.content |
|
ExampleScenario.instance.version.key |
|
ExampleScenario.instance.version.title |
|
ExampleScenario.instance.version.description |
|
ExampleScenario.instance.version.content |
|
ExampleScenario.instance.containedInstance.instanceReference |
|
ExampleScenario.instance.containedInstance.versionReference |
|
ExampleScenario.process.step.number |
|
ExampleScenario.process.step.process |
|
ExampleScenario.process.step.workflow |
|
ExampleScenario.process.step.operation.type |
|
ExampleScenario.process.step.operation.title |
|
ExampleScenario.actor.actorId |
|
ExampleScenario.actor.name |
|
ExampleScenario.instance.resourceId |
|
ExampleScenario.instance.resourceType |
|
ExampleScenario.instance.name |
|
ExampleScenario.instance.version.versionId |
|
ExampleScenario.instance.containedInstance.resourceId |
|
ExampleScenario.instance.containedInstance.versionId |
|
ExampleScenario.process.step.operation.number |
|
ExampleScenario.process.step.operation.name |
|
ExampleScenario.workflow |
|
See the Full Difference for further information
Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) , the spreadsheet version & the dependency analysis
Path | Definition | Type | Reference |
---|---|---|---|
ExampleScenario.versionAlgorithm[x] | Indicates the mechanism used to compare versions to determine which is more current. | Extensible | VersionAlgorithm |
ExampleScenario.status | The lifecycle status of an artifact. | Required | PublicationStatus |
ExampleScenario.jurisdiction | 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 while the codes for "supra-national" regions are from UN Standard country or area codes for statistical use (M49) . | Extensible | JurisdictionValueSet |
ExampleScenario.actor.type | The type of actor - system or human. | Required | ExampleScenarioActorType |
ExampleScenario.instance.structureType | Types of resource structures that can be passed in or out of exchange operations. Not necessarily FHIR. | Extensible | ExampleScenarioResourceType |
ExampleScenario.process.step.operation.type | This value set defines a set of codes that are used to indicate the supported operations of a testing engine or tool. | Extensible | TestScriptOperationCode (a valid code from FHIR Restful Interactions) |
UniqueKey | Level | Location | Description | Expression |
cnl-0 | Warning | (base) | Name should be usable as an identifier for the module by machine processing applications such as code generation | name.exists() implies name.matches('[A-Z]([A-Za-z0-9_]){1,254}') |
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() |
cnl-1 | Warning | ExampleScenario.url | URL should not contain | or # - these characters make processing canonical references problematic | url.matches('([^|#])*') |
exs-2 | Rule | ExampleScenario.instance | instance.content is only allowed if there are no instance.versions | instance.content.exists() implies instance.version.empty() |
exs-3 | Rule | (base) | Must have actors if status is active or required | status='active' or status='retired' implies actor.exists() |
exs-4 | Rule | (base) | Must have processes if status is active or required | status='active' or status='retired' implies process.exists() |
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() |
exs-6 | Rule | (base) | Actor keys must be unique | actor.key.count() = actor.key.distinct().count() |
exs-7 | Rule | (base) | Actor titles must be unique | actor.title.count() = actor.title.distinct().count() |
exs-8 | Rule | (base) | Instance keys must be unique | instance.key.count() = instance.key.distinct().count() |
exs-9 | Rule | (base) | Instance titles must be unique | instance.title.count() = instance.title.distinct().count() |
exs-10 | Rule | ExampleScenario.instance | Version keys must be unique within an instance | version.key.count() = version.key.distinct().count() |
exs-11 | Rule | ExampleScenario.instance | Version titles must be unique within an instance | version.title.count() = version.title.distinct().count() |
exs-12 | Rule | (base) | Process titles must be unique | process.title.count() = process.title.distinct().count() |
exs-13 | Rule | ExampleScenario.process.step | Alternative titles must be unique within a step | alternative.title.count() = alternative.title.distinct().count() |
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() |
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() |
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() |
exs-17 | Rule | ExampleScenario.process.step.operation | If specified, initiator must be a key of an actor within the ExampleScenario | initiator.exists() implies initator = 'OTHER' or %resource.actor.where(key=%context.initiator).exists() |
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() |
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() |
exs-20 | Warning | ExampleScenario.instance | Instance should be referenced in at least one location | %resource.process.descendants().select(instanceReference).where($this=%context.key).exists() |
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() |
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()) |
exs-23 | Rule | ExampleScenario.actor | actor.key canot be 'OTHER' | key != 'OTHER' |
Search parameters for 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) | 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 as 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.ofType(Quantity) | 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.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 | 28 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 | 34 Resources |
url | uri | The uri that identifies the example scenario | ExampleScenario.url | 33 Resources |
version | token | The business version of the example scenario | ExampleScenario.version | 30 Resources |