This
page
is
part
of
the
FHIR
Specification
(v5.0.0:
R5
-
STU
v6.0.0-ballot1:
Release
6
Ballot
(1st
Draft)
(see
Ballot
Notes
).
This
is
the
The
current
published
version
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
Clinical
Decision
Support
Work
Group
|
Maturity Level : 4 | Trial Use | Security Category : Business | Compartments : Device , Encounter , Patient , Practitioner , RelatedPerson |
A set of related requests that can be used to capture intended activities that have inter-dependencies such as "give this medication after that one".
This resource is a request resource from a FHIR workflow perspective - see Workflow , specifically Request .
The
RequestOrchestration
resource
is
used
to
represent
a
set
of
optional
and
related
activities
that
may
be
performed
for
a
specific
patient
or
context.
This
resource
is
often,
but
not
always,
the
result
of
applying
a
specific
PlanDefinition
to
a
particular
patient.
Other
than
differences
that
tie
the
RequestOrchestration
to
a
particular
subject
and
setting,
the
actionDefinition
element
of
PlanDefinition
is
identical
to
the
action
element
of
the
RequestOrchestration,
allowing
the
same
features
and
functionality
to
be
used
in
both
places
to
describe
optionality
of
and
relationships
between
activities
in
a
workflow.
RequestOrchestrations can contain hierarchical groups of actions, where each specific action references the action to be performed (in terms of a Request resource), and each group describes additional behavior, relationships, and applicable conditions between the actions in the overall group.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
TU | DomainResource |
A
set
of
related
requests
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension |
|
|
Σ | 0..* | Identifier |
Business
identifier
|
|
Σ | 0..* | canonical () |
Instantiates
FHIR
protocol
or
definition
|
|
Σ | 0..* | uri |
Instantiates
external
protocol
or
definition
|
|
0..* | Reference ( Any ) |
Fulfills
plan,
proposal,
or
order
|
|
|
0..* | Reference ( Any ) |
Request(s)
replaced
by
this
request
|
|
|
Σ | 0..1 | Identifier |
Composite
request
this
is
part
of
|
|
?! Σ | 1..1 | code |
draft
|
active
|
on-hold
|
revoked
|
completed
|
entered-in-error
|
unknown
Binding: RequestStatus ( Required ) |
|
?! Σ | 1..1 | code |
proposal
|
plan
|
directive
|
order
|
original-order
|
reflex-order
|
filler-order
|
instance-order
|
option
Binding: RequestIntent ( Required ) |
|
Σ | 0..1 | code |
routine
|
urgent
|
asap
|
stat
Binding: RequestPriority ( Required ) |
|
Σ | 0..1 | CodeableConcept |
What's
being
requested/ordered
Binding: Action Code ( Example ) |
|
0..1 | Reference ( CareTeam | Device | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) |
Who
the
request
orchestration
is
about
|
|
|
0..1 | Reference ( Encounter ) |
Created
as
part
of
|
|
|
0..1 | dateTime |
When
the
request
orchestration
was
authored
|
|
|
0..1 | Reference ( Device | Practitioner | PractitionerRole ) |
Device
or
practitioner
that
authored
the
request
orchestration
|
|
|
0..* | CodeableReference ( Condition | Observation | DiagnosticReport | DocumentReference ) |
Why
the
request
orchestration
is
needed
Binding: Action Reason Code ( Example ) |
|
|
0..* | Reference ( Goal ) |
What
goals
|
|
|
0..* | Annotation |
Additional
notes
about
the
response
|
|
|
C | 0..* | BackboneElement |
Proposed
actions,
if
any
+ Rule: Must have resource or action but not both |
|
0..1 | string |
Pointer
to
specific
item
from
the
PlanDefinition
|
|
|
0..1 | string |
User-visible
prefix
for
the
action
(e.g.
1.
or
A.)
|
|
|
0..1 | string |
User-visible
title
|
|
|
Σ | 0..1 | markdown |
Short
description
of
the
action
|
|
Σ | 0..1 | markdown |
Static
text
equivalent
of
the
action,
used
if
the
dynamic
aspects
cannot
be
interpreted
by
the
receiving
system
|
|
0..1 | code |
routine
|
urgent
|
asap
|
stat
Binding: RequestPriority ( Required ) |
|
|
0..* | CodeableConcept |
Code
representing
the
meaning
of
the
action
or
sub-actions
Binding: Action Code ( Example ) |
|
|
0..* | RelatedArtifact |
Supporting
documentation
for
the
intended
performer
of
the
action
|
|
|
0..* | Reference ( Goal ) |
What
goals
|
|
|
0..* | BackboneElement |
Whether
or
not
the
action
is
applicable
|
|
|
1..1 | code |
applicability
|
start
|
stop
Binding: Action Condition Kind ( Required ) |
|
|
0..1 | Expression |
Boolean-valued
expression
|
|
|
C | 0..* | BackboneElement |
Input
data
requirements
+ Rule: Input data elements must have a requirement or a relatedData, but not both |
|
0..1 | string |
User-visible
title
|
|
|
C | 0..1 | DataRequirement |
What
data
is
provided
|
|
C | 0..1 | id |
What
data
is
provided
|
|
C | 0..* | BackboneElement |
Output
data
definition
+ Rule: Output data element must have a requirement or a relatedData, but not both |
|
0..1 | string |
User-visible
title
|
|
|
C | 0..1 | DataRequirement |
What
data
is
provided
|
|
C | 0..1 | string |
What
data
is
provided
|
|
0..* | BackboneElement |
Relationship
to
another
action
|
|
|
1..1 | id |
What
action
this
is
related
to
|
|
|
1..1 | code |
before
|
before-start
|
before-end
|
concurrent
|
concurrent-with-start
|
concurrent-with-end
|
after
|
after-start
|
after-end
Binding: Action Relationship Type ( Required ) |
|
|
0..1 | code |
before
|
before-start
|
before-end
|
concurrent
|
concurrent-with-start
|
concurrent-with-end
|
after
|
after-start
|
after-end
Binding: Action Relationship Type ( Required ) |
|
|
0..1 |
Time
offset
for
the
relationship
|
||
|
Duration | |||
|
Range | |||
|
0..1 |
When
the
action
should
take
place
|
||
|
dateTime | |||
|
Age | |||
|
Period | |||
|
Duration | |||
|
Range | |||
|
Timing | |||
|
0..1 | CodeableReference ( Location ) |
Where
it
should
happen
|
|
|
0..* | BackboneElement |
Who
should
perform
the
action
|
|
|
0..1 | code |
careteam
|
device
|
group
|
healthcareservice
|
location
|
organization
|
patient
|
practitioner
|
practitionerrole
|
relatedperson
Binding: Action Participant Type ( Required ) |
|
|
0..1 | canonical ( CapabilityStatement ) |
Who
or
what
can
participate
|
|
|
0..1 | Reference ( CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) |
Who
or
what
can
participate
|
|
|
0..1 | CodeableConcept |
E.g.
Nurse,
Surgeon,
Parent,
etc
Binding: Action Participant Role
(
Example
)
|
|
|
0..1 | CodeableConcept |
E.g.
Author,
Reviewer,
Witness,
etc
Binding: Action Participant Function ( Example ) |
|
|
0..1 |
Who/what
is
participating?
|
||
|
canonical ( CapabilityStatement ) | |||
|
Reference ( CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) | |||
|
0..1 | CodeableConcept |
create
|
update
|
remove
|
fire-event
Binding: Action Type ( Extensible ) |
|
|
0..1 | code |
visual-group
|
logical-group
|
sentence-group
Binding: Action Grouping Behavior ( Required ) |
|
|
0..1 | code |
any
|
all
|
all-or-none
|
exactly-one
|
at-most-one
|
one-or-more
Binding: Action Selection Behavior ( Required ) |
|
|
0..1 | code |
must
|
could
|
must-unless-documented
Binding: Action Required Behavior ( Required ) |
|
|
0..1 | code |
yes
|
no
Binding: Action Precheck Behavior ( Required ) |
|
|
0..1 | code |
single
|
multiple
Binding: Action Cardinality Behavior ( Required ) |
|
|
C | 0..1 | Reference ( Any ) |
The
target
of
the
action
|
|
0..1 |
Description
of
the
activity
to
be
performed
|
||
|
canonical ( ActivityDefinition | ObservationDefinition | PlanDefinition | Questionnaire | SpecimenDefinition ) | |||
|
uri | |||
|
0..1 | canonical ( StructureMap ) |
Transform
to
apply
the
template
|
|
|
0..* | BackboneElement |
Dynamic
aspects
of
the
definition
|
|
|
0..1 | string |
The
path
to
the
element
to
be
set
dynamically
|
|
|
0..1 | Expression |
An
expression
that
provides
the
dynamic
value
for
the
customization
|
|
|
0..* | see action |
Sub
action
|
|
Documentation
for
this
format
|
||||
See the Extensions for this resource
UML Diagram ( Legend )
XML Template
<RequestOrchestration xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business identifier --></identifier> <instantiatesCanonical value="[canonical]"/><!-- 0..* Instantiates FHIR protocol or definition --> <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition --> <basedOn><!-- 0..* Reference(Any) Fulfills plan, proposal, or order --></basedOn> <replaces><!-- 0..* Reference(Any) Request(s) replaced by this request --></replaces> <groupIdentifier><!-- 0..1 Identifier Composite request this is part of --></groupIdentifier> <status value="[code]"/><!-- 1..1 draft | active | on-hold | revoked | completed | entered-in-error | unknown --> <intent value="[code]"/><!-- 1..1 proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option --> <priority value="[code]"/><!-- 0..1 routine | urgent | asap | stat --> <code><!-- 0..1 CodeableConcept What's being requested/ordered --></code> <subject><!-- 0..1 Reference(CareTeam|Device|Group|HealthcareService|Location| Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) Who the request orchestration is about --></subject> <encounter><!-- 0..1 Reference(Encounter) Created as part of --></encounter> <authoredOn value="[dateTime]"/><!-- 0..1 When the request orchestration was authored --> <author><!-- 0..1 Reference(Device|Practitioner|PractitionerRole) Device or practitioner that authored the request orchestration --></author> <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|DocumentReference| Observation) Why the request orchestration is needed --></reason> <goal><!-- 0..* Reference(Goal) What goals --></goal> <note><!-- 0..* Annotation Additional notes about the response --></note> <action> <!-- 0..* Proposed actions, if any --> <linkId value="[string]"/><!-- 0..1 Pointer to specific item from the PlanDefinition --> <prefix value="[string]"/><!-- 0..1 User-visible prefix for the action (e.g. 1. or A.) --> <title value="[string]"/><!-- 0..1 User-visible title --> <description value="[markdown]"/><!-- 0..1 Short description of the action --> <textEquivalent value="[markdown]"/><!-- 0..1 Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system --> <priority value="[code]"/><!-- 0..1 routine | urgent | asap | stat --> <code><!-- 0..* CodeableConcept Code representing the meaning of the action or sub-actions --></code> <documentation><!-- 0..* RelatedArtifact Supporting documentation for the intended performer of the action --></documentation> <goal><!-- 0..* Reference(Goal) What goals --></goal> <condition> <!-- 0..* Whether or not the action is applicable --> <kind value="[code]"/><!-- 1..1 applicability | start | stop --> <expression><!-- 0..1 Expression Boolean-valued expression --></expression> </condition> <input> <!-- 0..* Input data requirements --> <title value="[string]"/><!-- 0..1 User-visible title --> <requirement><!-- I 0..1 DataRequirement What data is provided --></requirement> <relatedData value="[id]"/><!-- I 0..1 What data is provided --> </input> <output> <!-- 0..* Output data definition --> <title value="[string]"/><!-- 0..1 User-visible title --> <requirement><!-- I 0..1 DataRequirement What data is provided --></requirement> <relatedData value="[string]"/><!-- I 0..1 What data is provided --> </output> <relatedAction> <!-- 0..* Relationship to another action --> <targetId value="[id]"/><!-- 1..1 What action this is related to --> <relationship value="[code]"/><!-- 1..1 before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end --> <endRelationship value="[code]"/><!-- 0..1 before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end --> <offset[x]><!-- 0..1 Duration|Range Time offset for the relationship --></offset[x]> </relatedAction> <timing[x]><!-- 0..1 dateTime|Age|Period|Duration|Range|Timing When the action should take place --></timing[x]> <location><!-- 0..1 CodeableReference(Location) Where it should happen --></location> <participant> <!-- 0..* Who should perform the action --> <type value="[code]"/><!-- 0..1 careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson --> <typeCanonical><!-- 0..1 canonical(CapabilityStatement) Who or what can participate --></typeCanonical> <typeReference><!-- 0..1 Reference(CareTeam|Device|DeviceDefinition|Endpoint| Group|HealthcareService|Location|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) Who or what can participate --></typeReference>
<</role><role><!-- 0..1 CodeableConcept E.g. Nurse, Surgeon, Parent, etc--></role> <function><!-- 0..1 CodeableConcept E.g. Author, Reviewer, Witness, etc --></function> <actor[x]><!-- 0..1 canonical(CapabilityStatement)|Reference(CareTeam|Device| DeviceDefinition|Endpoint|Group|HealthcareService|Location|Organization| Patient|Practitioner|PractitionerRole|RelatedPerson) Who/what is participating? --></actor[x]> </participant> <type><!-- 0..1 CodeableConcept create | update | remove | fire-event --></type> <groupingBehavior value="[code]"/><!-- 0..1 visual-group | logical-group | sentence-group --> <selectionBehavior value="[code]"/><!-- 0..1 any | all | all-or-none | exactly-one | at-most-one | one-or-more --> <requiredBehavior value="[code]"/><!-- 0..1 must | could | must-unless-documented --> <precheckBehavior value="[code]"/><!-- 0..1 yes | no --> <cardinalityBehavior value="[code]"/><!-- 0..1 single | multiple --> <resource><!-- I 0..1 Reference(Any) The target of the action --></resource> <definition[x]><!-- 0..1 canonical(ActivityDefinition|ObservationDefinition| PlanDefinition|Questionnaire|SpecimenDefinition)|uri Description of the activity to be performed --></definition[x]> <transform><!-- 0..1 canonical(StructureMap) Transform to apply the template --></transform> <dynamicValue> <!-- 0..* Dynamic aspects of the definition --> <path value="[string]"/><!-- 0..1 The path to the element to be set dynamically --> <expression><!-- 0..1 Expression An expression that provides the dynamic value for the customization --></expression> </dynamicValue> <action><!-- 0..* Content as for RequestOrchestration.action Sub action --></action> </action> </RequestOrchestration>
JSON Template
{
"resourceType" : "RequestOrchestration",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"identifier" : [{ Identifier }], // Business identifier
"instantiatesCanonical" : ["<canonical>"], // Instantiates FHIR protocol or definition
"instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition
"basedOn" : [{ Reference(Any) }], // Fulfills plan, proposal, or order
"replaces" : [{ Reference(Any) }], // Request(s) replaced by this request
"groupIdentifier" : { Identifier }, // Composite request this is part of
"status" : "<code>", // R! draft | active | on-hold | revoked | completed | entered-in-error | unknown
"intent" : "<code>", // R! proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
"priority" : "<code>", // routine | urgent | asap | stat
"code" : { CodeableConcept }, // What's being requested/ordered
"subject" : { Reference(CareTeam|Device|Group|HealthcareService|Location|
Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) }, // Who the request orchestration is about
"encounter" : { Reference(Encounter) }, // Created as part of
"authoredOn" : "<dateTime>", // When the request orchestration was authored
"author" : { Reference(Device|Practitioner|PractitionerRole) }, // Device or practitioner that authored the request orchestration
"reason" : [{ CodeableReference(Condition|DiagnosticReport|DocumentReference|
Observation) }], // Why the request orchestration is needed
"goal" : [{ Reference(Goal) }], // What goals
"note" : [{ Annotation }], // Additional notes about the response
"action" : [{ // Proposed actions, if any
"linkId" : "<string>", // Pointer to specific item from the PlanDefinition
"prefix" : "<string>", // User-visible prefix for the action (e.g. 1. or A.)
"title" : "<string>", // User-visible title
"description" : "<markdown>", // Short description of the action
"textEquivalent" : "<markdown>", // Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
"priority" : "<code>", // routine | urgent | asap | stat
"code" : [{ CodeableConcept }], // Code representing the meaning of the action or sub-actions
"documentation" : [{ RelatedArtifact }], // Supporting documentation for the intended performer of the action
"goal" : [{ Reference(Goal) }], // What goals
"condition" : [{ // Whether or not the action is applicable
"kind" : "<code>", // R! applicability | start | stop
"expression" : { Expression } // Boolean-valued expression
}],
"input" : [{ // Input data requirements
"title" : "<string>", // User-visible title
"requirement" : { DataRequirement }, // I What data is provided
"relatedData" : "<id>" // I What data is provided
}],
"output" : [{ // Output data definition
"title" : "<string>", // User-visible title
"requirement" : { DataRequirement }, // I What data is provided
"relatedData" : "<string>" // I What data is provided
}],
"relatedAction" : [{ // Relationship to another action
"targetId" : "<id>", // R! What action this is related to
"relationship" : "<code>", // R! before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
"endRelationship" : "<code>", // before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
// offset[x]: Time offset for the relationship. One of these 2:
"offsetDuration" : { Duration },
"offsetRange" : { Range }
}],
// timing[x]: When the action should take place. One of these 6:
"timingDateTime" : "<dateTime>",
"timingAge" : { Age },
"timingPeriod" : { Period },
"timingDuration" : { Duration },
"timingRange" : { Range },
"timingTiming" : { Timing },
"location" : { CodeableReference(Location) }, // Where it should happen
"participant" : [{ // Who should perform the action
"type" : "<code>", // careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
"typeCanonical" : "<canonical(CapabilityStatement)>", // Who or what can participate
"typeReference" : { Reference(CareTeam|Device|DeviceDefinition|Endpoint|
Group|HealthcareService|Location|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) }, // Who or what can participate
"
"role" : { CodeableConcept }, // E.g. Nurse, Surgeon, Parent, etc
"function" : { CodeableConcept }, // E.g. Author, Reviewer, Witness, etc
// actor[x]: Who/what is participating?. One of these 2:
"actorCanonical" : "<canonical(CapabilityStatement)>",
"actorReference" : { Reference(CareTeam|Device|DeviceDefinition|Endpoint|Group|
HealthcareService|Location|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) }
}],
"type" : { CodeableConcept }, // create | update | remove | fire-event
"groupingBehavior" : "<code>", // visual-group | logical-group | sentence-group
"selectionBehavior" : "<code>", // any | all | all-or-none | exactly-one | at-most-one | one-or-more
"requiredBehavior" : "<code>", // must | could | must-unless-documented
"precheckBehavior" : "<code>", // yes | no
"cardinalityBehavior" : "<code>", // single | multiple
"resource" : { Reference(Any) }, // I The target of the action
// definition[x]: Description of the activity to be performed. One of these 2:
"definitionCanonical" : "<canonical(ActivityDefinition|ObservationDefinition|PlanDefinition|Questionnaire|SpecimenDefinition)>",
"definitionUri" : "<uri>",
"transform" : "<canonical(StructureMap)>", // Transform to apply the template
"dynamicValue" : [{ // Dynamic aspects of the definition
"path" : "<string>", // The path to the element to be set dynamically
"expression" : { Expression } // An expression that provides the dynamic value for the customization
}],
"action" : [{ Content as for RequestOrchestration.action }] // Sub action
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:RequestOrchestration; 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:identifier ( [ Identifier ] ... ) ; # 0..* Business identifier fhir:instantiatesCanonical ( [ canonical ] ... ) ; # 0..* Instantiates FHIR protocol or definition fhir:instantiatesUri ( [ uri ] ... ) ; # 0..* Instantiates external protocol or definition fhir:basedOn ( [ Reference(Any) ] ... ) ; # 0..* Fulfills plan, proposal, or order fhir:replaces ( [ Reference(Any) ] ... ) ; # 0..* Request(s) replaced by this request fhir:groupIdentifier [ Identifier ] ; # 0..1 Composite request this is part of fhir:status [ code ] ; # 1..1 draft | active | on-hold | revoked | completed | entered-in-error | unknown fhir:intent [ code ] ; # 1..1 proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option fhir:priority [ code ] ; # 0..1 routine | urgent | asap | stat fhir:code [ CodeableConcept ] ; # 0..1 What's being requested/ordered fhir:subject [ Reference(CareTeam|Device|Group|HealthcareService|Location|Organization|Patient| Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who the request orchestration is about fhir:encounter [ Reference(Encounter) ] ; # 0..1 Created as part of fhir:authoredOn [ dateTime ] ; # 0..1 When the request orchestration was authored fhir:author [ Reference(Device|Practitioner|PractitionerRole) ] ; # 0..1 Device or practitioner that authored the request orchestration fhir:reason ( [ CodeableReference(Condition|DiagnosticReport|DocumentReference|Observation) ] ... ) ; # 0..* Why the request orchestration is needed fhir:goal ( [ Reference(Goal) ] ... ) ; # 0..* What goals fhir:note ( [ Annotation ] ... ) ; # 0..* Additional notes about the response fhir:action ( [ # 0..* Proposed actions, if any fhir:linkId [ string ] ; # 0..1 Pointer to specific item from the PlanDefinition fhir:prefix [ string ] ; # 0..1 User-visible prefix for the action (e.g. 1. or A.) fhir:title [ string ] ; # 0..1 User-visible title fhir:description [ markdown ] ; # 0..1 Short description of the action fhir:textEquivalent [ markdown ] ; # 0..1 Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system fhir:priority [ code ] ; # 0..1 routine | urgent | asap | stat fhir:code ( [ CodeableConcept ] ... ) ; # 0..* Code representing the meaning of the action or sub-actions fhir:documentation ( [ RelatedArtifact ] ... ) ; # 0..* Supporting documentation for the intended performer of the action fhir:goal ( [ Reference(Goal) ] ... ) ; # 0..* What goals fhir:condition ( [ # 0..* Whether or not the action is applicable fhir:kind [ code ] ; # 1..1 applicability | start | stop fhir:expression [ Expression ] ; # 0..1 Boolean-valued expression ] ... ) ; fhir:input ( [ # 0..* Input data requirements fhir:title [ string ] ; # 0..1 User-visible title fhir:requirement [ DataRequirement ] ; # 0..1 I What data is provided fhir:relatedData [ id ] ; # 0..1 I What data is provided ] ... ) ; fhir:output ( [ # 0..* Output data definition fhir:title [ string ] ; # 0..1 User-visible title fhir:requirement [ DataRequirement ] ; # 0..1 I What data is provided fhir:relatedData [ string ] ; # 0..1 I What data is provided ] ... ) ; fhir:relatedAction ( [ # 0..* Relationship to another action fhir:targetId [ id ] ; # 1..1 What action this is related to fhir:relationship [ code ] ; # 1..1 before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end fhir:endRelationship [ code ] ; # 0..1 before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end # offset[x] : 0..1 Time offset for the relationship. One of these 2 fhir:offset [ a fhir:Duration ; Duration ] fhir:offset [ a fhir:Range ; Range ] ] ... ) ; # timing[x] : 0..1 When the action should take place. One of these 6 fhir:timing [ a fhir:dateTime ; dateTime ] fhir:timing [ a fhir:Age ; Age ] fhir:timing [ a fhir:Period ; Period ] fhir:timing [ a fhir:Duration ; Duration ] fhir:timing [ a fhir:Range ; Range ] fhir:timing [ a fhir:Timing ; Timing ] fhir:location [ CodeableReference(Location) ] ; # 0..1 Where it should happen fhir:participant ( [ # 0..* Who should perform the action fhir:type [ code ] ; # 0..1 careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson fhir:typeCanonical [ canonical(CapabilityStatement) ] ; # 0..1 Who or what can participate fhir:typeReference [ Reference(CareTeam|Device|DeviceDefinition|Endpoint|Group|HealthcareService|Location| Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who or what can participate fhir:role [ CodeableConcept ] ; # 0..1 E.g. Nurse, Surgeon, Parent, etc fhir:function [ CodeableConcept ] ; # 0..1 E.g. Author, Reviewer, Witness, etc # actor[x] : 0..1 Who/what is participating?. One of these 2 fhir:actor [ a fhir:canonical ; canonical(CapabilityStatement) ] fhir:actor [ a fhir:Reference ; Reference(CareTeam|Device|DeviceDefinition|Endpoint|Group|HealthcareService|Location| Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ] ... ) ; fhir:type [ CodeableConcept ] ; # 0..1 create | update | remove | fire-event fhir:groupingBehavior [ code ] ; # 0..1 visual-group | logical-group | sentence-group fhir:selectionBehavior [ code ] ; # 0..1 any | all | all-or-none | exactly-one | at-most-one | one-or-more fhir:requiredBehavior [ code ] ; # 0..1 must | could | must-unless-documented fhir:precheckBehavior [ code ] ; # 0..1 yes | no fhir:cardinalityBehavior [ code ] ; # 0..1 single | multiple fhir:resource [ Reference(Any) ] ; # 0..1 I The target of the action # definition[x] : 0..1 Description of the activity to be performed. One of these 2 fhir:definition [ a fhir:canonical ; canonical(ActivityDefinition|ObservationDefinition|PlanDefinition|Questionnaire| SpecimenDefinition) ] fhir:definition [ a fhir:uri ; uri ] fhir:transform [ canonical(StructureMap) ] ; # 0..1 Transform to apply the template fhir:dynamicValue ( [ # 0..* Dynamic aspects of the definition fhir:path [ string ] ; # 0..1 The path to the element to be set dynamically fhir:expression [ Expression ] ; # 0..1 An expression that provides the dynamic value for the customization ] ... ) ; fhir:action ( [ See RequestOrchestration.action ] ... ) ; # 0..* Sub action ] ... ) ; ]
Changes from both R4 and R4B
| RequestOrchestration |
|
| RequestOrchestration |
|
| RequestOrchestration.subject |
|
| RequestOrchestration.reason |
|
| RequestOrchestration.goal |
|
| RequestOrchestration.action.linkId |
|
| RequestOrchestration.action.description |
|
| RequestOrchestration.action.textEquivalent |
|
| RequestOrchestration.action.goal |
|
| RequestOrchestration.action.input |
|
| RequestOrchestration.action.input.title |
|
| RequestOrchestration.action.input.requirement |
|
| RequestOrchestration.action.input.relatedData |
|
| RequestOrchestration.action.output |
|
| RequestOrchestration.action.output.title |
|
| RequestOrchestration.action.output.requirement |
|
| RequestOrchestration.action.output.relatedData |
|
| RequestOrchestration.action.relatedAction.targetId |
|
| RequestOrchestration.action.relatedAction.endRelationship |
|
| RequestOrchestration.action.location |
|
| RequestOrchestration.action.participant |
|
| RequestOrchestration.action.participant.type |
|
| RequestOrchestration.action.participant.typeCanonical |
|
| RequestOrchestration.action.participant.typeReference |
|
| RequestOrchestration.action.participant.role |
|
| RequestOrchestration.action.participant.function |
|
| RequestOrchestration.action.participant.actor[x] |
|
| RequestOrchestration.action.definition[x] |
|
| RequestOrchestration.action.transform |
|
| RequestOrchestration.action.dynamicValue |
|
| RequestOrchestration.action.dynamicValue.path |
|
| RequestOrchestration.action.dynamicValue.expression |
|
| RequestGroup.reasonCode |
|
| RequestGroup.reasonReference |
|
| RequestGroup.action.relatedAction.actionId |
|
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
|
|---|---|---|---|---|
|
TU | DomainResource |
A
set
of
related
requests
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension |
|
|
Σ | 0..* | Identifier |
Business
identifier
|
|
Σ | 0..* | canonical () |
Instantiates
FHIR
protocol
or
definition
|
|
Σ | 0..* | uri |
Instantiates
external
protocol
or
definition
|
|
0..* | Reference ( Any ) |
Fulfills
plan,
proposal,
or
order
|
|
|
0..* | Reference ( Any ) |
Request(s)
replaced
by
this
request
|
|
|
Σ | 0..1 | Identifier |
Composite
request
this
is
part
of
|
|
?! Σ | 1..1 | code |
draft
|
active
|
on-hold
|
revoked
|
completed
|
entered-in-error
|
unknown
Binding: RequestStatus ( Required ) |
|
?! Σ | 1..1 | code |
proposal
|
plan
|
directive
|
order
|
original-order
|
reflex-order
|
filler-order
|
instance-order
|
option
Binding: RequestIntent ( Required ) |
|
Σ | 0..1 | code |
routine
|
urgent
|
asap
|
stat
Binding: RequestPriority ( Required ) |
|
Σ | 0..1 | CodeableConcept |
What's
being
requested/ordered
Binding: Action Code ( Example ) |
|
0..1 | Reference ( CareTeam | Device | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) |
Who
the
request
orchestration
is
about
|
|
|
0..1 | Reference ( Encounter ) |
Created
as
part
of
|
|
|
0..1 | dateTime |
When
the
request
orchestration
was
authored
|
|
|
0..1 | Reference ( Device | Practitioner | PractitionerRole ) |
Device
or
practitioner
that
authored
the
request
orchestration
|
|
|
0..* | CodeableReference ( Condition | Observation | DiagnosticReport | DocumentReference ) |
Why
the
request
orchestration
is
needed
Binding: Action Reason Code ( Example ) |
|
|
0..* | Reference ( Goal ) |
What
goals
|
|
|
0..* | Annotation |
Additional
notes
about
the
response
|
|
|
C | 0..* | BackboneElement |
Proposed
actions,
if
any
+ Rule: Must have resource or action but not both |
|
0..1 | string |
Pointer
to
specific
item
from
the
PlanDefinition
|
|
|
0..1 | string |
User-visible
prefix
for
the
action
(e.g.
1.
or
A.)
|
|
|
0..1 | string |
User-visible
title
|
|
|
Σ | 0..1 | markdown |
Short
description
of
the
action
|
|
Σ | 0..1 | markdown |
Static
text
equivalent
of
the
action,
used
if
the
dynamic
aspects
cannot
be
interpreted
by
the
receiving
system
|
|
0..1 | code |
routine
|
urgent
|
asap
|
stat
Binding: RequestPriority ( Required ) |
|
|
0..* | CodeableConcept |
Code
representing
the
meaning
of
the
action
or
sub-actions
Binding: Action Code ( Example ) |
|
|
0..* | RelatedArtifact |
Supporting
documentation
for
the
intended
performer
of
the
action
|
|
|
0..* | Reference ( Goal ) |
What
goals
|
|
|
0..* | BackboneElement |
Whether
or
not
the
action
is
applicable
|
|
|
1..1 | code |
applicability
|
start
|
stop
Binding: Action Condition Kind ( Required ) |
|
|
0..1 | Expression |
Boolean-valued
expression
|
|
|
C | 0..* | BackboneElement |
Input
data
requirements
+ Rule: Input data elements must have a requirement or a relatedData, but not both |
|
0..1 | string |
User-visible
title
|
|
|
C | 0..1 | DataRequirement |
What
data
is
provided
|
|
C | 0..1 | id |
What
data
is
provided
|
|
C | 0..* | BackboneElement |
Output
data
definition
+ Rule: Output data element must have a requirement or a relatedData, but not both |
|
0..1 | string |
User-visible
title
|
|
|
C | 0..1 | DataRequirement |
What
data
is
provided
|
|
C | 0..1 | string |
What
data
is
provided
|
|
0..* | BackboneElement |
Relationship
to
another
action
|
|
|
1..1 | id |
What
action
this
is
related
to
|
|
|
1..1 | code |
before
|
before-start
|
before-end
|
concurrent
|
concurrent-with-start
|
concurrent-with-end
|
after
|
after-start
|
after-end
Binding: Action Relationship Type ( Required ) |
|
|
0..1 | code |
before
|
before-start
|
before-end
|
concurrent
|
concurrent-with-start
|
concurrent-with-end
|
after
|
after-start
|
after-end
Binding: Action Relationship Type ( Required ) |
|
|
0..1 |
Time
offset
for
the
relationship
|
||
|
Duration | |||
|
Range | |||
|
0..1 |
When
the
action
should
take
place
|
||
|
dateTime | |||
|
Age | |||
|
Period | |||
|
Duration | |||
|
Range | |||
|
Timing | |||
|
0..1 | CodeableReference ( Location ) |
Where
it
should
happen
|
|
|
0..* | BackboneElement |
Who
should
perform
the
action
|
|
|
0..1 | code |
careteam
|
device
|
group
|
healthcareservice
|
location
|
organization
|
patient
|
practitioner
|
practitionerrole
|
relatedperson
Binding: Action Participant Type ( Required ) |
|
|
0..1 | canonical ( CapabilityStatement ) |
Who
or
what
can
participate
|
|
|
0..1 | Reference ( CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) |
Who
or
what
can
participate
|
|
|
0..1 | CodeableConcept |
E.g.
Nurse,
Surgeon,
Parent,
etc
Binding: Action Participant Role
(
Example
)
|
|
|
0..1 | CodeableConcept |
E.g.
Author,
Reviewer,
Witness,
etc
Binding: Action Participant Function ( Example ) |
|
|
0..1 |
Who/what
is
participating?
|
||
|
canonical ( CapabilityStatement ) | |||
|
Reference ( CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) | |||
|
0..1 | CodeableConcept |
create
|
update
|
remove
|
fire-event
Binding: Action Type ( Extensible ) |
|
|
0..1 | code |
visual-group
|
logical-group
|
sentence-group
Binding: Action Grouping Behavior ( Required ) |
|
|
0..1 | code |
any
|
all
|
all-or-none
|
exactly-one
|
at-most-one
|
one-or-more
Binding: Action Selection Behavior ( Required ) |
|
|
0..1 | code |
must
|
could
|
must-unless-documented
Binding: Action Required Behavior ( Required ) |
|
|
0..1 | code |
yes
|
no
Binding: Action Precheck Behavior ( Required ) |
|
|
0..1 | code |
single
|
multiple
Binding: Action Cardinality Behavior ( Required ) |
|
|
C | 0..1 | Reference ( Any ) |
The
target
of
the
action
|
|
0..1 |
Description
of
the
activity
to
be
performed
|
||
|
canonical ( ActivityDefinition | ObservationDefinition | PlanDefinition | Questionnaire | SpecimenDefinition ) | |||
|
uri | |||
|
0..1 | canonical ( StructureMap ) |
Transform
to
apply
the
template
|
|
|
0..* | BackboneElement |
Dynamic
aspects
of
the
definition
|
|
|
0..1 | string |
The
path
to
the
element
to
be
set
dynamically
|
|
|
0..1 | Expression |
An
expression
that
provides
the
dynamic
value
for
the
customization
|
|
|
0..* | see action |
Sub
action
|
|
Documentation
for
this
format
|
||||
See the Extensions for this resource
XML Template
<RequestOrchestration xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business identifier --></identifier> <instantiatesCanonical value="[canonical]"/><!-- 0..* Instantiates FHIR protocol or definition --> <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition --> <basedOn><!-- 0..* Reference(Any) Fulfills plan, proposal, or order --></basedOn> <replaces><!-- 0..* Reference(Any) Request(s) replaced by this request --></replaces> <groupIdentifier><!-- 0..1 Identifier Composite request this is part of --></groupIdentifier> <status value="[code]"/><!-- 1..1 draft | active | on-hold | revoked | completed | entered-in-error | unknown --> <intent value="[code]"/><!-- 1..1 proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option --> <priority value="[code]"/><!-- 0..1 routine | urgent | asap | stat --> <code><!-- 0..1 CodeableConcept What's being requested/ordered --></code> <subject><!-- 0..1 Reference(CareTeam|Device|Group|HealthcareService|Location| Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) Who the request orchestration is about --></subject> <encounter><!-- 0..1 Reference(Encounter) Created as part of --></encounter> <authoredOn value="[dateTime]"/><!-- 0..1 When the request orchestration was authored --> <author><!-- 0..1 Reference(Device|Practitioner|PractitionerRole) Device or practitioner that authored the request orchestration --></author> <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|DocumentReference| Observation) Why the request orchestration is needed --></reason> <goal><!-- 0..* Reference(Goal) What goals --></goal> <note><!-- 0..* Annotation Additional notes about the response --></note> <action> <!-- 0..* Proposed actions, if any --> <linkId value="[string]"/><!-- 0..1 Pointer to specific item from the PlanDefinition --> <prefix value="[string]"/><!-- 0..1 User-visible prefix for the action (e.g. 1. or A.) --> <title value="[string]"/><!-- 0..1 User-visible title --> <description value="[markdown]"/><!-- 0..1 Short description of the action --> <textEquivalent value="[markdown]"/><!-- 0..1 Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system --> <priority value="[code]"/><!-- 0..1 routine | urgent | asap | stat --> <code><!-- 0..* CodeableConcept Code representing the meaning of the action or sub-actions --></code> <documentation><!-- 0..* RelatedArtifact Supporting documentation for the intended performer of the action --></documentation> <goal><!-- 0..* Reference(Goal) What goals --></goal> <condition> <!-- 0..* Whether or not the action is applicable --> <kind value="[code]"/><!-- 1..1 applicability | start | stop --> <expression><!-- 0..1 Expression Boolean-valued expression --></expression> </condition> <input> <!-- 0..* Input data requirements --> <title value="[string]"/><!-- 0..1 User-visible title --> <requirement><!-- I 0..1 DataRequirement What data is provided --></requirement> <relatedData value="[id]"/><!-- I 0..1 What data is provided --> </input> <output> <!-- 0..* Output data definition --> <title value="[string]"/><!-- 0..1 User-visible title --> <requirement><!-- I 0..1 DataRequirement What data is provided --></requirement> <relatedData value="[string]"/><!-- I 0..1 What data is provided --> </output> <relatedAction> <!-- 0..* Relationship to another action --> <targetId value="[id]"/><!-- 1..1 What action this is related to --> <relationship value="[code]"/><!-- 1..1 before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end --> <endRelationship value="[code]"/><!-- 0..1 before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end --> <offset[x]><!-- 0..1 Duration|Range Time offset for the relationship --></offset[x]> </relatedAction> <timing[x]><!-- 0..1 dateTime|Age|Period|Duration|Range|Timing When the action should take place --></timing[x]> <location><!-- 0..1 CodeableReference(Location) Where it should happen --></location> <participant> <!-- 0..* Who should perform the action --> <type value="[code]"/><!-- 0..1 careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson --> <typeCanonical><!-- 0..1 canonical(CapabilityStatement) Who or what can participate --></typeCanonical> <typeReference><!-- 0..1 Reference(CareTeam|Device|DeviceDefinition|Endpoint| Group|HealthcareService|Location|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) Who or what can participate --></typeReference>
<</role><role><!-- 0..1 CodeableConcept E.g. Nurse, Surgeon, Parent, etc--></role> <function><!-- 0..1 CodeableConcept E.g. Author, Reviewer, Witness, etc --></function> <actor[x]><!-- 0..1 canonical(CapabilityStatement)|Reference(CareTeam|Device| DeviceDefinition|Endpoint|Group|HealthcareService|Location|Organization| Patient|Practitioner|PractitionerRole|RelatedPerson) Who/what is participating? --></actor[x]> </participant> <type><!-- 0..1 CodeableConcept create | update | remove | fire-event --></type> <groupingBehavior value="[code]"/><!-- 0..1 visual-group | logical-group | sentence-group --> <selectionBehavior value="[code]"/><!-- 0..1 any | all | all-or-none | exactly-one | at-most-one | one-or-more --> <requiredBehavior value="[code]"/><!-- 0..1 must | could | must-unless-documented --> <precheckBehavior value="[code]"/><!-- 0..1 yes | no --> <cardinalityBehavior value="[code]"/><!-- 0..1 single | multiple --> <resource><!-- I 0..1 Reference(Any) The target of the action --></resource> <definition[x]><!-- 0..1 canonical(ActivityDefinition|ObservationDefinition| PlanDefinition|Questionnaire|SpecimenDefinition)|uri Description of the activity to be performed --></definition[x]> <transform><!-- 0..1 canonical(StructureMap) Transform to apply the template --></transform> <dynamicValue> <!-- 0..* Dynamic aspects of the definition --> <path value="[string]"/><!-- 0..1 The path to the element to be set dynamically --> <expression><!-- 0..1 Expression An expression that provides the dynamic value for the customization --></expression> </dynamicValue> <action><!-- 0..* Content as for RequestOrchestration.action Sub action --></action> </action> </RequestOrchestration>
JSON Template
{
"resourceType" : "RequestOrchestration",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"identifier" : [{ Identifier }], // Business identifier
"instantiatesCanonical" : ["<canonical>"], // Instantiates FHIR protocol or definition
"instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition
"basedOn" : [{ Reference(Any) }], // Fulfills plan, proposal, or order
"replaces" : [{ Reference(Any) }], // Request(s) replaced by this request
"groupIdentifier" : { Identifier }, // Composite request this is part of
"status" : "<code>", // R! draft | active | on-hold | revoked | completed | entered-in-error | unknown
"intent" : "<code>", // R! proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
"priority" : "<code>", // routine | urgent | asap | stat
"code" : { CodeableConcept }, // What's being requested/ordered
"subject" : { Reference(CareTeam|Device|Group|HealthcareService|Location|
Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) }, // Who the request orchestration is about
"encounter" : { Reference(Encounter) }, // Created as part of
"authoredOn" : "<dateTime>", // When the request orchestration was authored
"author" : { Reference(Device|Practitioner|PractitionerRole) }, // Device or practitioner that authored the request orchestration
"reason" : [{ CodeableReference(Condition|DiagnosticReport|DocumentReference|
Observation) }], // Why the request orchestration is needed
"goal" : [{ Reference(Goal) }], // What goals
"note" : [{ Annotation }], // Additional notes about the response
"action" : [{ // Proposed actions, if any
"linkId" : "<string>", // Pointer to specific item from the PlanDefinition
"prefix" : "<string>", // User-visible prefix for the action (e.g. 1. or A.)
"title" : "<string>", // User-visible title
"description" : "<markdown>", // Short description of the action
"textEquivalent" : "<markdown>", // Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
"priority" : "<code>", // routine | urgent | asap | stat
"code" : [{ CodeableConcept }], // Code representing the meaning of the action or sub-actions
"documentation" : [{ RelatedArtifact }], // Supporting documentation for the intended performer of the action
"goal" : [{ Reference(Goal) }], // What goals
"condition" : [{ // Whether or not the action is applicable
"kind" : "<code>", // R! applicability | start | stop
"expression" : { Expression } // Boolean-valued expression
}],
"input" : [{ // Input data requirements
"title" : "<string>", // User-visible title
"requirement" : { DataRequirement }, // I What data is provided
"relatedData" : "<id>" // I What data is provided
}],
"output" : [{ // Output data definition
"title" : "<string>", // User-visible title
"requirement" : { DataRequirement }, // I What data is provided
"relatedData" : "<string>" // I What data is provided
}],
"relatedAction" : [{ // Relationship to another action
"targetId" : "<id>", // R! What action this is related to
"relationship" : "<code>", // R! before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
"endRelationship" : "<code>", // before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
// offset[x]: Time offset for the relationship. One of these 2:
"offsetDuration" : { Duration },
"offsetRange" : { Range }
}],
// timing[x]: When the action should take place. One of these 6:
"timingDateTime" : "<dateTime>",
"timingAge" : { Age },
"timingPeriod" : { Period },
"timingDuration" : { Duration },
"timingRange" : { Range },
"timingTiming" : { Timing },
"location" : { CodeableReference(Location) }, // Where it should happen
"participant" : [{ // Who should perform the action
"type" : "<code>", // careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
"typeCanonical" : "<canonical(CapabilityStatement)>", // Who or what can participate
"typeReference" : { Reference(CareTeam|Device|DeviceDefinition|Endpoint|
Group|HealthcareService|Location|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) }, // Who or what can participate
"
"role" : { CodeableConcept }, // E.g. Nurse, Surgeon, Parent, etc
"function" : { CodeableConcept }, // E.g. Author, Reviewer, Witness, etc
// actor[x]: Who/what is participating?. One of these 2:
"actorCanonical" : "<canonical(CapabilityStatement)>",
"actorReference" : { Reference(CareTeam|Device|DeviceDefinition|Endpoint|Group|
HealthcareService|Location|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) }
}],
"type" : { CodeableConcept }, // create | update | remove | fire-event
"groupingBehavior" : "<code>", // visual-group | logical-group | sentence-group
"selectionBehavior" : "<code>", // any | all | all-or-none | exactly-one | at-most-one | one-or-more
"requiredBehavior" : "<code>", // must | could | must-unless-documented
"precheckBehavior" : "<code>", // yes | no
"cardinalityBehavior" : "<code>", // single | multiple
"resource" : { Reference(Any) }, // I The target of the action
// definition[x]: Description of the activity to be performed. One of these 2:
"definitionCanonical" : "<canonical(ActivityDefinition|ObservationDefinition|PlanDefinition|Questionnaire|SpecimenDefinition)>",
"definitionUri" : "<uri>",
"transform" : "<canonical(StructureMap)>", // Transform to apply the template
"dynamicValue" : [{ // Dynamic aspects of the definition
"path" : "<string>", // The path to the element to be set dynamically
"expression" : { Expression } // An expression that provides the dynamic value for the customization
}],
"action" : [{ Content as for RequestOrchestration.action }] // Sub action
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:RequestOrchestration; 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:identifier ( [ Identifier ] ... ) ; # 0..* Business identifier fhir:instantiatesCanonical ( [ canonical ] ... ) ; # 0..* Instantiates FHIR protocol or definition fhir:instantiatesUri ( [ uri ] ... ) ; # 0..* Instantiates external protocol or definition fhir:basedOn ( [ Reference(Any) ] ... ) ; # 0..* Fulfills plan, proposal, or order fhir:replaces ( [ Reference(Any) ] ... ) ; # 0..* Request(s) replaced by this request fhir:groupIdentifier [ Identifier ] ; # 0..1 Composite request this is part of fhir:status [ code ] ; # 1..1 draft | active | on-hold | revoked | completed | entered-in-error | unknown fhir:intent [ code ] ; # 1..1 proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option fhir:priority [ code ] ; # 0..1 routine | urgent | asap | stat fhir:code [ CodeableConcept ] ; # 0..1 What's being requested/ordered fhir:subject [ Reference(CareTeam|Device|Group|HealthcareService|Location|Organization|Patient| Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who the request orchestration is about fhir:encounter [ Reference(Encounter) ] ; # 0..1 Created as part of fhir:authoredOn [ dateTime ] ; # 0..1 When the request orchestration was authored fhir:author [ Reference(Device|Practitioner|PractitionerRole) ] ; # 0..1 Device or practitioner that authored the request orchestration fhir:reason ( [ CodeableReference(Condition|DiagnosticReport|DocumentReference|Observation) ] ... ) ; # 0..* Why the request orchestration is needed fhir:goal ( [ Reference(Goal) ] ... ) ; # 0..* What goals fhir:note ( [ Annotation ] ... ) ; # 0..* Additional notes about the response fhir:action ( [ # 0..* Proposed actions, if any fhir:linkId [ string ] ; # 0..1 Pointer to specific item from the PlanDefinition fhir:prefix [ string ] ; # 0..1 User-visible prefix for the action (e.g. 1. or A.) fhir:title [ string ] ; # 0..1 User-visible title fhir:description [ markdown ] ; # 0..1 Short description of the action fhir:textEquivalent [ markdown ] ; # 0..1 Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system fhir:priority [ code ] ; # 0..1 routine | urgent | asap | stat fhir:code ( [ CodeableConcept ] ... ) ; # 0..* Code representing the meaning of the action or sub-actions fhir:documentation ( [ RelatedArtifact ] ... ) ; # 0..* Supporting documentation for the intended performer of the action fhir:goal ( [ Reference(Goal) ] ... ) ; # 0..* What goals fhir:condition ( [ # 0..* Whether or not the action is applicable fhir:kind [ code ] ; # 1..1 applicability | start | stop fhir:expression [ Expression ] ; # 0..1 Boolean-valued expression ] ... ) ; fhir:input ( [ # 0..* Input data requirements fhir:title [ string ] ; # 0..1 User-visible title fhir:requirement [ DataRequirement ] ; # 0..1 I What data is provided fhir:relatedData [ id ] ; # 0..1 I What data is provided ] ... ) ; fhir:output ( [ # 0..* Output data definition fhir:title [ string ] ; # 0..1 User-visible title fhir:requirement [ DataRequirement ] ; # 0..1 I What data is provided fhir:relatedData [ string ] ; # 0..1 I What data is provided ] ... ) ; fhir:relatedAction ( [ # 0..* Relationship to another action fhir:targetId [ id ] ; # 1..1 What action this is related to fhir:relationship [ code ] ; # 1..1 before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end fhir:endRelationship [ code ] ; # 0..1 before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end # offset[x] : 0..1 Time offset for the relationship. One of these 2 fhir:offset [ a fhir:Duration ; Duration ] fhir:offset [ a fhir:Range ; Range ] ] ... ) ; # timing[x] : 0..1 When the action should take place. One of these 6 fhir:timing [ a fhir:dateTime ; dateTime ] fhir:timing [ a fhir:Age ; Age ] fhir:timing [ a fhir:Period ; Period ] fhir:timing [ a fhir:Duration ; Duration ] fhir:timing [ a fhir:Range ; Range ] fhir:timing [ a fhir:Timing ; Timing ] fhir:location [ CodeableReference(Location) ] ; # 0..1 Where it should happen fhir:participant ( [ # 0..* Who should perform the action fhir:type [ code ] ; # 0..1 careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson fhir:typeCanonical [ canonical(CapabilityStatement) ] ; # 0..1 Who or what can participate fhir:typeReference [ Reference(CareTeam|Device|DeviceDefinition|Endpoint|Group|HealthcareService|Location| Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who or what can participate fhir:role [ CodeableConcept ] ; # 0..1 E.g. Nurse, Surgeon, Parent, etc fhir:function [ CodeableConcept ] ; # 0..1 E.g. Author, Reviewer, Witness, etc # actor[x] : 0..1 Who/what is participating?. One of these 2 fhir:actor [ a fhir:canonical ; canonical(CapabilityStatement) ] fhir:actor [ a fhir:Reference ; Reference(CareTeam|Device|DeviceDefinition|Endpoint|Group|HealthcareService|Location| Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ] ... ) ; fhir:type [ CodeableConcept ] ; # 0..1 create | update | remove | fire-event fhir:groupingBehavior [ code ] ; # 0..1 visual-group | logical-group | sentence-group fhir:selectionBehavior [ code ] ; # 0..1 any | all | all-or-none | exactly-one | at-most-one | one-or-more fhir:requiredBehavior [ code ] ; # 0..1 must | could | must-unless-documented fhir:precheckBehavior [ code ] ; # 0..1 yes | no fhir:cardinalityBehavior [ code ] ; # 0..1 single | multiple fhir:resource [ Reference(Any) ] ; # 0..1 I The target of the action # definition[x] : 0..1 Description of the activity to be performed. One of these 2 fhir:definition [ a fhir:canonical ; canonical(ActivityDefinition|ObservationDefinition|PlanDefinition|Questionnaire| SpecimenDefinition) ] fhir:definition [ a fhir:uri ; uri ] fhir:transform [ canonical(StructureMap) ] ; # 0..1 Transform to apply the template fhir:dynamicValue ( [ # 0..* Dynamic aspects of the definition fhir:path [ string ] ; # 0..1 The path to the element to be set dynamically fhir:expression [ Expression ] ; # 0..1 An expression that provides the dynamic value for the customization ] ... ) ; fhir:action ( [ See RequestOrchestration.action ] ... ) ; # 0..* Sub action ] ... ) ; ]
Changes from both R4 and R4B
| RequestOrchestration |
|
| RequestOrchestration |
|
| RequestOrchestration.subject |
|
| RequestOrchestration.reason |
|
| RequestOrchestration.goal |
|
| RequestOrchestration.action.linkId |
|
| RequestOrchestration.action.description |
|
| RequestOrchestration.action.textEquivalent |
|
| RequestOrchestration.action.goal |
|
| RequestOrchestration.action.input |
|
| RequestOrchestration.action.input.title |
|
| RequestOrchestration.action.input.requirement |
|
| RequestOrchestration.action.input.relatedData |
|
| RequestOrchestration.action.output |
|
| RequestOrchestration.action.output.title |
|
| RequestOrchestration.action.output.requirement |
|
| RequestOrchestration.action.output.relatedData |
|
| RequestOrchestration.action.relatedAction.targetId |
|
| RequestOrchestration.action.relatedAction.endRelationship |
|
| RequestOrchestration.action.location |
|
| RequestOrchestration.action.participant |
|
| RequestOrchestration.action.participant.type |
|
| RequestOrchestration.action.participant.typeCanonical |
|
| RequestOrchestration.action.participant.typeReference |
|
| RequestOrchestration.action.participant.role |
|
| RequestOrchestration.action.participant.function |
|
| RequestOrchestration.action.participant.actor[x] |
|
| RequestOrchestration.action.definition[x] |
|
| RequestOrchestration.action.transform |
|
| RequestOrchestration.action.dynamicValue |
|
| RequestOrchestration.action.dynamicValue.path |
|
| RequestOrchestration.action.dynamicValue.expression |
|
| RequestGroup.reasonCode |
|
| RequestGroup.reasonReference |
|
| RequestGroup.action.relatedAction.actionId |
|
See the Full Difference for further information
This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .
Additional definitions: Master Definition XML + JSON , XML Schema / Schematron + JSON Schema , ShEx (for Turtle ) + see the extensions , the spreadsheet version & the dependency analysis
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
| RequestOrchestration.status | RequestStatus | Required |
Codes identifying the lifecycle stage of a request. |
| RequestOrchestration.intent | RequestIntent | Required |
Codes indicating the degree of authority/intentionality associated with a request. |
| RequestOrchestration.priority | RequestPriority | Required |
Identifies the level of importance to be assigned to actioning the request. |
| RequestOrchestration.code | ActionCode | Example |
Provides examples of actions to be performed. |
| RequestOrchestration.reason | ActionReasonCode | Example |
Provides examples of reasons for actions to be performed. |
| RequestOrchestration.action.priority | RequestPriority | Required |
Identifies the level of importance to be assigned to actioning the request. |
| RequestOrchestration.action.code | ActionCode | Example |
Provides examples of actions to be performed. |
| RequestOrchestration.action.condition.kind | ActionConditionKind | Required |
Defines the kinds of conditions that can appear on actions. |
| RequestOrchestration.action.relatedAction.relationship | ActionRelationshipType | Required |
Defines the types of relationships between actions. |
| RequestOrchestration.action.relatedAction.endRelationship | ActionRelationshipType | Required |
Defines the types of relationships between actions. |
| RequestOrchestration.action.participant.type | ActionParticipantType | Required |
The type of participant for the action. |
| RequestOrchestration.action.participant.role |
ActionParticipantRole
|
Example |
Either a practitioner role or a relationship type. Note from UTG import - may have been a temporary entry that subsequently disappeared from the FHIR source; unable to locate. Version set to 0.1.0 |
| RequestOrchestration.action.participant.function | ActionParticipantFunction | Example |
The function performed by the participant for the action. |
| RequestOrchestration.action.type | ActionType | Extensible |
The type of action to be performed. |
| RequestOrchestration.action.groupingBehavior | ActionGroupingBehavior | Required |
Defines organization behavior of a group. |
| RequestOrchestration.action.selectionBehavior | ActionSelectionBehavior | Required |
Defines selection behavior of a group. |
| RequestOrchestration.action.requiredBehavior | ActionRequiredBehavior | Required |
Defines expectations around whether an action or action group is required. |
| RequestOrchestration.action.precheckBehavior | ActionPrecheckBehavior | Required |
Defines selection frequency behavior for an action or group. |
| RequestOrchestration.action.cardinalityBehavior | ActionCardinalityBehavior | Required |
Defines behavior for an action or a group for how many times that item may be repeated. |
| UniqueKey | Level | Location | Description | Expression |
pld-0
|
Rule | RequestOrchestration.action.input | Input data elements must have a requirement or a relatedData, but not both | requirement.exists() xor relatedData.exists() |
pld-1
|
Rule | RequestOrchestration.action.output | Output data element must have a requirement or a relatedData, but not both | requirement.exists() xor relatedData.exists() |
rqg-1
|
Rule | RequestOrchestration.action | Must have resource or action but not both | resource.exists() != action.exists() |
The
RequestOrchestration
resource
is
used
when
there
are
temporal,
co-occurrence
or
other
dependencies
between
one
or
more
steps
of
an
overall
workflow.
For
example,
"do
procedure
A
or
procedure
B,
but
not
both"
or
"do
procedure
A
after
procedure
B"
or
"Act
on
this
ServiceRequest,
then
use
the
value
of
that
observation
in
the
calculation
of
the
dose
of
this
subsequent
MedicationRequest".
RequestOrchestrations
that
define
actions
(i.e.
that
are
more
than
just
narrative
representations)
will
always
reference
other
Request
resources
with
an
intent
of
"option".
Each "option" request can only be interpreted in the context of a RequestOrchestration that references it. This is because the RequestOrchestration defines the context in which the option request may/should/must occur, including any triggers, timing constraints, choices, sequencing requirements, etc. Typically such "option" requests will be contained resources due to this dependency. However, in some cases "option" requests may be stand-alone if they are immutable or tightly tied to a ActivityDefinition such that the option resources can safely be referenced without a risk of their content/intent changing
Elements in the "option" requests may include extensions for timing or other elements that allow calculation based on information found in the RequestOrchestration or other referenced "option" resources, as well as to expose elements within the "option" resource for referencing in other "option" resources. These extensions are:
The RequestOrchestration and all of its referenced "option" Requests are treated as a single integrated Request whose status is the status of the RequestOrchestration. If there is a need to manage statuses of the different parts, separately, refer to the guidance here .
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 |
| author | reference | The author of the request orchestration |
RequestOrchestration.author
( Practitioner , Device , PractitionerRole ) |
|
| authored | date | The date the request orchestration was authored | RequestOrchestration.authoredOn | |
| based-on | reference | What this request fullfills. |
RequestOrchestration.basedOn
(Any) |
|
| code | token | The code of the request orchestration | RequestOrchestration.code | 22 Resources |
| encounter | reference | The encounter the request orchestration applies to |
RequestOrchestration.encounter
( Encounter ) |
29 Resources |
| group-identifier | token | The group identifier for the request orchestration | RequestOrchestration.groupIdentifier | |
| identifier | token | External identifiers for the request orchestration | RequestOrchestration.identifier | 65 Resources |
| instantiates-canonical | reference | The FHIR-based definition from which the request orchestration is realized | RequestOrchestration.instantiatesCanonical | |
| instantiates-uri | uri | The external definition from which the request orchestration is realized | RequestOrchestration.instantiatesUri | |
| intent | token | The intent of the request orchestration | RequestOrchestration.intent | |
| participant | reference | The participant in the requests in the orchestration |
RequestOrchestration.action.participant.actor.ofType(Reference)
|
RequestOrchestration.action.participant.actor.ofType(canonical)
( Group , Organization , CareTeam , Device , Patient , HealthcareService , PractitionerRole , RelatedPerson , Practitioner , Endpoint , CapabilityStatement , DeviceDefinition , Location ) |
|
| patient | reference | The identity of a patient to search for request orchestrations |
RequestOrchestration.subject.where(resolve()
is
Patient)
( Patient ) |
66 Resources |
| priority | token | The priority of the request orchestration | RequestOrchestration.priority | |
| status | token | The status of the request orchestration | RequestOrchestration.status | |
| subject | reference | The subject that the request orchestration is about |
RequestOrchestration.subject
( Practitioner , Group , Organization , CareTeam , Device , Patient , HealthcareService , PractitionerRole , RelatedPerson , Location ) |