Release 4 5

This page is part of the FHIR Specification (v4.0.1: R4 (v5.0.0: R5 - Mixed Normative and STU ) ). This is the current published version in it's permanent home (it will always be available at this URL). The current version which supercedes this version is 5.0.0 . For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3

12.18 12.23 Resource PlanDefinition - Content

Clinical Decision Support icon Work Group Maturity Level : 2 4   Trial Use Security Category : Business Compartments : Not linked to any No defined compartments

This resource allows for the definition of various types of plans as a sharable, consumable, and executable artifact. The resource is general enough to support the description of a broad range of clinical and non-clinical artifacts such as clinical decision support rules, order sets sets, protocols, and protocols. drug quality specifications.

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, typically grouped within a CarePlan and/or RequestGroup 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 icon .

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.

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.

This resource is referenced by UsageContext ,

Structure

Name Flags Card. Type Description & Constraints doco
. . PlanDefinition I TU DomainResource The definition of a plan for a series of actions, independent of any specific patient or context
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation
+ Warning: goalid should reference the id of a goal definition
+ Warning: targetId should reference the id of an action

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
Interfaces Implemented: MetadataResource
. . . url Σ C 0..1 uri Canonical identifier for this plan definition, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . . identifier Σ 0..* Identifier Additional identifier for the plan definition

