This page is part of the Clinical Guidelines (v2.0.0-ballot: STU2 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 1.0.0. For a full list of available versions, see the Directory of published versions
Official URL: http://hl7.org/fhir/uv/cpg/Library/recorddetectedissue-library | Version: 2.0.0-ballot | |||
Active as of 2023-12-19 | Computable Name: RecordDetectedIssueLibrary |
Logic for an example recommendation to record a detected issue
depends-on | Code System Activity Type | CPG Activity Type Code System |
Patient | out | 0 | 1 | Patient |
Inclusion Criteria | out | 0 | 1 | boolean |
Record Detected Issue Task | out | 0 | * | Task |
Detected Issue | out | 0 | * | DetectedIssue |
Active or Completed Activity | out | 0 | * | Task |
Activity Not Done | out | 0 | * | Task |
Activity Proposal | out | 0 | * | Task |
Activity Proposal Rejected | out | 0 | * | Task |
Is Recommendation Applicable | out | 0 | 1 | boolean |
Type: Task (Task) |
Type: DetectedIssue (DetectedIssue) |
text/cql
library RecordDetectedIssue
using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'
codesystem "Activity Type": 'http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-activity-type-cs'
code "Record detected issue": 'record-detected-issue' from "Activity Type"
context Patient
/* Recommendation to record a detected issue */
/*
NOTE: This recommendation is dramatically simplified to illustrate the general
pattern for a positive recommendation to record a detected issue, with the ability
for users to reject the recommendation, and flexibility in how the recommendation
is achieved.
Specifically:
* There is no terminology, any task on any topic will do
* There is no timing, any task will do at any time
* There is no reference to participants other than the patient
* There is no relationship to a setting
* There is no relationship to an encounter or episode
* There is no relationship to a care plan
These simplifications allow the example to focus exclusively on the pattern for
recommending and for accepting/rejecting the proposal, as well as documenting
the completion, or explicit non-performance of the activity.
*/
/*
Positive recommendation:
If the patient meets the inclusion criteria
If the patient does not have the detected issue
If recording the detected issue has not been planned or proposed
Propose recording the detected issue
Given a proposal, the user can:
Accept the proposal
Ignore the proposal
Reject the proposal without reason
Reject the proposal with reason
Scenario 1: No event, no plan or proposal, decision support should propose
Scenario 2: No event, incomplete proposal, decision support should not propose
Scenario 3: No event, rejected proposal, decision support should not propose
Scenario 4: Event, no proposal, decision support should not propose
Scenario 5: Event, completed proposal, decision support should not propose
Scenario 6: Event not done, no proposal, decision support should not propose
Scenario 7: Event not done, proposal, decision support should not propose
*/
define "Inclusion Criteria":
Patient.active
define "Record Detected Issue Task":
[Task] C
where C.code ~ "Record detected issue"
and not Coalesce(doNotPerform(C), false)
define "Detected Issue":
[DetectedIssue] DI
where DI.status = 'final'
define "Active or Completed Activity":
"Record Detected Issue Task" C
where C.status in { 'in-progress', 'on-hold', 'completed' }
define "Activity Not Done":
"Record Detected Issue Task" C
where C.status in { 'cancelled', 'failed' }
define "Activity Proposal":
"Record Detected Issue Task" R
where R.status in { 'draft', 'requested', 'received', 'accepted', 'ready' }
define "Activity Proposal Rejected":
"Record Detected Issue Task" R
where R.status in { 'rejected' }
define "Is Recommendation Applicable":
"Inclusion Criteria"
and not exists ("Detected Issue")
and not exists (
"Active or Completed Activity"
union "Activity Not Done"
)
and not exists (
"Activity Proposal"
union "Activity Proposal Rejected"
)
define function doNotPerform(task Task):
singleton from (
task.extension E
where E.url = 'http://hl7.org/fhir/StructureDefinition/request-doNotPerform'
).value as boolean
Content not shown - (
application/elm+xml
, size = 34Kb)
Content not shown - (
application/elm+json
, size = 61Kb)