| Id: |
PrimaryScreeningDecision |
| Version: |
0.1.0 |
| Url: |
PrimaryScreeningDecision |
| Status: |
draft |
| Type: |
system: http://terminology.hl7.org/CodeSystem/library-type
code: logic-library
|
| Date: |
2025-02-28 21:24:30+0000 |
| Publisher: |
MITRE |
| Related Artifacts: |
Dependencies
http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1
http://cancerscreeningcds.github.io/crcsm-cds/Library/ScreeningEligible|1.0.0
http://cancerscreeningcds.github.io/crcsm-cds/Library/DecisionToScreen|1.0.0
http://cancerscreeningcds.github.io/crcsm-cds/Library/USPSTFAvgRisk|1.0.0
http://cancerscreeningcds.github.io/crcsm-cds/Library/FHIRHelpers|4.0.1
http://cancerscreeningcds.github.io/crcsm-cds/Library/IncreasedRiskExclusions|1.0.0
- Logical Observation Identifiers, Names and Codes (LOINC)
|
| Parameters: |
| Name | Type | Min | Max | In/Out |
| Patient | Patient | 0 | 1 | Out |
| IsScreeningEligible | boolean | 0 | 1 | Out |
| flow-DecisionToScreen | Resource | 0 | * | Out |
| flow-ScreeningEligible | Resource | 0 | * | Out |
| PrimaryScreeningDecision | Resource | 0 | * | Out |
| CheckIsIncludedAndNotExcluded | boolean | 0 | 1 | Out |
| IsNotScreeningEligible | boolean | 0 | 1 | Out |
| ScreeningEligibleCode | Coding | 0 | 1 | Out |
| ScreeningEligibleReason | Coding | 0 | 1 | Out |
| ExistsSDMContinueScreeningAge | boolean | 0 | 1 | Out |
| SDMContinueScreeningAgeCode | Coding | 0 | 1 | Out |
| SDMContinueScreeningAgeReason | Coding | 0 | 1 | Out |
| ExistsSDMContinueScreeningLifeExp | boolean | 0 | 1 | Out |
| SDMContinueScreeningLifeExpCode | Coding | 0 | 1 | Out |
| SDMContinueScreeningLifeExpReason | Coding | 0 | 1 | Out |
| ExistsStopScreeningAge | boolean | 0 | 1 | Out |
| StopScreeningAgeCode | Coding | 0 | 1 | Out |
| StopScreeningAgeReason | Coding | 0 | 1 | Out |
| ExistsIncreasedRiskExclusionsRecommendations | boolean | 0 | 1 | Out |
| ExistsUSPSTFAverageRiskRecommendations | boolean | 0 | 1 | Out |
| ExistsHereditarySyndrome | boolean | 0 | 1 | Out |
| HereditarySyndromeCode | Coding | 0 | 1 | Out |
| HereditarySyndromeReason | Coding | 0 | 1 | Out |
| ExistsIBD | boolean | 0 | 1 | Out |
| IBDCode | Coding | 0 | 1 | Out |
| IBDReason | Coding | 0 | 1 | Out |
| ExistsHxCRC | boolean | 0 | 1 | Out |
| HxCRCCode | Coding | 0 | 1 | Out |
| HxCRCReason | Coding | 0 | 1 | Out |
| ExistsFamilyHx | boolean | 0 | 1 | Out |
| FamilyHxCode | Coding | 0 | 1 | Out |
| FamilyHxReason | Coding | 0 | 1 | Out |
| ExistsHxPolyps | boolean | 0 | 1 | Out |
| HxPolypsCode | Coding | 0 | 1 | Out |
| HxPolypsReason | Coding | 0 | 1 | Out |
| ExistsUSPSTFAvgRisk | boolean | 0 | 1 | Out |
| USPSTFAvgRiskCode | Coding | 0 | 1 | Out |
| USPSTFAvgRiskReason | Coding | 0 | 1 | Out |
| USPSTFAvgRiskTiming | Resource | 0 | 1 | Out |
| USPSTFAvgRiskTimingEvent | string | 0 | 1 | Out |
| ExistsUSPSTFAvgRiskStartAt45 | boolean | 0 | 1 | Out |
| ExistsUSPSTFAvgRiskNextDue | boolean | 0 | 1 | Out |
| ExistsUSPSTFAvgRiskStartNow | boolean | 0 | 1 | Out |
|
| Data Requirements: |
| Type | Profile | MS | Code Filter |
| Patient |
http://hl7.org/fhir/StructureDefinition/Patient |
|
|
| Observation |
http://hl7.org/fhir/StructureDefinition/Observation |
;;; |
code filter:
path: code
system: http://loinc.org
code: 30525-0
display: Age
code filter:
path: value.unit
code: years
|
|
| Content: text/cql |
library PrimaryScreeningDecision version '1.0.0'
using FHIR version '4.0.1'
include ScreeningEligible version '1.0.0' called ScreeningEligible
include DecisionToScreen version '1.0.0' called DecisionToScreen
include USPSTFAvgRisk version '1.0.0' called USPSTFAvgRisk
context Patient
//------------------------------------------------------------------------------
// RECOMMENDATIONS
//------------------------------------------------------------------------------
define PrimaryScreeningDecision:
Flatten(
{
"flow-DecisionToScreen",
"flow-ScreeningEligible"
}
except { null }
)
define "flow-ScreeningEligible":
ScreeningEligible."flow-ScreeningEligible"
define "flow-DecisionToScreen":
if IsScreeningEligible then DecisionToScreen."flow-DecisionToScreen" else null
//------------------------------------------------------------------------------
// DYNAMIC VALUES Screening Eligible
//------------------------------------------------------------------------------
define CheckIsIncludedAndNotExcluded:
ScreeningEligible.CheckIsIncludedAndNotExcluded
define IsScreeningEligible:
ScreeningEligible."IsScreeningEligible"
define IsNotScreeningEligible:
ScreeningEligible.IsNotScreeningEligible
// TODO: Add Screening Eligible Actions for Not Eligible Reasons
define ScreeningEligibleCode:
ScreeningEligible.ScreeningEligibleCode
define ScreeningEligibleReason:
ScreeningEligible.ScreeningEligibleReason
//------------------------------------------------------------------------------
// DYNAMIC VALUES DECISION TO SCREEN
//------------------------------------------------------------------------------
define ExistsSDMContinueScreeningAge:
DecisionToScreen.ExistsSDMContinueScreeningAge
define SDMContinueScreeningAgeCode:
DecisionToScreen.SDMContinueScreeningAgeCode
define SDMContinueScreeningAgeReason:
DecisionToScreen.SDMContinueScreeningAgeReason
define ExistsSDMContinueScreeningLifeExp:
DecisionToScreen.ExistsSDMContinueScreeningLifeExp
define SDMContinueScreeningLifeExpCode:
DecisionToScreen.SDMContinueScreeningLifeExpCode
define SDMContinueScreeningLifeExpReason:
DecisionToScreen.SDMContinueScreeningLifeExpReason
define ExistsStopScreeningAge:
DecisionToScreen.ExistsStopScreeningAge
define StopScreeningAgeCode:
DecisionToScreen.StopScreeningAgeCode
define StopScreeningAgeReason:
DecisionToScreen.StopScreeningAgeReason
define ExistsIncreasedRiskExclusionsRecommendations:
DecisionToScreen.ExistsIncreasedRiskExclusionsRecommendations
define ExistsUSPSTFAverageRiskRecommendations:
DecisionToScreen.ExistsUSPSTFAverageRiskRecommendations
//------------------------------------------------------------------------------
// DYNAMIC VALUES INCREASED RISK SCREENING/SURVEILLANCE
//------------------------------------------------------------------------------
define ExistsHereditarySyndrome:
DecisionToScreen.ExistsHereditarySyndrome
define HereditarySyndromeCode:
DecisionToScreen.HereditarySyndromeCode
define HereditarySyndromeReason:
DecisionToScreen.HereditarySyndromeReason
define ExistsIBD:
DecisionToScreen.ExistsIBD
define IBDCode:
DecisionToScreen.IBDCode
define IBDReason:
DecisionToScreen.IBDReason
define ExistsHxCRC:
DecisionToScreen.ExistsHxCRC
define HxCRCCode:
DecisionToScreen.HxCRCCode
define HxCRCReason:
DecisionToScreen.HxCRCReason
define ExistsFamilyHx:
DecisionToScreen.ExistsFamilyHx
define FamilyHxCode:
DecisionToScreen.FamilyHxCode
define FamilyHxReason:
DecisionToScreen.FamilyHxReason
define ExistsHxPolyps:
DecisionToScreen.ExistsHxPolyps
define HxPolypsCode:
DecisionToScreen.HxPolypsCode
define HxPolypsReason:
DecisionToScreen.HxPolypsReason
//------------------------------------------------------------------------------
// DYNAMIC VALUES AVERAGE RISK
//------------------------------------------------------------------------------
define ExistsUSPSTFAvgRisk:
DecisionToScreen.ExistsUSPSTFAvgRisk
define USPSTFAvgRiskCode:
DecisionToScreen.USPSTFAvgRiskCode
define USPSTFAvgRiskReason:
DecisionToScreen.USPSTFAvgRiskReason
define USPSTFAvgRiskTiming:
DecisionToScreen.USPSTFAvgRiskTiming
define USPSTFAvgRiskTimingEvent:
DecisionToScreen.USPSTFAvgRiskTimingEvent
define ExistsUSPSTFAvgRiskStartAt45:
USPSTFAvgRisk.ExistsUSPSTFAvgRiskStartAt45
define ExistsUSPSTFAvgRiskNextDue:
USPSTFAvgRisk.ExistsUSPSTFAvgRiskNextDue
define ExistsUSPSTFAvgRiskStartNow:
USPSTFAvgRisk.ExistsUSPSTFAvgRiskStartNow
|
|
| Content: application/elm+xml |
Encoded data (51236 characters)
|
|
| Content: application/elm+json |
Encoded data (86636 characters)
|
|