. . . version Σ 0..1 string Business version of the plan definition
. . name . versionAlgorithm[x] Σ I 0..1 How to compare versions
Binding: Version Algorithm ( Extensible )
.... versionAlgorithmString string
. . . . versionAlgorithmCoding Name for this plan definition (computer friendly) Coding
. . . title name Σ C 0..1 string Name for this plan definition (human (computer friendly)
. . . subtitle title Σ T 0..1 string Name for this plan definition (human friendly)
... subtitle T 0..1 string Subordinate title of the plan definition
. . . type Σ 0..1 CodeableConcept order-set | clinical-protocol | eca-rule | workflow-definition
PlanDefinitionType Binding: Plan Definition Type ( Extensible )
. . . status ?! Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus ( Required )
. . . experimental Σ 0..1 boolean For testing purposes, not real usage
. . . subject[x] 0..1 Type of individual the plan definition is focused on
Subject type Binding: Participant Resource Types ( Extensible )
. . . . subjectCodeableConcept CodeableConcept
. . . . subjectReference Reference ( Group | MedicinalProductDefinition | SubstanceDefinition | AdministrableProductDefinition | ManufacturedItemDefinition | PackagedProductDefinition )
. . . . subjectCanonical canonical ( EvidenceVariable )
. . . date Σ 0..1 dateTime Date last changed
. . . publisher Σ T 0..1 string Name of the publisher publisher/steward (organization or individual)
. . . contact Σ 0..* ContactDetail Contact details for the publisher

. . . description Σ T 0..1 markdown Natural language description of the plan definition
. . . useContext Σ 0..* UsageContext The context that the content is intended to support

. . . jurisdiction Σ XD 0..* CodeableConcept Intended jurisdiction for plan definition (if applicable)
Binding: Jurisdiction ValueSet ( Extensible )

. . . purpose T 0..1 markdown Why this plan definition is defined
. . . usage T 0..1 string markdown Describes the clinical usage of the plan
. . . copyright 0..1 markdown Use and/or publishing restrictions
. . . approvalDate copyrightLabel T 0..1 string Copyright holder and year(s)
... approvalDate 0..1 date When the plan definition was approved by publisher
. . . lastReviewDate 0..1 date When the plan definition was last reviewed by the publisher
. . . effectivePeriod Σ 0..1 Period When the plan definition is expected to be used
. . . topic XD 0..* CodeableConcept E.g. Education, Treatment, Assessment
DefinitionTopic Binding: Definition Topic ( Example )

. . . author 0..* ContactDetail Who authored the content

. . . editor 0..* ContactDetail Who edited the content

. . . reviewer 0..* ContactDetail Who reviewed the content

. . . endorser 0..* ContactDetail Who endorsed the content

. . . relatedArtifact 0..* RelatedArtifact Additional documentation, citations

. . . library 0..* canonical ( Library ) Logic used by the plan definition

. . . goal C 0..* BackboneElement What the plan is trying to accomplish

. . . . category 0..1 CodeableConcept E.g. Treatment, dietary, behavioral
Binding: Goal category Category ( Example )
. . . . description 1..1 CodeableConcept Code or text describing the goal
Binding: SNOMED CT Clinical Findings ( Example )
. . . . priority 0..1 CodeableConcept high-priority | medium-priority | low-priority
Binding: Goal priority Priority ( Preferred )
. . . . start 0..1 CodeableConcept When goal pursuit begins
Binding: Goal start event Start Event ( Example )
. . . . addresses 0..* CodeableConcept What does the goal address
Binding: Condition/Problem/Diagnosis Codes ( Example )

. . . . documentation 0..* RelatedArtifact Supporting documentation for the goal

. . . . target 0..* BackboneElement Target outcome for the goal

. . . . . measure 0..1 CodeableConcept The parameter whose value is to be tracked
Binding: LOINC Codes ( Example )
. . . . . detail[x] 0..1 The target value to be achieved
. . . . . . detailQuantity Quantity
. . . . . . detailRange Range
. . . . . . detailRange detailCodeableConcept CodeableConcept Range
. . . . . . detailString string
. . . . . . detailBoolean boolean
. . . . . . detailInteger integer
. . . . . detailCodeableConcept . detailRatio Ratio
..... due 0..1 Duration Reach goal within
... actor 0..* BackboneElement Actors within the plan

.... title CodeableConcept T 0..1 string User-visible title
. . . . description due T 0..1 markdown Describes the actor
.... option 1..* BackboneElement Who or what can be this actor

..... type 0..1 Duration code Reach goal within careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
Binding: Action Participant Type ( Required )
. . . . . typeCanonical 0..1 canonical ( CapabilityStatement ) Who or what can participate
..... typeReference 0..1 Reference ( CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) Who or what can participate
... . action . role 0..1 CodeableConcept E.g. Nurse, Surgeon, Parent
Binding: Action Participant Role icon ( Example )
... action C 0..* BackboneElement Action defined by the plan

. . . prefix . linkId 0..1 string Unique id for the action in the PlanDefinition
.... prefix 0..1 string User-visible prefix for the action (e.g. 1. or A.)
. . . . title T 0..1 string User-visible title
. . . . description T 0..1 string markdown Brief description of the action
. . . . textEquivalent T 0..1 string markdown Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
. . . . priority 0..1 code routine | urgent | asap | stat
Request priority Binding: RequestPriority ( Required )
. . . . code 0..* 0..1 CodeableConcept Code representing the meaning of the action or sub-actions
Binding: Action Code ( Example )
. . . . reason 0..* CodeableConcept Why the action should be performed
Binding: Action Reason Code ( Example )

. . . . documentation 0..* RelatedArtifact Supporting documentation for the intended performer of the action

. . . . goalId C 0..* id What goals this action supports

. . . . subject[x] 0..1 Type of individual the action is focused on
Subject type Binding: Participant Resource Types ( Extensible )
. . . . . subjectCodeableConcept CodeableConcept
. . . . . subjectReference Reference ( Group )
. . . . . subjectCanonical canonical ()
. . . . trigger 0..* TriggerDefinition When the action should be triggered

. . . . condition 0..* BackboneElement Whether or not the action is applicable

. . . . . kind 1..1 code applicability | start | stop
ActionConditionKind Binding: Action Condition Kind ( Required )
. . . . . expression 0..1 Expression Boolean-valued expression
.... input C 0..1 0..* Expression BackboneElement Boolean-valued expression Input data requirements
+ Rule: Input data elements must have a requirement or a relatedData, but not both

. . . . input . title T 0..* 0..1 string User-visible title
..... requirement C 0..1 DataRequirement What data is provided
..... relatedData Input C 0..1 id What data requirements is provided
. . . . output C 0..* DataRequirement BackboneElement Output data definition
+ Rule: Output data element must have a requirement or a relatedData, but not both

. . . . relatedAction . title T 0..* 0..1 BackboneElement string User-visible title
..... requirement C 0..1 DataRequirement What data is provided
..... relatedData C 0..1 string What data is provided
.... relatedAction C 0..* BackboneElement Relationship to another action

. . . . actionId . targetId C 1..1 id What action is this related to
. . . . . relationship 1..1 code before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
Binding: Action Relationship Type ( Required )
..... endRelationship 1..1 0..1 code before-start | before | before-end before-start | concurrent-with-start before-end | concurrent | concurrent-with-end concurrent-with-start | after-start concurrent-with-end | after | after-start | after-end
ActionRelationshipType Binding: Action Relationship Type ( Required )
. . . . . offset[x] 0..1 Time offset for the relationship
. . . . . . offsetDuration Duration
. . . . . . offsetRange Range
. . . . timing[x] 0..1 When the action should take place
. . . . timingDateTime . timingAge dateTime Age
. . . . . timingAge timingDuration Age Duration
. . . . . timingPeriod timingRange Period Range
. . . . . timingDuration timingTiming Duration Timing
. . . timingRange . location 0..1 Range CodeableReference ( Location ) Where it should happen
. . timingTiming . . participant 0..* Timing BackboneElement Who should participate in the action

. . . . participant . actorId 0..* 0..1 BackboneElement string Who should participate in the action What actor
. . . . . type 1..1 0..1 code careteam | device | group | healthcareservice | location | organization | patient | practitioner | related-person practitionerrole | device relatedperson
ActionParticipantType Binding: Action Participant Type ( Required )
. . . . role . typeCanonical 0..1 canonical ( CapabilityStatement ) Who or what can participate
..... typeReference 0..1 Reference ( CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) Who or what can participate
..... role 0..1 CodeableConcept E.g. Nurse, Surgeon, Parent
Binding: Action participant role Participant Role icon ( Example )
. . . . . type function 0..1 CodeableConcept E.g. Author, Reviewer, Witness, etc
Binding: Action Participant Function ( Example )
.... type 0..1 CodeableConcept create | update | remove | fire-event
ActionType Binding: Action Type ( Extensible )
. . . . groupingBehavior 0..1 code visual-group | logical-group | sentence-group
ActionGroupingBehavior Binding: Action Grouping Behavior ( Required )
. . . . selectionBehavior 0..1 code any | all | all-or-none | exactly-one | at-most-one | one-or-more
ActionSelectionBehavior Binding: Action Selection Behavior ( Required )
. . . . requiredBehavior 0..1 code must | could | must-unless-documented
ActionRequiredBehavior Binding: Action Required Behavior ( Required )
. . . . precheckBehavior 0..1 code yes | no
ActionPrecheckBehavior Binding: Action Precheck Behavior ( Required )
. . . . cardinalityBehavior 0..1 code single | multiple
ActionCardinalityBehavior Binding: Action Cardinality Behavior ( Required )
. . . . definition[x] 0..1 Description of the activity to be performed
. . . . . definitionCanonical canonical ( ActivityDefinition | MessageDefinition | ObservationDefinition | PlanDefinition | Questionnaire | SpecimenDefinition )
. . . . . definitionUri uri
. . . . transform 0..1 canonical ( StructureMap ) Transform to apply the template
. . . . dynamicValue 0..* BackboneElement Dynamic aspects of the definition

. . . . . path 0..1 string The path to the element to be set dynamically
. . . . . expression 0..1 Expression An expression that provides the dynamic value for the customization
. . . . action 0..* see action A sub-action

. . . asNeeded[x] Σ 0..1 Preconditions for service
Binding: SNOMED CT Medication As Needed Reason Codes ( Example )
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

PlanDefinition ( DomainResource ) + MetadataResource An absolute URI that is used to identify this plan definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this plan definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the plan definition is stored on different servers url : uri [0..1] A formal identifier that is used to identify this plan definition when it is represented in other formats, or referenced in a specification, model, design or an instance identifier : Identifier [0..*] The identifier that is used to identify this version of the plan definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the plan definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts version : string [0..1] Indicates the mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » A natural language name identifying the plan definition. This name should be usable as an identifier for the module by machine processing applications such as code generation name : string [0..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the plan definition title : string [0..1] An explanatory or alternate title for the plan definition giving additional information about its content subtitle : string [0..1] A high-level category for the plan definition that distinguishes the kinds of systems that would be interested in the plan definition type : CodeableConcept [0..1] « The type of PlanDefinition. null (Strength=Extensible) PlanDefinitionType + » The status of this plan definition. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of an artifact. null (Strength=Required) PublicationStatus ! » A Boolean value to indicate that this plan definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage experimental : boolean [0..1] A code or code, group definition 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 subject[x] : Type DataType [0..1] « CodeableConcept | Reference ( Group | MedicinalProductDefinition | SubstanceDefinition | AdministrableProductDefinition | ManufacturedItemDefinition | PackagedProductDefinition )| canonical ( EvidenceVariable ); The possible types of subjects for a plan definition (E.g. Patient, Practitioner, Organization, Location, etc.). null (Strength=Extensible) SubjectType ParticipantResourceTypes + » The date (and optionally time) when the plan definition was published. last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the plan definition changes date : dateTime [0..1] The name of the organization or individual that published responsible for the release and ongoing maintenance of the plan definition publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] A free text natural language description of the plan definition from a consumer's perspective description : markdown [0..1] 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 useContext : UsageContext [0..*] A legal or geographic region in which the plan definition is intended to be used jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use. null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » Explanation of why this plan definition is needed and why it has been designed as it has purpose : markdown [0..1] A detailed description of how the plan definition is used from a clinical perspective usage : string markdown [0..1] A copyright statement relating to the plan definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the plan definition copyright : markdown [0..1] A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved') copyrightLabel : string [0..1] The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage approvalDate : date [0..1] The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date lastReviewDate : date [0..1] The period during which the plan definition content was or is planned to be in active use effectivePeriod : Period [0..1] 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 topic : CodeableConcept [0..*] « High-level categorization of the definition, used for searching, sorting, and filtering. null (Strength=Example) DefinitionTopic ?? » An individiual or organization primarily involved in the creation and maintenance of the content author : ContactDetail [0..*] An individual or organization primarily responsible for internal coherence of the content editor : ContactDetail [0..*] An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content reviewer : ContactDetail [0..*] An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting endorser : ContactDetail [0..*] Related artifacts such as additional documentation, justification, or bibliographic references relatedArtifact : RelatedArtifact [0..*] A reference to a Library resource containing any formal logic used by the plan definition library : canonical [0..*] « Library » If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example "pain", "on flare-up", etc asNeeded[x] : DataType [0..1] « boolean | CodeableConcept ; null (Strength=Example) SNOMEDCTMedicationAsNeededRea... ?? » Goal Indicates a category the goal falls within category : CodeableConcept [0..1] « Example codes for grouping goals for filtering or presentation. null (Strength=Example) GoalCategory ?? » Human-readable and/or coded description of a specific desired objective of care, such as "control blood pressure" or "negotiate an obstacle course" or "dance with child at wedding" description : CodeableConcept [1..1] « Describes goals that can be achieved. null (Strength=Example) SNOMEDCTClinicalFindings ?? » Identifies the expected level of importance associated with reaching/sustaining the defined goal priority : CodeableConcept [0..1] « Indicates the level of importance associated with reaching or sustaining a goal. null (Strength=Preferred) GoalPriority ? » The event after which the goal should begin being pursued start : CodeableConcept [0..1] « Identifies the types of events that might trigger the start of a goal. null (Strength=Example) GoalStartEvent ?? » Identifies problems, conditions, issues, or concerns the goal is intended to address addresses : CodeableConcept [0..*] « Identifies problems, conditions, issues, or concerns that goals may address. null (Strength=Example) Condition/Problem/DiagnosisCo... ConditionProblemDiagnosisCodes ?? » Didactic or other informational resources associated with the goal that provide further supporting information about the goal. Information resources can include inline text commentary and links to web resources documentation : RelatedArtifact [0..*] Target The parameter whose value is to be tracked, e.g. body weight, blood pressure, or hemoglobin A1c level measure : CodeableConcept [0..1] « Identifies types of parameters that can be tracked to determine goal achievement. null (Strength=Example) LOINCCodes ?? » The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%. 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value detail[x] : Type DataType [0..1] « Quantity | Range | CodeableConcept | string | boolean | integer | Ratio » Indicates the timeframe after the start of the goal in which the goal should be met due : Duration [0..1] Actor A descriptive label for the actor title : string [0..1] A description of how the actor fits into the overall actions of the plan definition description : markdown [0..1] Option The type of participant in the action type : code [0..1] « null (Strength=Required) ActionParticipantType ! » The type of participant in the action typeCanonical : canonical [0..1] « CapabilityStatement » The type of participant in the action typeReference : 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 action role : CodeableConcept [0..1] « null (Strength=Example) ActionParticipantRole ?? » Action An identifier that is unique within the PlanDefinition to allow linkage within the realized CarePlan and/or RequestOrchestration linkId : string [0..1] A user-visible prefix for the action action. For example a section or item numbering such as 1. or A prefix : string [0..1] The title textual description of the action displayed to a user 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 title : string [0..1] A brief description of the action used to provide a summary to display to the user description : string 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 dynamically textEquivalent : string markdown [0..1] Indicates how quickly the action should be addressed with respect to other actions priority : code [0..1] « Identifies the level of importance to be assigned to actioning the request. null (Strength=Required) RequestPriority ! » A code that provides meaning a meaning, grouping, or classification for the action or action group. For example, a section may have a LOINC code for the section of a documentation template template. In pharmaceutical quality, an action (Test) such as pH could be classified as a physical property code : CodeableConcept [0..*] [0..1] « null (Strength=Example) ActionCode ?? » A description of why this action is necessary or appropriate reason : CodeableConcept [0..*] « null (Strength=Example) ActionReasonCode ?? » 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 resources documentation : RelatedArtifact [0..*] Identifies goals that this action supports. The reference must be to a goal element defined within this plan definition definition. In pharmaceutical quality, a goal represents acceptance criteria (Goal) for a given action (Test), so the goalId would be the unique id of a defined goal element establishing the acceptance criteria for the action goalId : id [0..*] « This element has or is affected by some invariants C » A code or code, group definition definition, or canonical reference that describes the intended subject of the action and its children, if any 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 subject[x] : Type DataType [0..1] « CodeableConcept | Reference ( Group ); The possible types of subjects for a plan definition (E.g. Patient, Practitioner, Organization, Location, etc.). (Strength=Extensible) )| canonical ; SubjectType null (Strength=Extensible) ParticipantResourceTypes + » A description of when the action should be triggered trigger : TriggerDefinition [0..*] Defines input data requirements for the action input : DataRequirement [0..*] Defines the outputs of the triggered. When multiple triggers are specified on an action, if any triggering event invokes the action output trigger : DataRequirement TriggerDefinition [0..*] An optional value describing when the action should be performed timing[x] : Type DataType [0..1] « dateTime | Age | Period | Duration | Range | Timing » Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etc location : CodeableReference [0..1] « Location » The type of action to perform (create, update, remove) type : CodeableConcept [0..1] « The type of action to be performed. null (Strength=Extensible) ActionType + » Defines the grouping behavior for the action and its children groupingBehavior : code [0..1] « Defines organization behavior of a group. null (Strength=Required) ActionGroupingBehavior ! » Defines the selection behavior for the action and its children selectionBehavior : code [0..1] « Defines selection behavior of a group. null (Strength=Required) ActionSelectionBehavior ! » Defines the required behavior for the action requiredBehavior : code [0..1] « Defines expectations around whether an action or action group is required. null (Strength=Required) ActionRequiredBehavior ! » Defines whether the action should usually be preselected precheckBehavior : code [0..1] « Defines selection frequency behavior for an action or group. null (Strength=Required) ActionPrecheckBehavior ! » Defines whether the action can be selected multiple times cardinalityBehavior : code [0..1] « Defines behavior for an action or a group for how many times that item may be repeated. null (Strength=Required) ActionCardinalityBehavior ! » A reference to an ActivityDefinition that describes the action to be taken in detail, or a MessageDefinition describing a message to be snet, a PlanDefinition that describes a series of actions to be taken 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 captured definition[x] : Type PrimitiveType [0..1] « canonical ( ActivityDefinition | MessageDefinition | 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 input transform : canonical [0..1] « StructureMap » Condition The kind of condition kind : code [1..1] « Defines the kinds of conditions that can appear on actions. null (Strength=Required) ActionConditionKind ! » An expression that returns true or false, indicating whether the condition is satisfied expression : Expression [0..1] Input A 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 readers title : string [0..1] Defines the data that is to be provided as input to the action requirement : DataRequirement [0..1] « This element has or is affected by some invariants C » Points to an existing input or output element that provides data to this input relatedData : id [0..1] « This element has or is affected by some invariants C » Output A 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 readers title : string [0..1] Defines the data that results as output from the action requirement : DataRequirement [0..1] « This element has or is affected by some invariants C » Points to an existing input or output element that is results as output from the action relatedData : string [0..1] « This element has or is affected by some invariants C » RelatedAction The element id of the target related action actionId targetId : id [1..1] « This element has or is affected by some invariants C » The relationship of the start of this action to the related action relationship : code [1..1] « Defines null (Strength=Required) ActionRelationshipType ! » The relationship of the types end of relationships between actions. this action to the related action endRelationship : code [0..1] « null (Strength=Required) ActionRelationshipType ! » A duration or range of durations to apply to the relationship. For example, 30-60 minutes before offset[x] : Type DataType [0..1] « Duration | Range » Participant Participant A reference to the id element of the actor who will participate in this action actorId : string [0..1] The type of participant in the action type : code [1..1] [0..1] « null (Strength=Required) ActionParticipantType ! » The type of participant for in the action. (Strength=Required) action ActionParticipantType ! typeCanonical : canonical [0..1] « CapabilityStatement » The type of participant in the action typeReference : 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 action role : CodeableConcept [0..1] « Defines roles played by participants for the action. null (Strength=Example) ActionParticipantRole ?? » Indicates how the actor will be involved in the action - author, reviewer, witness, etc function : CodeableConcept [0..1] « null (Strength=Example) ActionParticipantFunction ?? » DynamicValue The 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 resolveable 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 element expression : Expression [0..1] Indicates what should be done and within what timeframe target [0..*] Goals A goal describes an expected outcome that describe what the activities within the plan are intended to achieve. For example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, meeting the acceptance criteria for a test as specified by a quality specification, etc goal [0..*] The characteristics of the candidates that could serve as the actor option [1..*] Actors represent the individuals or groups involved in the execution of the defined set of activities actor [0..*] An expression that describes applicability criteria or start/stop conditions for the action condition [0..*] Defines input data requirements for the action input [0..*] Defines the outputs of the action, if any output [0..*] A relationship to another action such as "before" or "30-60 minutes after start of" relatedAction [0..*] Indicates who should participate in performing the action described participant [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 result dynamicValue [0..*] Sub actions that are contained within the action. The behavior of this action determines the functionality of the sub-actions. For example, a selection behavior of at-most-one indicates that of the sub-actions, at most one may be chosen as part of realizing the action definition action [0..*] An action or group of actions to be taken as part of the plan plan. For example, in clinical care, an action would be to prescribe a particular indicated medication, or perform a particular test as appropriate. In pharmaceutical quality, an action would be the test that needs to be performed on a drug product as defined in the quality specification action [0..*]

XML Template

<

<PlanDefinition xmlns="http://hl7.org/fhir"> doco

 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <

 <url value="[uri]"/><!-- 0..1 Canonical identifier for this plan definition, represented as a URI (globally unique) -->

 <identifier><!-- 0..* Identifier Additional identifier for the plan definition --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the plan definition -->
 <

 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 0..1 Name for this plan definition (computer friendly) -->

 <title value="[string]"/><!-- 0..1 Name for this plan definition (human friendly) -->
 <subtitle value="[string]"/><!-- 0..1 Subordinate title of the plan definition -->
 <type><!-- 0..1 CodeableConcept order-set | clinical-protocol | eca-rule | workflow-definition --></type>
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage -->
 <</subject[x]>
 <
 <

 <subject[x]><!-- 0..1 CodeableConcept|Reference(AdministrableProductDefinition|
   Group|ManufacturedItemDefinition|MedicinalProductDefinition|
   PackagedProductDefinition|SubstanceDefinition)|canonical(EvidenceVariable) Type of individual the plan definition is focused on --></subject[x]>

 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->

 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <description value="[markdown]"/><!-- 0..1 Natural language description of the plan definition -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for plan definition (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this plan definition is defined -->
 <

 <usage value="[markdown]"/><!-- 0..1 Describes the clinical usage of the plan -->

 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->

 <approvalDate value="[date]"/><!-- 0..1 When the plan definition was approved by publisher -->
 <

 <lastReviewDate value="[date]"/><!-- 0..1 When the plan definition was last reviewed by the publisher -->

 <effectivePeriod><!-- 0..1 Period When the plan definition is expected to be used --></effectivePeriod>
 <topic><!-- 0..* CodeableConcept E.g. Education, Treatment, Assessment --></topic>
 <author><!-- 0..* ContactDetail Who authored the content --></author>
 <editor><!-- 0..* ContactDetail Who edited the content --></editor>
 <</reviewer>
 <</endorser>

 <reviewer><!-- 0..* ContactDetail Who reviewed the content --></reviewer>
 <endorser><!-- 0..* ContactDetail Who endorsed the content --></endorser>

 <relatedArtifact><!-- 0..* RelatedArtifact Additional documentation, citations --></relatedArtifact>
 <library><!-- 0..* canonical(Library) Logic used by the plan definition --></library>
 <

 <goal>  <!-- I 0..* What the plan is trying to accomplish -->

  <category><!-- 0..1 CodeableConcept E.g. Treatment, dietary, behavioral --></category>
  <description><!-- 1..1 CodeableConcept Code or text describing the goal --></description>
  <priority><!-- 0..1 CodeableConcept high-priority | medium-priority | low-priority --></priority>
  <start><!-- 0..1 CodeableConcept When goal pursuit begins --></start>
  <addresses><!-- 0..* CodeableConcept What does the goal address --></addresses>
  <documentation><!-- 0..* RelatedArtifact Supporting documentation for the goal --></documentation>
  <target>  <!-- 0..* Target outcome for the goal -->
   <measure><!-- 0..1 CodeableConcept The parameter whose value is to be tracked --></measure>
   <</detail[x]>

   <detail[x]><!-- 0..1 Quantity|Range|CodeableConcept|string|boolean|integer|
     Ratio The target value to be achieved --></detail[x]>
   <due><!-- 0..1 Duration Reach goal within --></due>
  </target>
 </goal>
 <
  <
  <
  <
  <

 <actor>  <!-- 0..* Actors within the plan -->
  <title value="[string]"/><!-- 0..1 User-visible title -->
  <description value="[markdown]"/><!-- 0..1 Describes the actor -->
  <option>  <!-- 1..* Who or what can be this actor -->
   <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 icon --></role>
  </option>
 </actor>
 <action>  <!-- I 0..* Action defined by the plan -->
  <linkId value="[string]"/><!-- 0..1 Unique id for the action in 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 Brief 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>
  <</reason>

  <code><!-- 0..1 CodeableConcept Code representing the meaning of the action or sub-actions --></code>
  <reason><!-- 0..* CodeableConcept Why the action should be performed --></reason>

  <documentation><!-- 0..* RelatedArtifact Supporting documentation for the intended performer of the action --></documentation>
  <
  <</subject[x]>
  <</trigger>

  <goalId value="[id]"/><!-- I 0..* What goals this action supports -->
  <subject[x]><!-- 0..1 CodeableConcept|Reference(Group)|canonical Type of individual the action is focused on --></subject[x]>
  <trigger><!-- 0..* TriggerDefinition When the action should be triggered --></trigger>

  <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>
  <</output>
  <
   <
   <

  <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>  <!-- I 0..* Relationship to another action -->
   <targetId value="[id]"/><!-- I 1..1 What action is this 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]>

  <timing[x]><!-- 0..1 Age|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 participate in the action -->
   <
   <</role>

   <actorId value="[string]"/><!-- 0..1 What actor -->
   <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 icon --></role>
   <function><!-- 0..1 CodeableConcept E.g. Author, Reviewer, Witness, etc --></function>

  </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 -->
  <|
    </definition[x]>

  <definition[x]><!-- 0..1 canonical(ActivityDefinition|MessageDefinition|
    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 PlanDefinition.action A sub-action --></action>
 </action>
 <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Preconditions for service --></asNeeded[x]>

</PlanDefinition>

JSON Template

{doco
  "resourceType" : "",

  "resourceType" : "PlanDefinition",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "

  "url" : "<uri>", // Canonical identifier for this plan definition, represented as a URI (globally unique)

  "identifier" : [{ Identifier }], // Additional identifier for the plan definition
  "version" : "<string>", // Business version of the plan definition
  "

  // versionAlgorithm[x]: How to compare versions. One of these 2:
  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I Name for this plan definition (computer friendly)

  "title" : "<string>", // Name for this plan definition (human friendly)
  "subtitle" : "<string>", // Subordinate title of the plan definition
  "type" : { CodeableConcept }, // order-set | clinical-protocol | eca-rule | workflow-definition
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  
  " },
  " },
  "
  "

  // subject[x]: Type of individual the plan definition is focused on. One of these 3:
  "subjectCodeableConcept" : { CodeableConcept },
  "subjectReference" : { Reference(AdministrableProductDefinition|Group|
   ManufacturedItemDefinition|MedicinalProductDefinition|
   PackagedProductDefinition|SubstanceDefinition) },

  "subjectCanonical" : "<canonical(EvidenceVariable)>",
  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)

  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the plan definition
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for plan definition (if applicable)
  "purpose" : "<markdown>", // Why this plan definition is defined
  "

  "usage" : "<markdown>", // Describes the clinical usage of the plan

  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "copyrightLabel" : "<string>", // Copyright holder and year(s)

  "approvalDate" : "<date>", // When the plan definition was approved by publisher
  "

  "lastReviewDate" : "<date>", // When the plan definition was last reviewed by the publisher

  "effectivePeriod" : { Period }, // When the plan definition is expected to be used
  "topic" : [{ CodeableConcept }], // E.g. Education, Treatment, Assessment
  "author" : [{ ContactDetail }], // Who authored the content
  "editor" : [{ ContactDetail }], // Who edited the content
  "
  "

  "reviewer" : [{ ContactDetail }], // Who reviewed the content
  "endorser" : [{ ContactDetail }], // Who endorsed the content

  "relatedArtifact" : [{ RelatedArtifact }], // Additional documentation, citations
  "
  "

  "library" : ["<canonical(Library)>"], // Logic used by the plan definition
  "goal" : [{ // I What the plan is trying to accomplish

    "category" : { CodeableConcept }, // E.g. Treatment, dietary, behavioral
    "description" : { CodeableConcept }, // R!  Code or text describing the goal
    "priority" : { CodeableConcept }, // high-priority | medium-priority | low-priority
    "start" : { CodeableConcept }, // When goal pursuit begins
    "addresses" : [{ CodeableConcept }], // What does the goal address
    "documentation" : [{ RelatedArtifact }], // Supporting documentation for the goal
    "target" : [{ // Target outcome for the goal
      "measure" : { CodeableConcept }, // The parameter whose value is to be tracked
      
      " },
      " },
      " },

      // detail[x]: The target value to be achieved. One of these 7:
      "detailQuantity" : { Quantity },
      "detailRange" : { Range },
      "detailCodeableConcept" : { CodeableConcept },
      "detailString" : "<string>",
      "detailBoolean" : <boolean>,
      "detailInteger" : <integer>,
      "detailRatio" : { Ratio },

      "due" : { Duration } // Reach goal within
    }]
  }],
  "
    "
    "
    "
    "

  "actor" : [{ // Actors within the plan
    "title" : "<string>", // User-visible title
    "description" : "<markdown>", // Describes the actor
    "option" : [{ // R!  Who or what can be this actor
      "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 icon
    }]
  }],
  "action" : [{ // I Action defined by the plan
    "linkId" : "<string>", // Unique id for the action in the PlanDefinition
    "prefix" : "<string>", // User-visible prefix for the action (e.g. 1. or A.)
    "title" : "<string>", // User-visible title
    "description" : "<markdown>", // Brief 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
    "reason" : [{ CodeableConcept }], // Why the action should be performed

    "documentation" : [{ RelatedArtifact }], // Supporting documentation for the intended performer of the action
    "
    
    " },
    " },
    "

    "goalId" : ["<id>"], // I What goals this action supports
    // subject[x]: Type of individual the action is focused on. One of these 3:

    "subjectCodeableConcept" : { CodeableConcept },
    "subjectReference" : { Reference(Group) },
    "subjectCanonical" : "<canonical>",
    "trigger" : [{ TriggerDefinition }], // When the action should be triggered

    "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" : [{ // I Relationship to another action
      "targetId" : "<id>", // I R!  What action is this 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 4:
    "timingAge" : { Age },
    " },

    "timingDuration" : { Duration },
    "timingRange" : { Range },
    "timingTiming" : { Timing },
    "location" : { CodeableReference(Location) }, // Where it should happen

    "participant" : [{ // Who should participate in the action
      "
      "

      "actorId" : "<string>", // What actor
      "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 icon
      "function" : { CodeableConcept } // E.g. Author, Reviewer, Witness, etc

    }],
    "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
    // definition[x]: Description of the activity to be performed. One of these 2:
    "|
     },
    ">",
    "

    "definitionCanonical" : "<canonical(ActivityDefinition|MessageDefinition|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 PlanDefinition.action }] // A sub-action
  }]

  }],
  // asNeeded[x]: Preconditions for service. One of these 2:

  "asNeededBoolean" : <boolean>,
  "asNeededCodeableConcept" : { CodeableConcept }

}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:;

[ a fhir:PlanDefinition;

  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:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir:) ]
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      # . One of these 3
        fhir: ]
        fhir: ]
        fhir: ]
      fhir:
    ], ...;
  ], ...;
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    # . One of these 2
      fhir: ]
      fhir:) ]
    fhir:
    fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
      # . One of these 2
        fhir: ]
        fhir: ]
    ], ...;
    # . One of these 6
      fhir: ]
      fhir: ]
      fhir: ]
      fhir: ]
      fhir: ]
      fhir: ]
    fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    # . One of these 2
      fhir:) ]
      fhir: ]
    fhir:
    fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
  ], ...;

  fhir:url [ uri ] ; # 0..1 Canonical identifier for this plan definition, represented as a URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the plan definition
  fhir:version [ string ] ; # 0..1 Business version of the plan definition
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:string ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 0..1 I Name for this plan definition (computer friendly)
  fhir:title [ string ] ; # 0..1 Name for this plan definition (human friendly)
  fhir:subtitle [ string ] ; # 0..1 Subordinate title of the plan definition
  fhir:type [ CodeableConcept ] ; # 0..1 order-set | clinical-protocol | eca-rule | workflow-definition
  fhir:status [ code ] ; # 1..1 draft | active | retired | unknown
  fhir:experimental [ boolean ] ; # 0..1 For testing purposes, not real usage
  # subject[x] : 0..1 Type of individual the plan definition is focused on. One of these 3
    fhir:subject [  a fhir:CodeableConcept ; CodeableConcept ]
    fhir:subject [  a fhir:Reference ; Reference(AdministrableProductDefinition|Group|ManufacturedItemDefinition|
  MedicinalProductDefinition|PackagedProductDefinition|SubstanceDefinition) ]

    fhir:subject [  a fhir:canonical ; canonical(EvidenceVariable) ]
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the plan definition
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Intended jurisdiction for plan definition (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 Why this plan definition is defined
  fhir:usage [ markdown ] ; # 0..1 Describes the clinical usage of the plan
  fhir:copyright [ markdown ] ; # 0..1 Use and/or publishing restrictions
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:approvalDate [ date ] ; # 0..1 When the plan definition was approved by publisher
  fhir:lastReviewDate [ date ] ; # 0..1 When the plan definition was last reviewed by the publisher
  fhir:effectivePeriod [ Period ] ; # 0..1 When the plan definition is expected to be used
  fhir:topic  ( [ CodeableConcept ] ... ) ; # 0..* E.g. Education, Treatment, Assessment
  fhir:author  ( [ ContactDetail ] ... ) ; # 0..* Who authored the content
  fhir:editor  ( [ ContactDetail ] ... ) ; # 0..* Who edited the content
  fhir:reviewer  ( [ ContactDetail ] ... ) ; # 0..* Who reviewed the content
  fhir:endorser  ( [ ContactDetail ] ... ) ; # 0..* Who endorsed the content
  fhir:relatedArtifact  ( [ RelatedArtifact ] ... ) ; # 0..* Additional documentation, citations
  fhir:library  ( [ canonical(Library) ] ... ) ; # 0..* Logic used by the plan definition
  fhir:goal ( [ # 0..* I What the plan is trying to accomplish
    fhir:category [ CodeableConcept ] ; # 0..1 E.g. Treatment, dietary, behavioral
    fhir:description [ CodeableConcept ] ; # 1..1 Code or text describing the goal
    fhir:priority [ CodeableConcept ] ; # 0..1 high-priority | medium-priority | low-priority
    fhir:start [ CodeableConcept ] ; # 0..1 When goal pursuit begins
    fhir:addresses  ( [ CodeableConcept ] ... ) ; # 0..* What does the goal address
    fhir:documentation  ( [ RelatedArtifact ] ... ) ; # 0..* Supporting documentation for the goal
    fhir:target ( [ # 0..* Target outcome for the goal
      fhir:measure [ CodeableConcept ] ; # 0..1 The parameter whose value is to be tracked
      # detail[x] : 0..1 The target value to be achieved. One of these 7
        fhir:detail [  a fhir:Quantity ; Quantity ]
        fhir:detail [  a fhir:Range ; Range ]
        fhir:detail [  a fhir:CodeableConcept ; CodeableConcept ]
        fhir:detail [  a fhir:string ; string ]
        fhir:detail [  a fhir:boolean ; boolean ]
        fhir:detail [  a fhir:integer ; integer ]
        fhir:detail [  a fhir:Ratio ; Ratio ]
      fhir:due [ Duration ] ; # 0..1 Reach goal within
    ] ... ) ;
  ] ... ) ;
  fhir:actor ( [ # 0..* Actors within the plan
    fhir:title [ string ] ; # 0..1 User-visible title
    fhir:description [ markdown ] ; # 0..1 Describes the actor
    fhir:option ( [ # 1..* Who or what can be this actor
      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
    ] ... ) ;
  ] ... ) ;
  fhir:action ( [ # 0..* I Action defined by the plan
    fhir:linkId [ string ] ; # 0..1 Unique id for the action in 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 Brief 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..1 Code representing the meaning of the action or sub-actions
    fhir:reason  ( [ CodeableConcept ] ... ) ; # 0..* Why the action should be performed
    fhir:documentation  ( [ RelatedArtifact ] ... ) ; # 0..* Supporting documentation for the intended performer of the action
    fhir:goalId  ( [ id ] ... ) ; # 0..* I What goals this action supports
    # subject[x] : 0..1 Type of individual the action is focused on. One of these 3
      fhir:subject [  a fhir:CodeableConcept ; CodeableConcept ]
      fhir:subject [  a fhir:Reference ; Reference(Group) ]
      fhir:subject [  a fhir:canonical ; canonical ]
    fhir:trigger  ( [ TriggerDefinition ] ... ) ; # 0..* When the action should be triggered
    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..* I Relationship to another action
      fhir:targetId [ id ] ; # 1..1 I What action is this 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 4
      fhir:timing [  a fhir:Age ; Age ]
      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 participate in the action
      fhir:actorId [ string ] ; # 0..1 What actor
      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
      fhir:function [ CodeableConcept ] ; # 0..1 E.g. Author, Reviewer, Witness, etc
    ] ... ) ;
    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
    # definition[x] : 0..1 Description of the activity to be performed. One of these 2
      fhir:definition [  a fhir:canonical ; canonical(ActivityDefinition|MessageDefinition|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 PlanDefinition.action ] ... ) ; # 0..* A sub-action
  ] ... ) ;
  # asNeeded[x] : 0..1 Preconditions for service. One of these 2
    fhir:asNeeded [  a fhir:boolean ; boolean ]
    fhir:asNeeded [  a fhir:CodeableConcept ; CodeableConcept ]

]

