PlanDefinition
Introduction
Scope and Usage
This resource is a definition resource from a FHIR workflow perspective - see Workflow, specifically Definition.
A plan definition is a pre-defined group of actions to be taken in particular circumstances, often including conditional elements, options, and other decision points. The resource is flexible enough to be used to represent a variety of workflows, as well as clinical decision support and quality improvement assets, including order sets, protocols, and decision support rules.
PlanDefinitions can contain hierarchical groups of action definitions, where each action definition describes an activity to be performed (often in terms of an ActivityDefinition resource), and each group defines additional behavior, relationships, and applicable conditions between the actions in the overall definition.
In addition to describing what should take place, each action in a plan definition can specify when and whether the action should take place. For when the action should be taken, the trigger element specifies the action should be taken in response to some trigger occurring (such as a particular point in a workflow being reached, or as the result of a prescription being ordered). For whether the action should be taken, the condition element can be used to provide an expression that evaluates to true or false to indicate the applicability of the action to the specific context.
The process of applying a PlanDefinition to a particular context typically produces request resources representing the actions that should be performed, grouped within a RequestOrchestration to capture relationships between the resulting request resources.
Each ActivityDefinition is used to construct a specific resource, based on the definition of the activity and combined with contextual information for the particular patient that the plan definition is being applied to.
As with the ActivityDefinition, a PlanDefinition may provide information about how to transform the activity to a specific intent resource, either by specifying a StructureMap that can be used to perform the transformation completely, or by specifying values for specific elements of the resulting resource using dynamicValue elements in the action.
Note that these mechanisms are provided on both the ActivityDefinition and the PlanDefinition to allow both reusable transformation descriptions, as well as customization of those descriptions within specific contexts. As such, the transform descriptions specified on the PlanDefinition override transform descriptions defined on the ActivityDefinition.
Dynamic values within the definitions can be provided by specifying the expression directly, or by referencing an expression defined within a library. For more information on how to reference expressions within resources, refer to the Using Expressions topic.
As an example, the Low Suicide Risk example order set from the Clinical Decision Support Knowledge Artifact Specification can be represented using the PlanDefinition and ActivityDefinition structures: Low Suicide Risk Example Order Set.
In addition to the representation of PlanDefinitions, the $apply operation allows PlanDefinitions to be applied to a specific context such as a patient, practitioner, or institution. For Order Sets specifically, this operation is expected to place the orders defined by the order set, consistent with the service functional requirements defined by the Order Set specification.
Plan definitions also allow for the definition of goals. Actions in the plan definition can then reference these goals in order to indicate that the action should be taken in fulfillment of the goal. Note that the goal-relationship extension can be used to describe relationships between goal definitions, and the satisfies-requirement extension can be used to indicate that the goal satisfies a particular requirement.
Boundaries and Relationships
The PlanDefinition resource is used to describe series, sequences, or groups of actions to be taken, while the ActivityDefinition resource is used to define each specific step or activity to be performed.
As the name implies, the PlanDefinition resource is strictly definitional. It does not represent the intention to take any action, nor does it represent that any actions have been taken. Rather, the resource provides a definition that can be applied in the appropriate circumstances. When the plan definition is applied, the result will in general be a set of actions that should be (or potentially even have been) performed.
Note that the PlanDefinition still has action-level information, as well as a reference to an ActivityDefinition. The action-level information defined in the PlanDefinition itself is used to describe how the actions are related to each other within the plan, where the ActivityDefinition contains only information about the activity itself. In addition, there is some overlapping information that allows the resources to be used independently, or in combination. See the Applying a PlanDefinition section for more information.
Background and Context
Provides additional detail on exactly how the resource is to be used
Notes
Applying a PlanDefinition
The following diagram illustrates the relationship between the PlanDefinition and ActivityDefinition resources, as well as a typical realization to RequestOrchestration and Request-pattern resources. The resources depicted on the left side of the arrow are definition resources, while the ones on the right side of the arrow are request resources, with the arrow representing the $apply operation:

