This page is part of the FHIR Specification (v1.4.0: STU 3 Ballot 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions
Clinical Decision Support Work Group | Maturity Level: 0 | Compartments: Not linked to any defined compartments |
This resource defines a decision support rule of the form [on Event] if Condition then Action. It is intended to be a shareable, computable definition of a actions that should be taken whenever some condition is met in response to a particular event or events.
This resource is a draft proposal for use as part of an approach to Clinical Quality within FHIR, and is documented as part of the Clinical Quality Improvement Framework Implementation Guide.
The DecisionSupportRule resource represents an Event-Condition-Action (ECA) rule, defining actions that should be taken whenever some condition is met in response to a particular event. This is of course not the only type of "rule" that can be used in a clinical decision support context, but it is a very common and flexible pattern that can be applied to a broad variety of applications.
In particular, ECA rules lend themselves very well to describing the logic that should be invoked from specific points in a clinical workflow, identified by triggers. On encountering a specific trigger, a clinical application can invoke the rules associated with the trigger using the $evaluate operation. Any data required by the ECA rule to test its condition can be sent as part of the request, and, if the condition is satisfied, any actions defined by the rule are returned via the GuidanceResponse resource.
Note that the DecisionSupportRule itself does not contain any logic; rather a Library resource is referenced that contains the logic required by the ECA Rule, and the various expression elements, such as condition, reference named expressions within that library (or libraries). In addition, if the DecisionSupportRule references multiple libraries, then any expression references within the resource must be qualified with the name of the library that contains the referenced expression.
For a more detailed discussion of the evaluation process, refer to the Integrating Decision Support in a Clinical Workflow topic in the CQIF IG.
The DecisionSupportRule resource is one of several resources defined to support the representation of knowledge artifacts, as well as the evaluation of decision support functionality. In particular, the same pattern of evaluation is defined for the DecisionSupportServiceModule resource. The difference between the two resources is that DecisionSupportRule can also be used as a mechanism to share the rule definition, whereas the DecisionSupportServiceModule only defines the information required to perform an evaluation.
This resource is referenced by guidanceresponse
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
DecisionSupportRule | Σ | DomainResource | A decision support rule | |
moduleMetadata | Σ | 0..1 | ModuleMetadata | Module information for the rule |
library | Σ | 0..* | Reference(Library) | Logic used within the rule |
trigger | Σ | 0..* | TriggerDefinition | "when" the rule should be invoked |
condition | Σ | 0..1 | string | "if" some condition is true |
action | Σ | 0..* | ActionDefinition | "then" perform these actions |
Documentation for this format |
UML Diagram
XML Template
<DecisionSupportRule xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <moduleMetadata><!-- 0..1 ModuleMetadata Module information for the rule --></moduleMetadata> <library><!-- 0..* Reference(Library) Logic used within the rule --></library> <trigger><!-- 0..* TriggerDefinition "when" the rule should be invoked --></trigger> <condition value="[string]"/><!-- 0..1 "if" some condition is true --> <action><!-- 0..* ActionDefinition "then" perform these actions --></action> </DecisionSupportRule>
JSON Template
{ "resourceType" : "DecisionSupportRule", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "moduleMetadata" : { ModuleMetadata }, // Module information for the rule "library" : [{ Reference(Library) }], // Logic used within the rule "trigger" : [{ TriggerDefinition }], // "when" the rule should be invoked "condition" : "<string>", // "if" some condition is true "action" : [{ ActionDefinition }] // "then" perform these actions }
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
DecisionSupportRule | Σ | DomainResource | A decision support rule | |
moduleMetadata | Σ | 0..1 | ModuleMetadata | Module information for the rule |
library | Σ | 0..* | Reference(Library) | Logic used within the rule |
trigger | Σ | 0..* | TriggerDefinition | "when" the rule should be invoked |
condition | Σ | 0..1 | string | "if" some condition is true |
action | Σ | 0..* | ActionDefinition | "then" perform these actions |
Documentation for this format |
XML Template
<DecisionSupportRule xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <moduleMetadata><!-- 0..1 ModuleMetadata Module information for the rule --></moduleMetadata> <library><!-- 0..* Reference(Library) Logic used within the rule --></library> <trigger><!-- 0..* TriggerDefinition "when" the rule should be invoked --></trigger> <condition value="[string]"/><!-- 0..1 "if" some condition is true --> <action><!-- 0..* ActionDefinition "then" perform these actions --></action> </DecisionSupportRule>
JSON Template
{ "resourceType" : "DecisionSupportRule", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "moduleMetadata" : { ModuleMetadata }, // Module information for the rule "library" : [{ Reference(Library) }], // Logic used within the rule "trigger" : [{ TriggerDefinition }], // "when" the rule should be invoked "condition" : "<string>", // "if" some condition is true "action" : [{ ActionDefinition }] // "then" perform these actions }
Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths |
description | string | Text search against the description | DecisionSupportRule.moduleMetadata.description |
identifier | token | Logical identifier for the module (e.g. CMS-143) | DecisionSupportRule.moduleMetadata.identifier |
status | token | Status of the module | DecisionSupportRule.moduleMetadata.status |
title | string | Text search against the title | DecisionSupportRule.moduleMetadata.title |
topic | token | Topics associated with the module | DecisionSupportRule.moduleMetadata.topic |
version | string | Version of the module (e.g. 1.0.0) | DecisionSupportRule.moduleMetadata.version |