Changes since R3 from both R4 and R4B

PlanDefinition
PlanDefinition.subtitle PlanDefinition.versionAlgorithm[x]
  • Added Element
PlanDefinition.type PlanDefinition.subject[x]
  • Add Type canonical(EvidenceVariable)
  • Change value set from http://hl7.org/fhir/ValueSet/subject-type to Participant Resource Types
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/plan-definition-type" "http://hl7.org/fhir/resource-types" to "http://terminology.hl7.org/CodeSystem/plan-definition-type" "http://hl7.org/fhir/fhir-types"
PlanDefinition.status PlanDefinition.usage
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/publication-status string to http://hl7.org/fhir/ValueSet/publication-status|4.0.1 markdown
PlanDefinition.experimental PlanDefinition.copyrightLabel
  • No longer marked as Modifier Added Element
PlanDefinition.subject[x] PlanDefinition.goal.target.detail[x]
  • Added Element Add Types string, boolean, integer, Ratio
PlanDefinition.author PlanDefinition.actor
  • Added Element
PlanDefinition.editor PlanDefinition.actor.title
  • Added Element
PlanDefinition.reviewer PlanDefinition.actor.description
  • Added Element
PlanDefinition.endorser PlanDefinition.actor.option
  • Added Mandatory Element
PlanDefinition.library PlanDefinition.actor.option.type
  • Type changed from Reference(Library) to canonical(Library) Added Element