The PlanDefinition and ActivityDefinition resources support the representation of a broad range of use cases including order sets, documentation templates, event-condition-action rules, clinical protocols, and research trials. To support this range of use cases, as well as the variability in capabilities of systems that use these types of artifacts, this specification is not prescriptive about exactly how these definitions are applied to produce request and event resources. However, the approach depicted above provides a general framework for the process, and the following steps provide more detail on the potential approach:
- Create a Bundle resource to contain the overall results of the realization.
- Create a RequestOrchestration resource focused on the Patient in context and linked to the PlanDefinition using the
instantiatesCanonicalelement - Set the first entry of the Bundle to the newly created RequestOrchestration resource
- Create Goal resources based on the
goaldefinitions in the PlanDefinition - Process each
actionelement of the PlanDefinition, in order
Processing for each action proceeds according to the following steps:
- Determine applicability by evaluating the applicability conditions defined for the element
- If the action is applicable, determine whether the action is a group or a single, atomic activity (does the action have child actions?)
- If the action is atomic, process according to the following steps:
- Create an
actionelement in the RequestOrchestration. If the element has alinkId, set thelinkId>element of the new action to the same value. Note that for legacy PlanDefinitions, this action linking was accomplished with theidelement, so for backwards compatibility, implementations may set theidelement of the newly created action as well. - Apply the elements of the
actionto the corresponding elements of the newly createdactionin the RequestOrchestration such astitle,description,textEquivalent,timing, and so on - Carry any start and stop conditions defined in the plan action forward to the request group action.
- There are multiple possibilities for the
definitionelement:- ActivityDefinition:
- Create the target resource as described in the Applying an ActivityDefinition topic
- Reference the resulting resource in the
resourceelement of the action and add the resource as an entry in the overall result Bundle. - Set the
intentof the target resource to option so that it is clearly indicated as part of a RequestOrchestration. Note that the ActivityDefinition/$apply operation will not necessarily produce the resource with this status, so this is an important step. - Apply any overrides based on the elements of the
action(see the section on Overlap below for details)
- PlanDefinition:
- Create a RequestOrchestration by applying the target PlanDefinition
- Reference the resulting resource in the
resourceelement of the action and add it as an entry in the overall result Bundle. - Set the
intentof the RequestOrchestration to option so that it is clearly indicated as part of a RequestOrchestration. - Apply any overrides based on the elements of the
actionsuch astitle,description, anddynamicValue.
- Other definitional resource types:
- Create a Task resource
- Reference the task resource in the
resourceelement of the action and add the resource as an entry in the overall result Bundle. - Set the
focuselement of the task to the definitional resource. - Set the
codeelement of the task to an appropriate code, such asfulfill.
- ActivityDefinition:
- Create an
- If the action is a group, determine which actions to process based on the behaviors specified in the group. Note that this aspect of the process may require input from a user. In these cases, either the choices made by the user can be provided as input to the process, or the process can be performed as part of a user-entry workflow that enables user input to be provided as necessary. If no behaviors are specified, default behavior for each behavior element is assumed (i.e. logical-group, all actions apply and are optional, no action is pre-selected, and all actions are assumed singular).
Note that if there is no optionality in the resulting resources, systems may choose to return the request resources directly, rather than organizing them within an overall RequestOrchestration. This means that the result of the operation may be any combination of request Resources, including CarePlan, RequestOrchestration, and individual request resources such as ServiceRequest and MedicationRequest.
The parameters to the $apply operation are available within dynamicValue CQL and FHIRPath expressions as context variables, accessible by the name of the parameter prefixed with a percent (%) symbol. For example, to access the subject given to the apply, use the expression %subject. The value of the %subject context variable in a dynamicValue expression is determined using the current subject, as specified by the subject element on the PlanDefinition, current PlanDefinition.action, or ActivityDefinition.
In addition to the $apply operation parameters, the context variable %action can be used within the path element of a dynamicValue to specify the current action target. For example, to specify the path to the description element of the current action, use %action.description.
In addition, the subject element establishes the context for CQL expressions evaluated during the operation, as discussed in the Evaluation Context discussion in the Using Expressions topic.
Note that result of this operation is transient (i.e. none of the resources created by the operation are persisted in the server, they are all returned as contained resources in the result). The result effectively represents a proposed set of activities, and it is up to the caller to determine whether and how those activities are actually carried out.
Event Resources
The ActivityDefinition resource may only specify Request resource types to facilitate considering user input as part of processing the result of any automated clinical reasoning processes. To support creation of event resources, such as Observations, RiskAssessments, and DetectedIssues, use a Task resource with the focus of the task set to the event resource to be created.
Overlap with ActivityDefinition
As noted in the Boundaries section, there is some overlap between the content that can be represented within the action element of a PlanDefinition, and the elements of the ActivityDefinition resource. This overlap allows for both resources to be used independently, as well as in combination. For example, a PlanDefinition may be used without any supporting ActivityDefinitions to describe a particular workflow, where it is sufficient to describe the actions simply as textual descriptions of what needs to take place. On the other hand, the PlanDefinition may be used together with ActivityDefinition to provide a detailed structural representation of the activities to be performed.
In general, where there is overlap, the elements from the PlanDefinition provide overriding behavior. Specifically, the following elements of action overlap with ActivityDefinition:
| Element | Behavior |
|---|---|
| title | The title element in ActivityDefinition is the title of the activity "as defined", where the title element in PlanDefinition reflects the title in the scope of the plan. |
| description | The description element in ActivityDefinition is the description of the activity "as defined", where the description element in PlanDefinition reflects the description in the scope of the plan. |
| code | The code element in ActivityDefinition represents the meaning of the activity "as defined", where the code element in PlanDefinition represents the meaning in the scope of the plan. |
| documentation | The documentation element in PlanDefinition represents additional documentation for the action specific to the scope of the plan, where the relatedArtifact element in ActivityDefinition provides documentation specific to the activity itself. |
| timing | The timing element in ActivityDefinition represents timings associated within the activity itself, where the timing element in PlanDefinition represents the timing of the activity with respect to the plan and its other actions. When a timing is provided on both, the timing defined in the plan generally takes precedence. |
| asNeeded | The asNeeded element allows pre-conditions to be associated with an action or activity. When asNeeded is specified on both, the value specified in the plan generally takes precedence. |
| participant | The participant element in ActivityDefinition represents what type of actor is expected to perform the activity generally, where the participant element in PlanDefinition represents the type of actor that is expected to perform the activity in the context of the plan. |
| transform | The transform element in ActivityDefinition describes the transformation of the definition to a request or event resource in general, where the transform element in PlanDefinition describes the transformation within the scope of the plan. When a transform is present in both, the transform in the plan takes precedence. |
| dynamicValue | The dynamicValue element in ActivityDefinition defines values for elements of the target request or event resource in general, where the dynamicValue element in PlanDefinition defines values within the scope of the plan. When dynamic values are present in both, the dynamic values from the ActivityDefinition are applied first (in the order in which they appear on the ActivityDefinition), followed by the dynamic values from the PlanDefinition (in the order in which they appear on the PlanDefinition). |
StructureDefinition
Elements (Simplified)
- PlanDefinition [0..*]: - The definition of a plan for a series of actions, independent of any specific patient or context
- PlanDefinition.url [0..1]: uri Canonical identifier for this plan definition, represented as a URI (globally unique)
- PlanDefinition.identifier [0..*]: Identifier Additional identifier for the plan definition
- PlanDefinition.version [0..1]: string Business version of the plan definition
- PlanDefinition.versionAlgorithm[x] [0..1]: string, Coding extensible:version-algorithm How to compare versions
- PlanDefinition.name [0..1]: string Name for this plan definition (computer friendly)
- PlanDefinition.title [0..1]: string Name for this plan definition (human friendly)
- PlanDefinition.subtitle [0..1]: string Subordinate title of the plan definition
- PlanDefinition.type [0..1]: CodeableConcept extensible:plan-definition-type order-set | protocol | eca-rule | workflow-definition | etc.
- PlanDefinition.status [1..1]: code required:publication-status draft | active | retired | unknown
- PlanDefinition.experimental [0..1]: boolean For testing only - never for real usage
- PlanDefinition.subject[x] [0..1]: CodeableConcept, [Reference(Group](/Reference(Group), MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, PackagedProductDefinition)), canonical extensible:participant-resource-types Type of individual the plan definition is focused on
- PlanDefinition.date [0..1]: dateTime Date last changed
- PlanDefinition.publisher [0..1]: string Name of the publisher/steward (organization or individual)
- PlanDefinition.contact [0..*]: ContactDetail Contact details for the publisher
- PlanDefinition.description [0..1]: markdown Natural language description of the plan definition
- PlanDefinition.useContext [0..*]: UsageContext The context that the content is intended to support
- PlanDefinition.jurisdiction [0..*]: CodeableConcept extensible:jurisdiction Jurisdiction of the authority that maintains the plan definition (if applicable)
- PlanDefinition.purpose [0..1]: markdown Why this plan definition is defined
- PlanDefinition.usage [0..1]: markdown Describes the clinical usage of the plan
- PlanDefinition.copyright [0..1]: markdown Notice about intellectual property ownership, can include restrictions on use
- PlanDefinition.copyrightLabel [0..1]: string Copyright holder and year(s)
- PlanDefinition.approvalDate [0..1]: date When the plan definition was approved by publisher
- PlanDefinition.lastReviewDate [0..1]: date When the plan definition was last reviewed by the publisher
- PlanDefinition.effectivePeriod [0..1]: Period When the plan definition is expected to be used
- PlanDefinition.topic [0..*]: CodeableConcept example:definition-topic E.g. Education, Treatment, Assessment
- PlanDefinition.author [0..*]: ContactDetail Who authored the content
- PlanDefinition.editor [0..*]: ContactDetail Who edited the content
- PlanDefinition.reviewer [0..*]: ContactDetail Who reviewed the content
- PlanDefinition.endorser [0..*]: ContactDetail Who endorsed the content
- PlanDefinition.relatedArtifact [0..*]: RelatedArtifact Additional documentation, citations
- PlanDefinition.library [0..*]: canonical Logic used by the plan definition
- PlanDefinition.goal [0..*]: BackboneElement What the plan is trying to accomplish
- PlanDefinition.goal.category [0..1]: CodeableConcept example:goal-category E.g. Treatment, dietary, behavioral
- PlanDefinition.goal.description [1..1]: CodeableConcept example:clinical-findings Code or text describing the goal
- PlanDefinition.goal.priority [0..1]: CodeableConcept preferred:goal-priority high-priority | medium-priority | low-priority
- PlanDefinition.goal.start [0..1]: CodeableConcept example:goal-start-event When goal pursuit begins
- PlanDefinition.goal.addresses [0..*]: CodeableConcept example:condition-code What does the goal address
- PlanDefinition.goal.documentation [0..*]: RelatedArtifact Supporting documentation for the goal
- PlanDefinition.goal.target [0..*]: BackboneElement Target outcome for the goal
- PlanDefinition.goal.target.measure [0..1]: CodeableConcept example:observation-codes The parameter whose value is to be tracked
- PlanDefinition.goal.target.detail[x] [0..1]: Quantity, Range, CodeableConcept, string, boolean, integer, Ratio The target value to be achieved
- PlanDefinition.goal.target.due [0..1]: Duration Reach goal within
- PlanDefinition.actor [0..*]: BackboneElement Actors within the plan
- PlanDefinition.actor.title [0..1]: string User-visible title
- PlanDefinition.actor.description [0..1]: markdown Describes the actor
- PlanDefinition.actor.option [1..*]: BackboneElement Who or what can be this actor
- PlanDefinition.actor.option.type [0..1]: code required:action-participant-type careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
- PlanDefinition.actor.option.typeCanonical [0..1]: canonical Who or what can participate
- PlanDefinition.actor.option.typeReference [0..1]: [Reference(BiologicallyDerivedProduct](/Reference(BiologicallyDerivedProduct), CareTeam, Device, Endpoint, HealthcareService, Location, Medication, MedicinalProductDefinition, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson, Specimen, Substance, SubstanceDefinition)) Who or what can participate
- PlanDefinition.actor.option.role [0..1]: CodeableConcept example:action-participant-role E.g. Nurse, Surgeon, Parent
- PlanDefinition.action [0..*]: BackboneElement Action defined by the plan
- PlanDefinition.action.linkId [0..1]: string Unique id for the action in the PlanDefinition
- PlanDefinition.action.prefix [0..1]: string User-visible prefix for the action (e.g. 1. or A.)
- PlanDefinition.action.title [0..1]: string User-visible title
- PlanDefinition.action.description [0..1]: markdown Brief description of the action
- PlanDefinition.action.textEquivalent [0..1]: markdown Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
- PlanDefinition.action.priority [0..1]: code required:request-priority routine | urgent | asap | stat
- PlanDefinition.action.code [0..1]: CodeableConcept example:action-code Code representing the meaning of the action or sub-actions
- PlanDefinition.action.reason [0..*]: CodeableConcept example:action-reason-code Why the action should be performed
- PlanDefinition.action.documentation [0..*]: RelatedArtifact Supporting documentation for the intended performer of the action
- PlanDefinition.action.goalId [0..*]: string What goals this action supports
- PlanDefinition.action.subject[x] [0..1]: CodeableConcept, Reference(Group), canonical extensible:participant-resource-types Type of individual the action is focused on
- PlanDefinition.action.trigger [0..*]: TriggerDefinition When the action should be triggered
- PlanDefinition.action.condition [0..*]: BackboneElement Whether or not the action is applicable
- PlanDefinition.action.condition.kind [1..1]: code required:action-condition-kind applicability | start | stop
- PlanDefinition.action.condition.expression [0..1]: Expression Boolean-valued expression
- PlanDefinition.action.input [0..*]: BackboneElement Input data requirements
- PlanDefinition.action.input.title [0..1]: string User-visible title
- PlanDefinition.action.input.requirement [0..1]: DataRequirement What data is provided
- PlanDefinition.action.input.relatedData [0..1]: string What data is provided
- PlanDefinition.action.output [0..*]: BackboneElement Output data definition
- PlanDefinition.action.output.title [0..1]: string User-visible title
- PlanDefinition.action.output.requirement [0..1]: DataRequirement What data is provided
- PlanDefinition.action.output.relatedData [0..1]: string What data is provided
- PlanDefinition.action.relatedAction [0..*]: BackboneElement Relationship to another action
- PlanDefinition.action.relatedAction.targetId [1..1]: string What action is this related to
- PlanDefinition.action.relatedAction.relationship [1..1]: code required:action-relationship-type before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
- PlanDefinition.action.relatedAction.endRelationship [0..1]: code required:action-relationship-type before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
- PlanDefinition.action.relatedAction.offset[x] [0..1]: Duration, Range Time offset for the relationship
- PlanDefinition.action.timing[x] [0..1]: Age, Duration, Range, Timing, RelativeTime When the action should take place
- PlanDefinition.asNeeded[x] [0..1]: boolean, CodeableConcept example:medication-as-needed-reason Preconditions for service
- PlanDefinition.action.location [0..1]: CodeableReference Where it should happen
- PlanDefinition.action.participant [0..*]: BackboneElement Who should participate in the action
- PlanDefinition.action.participant.actorId [0..1]: string What actor
- PlanDefinition.action.participant.type [0..1]: code required:action-participant-type careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
- PlanDefinition.action.participant.typeCanonical [0..1]: canonical Who or what can participate
- PlanDefinition.action.participant.typeReference [0..1]: [Reference(BiologicallyDerivedProduct](/Reference(BiologicallyDerivedProduct), CareTeam, Device, Endpoint, HealthcareService, Location, Medication, MedicinalProductDefinition, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson, Specimen, Substance, SubstanceDefinition)) Who or what can participate
- PlanDefinition.action.participant.role [0..1]: CodeableConcept example:action-participant-role E.g. Nurse, Surgeon, Parent
- PlanDefinition.action.participant.function [0..1]: CodeableConcept example:action-participant-function E.g. Author, Reviewer, Witness, etc
- PlanDefinition.action.type [0..1]: CodeableConcept extensible:action-type create | update | remove | fire-event | etc.
- PlanDefinition.action.applicabilityBehavior [0..1]: code required:action-applicability-behavior all | any
- PlanDefinition.action.groupingBehavior [0..1]: code required:action-grouping-behavior visual-group | logical-group | sentence-group
- PlanDefinition.action.selectionBehavior [0..1]: code required:action-selection-behavior any | all | all-or-none | exactly-one | at-most-one | one-or-more
- PlanDefinition.action.requiredBehavior [0..1]: code required:action-required-behavior must | could | must-unless-documented
- PlanDefinition.action.precheckBehavior [0..1]: code required:action-precheck-behavior yes | no
- PlanDefinition.action.cardinalityBehavior [0..1]: code required:action-cardinality-behavior single | multiple
- PlanDefinition.action.definition[x] [0..1]: canonical, uri Description of the activity to be performed
- PlanDefinition.action.transform [0..1]: canonical Transform to apply the template
- PlanDefinition.action.dynamicValue [0..*]: BackboneElement Dynamic aspects of the definition
- PlanDefinition.action.dynamicValue.path [0..1]: string The path to the element to be set dynamically
- PlanDefinition.action.dynamicValue.expression [0..1]: Expression An expression that provides the dynamic value for the customization
- PlanDefinition.action.action [0..*]: - A sub-action
Mappings
- PlanDefinition Mappings — 151 mapping entries
Operations
- apply — Apply — The apply operation applies a PlanDefinition to a given subject or group of subjects, instantiating applicable actions and returning the results as bundles of request resources.
- data-requirements — Data Requirements — The data-requirements operation aggregates and returns the parameters and data requirements for the plan definition and all its dependencies as a single module definition library
Resource Packs
list-PlanDefinition-packs.xml
<?xml version="1.0" encoding="UTF-8"?>
<List xmlns="http://hl7.org/fhir">
<id value="PlanDefinition-packs"/>
<status value="current"/>
<mode value="working"/>
</List>
Search Parameters
- composed-of — reference — What resource is being referenced —
PlanDefinition.relatedArtifact.where(type='composed-of').resource - context — token — A use context assigned to the plan definition —
(PlanDefinition.useContext.value.ofType(CodeableConcept)) - context-quantity — quantity — A quantity- or range-valued use context assigned to the plan definition —
(PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) - context-type — token — A type of use context assigned to the plan definition —
PlanDefinition.useContext.code - context-type-quantity — composite — A use context type and quantity- or range-based value assigned to the plan definition —
PlanDefinition.useContext - context-type-value — composite — A use context type and value assigned to the plan definition —
PlanDefinition.useContext - date — date — The plan definition publication date —
PlanDefinition.date - definition — reference — Activity or plan definitions used by plan definition —
PlanDefinition.repeat(action).definition.ofType(canonical) | PlanDefinition.repeat(action).definition.ofType(uri) - depends-on — reference — What resource is being referenced —
PlanDefinition.relatedArtifact.where(type='depends-on').resource | PlanDefinition.library - derived-from — reference — What resource is being referenced —
PlanDefinition.relatedArtifact.where(type='derived-from').resource - description — string — The description of the plan definition —
PlanDefinition.description - effective — date — The time during which the plan definition is intended to be in use —
PlanDefinition.effectivePeriod - identifier — token — External identifier for the plan definition —
PlanDefinition.identifier - jurisdiction — token — Jurisdiction of the authority that maintains the the plan definition —
PlanDefinition.jurisdiction - name — string — Computationally friendly name of the plan definition —
PlanDefinition.name - predecessor — reference — What resource is being referenced —
PlanDefinition.relatedArtifact.where(type='predecessor').resource - publisher — string — Name of the publisher of the plan definition —
PlanDefinition.publisher - status — token — The current status of the plan definition —
PlanDefinition.status - subject-code — token — The subject of the PlanDefinition when expressed as a code —
PlanDefinition.subject as CodeableConcept - subject-reference — reference — The subject of the PlanDefinition when expressed as a reference —
PlanDefinition.subject as Reference - subject-canonical — reference — The subject of the PlanDefinition when expressed as a canonical —
PlanDefinition.subject as canonical - successor — reference — What resource is being referenced —
PlanDefinition.relatedArtifact.where(type='successor').resource - title — string — The human-friendly name of the plan definition —
PlanDefinition.title - topic — token — Topics associated with the module —
PlanDefinition.topic - type — token — The type of artifact the plan (e.g. order-set, eca-rule, protocol) —
PlanDefinition.type - url — uri — The uri that identifies the plan definition —
PlanDefinition.url - version — token — The business version of the plan definition —
PlanDefinition.version - experimental — token — Whether the PlanDefinition is experimental —
PlanDefinition.experimental
Examples
- chlamydia-screening-intervention — plandefinition-chlamydia-screening-intervention — Chlamydia Screening CDS example
- example-cardiology-os — plandefinition-example-cardiology-os — Chest Pain Coronary Artery Disease Order Set KNART
- exclusive-breastfeeding-intervention-01 — plandefinition-exclusive-breastfeeding-intervention-01 — Exclusive Breastfeeding Intervention 01
- exclusive-breastfeeding-intervention-02 — plandefinition-exclusive-breastfeeding-intervention-02 — Exclusive Breastfeeding Intervention 02
- exclusive-breastfeeding-intervention-03 — plandefinition-exclusive-breastfeeding-intervention-03 — Exclusive Breastfeeding Intervention 03
- exclusive-breastfeeding-intervention-04 — plandefinition-exclusive-breastfeeding-intervention-04 — Exclusive Breastfeeding Intervention 04
- KDN5 — plandefinition-example-kdn5-simplified — Chemotherapy Regimen
- low-suicide-risk-order-set — plandefinition-example — Low Suicide Risk Order Set
- opioidcds-04 — plandefinition-opioidcds-04 — Opioid CDS Recommendation 4 ECA Rule
- opioidcds-05 — plandefinition-opioidcds-05 — Opioid CDS Recommendation 5 ECA Rule
- opioidcds-07 — plandefinition-opioidcds-07 — Opioid CDS Recommendation 7 ECA Rule
- opioidcds-08 — plandefinition-opioidcds-08 — Opioid CDS Recommendation 8 ECA Rule
- opioidcds-10 — plandefinition-opioidcds-10 — Opioid CDS Recommendation 10 ECA Rule
- opioidcds-11 — plandefinition-opioidcds-11 — Opioid CDS Recommendation 11 ECA Rule
- options-example — plandefinition-options-example — Plan Definition Illustrating Related Actions
- plandefinition-example — plandefinition-example
- plandefinition-example-cardiology-os — plandefinition-example-cardiology-os
- plandefinition-example-episode-of-care — plandefinition-example-episode-of-care
- plandefinition-example-kdn5-simplified — plandefinition-example-kdn5-simplified
- plandefinition-examples-header — plandefinition-examples-header
- plandefinition-predecessor-example — plandefinition-predecessor-example — Plan Definition Illustrating Predecessor Relationship
- protocol-example — plandefinition-protocol-example — Obesity Assessment Protocol
- zika-virus-intervention — plandefinition-zika-virus-intervention — Zika Virus Infection Management Process
Mapping Exceptions
plandefinition-definition-mapping-exceptions.xml
Divergent Elements
- Definition.url → PlanDefinition.url
- shortUnmatched | reason=Unknown | pattern=Canonical identifier for this plan definition, represented as an absolute URI (globally unique) | resource=Canonical identifier for this plan definition, represented as a URI (globally unique)
- commentsUnmatched | reason=Unknown | pattern=Can be a
urn:uuid:or aurn:oid:but realhttp/s:addresses are preferred. Multiple instances may share the same URL if they have a distinct version.
The determination of when to create a new version of a resource (same url, new version) vs. defining a new artifact is up to the author. Considerations for making this decision are found in Technical and Business Versions.
In some cases, the resource can no longer be found at the stated url, but the url itself cannot change. Implementations can use the meta.source element to indicate where the current master source of the resource can be found. | resource=Can be a urn:uuid: or a urn:oid: but real http: addresses are preferred. Multiple instances may share the same URL if they have a distinct version.
The determination of when to create a new version of a resource (same url, new version) vs. defining a new artifact is up to the author. Considerations for making this decision are found in Technical and Business Versions.
In some cases, the resource can no longer be found at the stated url, but the url itself cannot change. Implementations can use the meta.source element to indicate where the current master source of the resource can be found.
- Definition.identifier → PlanDefinition.identifier
- shortUnmatched | reason=Unknown | pattern=Business identifier for plan definition | resource=Additional identifier for the plan definition
- commentsUnmatched | reason=Unknown | pattern=Typically, this is used for identifiers that can go in an HL7 V3 II (instance identifier) data type, and can then identify this plan definition outside of FHIR, where it is not possible to use the logical URI.
- requirementsUnmatched | reason=Unknown | pattern=Allows externally provided and/or usable business identifiers to be easily associated with the plan definition. | resource=Allows externally provided and/or usable business identifiers to be easily associated with the module.
- Definition.version → PlanDefinition.version
- commentsUnmatched | reason=Unknown | pattern=There may be different plan definitions that have the same url but different versions. The version can be appended to the url in a reference to allow a reference to a particular business version of the plan definition with the format. The version SHOULD NOT contain a '#' - see Business Version. | resource=There may be different plan definition instances that have the same identifier but different versions. The version can be appended to the url in a reference to allow a reference to a particular business version of the plan definition with the format [url]|[version]. The version SHOULD NOT contain a '#' - see Business Version.
- Definition.name → PlanDefinition.name
- commentsUnmatched | reason=Unknown | pattern=The name is not expected to be globally unique. The name should be a simple alphanumeric type no-whitespace name to ensure that it is machine-processing friendly. | resource=The name is not expected to be globally unique. The name should be a simple alphanumeric type name to ensure that it is machine-processing friendly.
- requirementsUnmatched | reason=Unknown | pattern=Supports code generation. | resource=Support human navigation and code generation.
- Definition.title → PlanDefinition.action.title
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Name for this plan definition (human friendly) | resource=User-visible title
- definitionUnmatched | reason=Unknown | pattern=A short, descriptive, user-friendly title for the plan definition. | resource=The textual description of the action displayed to a user. For example, when the action is a test to be performed, the title would be the title of the test such as Assay by HPLC.
- commentsUnmatched | reason=Unknown | pattern=This name does not need to be machine-processing friendly and may contain punctuation, white-space, etc.
- Definition.status → PlanDefinition.status
- definitionUnmatched | reason=Unknown | pattern=The current state of this plan definition. | resource=The status of this plan definition. Enables tracking the life-cycle of the content.
- commentsUnmatched | reason=Unknown | pattern=A nominal state-transition diagram can be found in the] documentation
Unknown does not represent 'other' - one of the defined statuses must apply. Unknown is used when the authoring system is not sure what the current status is. | resource=Allows filtering of plan definitions that are appropriate for use versus not.
See guidance around (not) making local changes to elements here.
- requirementsUnmatched | reason=Unknown | pattern=Enables tracking the lifecycle of the content and filtering of plan definitions that are appropriate for use versus not.
- Definition.subject → PlanDefinition.subject[x]
- missingTypes | reason=Unknown | pattern=CodeableReference(Group)
- extraTypes | reason=Unknown
- summary | reason=Unknown | pattern=true
- bindingStrength | reason=Unknown | pattern=example
- shortUnmatched | reason=Unknown | pattern=Type of individual the defined service is for | resource=Type of individual the plan definition is focused on
- definitionUnmatched | reason=Unknown | pattern=A code or group definition that describes the intended subject of instantiations of this definition. | resource=A code, group definition, or canonical reference that describes or identifies the intended subject of the plan definition. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.
- requirementsUnmatched | reason=Unknown | pattern=Many protocols, order sets and guidelines are intended for use only with specific types of patients or subjects.
- Definition.subject → PlanDefinition.topic
- missingTypes | reason=Unknown | pattern=CodeableReference(Group)
- extraTypes | reason=Unknown
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Type of individual the defined service is for | resource=E.g. Education, Treatment, Assessment
- definitionUnmatched | reason=Unknown | pattern=A code or group definition that describes the intended subject of instantiations of this definition. | resource=Descriptive topics related to the content of the plan definition. Topics provide a high-level categorization of the definition that can be useful for filtering and searching.
- requirementsUnmatched | reason=Unknown | pattern=Many protocols, order sets and guidelines are intended for use only with specific types of patients or subjects. | resource=Repositories must be able to determine how to categorize the plan definition so that it can be found by topical searches.
- Definition.subject → PlanDefinition.action.subject[x]
- missingTypes | reason=Unknown | pattern=CodeableReference(Group)
- extraTypes | reason=Unknown
- summary | reason=Unknown | pattern=true
- bindingStrength | reason=Unknown | pattern=example
- shortUnmatched | reason=Unknown | pattern=Type of individual the defined service is for | resource=Type of individual the action is focused on
- definitionUnmatched | reason=Unknown | pattern=A code or group definition that describes the intended subject of instantiations of this definition. | resource=A code, group definition, or canonical reference that describes the intended subject of the action and its children, if any. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.
- requirementsUnmatched | reason=Unknown | pattern=Many protocols, order sets and guidelines are intended for use only with specific types of patients or subjects. | resource=Multiple steps in a protocol often have different groups of steps that are focused on testing different things. The subject of an action specifies the focus of the action and any child actions.
- Definition.description → PlanDefinition.description
- commentsUnmatched | reason=Unknown | pattern=This description can be used to capture details such as comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the plan definition as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context. | resource=This description can be used to capture details such as comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the plan definition as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context (e.g. the language of the plan definition is presumed to be the predominant language in the place the plan definition was created).
- Definition.description → PlanDefinition.action.description
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Natural language description of the plan definition | resource=Brief description of the action
- definitionUnmatched | reason=Unknown | pattern=A free text natural language description of the plan definition from a consumer's perspective. | resource=A brief description of the action used to provide a summary to display to the user.
- commentsUnmatched | reason=Unknown | pattern=This description can be used to capture details such as comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the plan definition as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context.
- Definition.description → PlanDefinition.action.textEquivalent
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Natural language description of the plan definition | resource=Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
- definitionUnmatched | reason=Unknown | pattern=A free text natural language description of the plan definition from a consumer's perspective. | resource=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 dynamically.
- commentsUnmatched | reason=Unknown | pattern=This description can be used to capture details such as comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the plan definition as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context.
- Definition.useContext → PlanDefinition.useContext
- definitionUnmatched | reason=Unknown | pattern=The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate plan definitions. | resource=The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate plan definition instances.
- commentsUnmatched | reason=Unknown | pattern=When multiple useContexts are specified, there is no expectation that all or even any of the contexts apply. | resource=When multiple useContexts are specified, there is no expectation that all or any of the contexts apply.
- Definition.jurisdiction → PlanDefinition.jurisdiction
- shortUnmatched | reason=Unknown | pattern=Intended jurisdiction for plan definition (if applicable) | resource=Jurisdiction of the authority that maintains the plan definition (if applicable)
- definitionUnmatched | reason=Unknown | pattern=A legal or geographic region in which the plan definition is intended to be used. | resource=A legal or geographic region in which the authority that maintains the resource is operating. In general, the jurisdiction is also found in the useContext. The useContext may reference additional jurisdictions because the defining jurisdiction does not necessarily limit the jurisdictions of use.
- commentsUnmatched | reason=Unknown | pattern=It may be possible for the plan definition to be used in jurisdictions other than those for which it was originally designed or intended
DEPRECATION NOTE: For consistency, implementations are encouraged to migrate to using the new 'jurisdiction' code in the useContext element. (I.e. useContext.code indicating http://terminology.hl7.org/CodeSystem/usage-context-type#jurisdiction and useContext.valueCodeableConcept indicating the jurisdiction.). | resource=It may be possible for the plan definition to be used in jurisdictions other than those for which it was originally designed or intended.
DEPRECATION NOTE: For consistency, implementations are encouraged to migrate to using the new 'jurisdiction' code in the useContext element. (I.e. useContext.code indicating http://terminology.hl7.org/CodeSystem/usage-context-type#jurisdiction and useContext.valueCodeableConcept indicating the jurisdiction.)
- Definition.copyright → PlanDefinition.copyright
- requirementsUnmatched | reason=Unknown | pattern=Consumers of the plan definition must be able to determine any legal restrictions on the use of the artifact and/or its content. | resource=Consumers must be able to determine any legal restrictions on the use of the plan definition and/or its content.
- Definition.effectivePeriod → PlanDefinition.effectivePeriod
- commentsUnmatched | reason=Unknown | pattern=The effective period for a plan definition determines when the content is applicable for usage and is independent of publication and review dates. For example, a measure intended to be used for the year 2016 might be published in 2015. | resource=The effective period for a plan definition determines when the content is applicable for usage and is independent of publication and review dates. For example, a plan definition intended to be used for the year 2016 might be published in 2015.
See guidance around (not) making local changes to elements here.
Unmapped Elements
- Definition.derivedFromCanonical — Unknown
- Definition.product — Unknown
- Definition.code — Unknown
- Definition.derivedFromUri — Unknown
- Definition.performerType — Unknown
- Definition.partOf — Unknown
- Definition.topic — Unknown
plandefinition-fivews-mapping-exceptions.xml
Unmapped Elements
- FiveWs.what — Unknown
- FiveWs.author — Unknown
- FiveWs.actor — Unknown
- FiveWs.cause — Unknown
- FiveWs.where — Unknown
- FiveWs.context — Unknown
- FiveWs.init — Unknown
- FiveWs.source — Unknown
- FiveWs.who — Unknown
- FiveWs.grade — Unknown
- FiveWs.planned — Unknown
- FiveWs.done — Unknown
- FiveWs.subject — Unknown