This page is part of the Clinical Guidelines (v1.0.0: STU 1) based on FHIR R4. This is the current published version. For a full list of available versions, see the Directory of published versions
FHIR profiles are a key aspect of supporting interoperable computable content, providing a formal mechanism for defining the data elements used by computable content, as well as conformance expectations for the computable content itself. Readers of this implementation guide should be familiar with the Profiling FHIR topic in the base specification.
This page provides overview documentation for the following categories of profiles and documentation:
For indexes of profiles and extensions defined in this implementation guide, see the following:
For definitional artifacts, this implementation guide defines profile classes to represent knowledge capabilities for shareable, computable, publishable, and executable knowledge artifacts. All knowledge artifacts must be at least shareable, and where appropriate for the target environment, artifacts should declare the capabilities they support using the [cpg-knowledgeCapability](StructureDefinition-cpg-knowledgeCapability.html) extension, as well as the knowledge representation level of the artifact using the [cpg-knowledgeRepresentationLevel](StructureDefinition-cpg-knowledgeRepresentationLevel) extension, as defined in the shareable profiles.
These capabilities are introduced to support separation of concerns along the spectrum from authoring to distribution to consumption, as illustrated by the following diagram:
A given artifact may provide all knowledge capabilities (Shareable plus Computable, Publishable, and Executable), or it may be focused on a particular capability. For example, a ValueSet may be only Shareable and Executable because it is intended for use in environments without access to a terminology service capable of expanding the Computable value set.
Note that explicit profiles for capabilities are only defined when there are specific elements of the artifact involved in supporting that capability. For example, there is no executable ActivityDefinition profile, but that doesn't mean that ActivityDefinition artifacts cannot be executable, only that there are no additional conformance expectations for executable ActivityDefinitions specified by this implementation guide.
Capability | Shareable | Computable | Publishable | Executable |
---|---|---|---|---|
Activity | CPGShareableActivityDefinition | CPGComputableActivity | CPGPublishableActivity | -* |
CodeSystem | CPGShareableCodeSystem | -** | CPGPublishableCodeSystem | -* |
GraphDefinition | CPGShareableGraphDefinition | CPGComputableGraphDefinition | CPGPublishableGraphDefinition | -* |
ImplementationGuide | CPGShareableImplementationGuide | CPGComputableGuideline | CPGPublishableGuideline | -* |
Library | CPGShareableLibrary | CPGComputableLibrary | CPGPublishableLibrary | CPGExecutableLibrary |
Metric | CPGShareableMetric | CPGComputableMetric | CPGPublishableMetric | -* |
PlanDefinition | CPGShareablePlanDefinition | CPGComputablePlanDefinition | CPGPublishablePlanDefinition | -* |
Questionnaire | CPGShareableQuestionnaire | -** | CPGPublishableQuestionnaire | -* |
StructureDefinition | CPGShareableStructureDefinition | CPGCaseFeatureDefinition | CPGPublishableCaseFeatureDefinition | -* |
ValueSet | CPGShareableValueSet | CPGComputableValueSet | CPGPublishableValueSet | CPGExecutableValueSet |
* - Conformance expectations covered by the Computable profile
** - Conformance expectations covered by the Shareable profile
Examples of the use of these profiles are available in the Examples page. In particular, see the Congestive Heart Failure Pathway example.
To represent the activities in a computable guideline, this implementation guide follows the workflow patterns established by the base FHIR specification, definition, request, and event. For each type of activity, these profiles establish at least:
Note that the intent of these profiles is not to establish the content of the activity, only to ensure that requests and events related to guideline-based care can be traced back to the recommendation, strategy, pathway, and ultimately guideline they are representing.
See the Activity Examples for a complete example of each of the above activity types.
In addition to the profiles defined by this implementation guide, computable content generally deals with two broad categories of profiles:
Interoperability profiles establish standards of data exchange between systems, and are typically defined in and distributed as part of model implementation guides. To be useful, these profiles will generally be established across a broad range of systems, all operating in a particular environment, or in support of a particular set of use cases. Examples of these types of profiles are:
Computability profiles describe the data expectations for computable content, and are typically defined in and distributed as part of content implementation guides. For example, given the following condition:
define "Active Ambulatory Opioid Rx":
[MedicationRequest: "Ambulatory Abuse Potential Opioids"] Rx
where Rx.status = 'active'
and Rx.category contains "Outpatient"
In this example, the condition is referencing the status
and category
elements of the MedicationRequest
resource. In order for this logic to be evaluated effectively, the system providing the MedicationRequest
instance must understand these two elements and provide data for them if it is available. Computability profiles are used to communicate this information through FHIR profiles.
Note that for logic expressed in CQL, this information can be inferred by static analysis of the CQL expressions and is exposed statically in the dataRequirement
element of the Library
resource. In addition, the $data-requirements
operation can be used to extract this information from a CQL Library dynamically.
Content conforming to this IG SHOULD select a set of base interoperability profiles appropriate for the intended target. For international usage, implementation guides conforming to this IG SHOULD use International Patient Summary.
In general, implementation of any given computable content is based on the intersection of the interoperability and computability profiles. As such, content authors must take care not to define computability profiles that conflict with interoperability profiles in their intended target scope.