PlanDefinition.action.prefix PlanDefinition.actor.option.typeCanonical
  • Added Element
PlanDefinition.action.priority PlanDefinition.actor.option.typeReference
  • Added Element
PlanDefinition.action.subject[x] PlanDefinition.actor.option.role
  • Added Element
PlanDefinition.action.trigger PlanDefinition.action.linkId
  • Added Element
PlanDefinition.action.condition.kind PlanDefinition.action.description
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/action-condition-kind string to http://hl7.org/fhir/ValueSet/action-condition-kind|4.0.1 markdown
PlanDefinition.action.condition.expression PlanDefinition.action.textEquivalent
  • Type changed from string to Expression markdown
PlanDefinition.action.relatedAction.relationship PlanDefinition.action.code
  • Change value set Max Cardinality changed from http://hl7.org/fhir/ValueSet/action-relationship-type * to http://hl7.org/fhir/ValueSet/action-relationship-type|4.0.1 1
PlanDefinition.action.timing[x] PlanDefinition.action.subject[x]
  • Add Type Age canonical
  • PlanDefinition.action.participant.type
  • Change value set from http://hl7.org/fhir/ValueSet/action-participant-type http://hl7.org/fhir/ValueSet/subject-type to http://hl7.org/fhir/ValueSet/action-participant-type|4.0.1 Participant Resource Types
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/resource-types" to "http://hl7.org/fhir/fhir-types"
PlanDefinition.action.type PlanDefinition.action.input
  • Type changed from Coding DataRequirement to CodeableConcept BackboneElement
PlanDefinition.action.input.title
  • Change binding strength from required to extensible Added Element
PlanDefinition.action.groupingBehavior PlanDefinition.action.input.requirement
  • Change value set from http://hl7.org/fhir/ValueSet/action-grouping-behavior to http://hl7.org/fhir/ValueSet/action-grouping-behavior|4.0.1 Added Element
PlanDefinition.action.selectionBehavior PlanDefinition.action.input.relatedData
  • Change value set from http://hl7.org/fhir/ValueSet/action-selection-behavior to http://hl7.org/fhir/ValueSet/action-selection-behavior|4.0.1 Added Element
PlanDefinition.action.requiredBehavior PlanDefinition.action.output
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/action-required-behavior DataRequirement to http://hl7.org/fhir/ValueSet/action-required-behavior|4.0.1 BackboneElement
PlanDefinition.action.precheckBehavior PlanDefinition.action.output.title
  • Change value set from http://hl7.org/fhir/ValueSet/action-precheck-behavior to http://hl7.org/fhir/ValueSet/action-precheck-behavior|4.0.1 Added Element
PlanDefinition.action.cardinalityBehavior PlanDefinition.action.output.requirement
  • Change value set from http://hl7.org/fhir/ValueSet/action-cardinality-behavior to http://hl7.org/fhir/ValueSet/action-cardinality-behavior|4.0.1 Added Element
PlanDefinition.action.definition[x] PlanDefinition.action.output.relatedData
  • Renamed from definition to definition[x] Added Element
PlanDefinition.action.relatedAction.targetId
  • Add Types canonical(ActivityDefinition | PlanDefinition | Questionnaire), uri Added Mandatory Element
PlanDefinition.action.relatedAction.endRelationship
  • Remove Type Reference(ActivityDefinition | PlanDefinition) Added Element
PlanDefinition.action.transform PlanDefinition.action.timing[x]
  • Type changed from Reference(StructureMap) to canonical(StructureMap) Remove Types dateTime, Period
PlanDefinition.action.dynamicValue.expression PlanDefinition.action.location
  • Type changed from string to Expression Added Element
PlanDefinition.contributor PlanDefinition.action.participant.actorId
  • deleted Added Element
PlanDefinition.action.label PlanDefinition.action.participant.type
  • deleted Min Cardinality changed from 1 to 0
  • Remove code related-person
  • Add codes careteam , group , healthcareservice , location , organization , practitionerrole , relatedperson
PlanDefinition.action.triggerDefinition PlanDefinition.action.participant.typeCanonical
  • deleted Added Element
PlanDefinition.action.condition.description PlanDefinition.action.participant.typeReference
  • deleted Added Element
PlanDefinition.action.condition.language PlanDefinition.action.participant.function
  • deleted Added Element
PlanDefinition.action.dynamicValue.description PlanDefinition.asNeeded[x]
  • deleted Added Element
PlanDefinition.action.dynamicValue.language PlanDefinition.action.relatedAction.actionId
  • deleted Deleted (PlanDefinition.action.relatedAction.targetId)

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .

See R3 <--> R4 <--> R5 Conversion Maps (status = 11 tests of which 6 fail to execute . All tests pass round-trip testing and 5 r3 resources are invalid (0 errors). ) See Conversions Summary .)

Structure

Name Flags Card. Type Description & Constraints doco
. . PlanDefinition I TU DomainResource The definition of a plan for a series of actions, independent of any specific patient or context
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation
+ Warning: goalid should reference the id of a goal definition
+ Warning: targetId should reference the id of an action

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
Interfaces Implemented: MetadataResource
. . . url Σ C 0..1 uri Canonical identifier for this plan definition, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . . identifier Σ 0..* Identifier Additional identifier for the plan definition

