This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions 
Responsible Owner: Work Group Clinical Decision Support ![]() | Standards Status: Informative |
Part of defining knowledge artifacts such as order sets, protocols, and decision support rules is describing in a patient- or context-independent way the activities to be performed. For example, when defining an order set, the orderable items must be described with enough detail to enable the creation of the items when the order set is applied. These descriptions can be thought of as templates for the creation of patient- or context-specific resources and are often referred to as definitional resources, to distinguish them from intent resources (that signal an intention to take some action for a specific patient), as well as event resources (that signal that some action has actually been taken for a patient).
Definitional resources in clinical reasoning build on the Definition pattern established in the Workflow module. The treatment here is from the clinical reasoning perspective, specifically discussing how definitional resources can be used as knowledge artifacts to provide computable representations of clinical knowledge.
In the most general case, these definitional resources only need to describe the most basic aspects of the activity to be performed, such as:
However, this level of conceptual description often does not carry enough information to enable computable description of activities. For example, medication activities will often involve specific drug and dosage information that must be captured as part of the definition. Further, it is often the case that the values for the elements of resources to be created cannot be specified exactly as part of the definition, but must be specified using a formula that allows for the calculation to be based on patient- or context-specific information.
Note to implementers: Although there are currently only a few definitional resources defined (ActivityDefinition, ObservationDefinition, SpecimenDefinition), the concept is general, and this is a deliberate design decision to avoid the overhead of defining and maintaining a different definitional resource for every category of request. We anticipate that as the use cases for definitional activities require more specialized elements to be represented, additional definitional resources will be defined.
For more information on the general process of realizing definitional resources, refer to the Applying a PlanDefinition and Applying an ActivityDefinition topics.
For a more detailed treatment of representing and realizing clinical activities as part of computable guidelines, refer to the Activity Flow
topic in the Clinical Guidelines implementation guide.
The ActivityDefinition resource supports the description of definitional resources within FHIR:
| Who | participantType | Specifies the type of participant that should perform the activity. |
| What | kind and code | Specifies the type of activity to be performed. |
| When | timing | Specifies when the activity should be performed. |
| Where | location | Specifies where the activity should be performed. |
| Why | reason, documentation | Specifies why the activity should be performed. |
For example, the following fragment illustrates a definition to create a referral request:
<ActivityDefinition>
<description value="refer to primary care mental-health integrated care program for evaluation and treatment
of mental health conditions now"/>
<kind value="ServiceRequest"/>
<code>
<coding>
<system value="http://snomed.info/sct"/>
<code value="306206005"/>
<display value="Referral to service"/>
</coding>
</code>
<timingTiming>
<event>
<extension url="http://hl7.org/fhir/StructureDefinition/cqf-expression">
<valueExpression>
<language value="text/cql-expression"/>
<expression value="Now()"/>
</valueExpression>
</extension>
</event>
</timingTiming>
<participantType value="practitioner"/>
</ActivityDefinition>
This definition specifies:
kind of resource to be created, a ServiceRequestcode of SNOMED 306206005: Referral to serviceNow() (i.e. as soon as possible)practitionerNote the use of an expression to represent the value of the timing element as Now().
For medication activities, the ActivityDefinition resource has some basic elements such as the product and quantity, and dosageInstruction but there are cases where elements that need to be set on the resulting MedicationRequest are not present on the ActivityDefinition (such as dispenseRequest). In those cases, the dynamicValue expression elements can be used to describe the values for elements that are present on the target resource, but not in the definitional resource. For example:
<ActivityDefinition>
<id value="citalopramPrescription"/>
<status value="draft"/>
<category value="drug"/>
<productReference>
<reference value="#citalopramMedication"/>
</productReference>
<dynamicValue>
<path value="dispenseRequest.numberOfRepeatsAllowed"/>
<expression>
<language value="text/cql-expression"/>
<expression value="3"/>
</expression>
</dynamicValue>
<dynamicValue>
<path value="dispenseRequest.quantity"/>
<expression>
<language value="text/cql-expression"/>
<expression value="30 '{tbl}'"/>
</expression>
</dynamicValue>
</ActivityDefinition>
To specify that a particular device should be used in the administration of a medication, use the action.typeCanonical element set to an instance of a DeviceDefinition resource:
<typeCanonical value="http://example.org/fhir/DeviceDefinition/administration-device"/>
This will then result in the creation of a MedicationRequest resource with the device element set to that DeviceDefinition.
The ObservationDefinition resource supports the definition of an observation to be taken.
The SpecimenDefinition resource supports the definition of a specimen to be collected.
The MessageDefinition resource supports the definition of a message to be communicated. NOTE: This is a system-level message, as opposed to a human-to-human message, which would be modeled using the CommunicationRequest and Communication resources.
The Questionnaire resource can be used to directly support describing information to be collected as part of a process. The Structured Data Capture
implementation guide provides detailed information for supporting this use case.
Note that the ActivityDefinition resource is specifically designed to support request resources, typically with an intent of proposal to ensure that clinician interaction can be part of interpreting the results of any automated reasoning processes. However, it is possible to construct event resources as part of the reasoning process, such as Observations, Procedures, RiskAssessments, DetectedIssues, etc. To support this case, implementations should make use of a Task resource with proposal intent, where the focus of the Task would be the computed event resource.
The EvidenceVariable resource supports the description of definitional resources for variables to be referenced from an Evidence resource:
| Who | topic | Could specify the category of evidence variable (eg condition, exposure); available for future uses |
| What | characteristic.definition[x] | Specifies a component of the definition of the evidence variable |
| When | characteristic.timeFromStart | Subelement of characteristic to specify when the definitional component was or will be determined |
| Where | type | Specifies the type of variable (eg dichotomous. Categorical, continuous, descriptive) |
| How | Characteristic.method | Specifies how the definitional component was or will be determined |
For example, the following fragment illustrates a definition of "intracranial hemorrhage within 7 days" as a characteristic from an EvidenceVariable instance:
<characteristic>
<description value="intracranial hemorrhage within 7 days"/>
<definitionCodeableConcept>
<coding>
<system value="http://snomed.info/sct"/>
<code value="1386000"/>
<display value="Intracranial hemorrhage (disorder)"/>
</coding>
</definitionCodeableConcept>
<timeFromStart>
<description value="within 7 days"/>
<range>
<low>
<value value="0"/>
<unit value="day"/>
<system value="http://unitsofmeasure.org"/>
<code value="d"/>
</low>
<high>
<value value="7"/>
<unit value="day"/>
<system value="http://unitsofmeasure.org"/>
<code value="d"/>
</high>
</range>
</timeFromStart>
</characteristic>