R6 Ballot (1st Draft)

This page is part of the FHIR Specification v6.0.0-ballot1: Release 6 Ballot (1st Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions

14.17 Resource RequestOrchestration - Content

Clinical Decision Support icon Work GroupMaturity Level: 4 Trial UseSecurity 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

NameFlagsCard.TypeDescription & Constraintsdoco
.. RequestOrchestration TUDomainResourceA set of related requests

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierBusiness identifier

... instantiatesCanonical Σ0..*canonical()Instantiates FHIR protocol or definition

... instantiatesUri Σ0..*uriInstantiates external protocol or definition

... replaces 0..*Reference(Any)Request(s) replaced by this request

... groupIdentifier Σ0..1IdentifierComposite request this is part of
... status ?!Σ1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (Required)
... intent ?!Σ1..1codeproposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (Required)
... priority Σ0..1coderoutine | urgent | asap | stat
Binding: RequestPriority (Required)
... code Σ0..1CodeableConceptWhat's being requested/ordered
Binding: Action Code (Example)
... subject 0..1Reference(CareTeam | Device | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)Who the request orchestration is about
... encounter 0..1Reference(Encounter)Created as part of
... authoredOn 0..1dateTimeWhen the request orchestration was authored
... author 0..1Reference(Device | Practitioner | PractitionerRole)Device or practitioner that authored the request orchestration
... reason 0..*CodeableReference(Condition | Observation | DiagnosticReport | DocumentReference)Why the request orchestration is needed
Binding: Action Reason Code (Example)

... goal 0..*Reference(Goal)What goals

... note 0..*AnnotationAdditional notes about the response

... action C0..*BackboneElementProposed actions, if any
+ Rule: Must have resource or action but not both

.... linkId 0..1stringPointer to specific item from the PlanDefinition
.... prefix 0..1stringUser-visible prefix for the action (e.g. 1. or A.)
.... title 0..1stringUser-visible title
.... description Σ0..1markdownShort description of the action
.... textEquivalent Σ0..1markdownStatic text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
.... priority 0..1coderoutine | urgent | asap | stat
Binding: RequestPriority (Required)
.... code 0..*CodeableConceptCode representing the meaning of the action or sub-actions
Binding: Action Code (Example)

.... documentation 0..*RelatedArtifactSupporting documentation for the intended performer of the action

.... goal 0..*Reference(Goal)What goals

.... condition 0..*BackboneElementWhether or not the action is applicable

..... kind 1..1codeapplicability | start | stop
Binding: Action Condition Kind (Required)
..... expression 0..1ExpressionBoolean-valued expression
.... input C0..*BackboneElementInput data requirements
+ Rule: Input data elements must have a requirement or a relatedData, but not both

..... title 0..1stringUser-visible title
..... requirement C0..1DataRequirementWhat data is provided
..... relatedData C0..1idWhat data is provided
.... output C0..*BackboneElementOutput data definition
+ Rule: Output data element must have a requirement or a relatedData, but not both

..... title 0..1stringUser-visible title
..... requirement C0..1DataRequirementWhat data is provided
..... relatedData C0..1stringWhat data is provided
.... relatedAction 0..*BackboneElementRelationship to another action

..... targetId 1..1idWhat action this is related to
..... relationship 1..1codebefore | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
Binding: Action Relationship Type (Required)
..... endRelationship 0..1codebefore | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
Binding: Action Relationship Type (Required)
..... offset[x] 0..1Time offset for the relationship
...... offsetDurationDuration
...... offsetRangeRange
.... timing[x] 0..1When the action should take place
..... timingDateTimedateTime
..... timingAgeAge
..... timingPeriodPeriod
..... timingDurationDuration
..... timingRangeRange
..... timingTimingTiming
.... location 0..1CodeableReference(Location)Where it should happen
.... participant 0..*BackboneElementWho should perform the action

..... type 0..1codecareteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
Binding: Action Participant Type (Required)
..... typeCanonical 0..1canonical(CapabilityStatement)Who or what can participate
..... typeReference 0..1Reference(CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)Who or what can participate
..... role 0..1CodeableConceptE.g. Nurse, Surgeon, Parent, etc
Binding: Action Participant Role icon (Example)
..... function 0..1CodeableConceptE.g. Author, Reviewer, Witness, etc
Binding: Action Participant Function (Example)
..... actor[x] 0..1Who/what is participating?
...... actorCanonicalcanonical(CapabilityStatement)
...... actorReferenceReference(CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
.... type 0..1CodeableConceptcreate | update | remove | fire-event
Binding: Action Type (Extensible)
.... groupingBehavior 0..1codevisual-group | logical-group | sentence-group
Binding: Action Grouping Behavior (Required)
.... selectionBehavior 0..1codeany | all | all-or-none | exactly-one | at-most-one | one-or-more
Binding: Action Selection Behavior (Required)
.... requiredBehavior 0..1codemust | could | must-unless-documented
Binding: Action Required Behavior (Required)
.... precheckBehavior 0..1codeyes | no
Binding: Action Precheck Behavior (Required)
.... cardinalityBehavior 0..1codesingle | multiple
Binding: Action Cardinality Behavior (Required)
.... resource C0..1Reference(Any)The target of the action
.... definition[x] 0..1Description of the activity to be performed
..... definitionCanonicalcanonical(ActivityDefinition | ObservationDefinition | PlanDefinition | Questionnaire | SpecimenDefinition)
..... definitionUriuri
.... transform 0..1canonical(StructureMap)Transform to apply the template
.... dynamicValue 0..*BackboneElementDynamic aspects of the definition

..... path 0..1stringThe path to the element to be set dynamically
..... expression 0..1ExpressionAn expression that provides the dynamic value for the customization
.... action 0..*see actionSub action


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

RequestOrchestration (DomainResource)Allows a service to provide a unique, business identifier for the requestidentifier : Identifier [0..*]A canonical URL referencing a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this requestinstantiatesCanonical : canonical [0..*] « »A URL referencing an externally defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this requestinstantiatesUri : uri [0..*]A plan, proposal or order that is fulfilled in whole or in part by this requestbasedOn : Reference [0..*] « Any »Completed or terminated request(s) whose function is taken by this new requestreplaces : Reference [0..*] « Any »A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one timegroupIdentifier : Identifier [0..1]The current state of the request. For request orchestrations, the status reflects the status of all the requests in the orchestration (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)RequestStatus! »Indicates the level of authority/intentionality associated with the request and where the request fits into the workflow chain (this element modifies the meaning of other elements)intent : code [1..1] « null (Strength=Required)RequestIntent! »Indicates how quickly the request should be addressed with respect to other requestspriority : code [0..1] « null (Strength=Required)RequestPriority! »A code that identifies what the overall request orchestration iscode : CodeableConcept [0..1] « null (Strength=Example)ActionCode?? »The subject for which the request orchestration was createdsubject : Reference [0..1] « CareTeam|Device|Group|HealthcareService| Location|Organization|Patient|Practitioner|PractitionerRole| RelatedPerson »Describes the context of the request orchestration, if anyencounter : Reference [0..1] « Encounter »Indicates when the request orchestration was createdauthoredOn : dateTime [0..1]Provides a reference to the author of the request orchestrationauthor : Reference [0..1] « Device|Practitioner|PractitionerRole »Describes the reason for the request orchestration in coded or textual formreason : CodeableReference [0..*] « Condition|Observation| DiagnosticReport|DocumentReference; null (Strength=Example)ActionReasonCode?? »Goals that are intended to be achieved by following the requests in this RequestOrchestrationgoal : Reference [0..*] « Goal »Provides a mechanism to communicate additional information about the responsenote : Annotation [0..*]ActionThe linkId of the action from the PlanDefinition that corresponds to this action in the RequestOrchestration resourcelinkId : string [0..1]A user-visible prefix for the action. For example a section or item numbering such as 1. or Aprefix : string [0..1]The title of the action displayed to a usertitle : string [0..1]A short description of the action used to provide a summary to display to the userdescription : markdown [0..1]A text equivalent of the action to be performed. This provides a human-interpretable description of the action when the definition is consumed by a system that might not be capable of interpreting it dynamicallytextEquivalent : markdown [0..1]Indicates how quickly the action should be addressed with respect to other actionspriority : code [0..1] « null (Strength=Required)RequestPriority! »A code that provides meaning for the action or action group. For example, a section may have a LOINC code for a section of a documentation templatecode : CodeableConcept [0..*] « null (Strength=Example)ActionCode?? »Didactic or other informational resources associated with the action that can be provided to the CDS recipient. Information resources can include inline text commentary and links to web resourcesdocumentation : RelatedArtifact [0..*]Goals that are intended to be achieved by following the requests in this actiongoal : Reference [0..*] « Goal »An optional value describing when the action should be performedtiming[x] : DataType [0..1] « dateTime|Age|Period|Duration|Range| Timing »Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etclocation : CodeableReference [0..1] « Location »The type of action to perform (create, update, remove)type : CodeableConcept [0..1] « null (Strength=Extensible)ActionType+ »Defines the grouping behavior for the action and its childrengroupingBehavior : code [0..1] « null (Strength=Required)ActionGroupingBehavior! »Defines the selection behavior for the action and its childrenselectionBehavior : code [0..1] « null (Strength=Required)ActionSelectionBehavior! »Defines expectations around whether an action is requiredrequiredBehavior : code [0..1] « null (Strength=Required)ActionRequiredBehavior! »Defines whether the action should usually be preselectedprecheckBehavior : code [0..1] « null (Strength=Required)ActionPrecheckBehavior! »Defines whether the action can be selected multiple timescardinalityBehavior : code [0..1] « null (Strength=Required)ActionCardinalityBehavior! »The resource that is the target of the action (e.g. CommunicationRequest)resource : Reference [0..1] « Any » « This element has or is affected by some invariantsC »A reference to an ActivityDefinition that describes the action to be taken in detail, a PlanDefinition that describes a series of actions to be taken, a Questionnaire that should be filled out, a SpecimenDefinition describing a specimen to be collected, or an ObservationDefinition that specifies what observation should be captureddefinition[x] : PrimitiveType [0..1] « canonical(ActivityDefinition| ObservationDefinition|PlanDefinition|Questionnaire| SpecimenDefinition)|uri »A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the inputtransform : canonical [0..1] « StructureMap »ConditionThe kind of conditionkind : code [1..1] « null (Strength=Required)ActionConditionKind! »An expression that returns true or false, indicating whether or not the condition is satisfiedexpression : Expression [0..1]InputA human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readerstitle : string [0..1]Defines the data that is to be provided as input to the actionrequirement : DataRequirement [0..1] « This element has or is affected by some invariantsC »Points to an existing input or output element that provides data to this inputrelatedData : id [0..1] « This element has or is affected by some invariantsC »OutputA human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readerstitle : string [0..1]Defines the data that results as output from the actionrequirement : DataRequirement [0..1] « This element has or is affected by some invariantsC »Points to an existing input or output element that is results as output from the actionrelatedData : string [0..1] « This element has or is affected by some invariantsC »RelatedActionThe element id of the target related actiontargetId : id [1..1]The relationship of this action to the related actionrelationship : code [1..1] « null (Strength=Required)ActionRelationshipType! »The relationship of the end of this action to the related actionendRelationship : code [0..1] « null (Strength=Required)ActionRelationshipType! »A duration or range of durations to apply to the relationship. For example, 30-60 minutes beforeoffset[x] : DataType [0..1] « Duration|Range »ParticipantThe type of participant in the actiontype : code [0..1] « null (Strength=Required)ActionParticipantType! »The type of participant in the actiontypeCanonical : canonical [0..1] « CapabilityStatement »The type of participant in the actiontypeReference : Reference [0..1] « CareTeam|Device|DeviceDefinition| Endpoint|Group|HealthcareService|Location|Organization|Patient| Practitioner|PractitionerRole|RelatedPerson »The role the participant should play in performing the described actionrole : CodeableConcept [0..1] « null (Strength=Example)ActionParticipantRole?? »Indicates how the actor will be involved in the action - author, reviewer, witness, etcfunction : CodeableConcept [0..1] « null (Strength=Example)ActionParticipantFunction?? »A reference to the actual participantactor[x] : DataType [0..1] « canonical(CapabilityStatement)| Reference(CareTeam|Device|DeviceDefinition|Endpoint|Group| HealthcareService|Location|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) »DynamicValueThe path to the element to be customized. This is the path on the resource that will hold the result of the calculation defined by the expression. The specified path SHALL be a FHIRPath resolvable on the specified target type of the ActivityDefinition, and SHALL consist only of identifiers, constant indexers, and a restricted subset of functions. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details)path : string [0..1]An expression specifying the value of the customized elementexpression : Expression [0..1]An expression that describes applicability criteria, or start/stop conditions for the actioncondition[0..*]Defines input data requirements for the actioninput[0..*]Defines the outputs of the action, if anyoutput[0..*]A relationship to another action such as "before" or "30-60 minutes after start of"relatedAction[0..*]The participant that should perform or be responsible for this actionparticipant[0..*]Customizations that should be applied to the statically defined resource. For example, if the dosage of a medication must be computed based on the patient's weight, a customization would be used to specify an expression that calculated the weight, and the path on the resource that would contain the resultdynamicValue[0..*]Sub actionsaction[0..*]The actions, if any, produced by the evaluation of the artifactaction[0..*]

XML Template

<RequestOrchestration xmlns="http://hl7.org/fhir"> doco
 <!-- 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><!-- 0..1 CodeableConcept E.g. Nurse, Surgeon, Parent, etc icon --></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

{doco
  "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 icon
      "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/> .doco


[ 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
  • Name Changed from RequestGroup to RequestOrchestration
RequestOrchestration
  • Moved from RequestGroup to RequestOrchestration
RequestOrchestration.subject
  • Type Reference: Added Target Types CareTeam, Device, HealthcareService, Location, Organization, Practitioner, PractitionerRole, RelatedPerson
RequestOrchestration.reason
  • Added Element
RequestOrchestration.goal
  • Added Element
RequestOrchestration.action.linkId
  • Added Element
RequestOrchestration.action.description
  • Type changed from string to markdown
RequestOrchestration.action.textEquivalent
  • Type changed from string to markdown
RequestOrchestration.action.goal
  • Added Element
RequestOrchestration.action.input
  • Added Element
RequestOrchestration.action.input.title
  • Added Element
RequestOrchestration.action.input.requirement
  • Added Element
RequestOrchestration.action.input.relatedData
  • Added Element
RequestOrchestration.action.output
  • Added Element
RequestOrchestration.action.output.title
  • Added Element
RequestOrchestration.action.output.requirement
  • Added Element
RequestOrchestration.action.output.relatedData
  • Added Element
RequestOrchestration.action.relatedAction.targetId
  • Added Mandatory Element
RequestOrchestration.action.relatedAction.endRelationship
  • Added Element
RequestOrchestration.action.location
  • Added Element
RequestOrchestration.action.participant
  • Type changed from Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device) to BackboneElement
RequestOrchestration.action.participant.type
  • Added Element
RequestOrchestration.action.participant.typeCanonical
  • Added Element
RequestOrchestration.action.participant.typeReference
  • Added Element
RequestOrchestration.action.participant.role
  • Added Element
RequestOrchestration.action.participant.function
  • Added Element
RequestOrchestration.action.participant.actor[x]
  • Added Element
RequestOrchestration.action.definition[x]
  • Added Element
RequestOrchestration.action.transform
  • Added Element
RequestOrchestration.action.dynamicValue
  • Added Element
RequestOrchestration.action.dynamicValue.path
  • Added Element
RequestOrchestration.action.dynamicValue.expression
  • Added Element
RequestGroup.reasonCode
  • Deleted
RequestGroup.reasonReference
  • Deleted
RequestGroup.action.relatedAction.actionId
  • Deleted

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. RequestOrchestration TUDomainResourceA set of related requests

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierBusiness identifier

... instantiatesCanonical Σ0..*canonical()Instantiates FHIR protocol or definition

... instantiatesUri Σ0..*uriInstantiates external protocol or definition

... replaces 0..*Reference(Any)Request(s) replaced by this request

... groupIdentifier Σ0..1IdentifierComposite request this is part of
... status ?!Σ1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (Required)
... intent ?!Σ1..1codeproposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (Required)
... priority Σ0..1coderoutine | urgent | asap | stat
Binding: RequestPriority (Required)
... code Σ0..1CodeableConceptWhat's being requested/ordered
Binding: Action Code (Example)
... subject 0..1Reference(CareTeam | Device | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)Who the request orchestration is about
... encounter 0..1Reference(Encounter)Created as part of
... authoredOn 0..1dateTimeWhen the request orchestration was authored
... author 0..1Reference(Device | Practitioner | PractitionerRole)Device or practitioner that authored the request orchestration
... reason 0..*CodeableReference(Condition | Observation | DiagnosticReport | DocumentReference)Why the request orchestration is needed
Binding: Action Reason Code (Example)

... goal 0..*Reference(Goal)What goals

... note 0..*AnnotationAdditional notes about the response

... action C0..*BackboneElementProposed actions, if any
+ Rule: Must have resource or action but not both

.... linkId 0..1stringPointer to specific item from the PlanDefinition
.... prefix 0..1stringUser-visible prefix for the action (e.g. 1. or A.)
.... title 0..1stringUser-visible title
.... description Σ0..1markdownShort description of the action
.... textEquivalent Σ0..1markdownStatic text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
.... priority 0..1coderoutine | urgent | asap | stat
Binding: RequestPriority (Required)
.... code 0..*CodeableConceptCode representing the meaning of the action or sub-actions
Binding: Action Code (Example)

.... documentation 0..*RelatedArtifactSupporting documentation for the intended performer of the action

.... goal 0..*Reference(Goal)What goals

.... condition 0..*BackboneElementWhether or not the action is applicable

..... kind 1..1codeapplicability | start | stop
Binding: Action Condition Kind (Required)
..... expression 0..1ExpressionBoolean-valued expression
.... input C0..*BackboneElementInput data requirements
+ Rule: Input data elements must have a requirement or a relatedData, but not both

..... title 0..1stringUser-visible title
..... requirement C0..1DataRequirementWhat data is provided
..... relatedData C0..1idWhat data is provided
.... output C0..*BackboneElementOutput data definition
+ Rule: Output data element must have a requirement or a relatedData, but not both

..... title 0..1stringUser-visible title
..... requirement C0..1DataRequirementWhat data is provided
..... relatedData C0..1stringWhat data is provided
.... relatedAction 0..*BackboneElementRelationship to another action

..... targetId 1..1idWhat action this is related to
..... relationship 1..1codebefore | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
Binding: Action Relationship Type (Required)
..... endRelationship 0..1codebefore | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
Binding: Action Relationship Type (Required)
..... offset[x] 0..1Time offset for the relationship
...... offsetDurationDuration
...... offsetRangeRange
.... timing[x] 0..1When the action should take place
..... timingDateTimedateTime
..... timingAgeAge
..... timingPeriodPeriod
..... timingDurationDuration
..... timingRangeRange
..... timingTimingTiming
.... location 0..1CodeableReference(Location)Where it should happen
.... participant 0..*BackboneElementWho should perform the action

..... type 0..1codecareteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
Binding: Action Participant Type (Required)
..... typeCanonical 0..1canonical(CapabilityStatement)Who or what can participate
..... typeReference 0..1Reference(CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)Who or what can participate
..... role 0..1CodeableConceptE.g. Nurse, Surgeon, Parent, etc
Binding: Action Participant Role icon (Example)
..... function 0..1CodeableConceptE.g. Author, Reviewer, Witness, etc
Binding: Action Participant Function (Example)
..... actor[x] 0..1Who/what is participating?
...... actorCanonicalcanonical(CapabilityStatement)
...... actorReferenceReference(CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
.... type 0..1CodeableConceptcreate | update | remove | fire-event
Binding: Action Type (Extensible)
.... groupingBehavior 0..1codevisual-group | logical-group | sentence-group
Binding: Action Grouping Behavior (Required)
.... selectionBehavior 0..1codeany | all | all-or-none | exactly-one | at-most-one | one-or-more
Binding: Action Selection Behavior (Required)
.... requiredBehavior 0..1codemust | could | must-unless-documented
Binding: Action Required Behavior (Required)
.... precheckBehavior 0..1codeyes | no
Binding: Action Precheck Behavior (Required)
.... cardinalityBehavior 0..1codesingle | multiple
Binding: Action Cardinality Behavior (Required)
.... resource C0..1Reference(Any)The target of the action
.... definition[x] 0..1Description of the activity to be performed
..... definitionCanonicalcanonical(ActivityDefinition | ObservationDefinition | PlanDefinition | Questionnaire | SpecimenDefinition)
..... definitionUriuri
.... transform 0..1canonical(StructureMap)Transform to apply the template
.... dynamicValue 0..*BackboneElementDynamic aspects of the definition

..... path 0..1stringThe path to the element to be set dynamically
..... expression 0..1ExpressionAn expression that provides the dynamic value for the customization
.... action 0..*see actionSub action


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

RequestOrchestration (DomainResource)Allows a service to provide a unique, business identifier for the requestidentifier : Identifier [0..*]A canonical URL referencing a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this requestinstantiatesCanonical : canonical [0..*] « »A URL referencing an externally defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this requestinstantiatesUri : uri [0..*]A plan, proposal or order that is fulfilled in whole or in part by this requestbasedOn : Reference [0..*] « Any »Completed or terminated request(s) whose function is taken by this new requestreplaces : Reference [0..*] « Any »A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one timegroupIdentifier : Identifier [0..1]The current state of the request. For request orchestrations, the status reflects the status of all the requests in the orchestration (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)RequestStatus! »Indicates the level of authority/intentionality associated with the request and where the request fits into the workflow chain (this element modifies the meaning of other elements)intent : code [1..1] « null (Strength=Required)RequestIntent! »Indicates how quickly the request should be addressed with respect to other requestspriority : code [0..1] « null (Strength=Required)RequestPriority! »A code that identifies what the overall request orchestration iscode : CodeableConcept [0..1] « null (Strength=Example)ActionCode?? »The subject for which the request orchestration was createdsubject : Reference [0..1] « CareTeam|Device|Group|HealthcareService| Location|Organization|Patient|Practitioner|PractitionerRole| RelatedPerson »Describes the context of the request orchestration, if anyencounter : Reference [0..1] « Encounter »Indicates when the request orchestration was createdauthoredOn : dateTime [0..1]Provides a reference to the author of the request orchestrationauthor : Reference [0..1] « Device|Practitioner|PractitionerRole »Describes the reason for the request orchestration in coded or textual formreason : CodeableReference [0..*] « Condition|Observation| DiagnosticReport|DocumentReference; null (Strength=Example)ActionReasonCode?? »Goals that are intended to be achieved by following the requests in this RequestOrchestrationgoal : Reference [0..*] « Goal »Provides a mechanism to communicate additional information about the responsenote : Annotation [0..*]ActionThe linkId of the action from the PlanDefinition that corresponds to this action in the RequestOrchestration resourcelinkId : string [0..1]A user-visible prefix for the action. For example a section or item numbering such as 1. or Aprefix : string [0..1]The title of the action displayed to a usertitle : string [0..1]A short description of the action used to provide a summary to display to the userdescription : markdown [0..1]A text equivalent of the action to be performed. This provides a human-interpretable description of the action when the definition is consumed by a system that might not be capable of interpreting it dynamicallytextEquivalent : markdown [0..1]Indicates how quickly the action should be addressed with respect to other actionspriority : code [0..1] « null (Strength=Required)RequestPriority! »A code that provides meaning for the action or action group. For example, a section may have a LOINC code for a section of a documentation templatecode : CodeableConcept [0..*] « null (Strength=Example)ActionCode?? »Didactic or other informational resources associated with the action that can be provided to the CDS recipient. Information resources can include inline text commentary and links to web resourcesdocumentation : RelatedArtifact [0..*]Goals that are intended to be achieved by following the requests in this actiongoal : Reference [0..*] « Goal »An optional value describing when the action should be performedtiming[x] : DataType [0..1] « dateTime|Age|Period|Duration|Range| Timing »Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etclocation : CodeableReference [0..1] « Location »The type of action to perform (create, update, remove)type : CodeableConcept [0..1] « null (Strength=Extensible)ActionType+ »Defines the grouping behavior for the action and its childrengroupingBehavior : code [0..1] « null (Strength=Required)ActionGroupingBehavior! »Defines the selection behavior for the action and its childrenselectionBehavior : code [0..1] « null (Strength=Required)ActionSelectionBehavior! »Defines expectations around whether an action is requiredrequiredBehavior : code [0..1] « null (Strength=Required)ActionRequiredBehavior! »Defines whether the action should usually be preselectedprecheckBehavior : code [0..1] « null (Strength=Required)ActionPrecheckBehavior! »Defines whether the action can be selected multiple timescardinalityBehavior : code [0..1] « null (Strength=Required)ActionCardinalityBehavior! »The resource that is the target of the action (e.g. CommunicationRequest)resource : Reference [0..1] « Any » « This element has or is affected by some invariantsC »A reference to an ActivityDefinition that describes the action to be taken in detail, a PlanDefinition that describes a series of actions to be taken, a Questionnaire that should be filled out, a SpecimenDefinition describing a specimen to be collected, or an ObservationDefinition that specifies what observation should be captureddefinition[x] : PrimitiveType [0..1] « canonical(ActivityDefinition| ObservationDefinition|PlanDefinition|Questionnaire| SpecimenDefinition)|uri »A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the inputtransform : canonical [0..1] « StructureMap »ConditionThe kind of conditionkind : code [1..1] « null (Strength=Required)ActionConditionKind! »An expression that returns true or false, indicating whether or not the condition is satisfiedexpression : Expression [0..1]InputA human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readerstitle : string [0..1]Defines the data that is to be provided as input to the actionrequirement : DataRequirement [0..1] « This element has or is affected by some invariantsC »Points to an existing input or output element that provides data to this inputrelatedData : id [0..1] « This element has or is affected by some invariantsC »OutputA human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readerstitle : string [0..1]Defines the data that results as output from the actionrequirement : DataRequirement [0..1] « This element has or is affected by some invariantsC »Points to an existing input or output element that is results as output from the actionrelatedData : string [0..1] « This element has or is affected by some invariantsC »RelatedActionThe element id of the target related actiontargetId : id [1..1]The relationship of this action to the related actionrelationship : code [1..1] « null (Strength=Required)ActionRelationshipType! »The relationship of the end of this action to the related actionendRelationship : code [0..1] « null (Strength=Required)ActionRelationshipType! »A duration or range of durations to apply to the relationship. For example, 30-60 minutes beforeoffset[x] : DataType [0..1] « Duration|Range »ParticipantThe type of participant in the actiontype : code [0..1] « null (Strength=Required)ActionParticipantType! »The type of participant in the actiontypeCanonical : canonical [0..1] « CapabilityStatement »The type of participant in the actiontypeReference : Reference [0..1] « CareTeam|Device|DeviceDefinition| Endpoint|Group|HealthcareService|Location|Organization|Patient| Practitioner|PractitionerRole|RelatedPerson »The role the participant should play in performing the described actionrole : CodeableConcept [0..1] « null (Strength=Example)ActionParticipantRole?? »Indicates how the actor will be involved in the action - author, reviewer, witness, etcfunction : CodeableConcept [0..1] « null (Strength=Example)ActionParticipantFunction?? »A reference to the actual participantactor[x] : DataType [0..1] « canonical(CapabilityStatement)| Reference(CareTeam|Device|DeviceDefinition|Endpoint|Group| HealthcareService|Location|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) »DynamicValueThe path to the element to be customized. This is the path on the resource that will hold the result of the calculation defined by the expression. The specified path SHALL be a FHIRPath resolvable on the specified target type of the ActivityDefinition, and SHALL consist only of identifiers, constant indexers, and a restricted subset of functions. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details)path : string [0..1]An expression specifying the value of the customized elementexpression : Expression [0..1]An expression that describes applicability criteria, or start/stop conditions for the actioncondition[0..*]Defines input data requirements for the actioninput[0..*]Defines the outputs of the action, if anyoutput[0..*]A relationship to another action such as "before" or "30-60 minutes after start of"relatedAction[0..*]The participant that should perform or be responsible for this actionparticipant[0..*]Customizations that should be applied to the statically defined resource. For example, if the dosage of a medication must be computed based on the patient's weight, a customization would be used to specify an expression that calculated the weight, and the path on the resource that would contain the resultdynamicValue[0..*]Sub actionsaction[0..*]The actions, if any, produced by the evaluation of the artifactaction[0..*]

XML Template

<RequestOrchestration xmlns="http://hl7.org/fhir"> doco
 <!-- 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><!-- 0..1 CodeableConcept E.g. Nurse, Surgeon, Parent, etc icon --></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

{doco
  "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 icon
      "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/> .doco


[ 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
  • Name Changed from RequestGroup to RequestOrchestration
RequestOrchestration
  • Moved from RequestGroup to RequestOrchestration
RequestOrchestration.subject
  • Type Reference: Added Target Types CareTeam, Device, HealthcareService, Location, Organization, Practitioner, PractitionerRole, RelatedPerson
RequestOrchestration.reason
  • Added Element
RequestOrchestration.goal
  • Added Element
RequestOrchestration.action.linkId
  • Added Element
RequestOrchestration.action.description
  • Type changed from string to markdown
RequestOrchestration.action.textEquivalent
  • Type changed from string to markdown
RequestOrchestration.action.goal
  • Added Element
RequestOrchestration.action.input
  • Added Element
RequestOrchestration.action.input.title
  • Added Element
RequestOrchestration.action.input.requirement
  • Added Element
RequestOrchestration.action.input.relatedData
  • Added Element
RequestOrchestration.action.output
  • Added Element
RequestOrchestration.action.output.title
  • Added Element
RequestOrchestration.action.output.requirement
  • Added Element
RequestOrchestration.action.output.relatedData
  • Added Element
RequestOrchestration.action.relatedAction.targetId
  • Added Mandatory Element
RequestOrchestration.action.relatedAction.endRelationship
  • Added Element
RequestOrchestration.action.location
  • Added Element
RequestOrchestration.action.participant
  • Type changed from Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device) to BackboneElement
RequestOrchestration.action.participant.type
  • Added Element
RequestOrchestration.action.participant.typeCanonical
  • Added Element
RequestOrchestration.action.participant.typeReference
  • Added Element
RequestOrchestration.action.participant.role
  • Added Element
RequestOrchestration.action.participant.function
  • Added Element
RequestOrchestration.action.participant.actor[x]
  • Added Element
RequestOrchestration.action.definition[x]
  • Added Element
RequestOrchestration.action.transform
  • Added Element
RequestOrchestration.action.dynamicValue
  • Added Element
RequestOrchestration.action.dynamicValue.path
  • Added Element
RequestOrchestration.action.dynamicValue.expression
  • Added Element
RequestGroup.reasonCode
  • Deleted
RequestGroup.reasonReference
  • Deleted
RequestGroup.action.relatedAction.actionId
  • Deleted

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

PathValueSetTypeDocumentation
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 icon 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.

UniqueKeyLevelLocationDescriptionExpression
img pld-0Rule RequestOrchestration.action.inputInput data elements must have a requirement or a relatedData, but not bothrequirement.exists() xor relatedData.exists()
img pld-1Rule RequestOrchestration.action.outputOutput data element must have a requirement or a relatedData, but not bothrequirement.exists() xor relatedData.exists()
img rqg-1Rule RequestOrchestration.actionMust have resource or action but not bothresource.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:

  • TODO

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.

NameTypeDescriptionExpressionIn Common
authorreferenceThe author of the request orchestrationRequestOrchestration.author
(Practitioner, Device, PractitionerRole)
authoreddateThe date the request orchestration was authoredRequestOrchestration.authoredOn
based-onreferenceWhat this request fullfills.RequestOrchestration.basedOn
(Any)
codetokenThe code of the request orchestrationRequestOrchestration.code22 Resources
encounterreferenceThe encounter the request orchestration applies toRequestOrchestration.encounter
(Encounter)
29 Resources
group-identifiertokenThe group identifier for the request orchestrationRequestOrchestration.groupIdentifier
identifiertokenExternal identifiers for the request orchestrationRequestOrchestration.identifier65 Resources
instantiates-canonicalreferenceThe FHIR-based definition from which the request orchestration is realizedRequestOrchestration.instantiatesCanonical
instantiates-uriuriThe external definition from which the request orchestration is realizedRequestOrchestration.instantiatesUri
intenttokenThe intent of the request orchestrationRequestOrchestration.intent
participantreferenceThe participant in the requests in the orchestrationRequestOrchestration.action.participant.actor.ofType(Reference) | RequestOrchestration.action.participant.actor.ofType(canonical)
(Group, Organization, CareTeam, Device, Patient, HealthcareService, PractitionerRole, RelatedPerson, Practitioner, Endpoint, CapabilityStatement, DeviceDefinition, Location)
patientreferenceThe identity of a patient to search for request orchestrationsRequestOrchestration.subject.where(resolve() is Patient)
(Patient)
66 Resources
prioritytokenThe priority of the request orchestrationRequestOrchestration.priority
statustokenThe status of the request orchestrationRequestOrchestration.status
subjectreferenceThe subject that the request orchestration is aboutRequestOrchestration.subject
(Practitioner, Group, Organization, CareTeam, Device, Patient, HealthcareService, PractitionerRole, RelatedPerson, Location)