. . . version Σ 0..1 string Business version of the plan definition
. . name . versionAlgorithm[x] Σ I 0..1 How to compare versions
Binding: Version Algorithm ( Extensible )
.... versionAlgorithmString string
. . . . versionAlgorithmCoding Name for this plan definition (computer friendly) Coding
. . . title name Σ C 0..1 string Name for this plan definition (human (computer friendly)
. . . subtitle title Σ T 0..1 string Name for this plan definition (human friendly)
... subtitle T 0..1 string Subordinate title of the plan definition
. . . type Σ 0..1 CodeableConcept order-set | clinical-protocol | eca-rule | workflow-definition
PlanDefinitionType Binding: Plan Definition Type ( Extensible )
. . . status ?! Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus ( Required )
. . . experimental Σ 0..1 boolean For testing purposes, not real usage
. . . subject[x] 0..1 Type of individual the plan definition is focused on
Subject type Binding: Participant Resource Types ( Extensible )
. . . . subjectCodeableConcept CodeableConcept
. . . . subjectReference Reference ( Group | MedicinalProductDefinition | SubstanceDefinition | AdministrableProductDefinition | ManufacturedItemDefinition | PackagedProductDefinition )
. . . . subjectCanonical canonical ( EvidenceVariable )
. . . date Σ 0..1 dateTime Date last changed
. . . publisher Σ T 0..1 string Name of the publisher publisher/steward (organization or individual)
. . . contact Σ 0..* ContactDetail Contact details for the publisher

. . . description Σ T 0..1 markdown Natural language description of the plan definition
. . . useContext Σ 0..* UsageContext The context that the content is intended to support

. . . jurisdiction Σ XD 0..* CodeableConcept Intended jurisdiction for plan definition (if applicable)
Binding: Jurisdiction ValueSet ( Extensible )

. . . purpose T 0..1 markdown Why this plan definition is defined
. . . usage T 0..1 string markdown Describes the clinical usage of the plan
. . . copyright 0..1 markdown Use and/or publishing restrictions
. . . approvalDate copyrightLabel T 0..1 string Copyright holder and year(s)
... approvalDate 0..1 date When the plan definition was approved by publisher
. . . lastReviewDate 0..1 date When the plan definition was last reviewed by the publisher
. . . effectivePeriod Σ 0..1 Period When the plan definition is expected to be used
. . . topic XD 0..* CodeableConcept E.g. Education, Treatment, Assessment
DefinitionTopic Binding: Definition Topic ( Example )

. . . author 0..* ContactDetail Who authored the content

. . . editor 0..* ContactDetail Who edited the content

. . . reviewer 0..* ContactDetail Who reviewed the content

. . . endorser 0..* ContactDetail Who endorsed the content

. . . relatedArtifact 0..* RelatedArtifact Additional documentation, citations

. . . library 0..* canonical ( Library ) Logic used by the plan definition

. . . goal C 0..* BackboneElement What the plan is trying to accomplish

. . . . category 0..1 CodeableConcept E.g. Treatment, dietary, behavioral
Binding: Goal category Category ( Example )
. . . . description 1..1 CodeableConcept Code or text describing the goal
Binding: SNOMED CT Clinical Findings ( Example )
. . . . priority 0..1 CodeableConcept high-priority | medium-priority | low-priority
Binding: Goal priority Priority ( Preferred )
. . . . start 0..1 CodeableConcept When goal pursuit begins
Binding: Goal start event Start Event ( Example )
. . . . addresses 0..* CodeableConcept What does the goal address
Binding: Condition/Problem/Diagnosis Codes ( Example )

. . . . documentation 0..* RelatedArtifact Supporting documentation for the goal

. . . . target 0..* BackboneElement Target outcome for the goal

. . . . . measure 0..1 CodeableConcept The parameter whose value is to be tracked
Binding: LOINC Codes ( Example )
. . . . . detail[x] 0..1 The target value to be achieved
. . . . . . detailQuantity Quantity
. . . . . . detailRange Range
. . . . . . detailRange detailCodeableConcept CodeableConcept Range
. . . . . . detailString string
. . . . . . detailBoolean boolean
. . . . . . detailInteger integer
. . . . . detailCodeableConcept . detailRatio Ratio
..... due 0..1 Duration Reach goal within
... actor 0..* BackboneElement Actors within the plan

.... title CodeableConcept T 0..1 string User-visible title
. . . . description due T 0..1 markdown Describes the actor
.... option 1..* BackboneElement Who or what can be this actor

..... type 0..1 Duration code Reach goal within careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
Binding: Action Participant Type ( Required )
. . . . . typeCanonical 0..1 canonical ( CapabilityStatement ) Who or what can participate
..... typeReference 0..1 Reference ( CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) Who or what can participate
. . . . action . role 0..1 CodeableConcept E.g. Nurse, Surgeon, Parent
Binding: Action Participant Role icon ( Example )
... action C 0..* BackboneElement Action defined by the plan

. . . prefix . linkId 0..1 string Unique id for the action in the PlanDefinition
.... prefix 0..1 string User-visible prefix for the action (e.g. 1. or A.)
. . . . title T 0..1 string User-visible title
. . . . description T 0..1 string markdown Brief description of the action
. . . . textEquivalent T 0..1 string markdown Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
. . . . priority 0..1 code routine | urgent | asap | stat
Request priority Binding: RequestPriority ( Required )
. . . . code 0..* 0..1 CodeableConcept Code representing the meaning of the action or sub-actions
Binding: Action Code ( Example )
. . . . reason 0..* CodeableConcept Why the action should be performed
Binding: Action Reason Code ( Example )

. . . . documentation 0..* RelatedArtifact Supporting documentation for the intended performer of the action

. . . . goalId C 0..* id What goals this action supports

. . . . subject[x] 0..1 Type of individual the action is focused on
Subject type Binding: Participant Resource Types ( Extensible )
. . . . . subjectCodeableConcept CodeableConcept
. . . . . subjectReference Reference ( Group )
. . . . . subjectCanonical canonical ()
. . . . trigger 0..* TriggerDefinition When the action should be triggered

. . . . condition 0..* BackboneElement Whether or not the action is applicable

. . . . . kind 1..1 code applicability | start | stop
ActionConditionKind Binding: Action Condition Kind ( Required )
. . . . . expression 0..1 Expression Boolean-valued expression
.... input C 0..1 0..* Expression BackboneElement Boolean-valued expression Input data requirements
+ Rule: Input data elements must have a requirement or a relatedData, but not both

. . . . input . title T 0..* 0..1 string User-visible title
..... requirement C 0..1 DataRequirement What data is provided
..... relatedData Input C 0..1 id What data requirements is provided
. . . . output C 0..* DataRequirement BackboneElement Output data definition
+ Rule: Output data element must have a requirement or a relatedData, but not both

. . . . relatedAction . title T 0..* 0..1 BackboneElement string User-visible title
..... requirement C 0..1 DataRequirement What data is provided
..... relatedData C 0..1 string What data is provided
.... relatedAction C 0..* BackboneElement Relationship to another action

. . . . actionId . targetId C 1..1 id What action is this related to
. . . . . relationship 1..1 code before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
Binding: Action Relationship Type ( Required )
..... endRelationship 1..1 0..1 code before-start | before | before-end before-start | concurrent-with-start before-end | concurrent | concurrent-with-end concurrent-with-start | after-start concurrent-with-end | after | after-start | after-end
ActionRelationshipType Binding: Action Relationship Type ( Required )
. . . . . offset[x] 0..1 Time offset for the relationship
. . . . . . offsetDuration Duration
. . . . . . offsetRange Range
. . . . timing[x] 0..1 When the action should take place
. . . . timingDateTime . timingAge dateTime Age
. . . . . timingAge timingDuration Age Duration
. . . . . timingPeriod timingRange Period Range
. . . . . timingDuration timingTiming Duration Timing
. . . timingRange . location 0..1 Range CodeableReference ( Location ) Where it should happen
. . timingTiming . . participant 0..* Timing BackboneElement Who should participate in the action

. . . . participant . actorId 0..* 0..1 BackboneElement string Who should participate in the action What actor
. . . . . type 1..1 0..1 code careteam | device | group | healthcareservice | location | organization | patient | practitioner | related-person practitionerrole | device relatedperson
ActionParticipantType Binding: Action Participant Type ( Required )
. . . . role . typeCanonical 0..1 canonical ( CapabilityStatement ) Who or what can participate
..... typeReference 0..1 Reference ( CareTeam | Device | DeviceDefinition | Endpoint | Group | HealthcareService | Location | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson ) Who or what can participate
..... role 0..1 CodeableConcept E.g. Nurse, Surgeon, Parent
Binding: Action participant role Participant Role icon ( Example )
. . . . . type function 0..1 CodeableConcept E.g. Author, Reviewer, Witness, etc
Binding: Action Participant Function ( Example )
.... type 0..1 CodeableConcept create | update | remove | fire-event
ActionType Binding: Action Type ( Extensible )
. . . . groupingBehavior 0..1 code visual-group | logical-group | sentence-group
ActionGroupingBehavior Binding: Action Grouping Behavior ( Required )
. . . . selectionBehavior 0..1 code any | all | all-or-none | exactly-one | at-most-one | one-or-more
ActionSelectionBehavior Binding: Action Selection Behavior ( Required )
. . . . requiredBehavior 0..1 code must | could | must-unless-documented
ActionRequiredBehavior Binding: Action Required Behavior ( Required )
. . . . precheckBehavior 0..1 code yes | no
ActionPrecheckBehavior Binding: Action Precheck Behavior ( Required )
. . . . cardinalityBehavior 0..1 code single | multiple
ActionCardinalityBehavior Binding: Action Cardinality Behavior ( Required )
. . . . definition[x] 0..1 Description of the activity to be performed
. . . . . definitionCanonical canonical ( ActivityDefinition | MessageDefinition | ObservationDefinition | PlanDefinition | Questionnaire | SpecimenDefinition )
. . . . . definitionUri uri
. . . . transform 0..1 canonical ( StructureMap ) Transform to apply the template
. . . . dynamicValue 0..* BackboneElement Dynamic aspects of the definition

. . . . . path 0..1 string The path to the element to be set dynamically
. . . . . expression 0..1 Expression An expression that provides the dynamic value for the customization
. . . . action 0..* see action A sub-action

. . . asNeeded[x] Σ 0..1 Preconditions for service
Binding: SNOMED CT Medication As Needed Reason Codes ( Example )
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

PlanDefinition ( DomainResource ) + MetadataResource An absolute URI that is used to identify this plan definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this plan definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the plan definition is stored on different servers url : uri [0..1] A formal identifier that is used to identify this plan definition when it is represented in other formats, or referenced in a specification, model, design or an instance identifier : Identifier [0..*] The identifier that is used to identify this version of the plan definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the plan definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts version : string [0..1] Indicates the mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » A natural language name identifying the plan definition. This name should be usable as an identifier for the module by machine processing applications such as code generation name : string [0..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the plan definition title : string [0..1] An explanatory or alternate title for the plan definition giving additional information about its content subtitle : string [0..1] A high-level category for the plan definition that distinguishes the kinds of systems that would be interested in the plan definition type : CodeableConcept [0..1] « The type of PlanDefinition. null (Strength=Extensible) PlanDefinitionType + » The status of this plan definition. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of an artifact. null (Strength=Required) PublicationStatus ! » A Boolean value to indicate that this plan definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage experimental : boolean [0..1] A code or code, group definition 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 subject[x] : Type DataType [0..1] « CodeableConcept | Reference ( Group | MedicinalProductDefinition | SubstanceDefinition | AdministrableProductDefinition | ManufacturedItemDefinition | PackagedProductDefinition )| canonical ( EvidenceVariable ); The possible types of subjects for a plan definition (E.g. Patient, Practitioner, Organization, Location, etc.). null (Strength=Extensible) SubjectType ParticipantResourceTypes + » The date (and optionally time) when the plan definition was published. last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the plan definition changes date : dateTime [0..1] The name of the organization or individual that published responsible for the release and ongoing maintenance of the plan definition publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] A free text natural language description of the plan definition from a consumer's perspective description : markdown [0..1] 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 useContext : UsageContext [0..*] A legal or geographic region in which the plan definition is intended to be used jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use. null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » Explanation of why this plan definition is needed and why it has been designed as it has purpose : markdown [0..1] A detailed description of how the plan definition is used from a clinical perspective usage : string markdown [0..1] A copyright statement relating to the plan definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the plan definition copyright : markdown [0..1] A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved') copyrightLabel : string [0..1] The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage approvalDate : date [0..1] The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date lastReviewDate : date [0..1] The period during which the plan definition content was or is planned to be in active use effectivePeriod : Period [0..1] 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 topic : CodeableConcept [0..*] « High-level categorization of the definition, used for searching, sorting, and filtering. null (Strength=Example) DefinitionTopic ?? » An individiual or organization primarily involved in the creation and maintenance of the content author : ContactDetail [0..*] An individual or organization primarily responsible for internal coherence of the content editor : ContactDetail [0..*] An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content reviewer : ContactDetail [0..*] An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting endorser : ContactDetail [0..*] Related artifacts such as additional documentation, justification, or bibliographic references relatedArtifact : RelatedArtifact [0..*] A reference to a Library resource containing any formal logic used by the plan definition library : canonical [0..*] « Library » If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example "pain", "on flare-up", etc asNeeded[x] : DataType [0..1] « boolean | CodeableConcept ; null (Strength=Example) SNOMEDCTMedicationAsNeededRea... ?? » Goal Indicates a category the goal falls within category : CodeableConcept [0..1] « Example codes for grouping goals for filtering or presentation. null (Strength=Example) GoalCategory ?? » Human-readable and/or coded description of a specific desired objective of care, such as "control blood pressure" or "negotiate an obstacle course" or "dance with child at wedding" description : CodeableConcept [1..1] « Describes goals that can be achieved. null (Strength=Example) SNOMEDCTClinicalFindings ?? » Identifies the expected level of importance associated with reaching/sustaining the defined goal priority : CodeableConcept [0..1] « Indicates the level of importance associated with reaching or sustaining a goal. null (Strength=Preferred) GoalPriority ? » The event after which the goal should begin being pursued start : CodeableConcept [0..1] « Identifies the types of events that might trigger the start of a goal. null (Strength=Example) GoalStartEvent ?? » Identifies problems, conditions, issues, or concerns the goal is intended to address addresses : CodeableConcept [0..*] « Identifies problems, conditions, issues, or concerns that goals may address. null (Strength=Example) Condition/Problem/DiagnosisCo... ConditionProblemDiagnosisCodes ?? » Didactic or other informational resources associated with the goal that provide further supporting information about the goal. Information resources can include inline text commentary and links to web resources documentation : RelatedArtifact [0..*] Target The parameter whose value is to be tracked, e.g. body weight, blood pressure, or hemoglobin A1c level measure : CodeableConcept [0..1] « Identifies types of parameters that can be tracked to determine goal achievement. null (Strength=Example) LOINCCodes ?? » The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%. 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value detail[x] : Type DataType [0..1] « Quantity | Range | CodeableConcept | string | boolean | integer | Ratio » Indicates the timeframe after the start of the goal in which the goal should be met due : Duration [0..1] Actor A descriptive label for the actor title : string [0..1] A description of how the actor fits into the overall actions of the plan definition description : markdown [0..1] Option The type of participant in the action type : code [0..1] « null (Strength=Required) ActionParticipantType ! » The type of participant in the action typeCanonical : canonical [0..1] « CapabilityStatement » The type of participant in the action typeReference : 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 action role : CodeableConcept [0..1] « null (Strength=Example) ActionParticipantRole ?? » Action An identifier that is unique within the PlanDefinition to allow linkage within the realized CarePlan and/or RequestOrchestration linkId : string [0..1] A user-visible prefix for the action action. For example a section or item numbering such as 1. or A prefix : string [0..1] The title textual description of the action displayed to a user 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 title : string [0..1] A brief description of the action used to provide a summary to display to the user description : string 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 dynamically textEquivalent : string markdown [0..1] Indicates how quickly the action should be addressed with respect to other actions priority : code [0..1] « Identifies the level of importance to be assigned to actioning the request. null (Strength=Required) RequestPriority ! » A code that provides meaning a meaning, grouping, or classification for the action or action group. For example, a section may have a LOINC code for the section of a documentation template template. In pharmaceutical quality, an action (Test) such as pH could be classified as a physical property code : CodeableConcept [0..*] [0..1] « null (Strength=Example) ActionCode ?? » A description of why this action is necessary or appropriate reason : CodeableConcept [0..*] « null (Strength=Example) ActionReasonCode ?? » 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 resources documentation : RelatedArtifact [0..*] Identifies goals that this action supports. The reference must be to a goal element defined within this plan definition definition. In pharmaceutical quality, a goal represents acceptance criteria (Goal) for a given action (Test), so the goalId would be the unique id of a defined goal element establishing the acceptance criteria for the action goalId : id [0..*] « This element has or is affected by some invariants C » A code or code, group definition definition, or canonical reference that describes the intended subject of the action and its children, if any 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 subject[x] : Type DataType [0..1] « CodeableConcept | Reference ( Group ); The possible types of subjects for a plan definition (E.g. Patient, Practitioner, Organization, Location, etc.). (Strength=Extensible) )| canonical ; SubjectType null (Strength=Extensible) ParticipantResourceTypes + » A description of when the action should be triggered trigger : TriggerDefinition [0..*] Defines input data requirements for the action input : DataRequirement [0..*] Defines the outputs of the triggered. When multiple triggers are specified on an action, if any triggering event invokes the action output trigger : DataRequirement TriggerDefinition [0..*] An optional value describing when the action should be performed timing[x] : Type DataType [0..1] « dateTime | Age | Period | Duration | Range | Timing » Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etc location : CodeableReference [0..1] « Location » The type of action to perform (create, update, remove) type : CodeableConcept [0..1] « The type of action to be performed. null (Strength=Extensible) ActionType + » Defines the grouping behavior for the action and its children groupingBehavior : code [0..1] « Defines organization behavior of a group. null (Strength=Required) ActionGroupingBehavior ! » Defines the selection behavior for the action and its children selectionBehavior : code [0..1] « Defines selection behavior of a group. null (Strength=Required) ActionSelectionBehavior ! » Defines the required behavior for the action requiredBehavior : code [0..1] « Defines expectations around whether an action or action group is required. null (Strength=Required) ActionRequiredBehavior ! » Defines whether the action should usually be preselected precheckBehavior : code [0..1] « Defines selection frequency behavior for an action or group. null (Strength=Required) ActionPrecheckBehavior ! » Defines whether the action can be selected multiple times cardinalityBehavior : code [0..1] « Defines behavior for an action or a group for how many times that item may be repeated. null (Strength=Required) ActionCardinalityBehavior ! » A reference to an ActivityDefinition that describes the action to be taken in detail, or a MessageDefinition describing a message to be snet, a PlanDefinition that describes a series of actions to be taken 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 captured definition[x] : Type PrimitiveType [0..1] « canonical ( ActivityDefinition | MessageDefinition | 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 input transform : canonical [0..1] « StructureMap » Condition The kind of condition kind : code [1..1] « Defines the kinds of conditions that can appear on actions. null (Strength=Required) ActionConditionKind ! » An expression that returns true or false, indicating whether the condition is satisfied expression : Expression [0..1] Input A 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 readers title : string [0..1] Defines the data that is to be provided as input to the action requirement : DataRequirement [0..1] « This element has or is affected by some invariants C » Points to an existing input or output element that provides data to this input relatedData : id [0..1] « This element has or is affected by some invariants C » Output A 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 readers title : string [0..1] Defines the data that results as output from the action requirement : DataRequirement [0..1] « This element has or is affected by some invariants C » Points to an existing input or output element that is results as output from the action relatedData : string [0..1] « This element has or is affected by some invariants C » RelatedAction The element id of the target related action actionId targetId : id [1..1] « This element has or is affected by some invariants C » The relationship of the start of this action to the related action relationship : code [1..1] « Defines null (Strength=Required) ActionRelationshipType ! » The relationship of the types end of relationships between actions. this action to the related action endRelationship : code [0..1] « null (Strength=Required) ActionRelationshipType ! » A duration or range of durations to apply to the relationship. For example, 30-60 minutes before offset[x] : Type DataType [0..1] « Duration | Range » Participant Participant A reference to the id element of the actor who will participate in this action actorId : string [0..1] The type of participant in the action type : code [1..1] [0..1] « null (Strength=Required) ActionParticipantType ! » The type of participant for in the action. (Strength=Required) action ActionParticipantType ! typeCanonical : canonical [0..1] « CapabilityStatement » The type of participant in the action typeReference : 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 action role : CodeableConcept [0..1] « Defines roles played by participants for the action. null (Strength=Example) ActionParticipantRole ?? » Indicates how the actor will be involved in the action - author, reviewer, witness, etc function : CodeableConcept [0..1] « null (Strength=Example) ActionParticipantFunction ?? » DynamicValue The 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 resolveable 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 element expression : Expression [0..1] Indicates what should be done and within what timeframe target [0..*] Goals A goal describes an expected outcome that describe what the activities within the plan are intended to achieve. For example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, meeting the acceptance criteria for a test as specified by a quality specification, etc goal [0..*] The characteristics of the candidates that could serve as the actor option [1..*] Actors represent the individuals or groups involved in the execution of the defined set of activities actor [0..*] An expression that describes applicability criteria or start/stop conditions for the action condition [0..*] Defines input data requirements for the action input [0..*] Defines the outputs of the action, if any output [0..*] A relationship to another action such as "before" or "30-60 minutes after start of" relatedAction [0..*] Indicates who should participate in performing the action described participant [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 result dynamicValue [0..*] Sub actions that are contained within the action. The behavior of this action determines the functionality of the sub-actions. For example, a selection behavior of at-most-one indicates that of the sub-actions, at most one may be chosen as part of realizing the action definition action [0..*] An action or group of actions to be taken as part of the plan plan. For example, in clinical care, an action would be to prescribe a particular indicated medication, or perform a particular test as appropriate. In pharmaceutical quality, an action would be the test that needs to be performed on a drug product as defined in the quality specification action [0..*]

XML Template

<

<PlanDefinition xmlns="http://hl7.org/fhir"> doco

 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <

 <url value="[uri]"/><!-- 0..1 Canonical identifier for this plan definition, represented as a URI (globally unique) -->

 <identifier><!-- 0..* Identifier Additional identifier for the plan definition --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the plan definition -->
 <

 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 0..1 Name for this plan definition (computer friendly) -->

 <title value="[string]"/><!-- 0..1 Name for this plan definition (human friendly) -->
 <subtitle value="[string]"/><!-- 0..1 Subordinate title of the plan definition -->
 <type><!-- 0..1 CodeableConcept order-set | clinical-protocol | eca-rule | workflow-definition --></type>
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage -->
 <</subject[x]>
 <
 <

 <subject[x]><!-- 0..1 CodeableConcept|Reference(AdministrableProductDefinition|
   Group|ManufacturedItemDefinition|MedicinalProductDefinition|
   PackagedProductDefinition|SubstanceDefinition)|canonical(EvidenceVariable) Type of individual the plan definition is focused on --></subject[x]>

 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->

 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <description value="[markdown]"/><!-- 0..1 Natural language description of the plan definition -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for plan definition (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this plan definition is defined -->
 <

 <usage value="[markdown]"/><!-- 0..1 Describes the clinical usage of the plan -->

 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->

 <approvalDate value="[date]"/><!-- 0..1 When the plan definition was approved by publisher -->
 <

 <lastReviewDate value="[date]"/><!-- 0..1 When the plan definition was last reviewed by the publisher -->

 <effectivePeriod><!-- 0..1 Period When the plan definition is expected to be used --></effectivePeriod>
 <topic><!-- 0..* CodeableConcept E.g. Education, Treatment, Assessment --></topic>
 <author><!-- 0..* ContactDetail Who authored the content --></author>
 <editor><!-- 0..* ContactDetail Who edited the content --></editor>
 <</reviewer>
 <</endorser>

 <reviewer><!-- 0..* ContactDetail Who reviewed the content --></reviewer>
 <endorser><!-- 0..* ContactDetail Who endorsed the content --></endorser>

 <relatedArtifact><!-- 0..* RelatedArtifact Additional documentation, citations --></relatedArtifact>
 <library><!-- 0..* canonical(Library) Logic used by the plan definition --></library>
 <

 <goal>  <!-- I 0..* What the plan is trying to accomplish -->

  <category><!-- 0..1 CodeableConcept E.g. Treatment, dietary, behavioral --></category>
  <description><!-- 1..1 CodeableConcept Code or text describing the goal --></description>
  <priority><!-- 0..1 CodeableConcept high-priority | medium-priority | low-priority --></priority>
  <start><!-- 0..1 CodeableConcept When goal pursuit begins --></start>
  <addresses><!-- 0..* CodeableConcept What does the goal address --></addresses>
  <documentation><!-- 0..* RelatedArtifact Supporting documentation for the goal --></documentation>
  <target>  <!-- 0..* Target outcome for the goal -->
   <measure><!-- 0..1 CodeableConcept The parameter whose value is to be tracked --></measure>
   <</detail[x]>

   <detail[x]><!-- 0..1 Quantity|Range|CodeableConcept|string|boolean|integer|
     Ratio The target value to be achieved --></detail[x]>
   <due><!-- 0..1 Duration Reach goal within --></due>
  </target>
 </goal>
 <
  <
  <
  <
  <

 <actor>  <!-- 0..* Actors within the plan -->
  <title value="[string]"/><!-- 0..1 User-visible title -->
  <description value="[markdown]"/><!-- 0..1 Describes the actor -->
  <option>  <!-- 1..* Who or what can be this actor -->
   <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 icon --></role>
  </option>
 </actor>
 <action>  <!-- I 0..* Action defined by the plan -->
  <linkId value="[string]"/><!-- 0..1 Unique id for the action in 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 Brief 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>
  <</reason>

  <code><!-- 0..1 CodeableConcept Code representing the meaning of the action or sub-actions --></code>
  <reason><!-- 0..* CodeableConcept Why the action should be performed --></reason>

  <documentation><!-- 0..* RelatedArtifact Supporting documentation for the intended performer of the action --></documentation>
  <
  <</subject[x]>
  <</trigger>

  <goalId value="[id]"/><!-- I 0..* What goals this action supports -->
  <subject[x]><!-- 0..1 CodeableConcept|Reference(Group)|canonical Type of individual the action is focused on --></subject[x]>
  <trigger><!-- 0..* TriggerDefinition When the action should be triggered --></trigger>

  <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>
  <</output>
  <
   <
   <

  <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>  <!-- I 0..* Relationship to another action -->
   <targetId value="[id]"/><!-- I 1..1 What action is this 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]>

  <timing[x]><!-- 0..1 Age|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 participate in the action -->
   <
   <</role>

   <actorId value="[string]"/><!-- 0..1 What actor -->
   <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 icon --></role>
   <function><!-- 0..1 CodeableConcept E.g. Author, Reviewer, Witness, etc --></function>

  </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 -->
  <|
    </definition[x]>

  <definition[x]><!-- 0..1 canonical(ActivityDefinition|MessageDefinition|
    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 PlanDefinition.action A sub-action --></action>
 </action>
 <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Preconditions for service --></asNeeded[x]>

</PlanDefinition>

JSON Template

{doco
  "resourceType" : "",

  "resourceType" : "PlanDefinition",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "

  "url" : "<uri>", // Canonical identifier for this plan definition, represented as a URI (globally unique)

  "identifier" : [{ Identifier }], // Additional identifier for the plan definition
  "version" : "<string>", // Business version of the plan definition
  "

  // versionAlgorithm[x]: How to compare versions. One of these 2:
  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I Name for this plan definition (computer friendly)

  "title" : "<string>", // Name for this plan definition (human friendly)
  "subtitle" : "<string>", // Subordinate title of the plan definition
  "type" : { CodeableConcept }, // order-set | clinical-protocol | eca-rule | workflow-definition
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  
  " },
  " },
  "
  "

  // subject[x]: Type of individual the plan definition is focused on. One of these 3:
  "subjectCodeableConcept" : { CodeableConcept },
  "subjectReference" : { Reference(AdministrableProductDefinition|Group|
   ManufacturedItemDefinition|MedicinalProductDefinition|
   PackagedProductDefinition|SubstanceDefinition) },

  "subjectCanonical" : "<canonical(EvidenceVariable)>",
  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)

  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the plan definition
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for plan definition (if applicable)
  "purpose" : "<markdown>", // Why this plan definition is defined
  "

  "usage" : "<markdown>", // Describes the clinical usage of the plan

  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "copyrightLabel" : "<string>", // Copyright holder and year(s)

  "approvalDate" : "<date>", // When the plan definition was approved by publisher
  "

  "lastReviewDate" : "<date>", // When the plan definition was last reviewed by the publisher

  "effectivePeriod" : { Period }, // When the plan definition is expected to be used
  "topic" : [{ CodeableConcept }], // E.g. Education, Treatment, Assessment
  "author" : [{ ContactDetail }], // Who authored the content
  "editor" : [{ ContactDetail }], // Who edited the content
  "
  "

  "reviewer" : [{ ContactDetail }], // Who reviewed the content
  "endorser" : [{ ContactDetail }], // Who endorsed the content

  "relatedArtifact" : [{ RelatedArtifact }], // Additional documentation, citations
  "
  "

  "library" : ["<canonical(Library)>"], // Logic used by the plan definition
  "goal" : [{ // I What the plan is trying to accomplish

    "category" : { CodeableConcept }, // E.g. Treatment, dietary, behavioral
    "description" : { CodeableConcept }, // R!  Code or text describing the goal
    "priority" : { CodeableConcept }, // high-priority | medium-priority | low-priority
    "start" : { CodeableConcept }, // When goal pursuit begins
    "addresses" : [{ CodeableConcept }], // What does the goal address
    "documentation" : [{ RelatedArtifact }], // Supporting documentation for the goal
    "target" : [{ // Target outcome for the goal
      "measure" : { CodeableConcept }, // The parameter whose value is to be tracked
      
      " },
      " },
      " },

      // detail[x]: The target value to be achieved. One of these 7:
      "detailQuantity" : { Quantity },
      "detailRange" : { Range },
      "detailCodeableConcept" : { CodeableConcept },
      "detailString" : "<string>",
      "detailBoolean" : <boolean>,
      "detailInteger" : <integer>,
      "detailRatio" : { Ratio },

      "due" : { Duration } // Reach goal within
    }]
  }],
  "
    "
    "
    "
    "

  "actor" : [{ // Actors within the plan
    "title" : "<string>", // User-visible title
    "description" : "<markdown>", // Describes the actor
    "option" : [{ // R!  Who or what can be this actor
      "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 icon
    }]
  }],
  "action" : [{ // I Action defined by the plan
    "linkId" : "<string>", // Unique id for the action in the PlanDefinition
    "prefix" : "<string>", // User-visible prefix for the action (e.g. 1. or A.)
    "title" : "<string>", // User-visible title
    "description" : "<markdown>", // Brief 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
    "reason" : [{ CodeableConcept }], // Why the action should be performed

    "documentation" : [{ RelatedArtifact }], // Supporting documentation for the intended performer of the action
    "
    
    " },
    " },
    "

    "goalId" : ["<id>"], // I What goals this action supports
    // subject[x]: Type of individual the action is focused on. One of these 3:

    "subjectCodeableConcept" : { CodeableConcept },
    "subjectReference" : { Reference(Group) },
    "subjectCanonical" : "<canonical>",
    "trigger" : [{ TriggerDefinition }], // When the action should be triggered

    "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" : [{ // I Relationship to another action
      "targetId" : "<id>", // I R!  What action is this 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 4:
    "timingAge" : { Age },
    " },

    "timingDuration" : { Duration },
    "timingRange" : { Range },
    "timingTiming" : { Timing },
    "location" : { CodeableReference(Location) }, // Where it should happen

    "participant" : [{ // Who should participate in the action
      "
      "

      "actorId" : "<string>", // What actor
      "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 icon
      "function" : { CodeableConcept } // E.g. Author, Reviewer, Witness, etc

    }],
    "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
    // definition[x]: Description of the activity to be performed. One of these 2:
    "|
     },
    ">",
    "

    "definitionCanonical" : "<canonical(ActivityDefinition|MessageDefinition|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 PlanDefinition.action }] // A sub-action
  }]

  }],
  // asNeeded[x]: Preconditions for service. One of these 2:

  "asNeededBoolean" : <boolean>,
  "asNeededCodeableConcept" : { CodeableConcept }

}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:;

[ a fhir:PlanDefinition;

  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:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir:) ]
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      # . One of these 3
        fhir: ]
        fhir: ]
        fhir: ]
      fhir:
    ], ...;
  ], ...;
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    # . One of these 2
      fhir: ]
      fhir:) ]
    fhir:
    fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
      # . One of these 2
        fhir: ]
        fhir: ]
    ], ...;
    # . One of these 6
      fhir: ]
      fhir: ]
      fhir: ]
      fhir: ]
      fhir: ]
      fhir: ]
    fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    # . One of these 2
      fhir:) ]
      fhir: ]
    fhir:
    fhir:
      fhir:
      fhir:
    ], ...;
    fhir:
  ], ...;

  fhir:url [ uri ] ; # 0..1 Canonical identifier for this plan definition, represented as a URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the plan definition
  fhir:version [ string ] ; # 0..1 Business version of the plan definition
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:string ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 0..1 I Name for this plan definition (computer friendly)
  fhir:title [ string ] ; # 0..1 Name for this plan definition (human friendly)
  fhir:subtitle [ string ] ; # 0..1 Subordinate title of the plan definition
  fhir:type [ CodeableConcept ] ; # 0..1 order-set | clinical-protocol | eca-rule | workflow-definition
  fhir:status [ code ] ; # 1..1 draft | active | retired | unknown
  fhir:experimental [ boolean ] ; # 0..1 For testing purposes, not real usage
  # subject[x] : 0..1 Type of individual the plan definition is focused on. One of these 3
    fhir:subject [  a fhir:CodeableConcept ; CodeableConcept ]
    fhir:subject [  a fhir:Reference ; Reference(AdministrableProductDefinition|Group|ManufacturedItemDefinition|
  MedicinalProductDefinition|PackagedProductDefinition|SubstanceDefinition) ]

    fhir:subject [  a fhir:canonical ; canonical(EvidenceVariable) ]
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the plan definition
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Intended jurisdiction for plan definition (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 Why this plan definition is defined
  fhir:usage [ markdown ] ; # 0..1 Describes the clinical usage of the plan
  fhir:copyright [ markdown ] ; # 0..1 Use and/or publishing restrictions
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:approvalDate [ date ] ; # 0..1 When the plan definition was approved by publisher
  fhir:lastReviewDate [ date ] ; # 0..1 When the plan definition was last reviewed by the publisher
  fhir:effectivePeriod [ Period ] ; # 0..1 When the plan definition is expected to be used
  fhir:topic  ( [ CodeableConcept ] ... ) ; # 0..* E.g. Education, Treatment, Assessment
  fhir:author  ( [ ContactDetail ] ... ) ; # 0..* Who authored the content
  fhir:editor  ( [ ContactDetail ] ... ) ; # 0..* Who edited the content
  fhir:reviewer  ( [ ContactDetail ] ... ) ; # 0..* Who reviewed the content
  fhir:endorser  ( [ ContactDetail ] ... ) ; # 0..* Who endorsed the content
  fhir:relatedArtifact  ( [ RelatedArtifact ] ... ) ; # 0..* Additional documentation, citations
  fhir:library  ( [ canonical(Library) ] ... ) ; # 0..* Logic used by the plan definition
  fhir:goal ( [ # 0..* I What the plan is trying to accomplish
    fhir:category [ CodeableConcept ] ; # 0..1 E.g. Treatment, dietary, behavioral
    fhir:description [ CodeableConcept ] ; # 1..1 Code or text describing the goal
    fhir:priority [ CodeableConcept ] ; # 0..1 high-priority | medium-priority | low-priority
    fhir:start [ CodeableConcept ] ; # 0..1 When goal pursuit begins
    fhir:addresses  ( [ CodeableConcept ] ... ) ; # 0..* What does the goal address
    fhir:documentation  ( [ RelatedArtifact ] ... ) ; # 0..* Supporting documentation for the goal
    fhir:target ( [ # 0..* Target outcome for the goal
      fhir:measure [ CodeableConcept ] ; # 0..1 The parameter whose value is to be tracked
      # detail[x] : 0..1 The target value to be achieved. One of these 7
        fhir:detail [  a fhir:Quantity ; Quantity ]
        fhir:detail [  a fhir:Range ; Range ]
        fhir:detail [  a fhir:CodeableConcept ; CodeableConcept ]
        fhir:detail [  a fhir:string ; string ]
        fhir:detail [  a fhir:boolean ; boolean ]
        fhir:detail [  a fhir:integer ; integer ]
        fhir:detail [  a fhir:Ratio ; Ratio ]
      fhir:due [ Duration ] ; # 0..1 Reach goal within
    ] ... ) ;
  ] ... ) ;
  fhir:actor ( [ # 0..* Actors within the plan
    fhir:title [ string ] ; # 0..1 User-visible title
    fhir:description [ markdown ] ; # 0..1 Describes the actor
    fhir:option ( [ # 1..* Who or what can be this actor
      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
    ] ... ) ;
  ] ... ) ;
  fhir:action ( [ # 0..* I Action defined by the plan
    fhir:linkId [ string ] ; # 0..1 Unique id for the action in 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 Brief 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..1 Code representing the meaning of the action or sub-actions
    fhir:reason  ( [ CodeableConcept ] ... ) ; # 0..* Why the action should be performed
    fhir:documentation  ( [ RelatedArtifact ] ... ) ; # 0..* Supporting documentation for the intended performer of the action
    fhir:goalId  ( [ id ] ... ) ; # 0..* I What goals this action supports
    # subject[x] : 0..1 Type of individual the action is focused on. One of these 3
      fhir:subject [  a fhir:CodeableConcept ; CodeableConcept ]
      fhir:subject [  a fhir:Reference ; Reference(Group) ]
      fhir:subject [  a fhir:canonical ; canonical ]
    fhir:trigger  ( [ TriggerDefinition ] ... ) ; # 0..* When the action should be triggered
    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..* I Relationship to another action
      fhir:targetId [ id ] ; # 1..1 I What action is this 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 4
      fhir:timing [  a fhir:Age ; Age ]
      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 participate in the action
      fhir:actorId [ string ] ; # 0..1 What actor
      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
      fhir:function [ CodeableConcept ] ; # 0..1 E.g. Author, Reviewer, Witness, etc
    ] ... ) ;
    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
    # definition[x] : 0..1 Description of the activity to be performed. One of these 2
      fhir:definition [  a fhir:canonical ; canonical(ActivityDefinition|MessageDefinition|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 PlanDefinition.action ] ... ) ; # 0..* A sub-action
  ] ... ) ;
  # asNeeded[x] : 0..1 Preconditions for service. One of these 2
    fhir:asNeeded [  a fhir:boolean ; boolean ]
    fhir:asNeeded [  a fhir:CodeableConcept ; CodeableConcept ]

]

