This
page
is
part
of
the
Continuous
Integration
Build
of
FHIR
Specification
(v4.0.1:
R4
-
Mixed
Normative
and
STU
)
in
it's
permanent
home
(it
will
always
(will
be
available
incorrect/inconsistent
at
this
URL).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
times).
See
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
Responsible
Owner:
FHIR
Infrastructure
Work
Group
|
|
Security Category : Anonymous |
Compartments
:
|
Example
A
computable
description
of
workflow
instance.
the
actors,
interactions
between
those
actors
that
would
occur,
and
concrete
examples
of
the
data
that
would
be
exchanged
in
a
specific
hypothetical
exchange,
typically
used
to
help
demonstrate
the
interoperability
expectations
of
a
specification.
This
resource
is
used
to
illustrate
a
specific
time-based
exchange,
not
to
define
in
general
terms
how
exchanges
can/should
occur.
Todo
ExampleScenario
provides
examples
for
how
certain
data
exchange
workflows
might
manifest.
This
resource
is
similar
to
ImplementationGuide
,
Requirements
,
ActorDefinition
,
and
other
resources
that
will
typically
only
be
exchanged
as
part
of
implementation
guide
packages
and
will
be
used
by
implementers
to
understand
how
to
design
systems
rather
than
being
used
to
share
information
between
clinical
systems.
This resource can be used to show how instances would evolve over time as well as the interplay of systems over time to accomplish a particular end-state. It will frequently be used to generate sequence diagrams, but also provides further information about all of the entities within the sequence diagrams, including the instances shared as part of the exchange.
This resource is most useful when documenting more complex flows rather than simple RESTful invocations or other request-response pairs.
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
necessarily
call
out
all
of
them.
Instead,
it
highlights
the
path(s)
of
interest
to
help
a
reader
understand
what's
possible
or
how
a
particular
scenario
might
work.
Any
resource
can
be
an
'example'
in
a
specification.
This
resource
is
referenced
by
itself
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
Filter:
|
|---|---|---|---|---|
|
|
DomainResource |
A
computable
description
of
+ 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 |
|
|
Σ 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 |
|
Σ | 0..* | Identifier |
Additional
identifier
for
the
example
scenario
|
|
Σ | 0..1 | string |
Business
version
of
the
example
scenario
|
|
Σ
|
0..1 |
How
to
compare
versions
Binding: Version Algorithm ( Extensible ) |
|
|
string | |||
| Coding | |||
![]() ![]() | Σ C | 0..1 | string |
Name
for
this
example
scenario
(computer
friendly)
|
| Σ T | 0..1 | string |
Name
for
this
example
scenario
(human
friendly)
|
|
?! Σ C | 1..1 | code |
draft
|
active
|
retired
|
unknown
Binding: PublicationStatus ( Required ) |
|
Σ | 0..1 | boolean |
For
testing
|
|
Σ | 0..1 | dateTime |
Date
last
changed
|
|
Σ T | 0..1 | string |
Name
of
the
|
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
|
Σ T | 0..1 | markdown |
Natural
language
description
of
the
ExampleScenario
|
| Σ | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
|
Σ | 0..* | CodeableConcept |
Jurisdiction
of
the
authority
that
maintains
the
example
scenario
(if
applicable)
Binding: Jurisdiction ValueSet
(
Extensible
)
|
|
T | 0..1 | markdown |
The
purpose
of
the
example,
e.g.
to
illustrate
a
scenario
|
|
0..1 | markdown |
Notice
about
intellectual
property
ownership,
can
include
restrictions
on
use
|
|
| T | 0..1 | string |
Copyright
holder
and
year(s)
|
![]()
|
C | 0..* | BackboneElement |
Individual
involved
in
exchange
+ Warning: Actor + Rule: actor.key canot be 'OTHER' + Rule: actor SHALL have either a type or a definition but not both This repeating element order: The order in which these elements appear is the |
|
C | 1..1 | string |
ID
or
acronym
of
the
actor
|
|
C | 0..1 | code |
person
|
|
|
T
C
|
1..1 | string |
Label
for
actor
|
|
T | 0..1 | markdown |
Details
about
actor
|
| C | 0..1 | canonical ( ActorDefinition ) |
Formal
definition
of
|
|
C | 0..* | BackboneElement |
Data
used
in
the
scenario
+ 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 + Warning: Instance version should be referenced in at least one operation |
|
C | 1..1 | string |
ID
or
acronym
of
the
|
|
C | 1..1 |
|
Data
structure
for
example
|
|
C | 0..1 | string |
E.g.
4.0.1
|
![]() ![]() ![]() | 0..1 |
Rules
instance
adheres
to
| ||
![]() ![]() ![]() ![]() | canonical () | |||
![]() ![]() ![]() ![]() | uri | |||
![]() ![]() ![]() | T C | 1..1 | string |
Label
for
|
|
T | 0..1 | markdown |
Human-friendly
description
of
the
|
| C | 0..1 | Reference () |
Example
instance
data
|
![]() ![]()
|
C | 0..* | BackboneElement |
Snapshot
of
|
|
C | 1..1 | string |
ID
or
acronym
of
|
|
C | 1..1 | string |
Label
for
instance
version
|
![]() ![]() ![]() ![]() | T | 0..1 | markdown |
Details
about
version
|
| 0..1 | Reference () |
Example
instance
version
data
| |
![]() ![]()
|
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 |
|
C | 1..1 | string |
Key
of
contained
|
|
C | 0..1 | string |
Key
of
|
|
C | 0..* | BackboneElement |
Major
process
+ Rule: Processes must have steps if ExampleScenario status is active or required This repeating element order: The order in which these elements appear is the order in which they are expected to be rendered (in a |
|
Σ T C | 1..1 | string |
Label
for
procss
|
|
T | 0..1 | markdown |
Human-friendly
description
of
the
|
|
T | 0..1 | markdown |
Status
before
|
|
T | 0..1 | markdown |
Status
after
|
|
C | 0..* | BackboneElement |
Event
within
of
the
process
+ Rule: Can have a process, a workflow, one or more operations or none of these, but cannot have a combination This repeating element order: The order in which these elements appear is the |
|
0..1 |
|
Sequential
number
of
the
step
|
|
|
0..1 | see process |
Step
is
|
|
|
C | 0..1 |
|
Step
is
nested
workflow
|
|
C | 0..1 |
|
Step
is
simple
action
+ Rule: If specified, receiver must be a key of an actor within the ExampleScenario |
|
0..1 |
|
Kind
of
Binding: Example Scenario Operation Code ( Extensible ) |
|
|
1..1 | string |
Label
for
step
|
|
|
C | 0..1 | string |
Who
starts
the
|
|
C | 0..1 | string |
Who
receives
the
|
|
T | 0..1 | markdown |
Human-friendly
description
of
the
|
|
0..1 | boolean |
Initiator
stays
active?
|
|
|
0..1 | boolean |
Receiver
stays
active?
|
|
|
0..1 | see containedInstance |
Instance
transmitted
on
invocation
|
|
|
0..1 | see containedInstance |
Instance
transmitted
on
invocation
response
|
|
|
C | 0..* | BackboneElement |
Alternate
non-typical
step
action
This repeating element order: The order in which these elements appear is the order in which they are expected to be rendered (in a table, in a diagram, etc.) |
|
T C | 1..1 | string |
Label
for
alternative
|
|
T | 0..1 | markdown |
Human-readable
description
of
|
|
0..* | see step |
Alternative
action(s)
This repeating element order: The order in |
|
|
0..1 |
|
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]"/><!-- I 0..1 Name for this example scenario (computer friendly) --> <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 only - never for 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> <<jurisdiction><!-- 0..* CodeableConcept Jurisdiction of the authority that maintains the 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 Notice about intellectual property ownership, can include restrictions on use --> <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]"/><!-- I 0..1 person | system | collective | other --> <title value="[string]"/><!-- I 1..1 Label for actor when rendering --> <description value="[markdown]"/><!-- 0..1 Details about actor --> <definition><!-- I 0..1 canonical(ActorDefinition) Formal definition of actor --></definition> </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
{
"resourceType" : "",
"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 Name for this example scenario (computer friendly)
"title" : "<string>", // Name for this example scenario (human friendly)
"status" : "<code>", // I R! draft | active | retired | unknown
"experimental" : <boolean>, // For testing only - never for 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 }], // Jurisdiction of the authority that maintains the example scenario (if applicable)
"purpose" : "<markdown>", // The purpose of the example, e.g. to illustrate a scenario
"
"
"
"
"
"copyright" : "<markdown>", // Notice about intellectual property ownership, can include restrictions on use
"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>", // I person | system | collective | other
"title" : "<string>", // I R! Label for actor when rendering
"description" : "<markdown>", // Details about actor
"definition" : "<canonical(ActorDefinition)>" // I Formal definition of 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/> .![]()
[ a fhir:;[ a fhir:ExampleScenario; fhir:nodeRole fhir:treeRoot; # if this is the parser root# from # from 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:# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension 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 Name for this example scenario (computer friendly) 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 only - never for 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..* Jurisdiction of the authority that maintains the 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 Notice about intellectual property ownership, can include restrictions on use 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 ] ; # 0..1 I person | system | collective | other fhir:title [ string ] ; # 1..1 I Label for actor when rendering fhir:description [ markdown ] ; # 0..1 Details about actor fhir:definition [ canonical(ActorDefinition) ] ; # 0..1 I Formal definition of 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] |
|
| ExampleScenario.title |
|
| ExampleScenario.description |
|
| ExampleScenario.jurisdiction |
|
| ExampleScenario.copyrightLabel |
|
| ExampleScenario.actor.key |
|
| ExampleScenario.actor.type |
|
| ExampleScenario.actor.title |
|
| ExampleScenario.actor.definition |
|
| 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.instance.version.versionId |
|
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
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
|
DomainResource |
A
computable
description
of
+ 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 |
|
|
Σ 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 |
|
Σ | 0..* | Identifier |
Additional
identifier
for
the
example
scenario
|
|
Σ | 0..1 | string |
Business
version
of
the
example
scenario
|
|
Σ
|
0..1 |
How
to
compare
versions
Binding: Version Algorithm ( Extensible ) |
|
|
string | |||
| Coding | |||
![]() ![]() | Σ C | 0..1 | string |
Name
for
this
example
scenario
(computer
friendly)
|
| Σ T | 0..1 | string |
Name
for
this
example
scenario
(human
friendly)
|
|
?! Σ C | 1..1 | code |
draft
|
active
|
retired
|
unknown
Binding: PublicationStatus ( Required ) |
|
Σ | 0..1 | boolean |
For
testing
|
|
Σ | 0..1 | dateTime |
Date
last
changed
|
|
Σ T | 0..1 | string |
Name
of
the
|
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
|
Σ T | 0..1 | markdown |
Natural
language
description
of
the
ExampleScenario
|
| Σ | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
|
Σ | 0..* | CodeableConcept |
Jurisdiction
of
the
authority
that
maintains
the
example
scenario
(if
applicable)
Binding: Jurisdiction ValueSet
(
Extensible
)
|
|
T | 0..1 | markdown |
The
purpose
of
the
example,
e.g.
to
illustrate
a
scenario
|
|
0..1 | markdown |
Notice
about
intellectual
property
ownership,
can
include
restrictions
on
use
|
|
| T | 0..1 | string |
Copyright
holder
and
year(s)
|
![]()
|
C | 0..* | BackboneElement |
Individual
involved
in
exchange
+ Warning: Actor + Rule: actor.key canot be 'OTHER' + Rule: actor SHALL have either a type or a definition but not both This repeating element order: The order in which these elements appear is the |
|
C | 1..1 | string |
ID
or
acronym
of
the
actor
|
|
C | 0..1 | code |
person
|
|
|
T
C
|
1..1 | string |
Label
for
actor
|
|
T | 0..1 | markdown |
Details
about
actor
|
| C | 0..1 | canonical ( ActorDefinition ) |
Formal
definition
of
|
|
C | 0..* | BackboneElement |
Data
used
in
the
scenario
+ 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 + Warning: Instance version should be referenced in at least one operation |
|
C | 1..1 | string |
ID
or
acronym
of
the
|
|
C | 1..1 |
|
Data
structure
for
example
|
|
C | 0..1 | string |
E.g.
4.0.1
|
![]() ![]() ![]() | 0..1 |
Rules
instance
adheres
to
| ||
![]() ![]() ![]() ![]() | canonical () | |||
![]() ![]() ![]() ![]() | uri | |||
![]() ![]() ![]() | T C | 1..1 | string |
Label
for
|
|
T | 0..1 | markdown |
Human-friendly
description
of
the
|
| C | 0..1 | Reference () |
Example
instance
data
|
![]() ![]()
|
C | 0..* | BackboneElement |
Snapshot
of
|
|
C | 1..1 | string |
ID
or
acronym
of
|
|
C | 1..1 | string |
Label
for
instance
version
|
![]() ![]() ![]() ![]() | T | 0..1 | markdown |
Details
about
version
|
| 0..1 | Reference () |
Example
instance
version
data
| |
![]() ![]()
|
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 |
|
C | 1..1 | string |
Key
of
contained
|
|
C | 0..1 | string |
Key
of
|
|
C | 0..* | BackboneElement |
Major
process
+ Rule: Processes must have steps if ExampleScenario status is active or required This repeating element order: The order in which these elements appear is the order in which they are expected to be rendered (in a |
|
Σ T C | 1..1 | string |
Label
for
procss
|
|
T | 0..1 | markdown |
Human-friendly
description
of
the
|
|
T | 0..1 | markdown |
Status
before
|
|
T | 0..1 | markdown |
Status
after
|
|
C | 0..* | BackboneElement |
Event
within
of
the
process
+ Rule: Can have a process, a workflow, one or more operations or none of these, but cannot have a combination This repeating element order: The order in which these elements appear is the |
|
0..1 |
|
Sequential
number
of
the
step
|
|
|
0..1 | see process |
Step
is
|
|
|
C | 0..1 |
|
Step
is
nested
workflow
|
|
C | 0..1 |
|
Step
is
simple
action
+ Rule: If specified, receiver must be a key of an actor within the ExampleScenario |
|
0..1 |
|
Kind
of
Binding: Example Scenario Operation Code ( Extensible ) |
|
|
1..1 | string |
Label
for
step
|
|
|
C | 0..1 | string |
Who
starts
the
|
|
C | 0..1 | string |
Who
receives
the
|
|
T | 0..1 | markdown |
Human-friendly
description
of
the
|
|
0..1 | boolean |
Initiator
stays
active?
|
|
|
0..1 | boolean |
Receiver
stays
active?
|
|
|
0..1 | see containedInstance |
Instance
transmitted
on
invocation
|
|
|
0..1 | see containedInstance |
Instance
transmitted
on
invocation
response
|
|
|
C | 0..* | BackboneElement |
Alternate
non-typical
step
action
This repeating element order: The order in which these elements appear is the order in which they are expected to be rendered (in a table, in a diagram, etc.) |
|
T C | 1..1 | string |
Label
for
alternative
|
|
T | 0..1 | markdown |
Human-readable
description
of
|
|
0..* | see step |
Alternative
action(s)
This repeating element order: The order in |
|
|
0..1 |
|
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]"/><!-- I 0..1 Name for this example scenario (computer friendly) --> <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 only - never for 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> <<jurisdiction><!-- 0..* CodeableConcept Jurisdiction of the authority that maintains the 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 Notice about intellectual property ownership, can include restrictions on use --> <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]"/><!-- I 0..1 person | system | collective | other --> <title value="[string]"/><!-- I 1..1 Label for actor when rendering --> <description value="[markdown]"/><!-- 0..1 Details about actor --> <definition><!-- I 0..1 canonical(ActorDefinition) Formal definition of actor --></definition> </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
{
"resourceType" : "",
"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 Name for this example scenario (computer friendly)
"title" : "<string>", // Name for this example scenario (human friendly)
"status" : "<code>", // I R! draft | active | retired | unknown
"experimental" : <boolean>, // For testing only - never for 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 }], // Jurisdiction of the authority that maintains the example scenario (if applicable)
"purpose" : "<markdown>", // The purpose of the example, e.g. to illustrate a scenario
"
"
"
"
"
"copyright" : "<markdown>", // Notice about intellectual property ownership, can include restrictions on use
"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>", // I person | system | collective | other
"title" : "<string>", // I R! Label for actor when rendering
"description" : "<markdown>", // Details about actor
"definition" : "<canonical(ActorDefinition)>" // I Formal definition of 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/> .![]()
[ a fhir:;[ a fhir:ExampleScenario; fhir:nodeRole fhir:treeRoot; # if this is the parser root# from # from 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:# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension 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 Name for this example scenario (computer friendly) 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 only - never for 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..* Jurisdiction of the authority that maintains the 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 Notice about intellectual property ownership, can include restrictions on use 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 ] ; # 0..1 I person | system | collective | other fhir:title [ string ] ; # 1..1 I Label for actor when rendering fhir:description [ markdown ] ; # 0..1 Details about actor fhir:definition [ canonical(ActorDefinition) ] ; # 0..1 I Formal definition of 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] |
|
| ExampleScenario.title |
|
| ExampleScenario.description |
|
| ExampleScenario.jurisdiction |
|
| ExampleScenario.copyrightLabel |
|
| ExampleScenario.actor.key |
|
| ExampleScenario.actor.type |
|
| ExampleScenario.actor.title |
|
| ExampleScenario.actor.definition |
|
| 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.instance.version.versionId |
|
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
| Path |
|
Type |
|
|---|---|---|---|
| ExampleScenario.versionAlgorithm[x] |
|
|
Indicates the mechanism used to compare versions to determine which is more current. |
| ExampleScenario.status | PublicationStatus | Required | The lifecycle status of an artifact. |
| ExampleScenario.jurisdiction |
![]() |
Extensible |
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
|
| ExampleScenario.actor.type | ActorDefinitionActorType | Required |
The type of actor - system or human. |
| ExampleScenario.instance.structureType | ExampleScenarioResourceType |
|
Types of resource structures that can be passed in or out of exchange operations. Not necessarily FHIR. |
| 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. |
|
|
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 |
|
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 | exists() implies matches('^[^|# ]+$') |
exs-2
| Rule | ExampleScenario.instance | instance.content is only allowed if there are no instance.versions | content.exists() implies 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 initiator = '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' |
exs-24
| Rule | ExampleScenario.actor | actor SHALL have either a type or a definition but not both | type.exists() xor definition.exists() |
Example Scenarios help to make the expected behavior of a collection of systems adhering to a guide more concrete. It allows the author to say "Imagine you have a patient in situation X and Y needs to happen. This is what the exchanges between the various imaginary systems might look like for that specific patient."
Creating examples is a lot of work, and creating ExampleScenarios is often an order of magnitude more work, but being able to see the resulting diagrams of flows and click through to see the specific instances that are being exchanged can be extremely helpful in solidifying implementer understanding of the 'workflow' implied by an implementation guide.
In
addition
to
the
examples
provided
in
the
examples
tab,
you
can
also
see
some
useful
examples
of
ExampleScenario
in
the
Physical
Activity
implementation
guide
.
There are two notions of 'contained' in this resource - the generic 'contained' element inherited from DomainResource that allows other resources to be nested inside this ExampleScenario (e.g. Provenance, structureProfiles, or instance or instance.version content). There is also a containedInstance element on ExampleScenario.instance. This latter element reflects the nesting of content within the data shared as part of a scenario. For example, highlighting that an instance initially received on its own (e.g. an Observation) is later conveyed in a Bundle (as a document, message or search response), or potentially a resource that was nested as a 'contained' resource in one instance is available in non-contained form or contained inside a different resource in a separate instance.
In short, 'ExampleScenario.contained' is for nesting resources inside the ExampleScenario. ExampleScenario.instance.containedInstance reflects the nesting of data being transmitted by an ExampleScenario operation as part of the scenario.
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 |
|
25 Resources |
| context-quantity | quantity | A quantity- or range-valued use context assigned to the example scenario |
|
25 Resources |
| context-type | token | A type of use context assigned to the example scenario | ExampleScenario.useContext.code | 25 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: |
25 Resources |
| context-type-value | composite | A use context type and value assigned to the example scenario |
On
ExampleScenario.useContext:
context-type: code context: |
25 Resources |
| date | date | The example scenario publication date | ExampleScenario.date | 26 Resources |
| experimental | token | Whether the ExampleScenario is experimental | ExampleScenario.experimental | |
| identifier | token | External identifier for the example scenario | ExampleScenario.identifier | 30 Resources |
| jurisdiction | token |
|
ExampleScenario.jurisdiction | 22 Resources |
| name | string | Computationally friendly name of the example scenario | ExampleScenario.name | 24 Resources |
| publisher | string | Name of the publisher of the example scenario | ExampleScenario.publisher | 26 Resources |
| status | token | The current status of the example scenario | ExampleScenario.status | 30 Resources |
| url | uri | The uri that identifies the example scenario | ExampleScenario.url | 30 Resources |
| version | token | The business version of the example scenario | ExampleScenario.version | 27 Resources |