Changes since Release 3 from both R4 and R4B

PlanDefinition
PlanDefinition.subtitle PlanDefinition.versionAlgorithm[x]
  • Added Element
PlanDefinition.type PlanDefinition.subject[x]
  • Add Type canonical(EvidenceVariable)
  • Change value set from http://hl7.org/fhir/ValueSet/subject-type to Participant Resource Types
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/plan-definition-type" "http://hl7.org/fhir/resource-types" to "http://terminology.hl7.org/CodeSystem/plan-definition-type" "http://hl7.org/fhir/fhir-types"
PlanDefinition.status PlanDefinition.usage
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/publication-status string to http://hl7.org/fhir/ValueSet/publication-status|4.0.1 markdown
PlanDefinition.experimental PlanDefinition.copyrightLabel
  • No longer marked as Modifier Added Element
PlanDefinition.subject[x] PlanDefinition.goal.target.detail[x]
  • Added Element Add Types string, boolean, integer, Ratio
PlanDefinition.author PlanDefinition.actor
  • Added Element
PlanDefinition.editor PlanDefinition.actor.title
  • Added Element
PlanDefinition.reviewer PlanDefinition.actor.description
  • Added Element
PlanDefinition.endorser PlanDefinition.actor.option
  • Added Mandatory Element
PlanDefinition.library PlanDefinition.actor.option.type
  • Type changed from Reference(Library) to canonical(Library) Added Element
PlanDefinition.action.prefix PlanDefinition.actor.option.typeCanonical
  • Added Element
PlanDefinition.action.priority PlanDefinition.actor.option.typeReference
  • Added Element
PlanDefinition.action.subject[x] PlanDefinition.actor.option.role
  • Added Element
PlanDefinition.action.trigger PlanDefinition.action.linkId
  • Added Element
PlanDefinition.action.condition.kind PlanDefinition.action.description
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/action-condition-kind string to http://hl7.org/fhir/ValueSet/action-condition-kind|4.0.1 markdown
PlanDefinition.action.condition.expression PlanDefinition.action.textEquivalent
  • Type changed from string to Expression markdown
PlanDefinition.action.relatedAction.relationship PlanDefinition.action.code
  • Change value set Max Cardinality changed from http://hl7.org/fhir/ValueSet/action-relationship-type * to http://hl7.org/fhir/ValueSet/action-relationship-type|4.0.1 1
PlanDefinition.action.timing[x] PlanDefinition.action.subject[x]
  • Add Type Age canonical
  • PlanDefinition.action.participant.type
  • Change value set from http://hl7.org/fhir/ValueSet/action-participant-type http://hl7.org/fhir/ValueSet/subject-type to http://hl7.org/fhir/ValueSet/action-participant-type|4.0.1 Participant Resource Types
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/resource-types" to "http://hl7.org/fhir/fhir-types"
PlanDefinition.action.type PlanDefinition.action.input
  • Type changed from Coding DataRequirement to CodeableConcept BackboneElement
PlanDefinition.action.input.title
  • Change binding strength from required to extensible Added Element
PlanDefinition.action.groupingBehavior PlanDefinition.action.input.requirement
  • Change value set from http://hl7.org/fhir/ValueSet/action-grouping-behavior to http://hl7.org/fhir/ValueSet/action-grouping-behavior|4.0.1 Added Element
PlanDefinition.action.selectionBehavior PlanDefinition.action.input.relatedData
  • Change value set from http://hl7.org/fhir/ValueSet/action-selection-behavior to http://hl7.org/fhir/ValueSet/action-selection-behavior|4.0.1 Added Element
PlanDefinition.action.requiredBehavior PlanDefinition.action.output
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/action-required-behavior DataRequirement to http://hl7.org/fhir/ValueSet/action-required-behavior|4.0.1 BackboneElement
PlanDefinition.action.precheckBehavior PlanDefinition.action.output.title
  • Change value set from http://hl7.org/fhir/ValueSet/action-precheck-behavior to http://hl7.org/fhir/ValueSet/action-precheck-behavior|4.0.1 Added Element
PlanDefinition.action.cardinalityBehavior PlanDefinition.action.output.requirement
  • Change value set from http://hl7.org/fhir/ValueSet/action-cardinality-behavior to http://hl7.org/fhir/ValueSet/action-cardinality-behavior|4.0.1 Added Element
PlanDefinition.action.definition[x] PlanDefinition.action.output.relatedData
  • Renamed from definition to definition[x] Added Element
PlanDefinition.action.relatedAction.targetId
  • Add Types canonical(ActivityDefinition | PlanDefinition | Questionnaire), uri Added Mandatory Element
PlanDefinition.action.relatedAction.endRelationship
  • Remove Type Reference(ActivityDefinition | PlanDefinition) Added Element
PlanDefinition.action.transform PlanDefinition.action.timing[x]
  • Type changed from Reference(StructureMap) to canonical(StructureMap) Remove Types dateTime, Period
PlanDefinition.action.dynamicValue.expression PlanDefinition.action.location
  • Type changed from string to Expression Added Element
PlanDefinition.contributor PlanDefinition.action.participant.actorId
  • deleted Added Element
PlanDefinition.action.label PlanDefinition.action.participant.type
  • deleted Min Cardinality changed from 1 to 0
  • Remove code related-person
  • Add codes careteam , group , healthcareservice , location , organization , practitionerrole , relatedperson
PlanDefinition.action.triggerDefinition PlanDefinition.action.participant.typeCanonical
  • deleted Added Element
PlanDefinition.action.condition.description PlanDefinition.action.participant.typeReference
  • deleted Added Element
PlanDefinition.action.condition.language PlanDefinition.action.participant.function
  • deleted Added Element
PlanDefinition.action.dynamicValue.description PlanDefinition.asNeeded[x]
  • deleted Added Element
PlanDefinition.action.dynamicValue.language PlanDefinition.action.relatedAction.actionId
  • deleted Deleted (PlanDefinition.action.relatedAction.targetId)

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .

See R3 <--> R4 <--> R5 Conversion Maps (status = 11 tests of which 6 fail to execute . All tests pass round-trip testing and 5 r3 resources are invalid (0 errors). ) See Conversions Summary .)

 

See the Profiles & Extensions and the alternate Additional definitions: Master Definition XML + JSON , XML Schema / Schematron + JSON Schema , ShEx (for Turtle ) + see , the extensions spreadsheet version & the dependency analysis

PlanDefinition.type Preferred PlanDefinition.goal.start PlanDefinition.goal.addresses PlanDefinition.goal.target.measure Required PlanDefinition.action.relatedAction.relationship PlanDefinition.action.participant.role Required PlanDefinition.action.precheckBehavior Required PlanDefinition.action.cardinalityBehavior
Path Definition ValueSet Type Reference Documentation
PlanDefinition.versionAlgorithm[x] The type of PlanDefinition. VersionAlgorithm Extensible

Indicates the mechanism used to compare versions to determine which is more current.

PlanDefinition.type PlanDefinitionType Extensible

The type of PlanDefinition.

PlanDefinition.status The lifecycle status of an artifact. PublicationStatus Required PublicationStatus

The lifecycle status of an artifact.

PlanDefinition.subject[x] PlanDefinition.action.subject[x] The possible types of subjects for a plan definition (E.g. Patient, Practitioner, Organization, Location, etc.). ParticipantResourceTypes Extensible SubjectType

All Resource Types that represent participant resources

PlanDefinition.jurisdiction Countries and regions within which this artifact is targeted for use. JurisdictionValueSet Extensible Jurisdiction ValueSet

This value set defines a base set of codes for country, country subdivision and region for indicating where a resource is intended to be used.

Note: The codes for countries and country subdivisions are taken from ISO 3166 icon while the codes for "supra-national" regions are from UN Standard country or area codes for statistical use (M49) icon.

PlanDefinition.topic High-level categorization of the definition, used for searching, sorting, and filtering. DefinitionTopic Example DefinitionTopic

High-level categorization of the definition, used for searching, sorting, and filtering.

PlanDefinition.goal.category Example codes for grouping goals for filtering or presentation. GoalCategory Example GoalCategory

Example codes for grouping goals to use for filtering or presentation.

PlanDefinition.goal.description Describes goals that can be achieved. SNOMEDCTClinicalFindings Example SNOMEDCTClinicalFindings

This value set includes all the "Clinical finding" SNOMED CT icon codes - concepts where concept is-a 404684003 (Clinical finding (finding)).

PlanDefinition.goal.priority GoalPriority Preferred

Indicates the level of importance associated with reaching or sustaining a goal.

PlanDefinition.goal.start GoalPriority GoalStartEvent Example

Identifies the types of events that might trigger the start of a goal.

PlanDefinition.goal.addresses ConditionProblemDiagnosisCodes Example GoalStartEvent

Example value set for Condition/Problem/Diagnosis codes.

PlanDefinition.goal.target.measure Identifies problems, conditions, issues, or concerns that goals may address. LOINCCodes (a valid code from LOINC icon ) Example Condition/Problem/DiagnosisCodes

This value set includes all LOINC codes

PlanDefinition.actor.option.type Identifies types ActionParticipantType Required

The type of parameters that can be tracked to determine goal achievement. participant for the action.

PlanDefinition.actor.option.role ActionParticipantRole icon Example LOINCCodes

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

PlanDefinition.action.priority RequestPriority Required

Identifies the level of importance to be assigned to actioning the request.

PlanDefinition.action.code ActionCode Required Example RequestPriority

Provides examples of actions to be performed.

PlanDefinition.action.reason ActionReasonCode Example

Provides examples of reasons for actions to be performed.

PlanDefinition.action.subject[x] ParticipantResourceTypes Extensible

All Resource Types that represent participant resources

PlanDefinition.action.condition.kind ActionConditionKind Required

Defines the kinds of conditions that can appear on actions.

PlanDefinition.action.relatedAction.relationship ActionConditionKind ActionRelationshipType Required

Defines the types of relationships between actions.

PlanDefinition.action.relatedAction.endRelationship ActionRelationshipType Required ActionRelationshipType

Defines the types of relationships between actions.

PlanDefinition.action.participant.type ActionParticipantType Required

The type of participant for the action.

PlanDefinition.action.participant.role ActionParticipantRole icon Required Example ActionParticipantType

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

PlanDefinition.action.participant.function Defines roles played by participants for the action. ActionParticipantFunction Example ActionParticipantRole

The function performed by the participant for the action.

PlanDefinition.action.type The type of action to be performed. ActionType Extensible ActionType

The type of action to be performed.

PlanDefinition.action.groupingBehavior Defines organization behavior of a group. ActionGroupingBehavior Required ActionGroupingBehavior

Defines organization behavior of a group.

PlanDefinition.action.selectionBehavior Defines selection behavior of a group. ActionSelectionBehavior Required ActionSelectionBehavior

Defines selection behavior of a group.

PlanDefinition.action.requiredBehavior ActionRequiredBehavior Required

Defines expectations around whether an action or action group is required.

PlanDefinition.action.precheckBehavior ActionRequiredBehavior ActionPrecheckBehavior Required

Defines selection frequency behavior for an action or group.

PlanDefinition.action.cardinalityBehavior ActionPrecheckBehavior ActionCardinalityBehavior Required

Defines behavior for an action or a group for how many times that item may be repeated.

PlanDefinition.asNeeded[x] SNOMEDCTMedicationAsNeededReasonCodes Required Example ActionCardinalityBehavior

This value set includes all clinical findings from SNOMED CT - provided as an exemplar value set.

id UniqueKey Level Location Description Expression
pdf-0 img  cnl-0 Warning (base) Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}') name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
img  pld-0 Rule PlanDefinition.action.input Input data elements must have a requirement or a relatedData, but not both requirement.exists() xor relatedData.exists()
img  pld-1 Rule PlanDefinition.action.output Output data element must have a requirement or a relatedData, but not both requirement.exists() xor relatedData.exists()
img  cnl-1 Warning PlanDefinition.url URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$')
img  pld-3 Warning (base) goalid should reference the id of a goal definition %context.repeat(action).where((goalId in %context.goal.id).not()).exists().not()
img  pld-4 Warning (base) targetId should reference the id of an action %context.repeat(action).relatedAction.where((targetId in %context.repeat(action).id).not()).exists().not()

The following diagram illustrates the relationship between the PlanDefinition and ActivityDefinition resources, as well as a typical application realization to CarePlan, RequestGroup, RequestOrchestration and Request 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:

relationship-between-action-and-activity-definition

The PlanDefinition and ActivityDefinition resources support the representation of a broad range of use cases including order sets, flow sheets, 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:

  1. Create a CarePlan Bundle resource focused on the Patient in context and linked to contain the PlanDefinition using the instantiates element Create goal elements in the CarePlan based on the goal definitions in overall results of the plan realization.
  2. Create a RequestGroup RequestOrchestration resource focused on the Patient in context and linked to the PlanDefinition using the instantiatesCanonical element
  3. Create an activity in Set the CarePlan first entry of the Bundle to the newly created RequestOrchestration resource
  4. Create Goal resources based on the reference goal definitions in the RequestGroup PlanDefinition
  5. Process each action element of the PlanDefinition

Processing for each action proceeds according to the following steps:

  1. Determine applicability by evaluating the applicability conditions defined for the element
  2. If the action is applicable, determine whether the action is a group or a single, atomic activity (does the action have child actions?)
  3. If the action is atomic, process according to the following steps:
    • Create an action element in the RequestGroup with RequestOrchestration. If the element has a linkId , set the linkId> element of the new action to the same value. Note that for legacy PlanDefinitions, this action linking was accomplished with the id as element, so for backwards compatibility, implementations may set the id element of the newly created action being processed as well.
    • Apply the elements of the action to the corresponding elements of the newly created action in the RequestGroup RequestOrchestration such as title , 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 three multiple possibilities for the definition element: element, but for the ones that specifically refer to another definitional resource, the behavior is:
      • ActivityDefinition:
        1. Create the target resource as described in the Applying an ActivityDefinition topic
        2. Reference the resulting resource in the resource element of the action. Note that action and add the target resource can be set as a contained resource an entry in the RequestGroup, or it can be persisted independently, as appropriate for the environment overall result Bundle.
        3. Set the status intent of the target resource to option so that it is clearly indicated as part of a RequestGroup. RequestOrchestration. Note that the ActivityDefinition/$apply operation will not necessarily produce the resource with this status, so this is an important step.
        4. Apply any overrides based on the elements of the action (see the section on Overlap below for details)
      • MessageDefinition: Construct a Message according to the definition given by the target
      • ObservationDefinition: Support the documentation of an Observation as defined by the target
      • PlanDefinition:
        1. Create a CarePlan RequestOrchestration by applying the target PlanDefinition
        2. Reference the resulting resource in the resource element of the action. Note that the resulting CarePlan can be set action and add it as a contained resource an entry in the RequestGroup, but doing so would require expanding any potentially contained resources. overall result Bundle.
        3. Set the status intent of the CarePlan RequestOrchestration to option so that it is clearly indicated as part of a RequestGroup. RequestOrchestration.
        4. Apply any overrides based on the elements of the action such as title , description , and dynamicValue .
      • Questionnaire: Set the resource element of the action to the Questionnaire, indicating that the activity to be performed is filling out the given questionnaire.
      • SpecimenDefinition: Support the collection of a Specimen as defined by the target
  4. 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).

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 .

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.

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.

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).

Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Expression In Common
composed-of reference What resource is being referenced PlanDefinition.relatedArtifact.where(type='composed-of').resource
(Any)
6 Resources
context token A use context assigned to the plan definition (PlanDefinition.useContext.value as CodeableConcept) (PlanDefinition.useContext.value.ofType(CodeableConcept)) 30 Resources
context-quantity quantity A quantity- or range-valued use context assigned to the plan definition (PlanDefinition.useContext.value as Quantity) (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value as Range) (PlanDefinition.useContext.value.ofType(Range)) 30 Resources
context-type token A type of use context assigned to the plan definition PlanDefinition.useContext.code 30 Resources
context-type-quantity composite A use context type and quantity- or range-based value assigned to the plan definition On PlanDefinition.useContext:
  context-type: code
  context-quantity: value.as(Quantity) value.ofType(Quantity) | value.as(Range) value.ofType(Range)
30 Resources
context-type-value composite A use context type and value assigned to the plan definition On PlanDefinition.useContext:
  context-type: code
  context: value.as(CodeableConcept) value.ofType(CodeableConcept)
30 Resources
date date The plan definition publication date PlanDefinition.date 30 Resources
definition reference Activity or plan definitions used by plan definition PlanDefinition.action.definition PlanDefinition.action.definition.ofType(canonical) | PlanDefinition.action.definition.ofType(uri)
( SpecimenDefinition , MessageDefinition , Questionnaire , ObservationDefinition , PlanDefinition , ActivityDefinition )
depends-on reference What resource is being referenced PlanDefinition.relatedArtifact.where(type='depends-on').resource | PlanDefinition.library
( Library , Any)
6 Resources
derived-from reference What resource is being referenced PlanDefinition.relatedArtifact.where(type='derived-from').resource
(Any)
10 Resources
description string The description of the plan definition PlanDefinition.description 28 Resources
effective date The time during which the plan definition is intended to be in use PlanDefinition.effectivePeriod 12 Resources
identifier token External identifier for the plan definition PlanDefinition.identifier 34 Resources
jurisdiction token Intended jurisdiction for the plan definition PlanDefinition.jurisdiction 26 Resources
name string Computationally friendly name of the plan definition PlanDefinition.name 26 Resources
predecessor reference What resource is being referenced PlanDefinition.relatedArtifact.where(type='predecessor').resource
(Any)
10 Resources
publisher string Name of the publisher of the plan definition PlanDefinition.publisher 30 Resources
status token The current status of the plan definition PlanDefinition.status 35 Resources
successor reference What resource is being referenced PlanDefinition.relatedArtifact.where(type='successor').resource
(Any)
6 Resources
title string The human-friendly name of the plan definition PlanDefinition.title 27 Resources
topic token Topics associated with the module PlanDefinition.topic 10 Resources
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 34 Resources
version token The business version of the plan definition PlanDefinition.version 30 Resources