| Group |
Scoring |
Population Criteria |
Expression |
| 675761f046b6174510cfee0b |
Group scoring:
continuous-variable
|
| Type: |
Outcome
|
|
|
Initial Population |
define "Initial Population":
"Measure Population"
|
|
|
Measure Population |
define "Measure Population":
[Encounter: "Encounter Inpatient"] EncounterInpatient
where EncounterInpatient.period ends during day of "Measurement Period"
and AgeInYearsAt(date from start of EncounterInpatient.period) >= 18
and ( duration in hours of EncounterInpatient.period >= 24 )
and EncounterInpatient.status = 'finished'
|
|
|
Measure Population Exclusion |
define "Measure Population Exclusion":
"Encounter with Discharge for Hospice Care"
union "Encounter with Hospice during Eligible Encounter"
|
|
|
Measure Observation |
define function "Measure Observation 1"(MalnutritionRiskScreening Encounter):
if "Encounter with Malnutrition Risk Screening or with Hospital Dietitian Referral" contains MalnutritionRiskScreening then 1
else 0, define function "Measure Observation 1"(MalnutritionRiskScreening Encounter):
if "Encounter with Malnutrition Risk Screening or with Hospital Dietitian Referral" contains MalnutritionRiskScreening then 1
else 0
|
675761f046b6174510cfee0c |
Group scoring:
continuous-variable
|
| Type: |
Outcome
|
|
|
Initial Population |
define "Initial Population":
"Measure Population"
|
|
|
Measure Population |
define "Measure Population":
[Encounter: "Encounter Inpatient"] EncounterInpatient
where EncounterInpatient.period ends during day of "Measurement Period"
and AgeInYearsAt(date from start of EncounterInpatient.period) >= 18
and ( duration in hours of EncounterInpatient.period >= 24 )
and EncounterInpatient.status = 'finished'
|
|
|
Measure Population Exclusion |
define "Measure Population Exclusion":
"Encounter with Discharge for Hospice Care"
union "Encounter with Hospice during Eligible Encounter"
|
|
|
Measure Observation |
define function "Measure Observation 2"(NutritionAssessment Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains NutritionAssessment then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains NutritionAssessment then if "Most Recent Encounter with Nutrition Assessment and Identified Status" contains NutritionAssessment then 1
else 0
else 0, define function "Measure Observation 2"(NutritionAssessment Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains NutritionAssessment then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains NutritionAssessment then if "Most Recent Encounter with Nutrition Assessment and Identified Status" contains NutritionAssessment then 1
else 0
else 0
|
675761f046b6174510cfee0d |
Group scoring:
continuous-variable
|
| Type: |
Outcome
|
|
|
Initial Population |
define "Initial Population":
"Measure Population"
|
|
|
Measure Population |
define "Measure Population":
[Encounter: "Encounter Inpatient"] EncounterInpatient
where EncounterInpatient.period ends during day of "Measurement Period"
and AgeInYearsAt(date from start of EncounterInpatient.period) >= 18
and ( duration in hours of EncounterInpatient.period >= 24 )
and EncounterInpatient.status = 'finished'
|
|
|
Measure Population Exclusion |
define "Measure Population Exclusion":
"Encounter with Discharge for Hospice Care"
union "Encounter with Hospice during Eligible Encounter"
|
|
|
Measure Observation |
define function "Measure Observation 3"(MalnutritionDiagnosis Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains MalnutritionDiagnosis then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains MalnutritionDiagnosis then if "Encounter with Malnutrition Diagnosis" contains MalnutritionDiagnosis then if "Encounter with Nutrition Assessment Not or Mildly Malnourished" contains MalnutritionDiagnosis then 0
else if "Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished" contains MalnutritionDiagnosis then 1
else 0
else 0
else 0, define function "Measure Observation 3"(MalnutritionDiagnosis Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains MalnutritionDiagnosis then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains MalnutritionDiagnosis then if "Encounter with Malnutrition Diagnosis" contains MalnutritionDiagnosis then if "Encounter with Nutrition Assessment Not or Mildly Malnourished" contains MalnutritionDiagnosis then 0
else if "Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished" contains MalnutritionDiagnosis then 1
else 0
else 0
else 0
|
675761f046b6174510cfee0e |
Group scoring:
continuous-variable
|
| Type: |
Outcome
|
|
|
Initial Population |
define "Initial Population":
"Measure Population"
|
|
|
Measure Population |
define "Measure Population":
[Encounter: "Encounter Inpatient"] EncounterInpatient
where EncounterInpatient.period ends during day of "Measurement Period"
and AgeInYearsAt(date from start of EncounterInpatient.period) >= 18
and ( duration in hours of EncounterInpatient.period >= 24 )
and EncounterInpatient.status = 'finished'
|
|
|
Measure Population Exclusion |
define "Measure Population Exclusion":
"Encounter with Discharge for Hospice Care"
union "Encounter with Hospice during Eligible Encounter"
|
|
|
Measure Observation |
define function "Measure Observation 4"(NutritionCarePlan Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains NutritionCarePlan then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains NutritionCarePlan then if "Encounter with Nutrition Care Plan" contains NutritionCarePlan then if "Encounter with Nutrition Assessment Not or Mildly Malnourished" contains NutritionCarePlan then 0
else if "Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished" contains NutritionCarePlan then 1
else 0
else 0
else 0, define function "Measure Observation 4"(NutritionCarePlan Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains NutritionCarePlan then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains NutritionCarePlan then if "Encounter with Nutrition Care Plan" contains NutritionCarePlan then if "Encounter with Nutrition Assessment Not or Mildly Malnourished" contains NutritionCarePlan then 0
else if "Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished" contains NutritionCarePlan then 1
else 0
else 0
else 0
|
675761f046b6174510cfee0f |
Group scoring:
continuous-variable
|
| Type: |
Outcome
|
|
|
Initial Population |
define "Initial Population":
"Measure Population"
|
|
|
Measure Population |
define "Measure Population":
[Encounter: "Encounter Inpatient"] EncounterInpatient
where EncounterInpatient.period ends during day of "Measurement Period"
and AgeInYearsAt(date from start of EncounterInpatient.period) >= 18
and ( duration in hours of EncounterInpatient.period >= 24 )
and EncounterInpatient.status = 'finished'
|
|
|
Measure Population Exclusion |
define "Measure Population Exclusion":
"Encounter with Discharge for Hospice Care"
union "Encounter with Hospice during Eligible Encounter"
|
|
|
Measure Observation |
define function "Measure Observation Total Malnutrition Components Score"(QualifyingEncounter Encounter):
Sum({ "Measure Observation 1"(QualifyingEncounter), "Measure Observation 2"(QualifyingEncounter), "Measure Observation 3"(QualifyingEncounter), "Measure Observation 4"(QualifyingEncounter) }), define function "Measure Observation Total Malnutrition Components Score"(QualifyingEncounter Encounter):
Sum({ "Measure Observation 1"(QualifyingEncounter), "Measure Observation 2"(QualifyingEncounter), "Measure Observation 3"(QualifyingEncounter), "Measure Observation 4"(QualifyingEncounter) })
|
675761f046b6174510cfee10 |
Group scoring:
continuous-variable
|
| Type: |
Outcome
|
|
|
Initial Population |
define "Initial Population":
"Measure Population"
|
|
|
Measure Population |
define "Measure Population":
[Encounter: "Encounter Inpatient"] EncounterInpatient
where EncounterInpatient.period ends during day of "Measurement Period"
and AgeInYearsAt(date from start of EncounterInpatient.period) >= 18
and ( duration in hours of EncounterInpatient.period >= 24 )
and EncounterInpatient.status = 'finished'
|
|
|
Measure Population Exclusion |
define "Measure Population Exclusion":
"Encounter with Discharge for Hospice Care"
union "Encounter with Hospice during Eligible Encounter"
|
|
|
Measure Observation |
define function "Measure Observation Total Malnutrition Care Score as Percentage"(QualifyingEncounter Encounter):
100 * ( "Measure Observation Total Malnutrition Components Score"(QualifyingEncounter) / "Total Malnutrition Care Score Eligible Occurrences"(QualifyingEncounter) )
|
| Library Name |
Name |
| SupplementalDataElements |
SDE Sex |
|
define "SDE Sex":
case
when Patient.gender = 'male' then "M"
when Patient.gender = 'female' then "F"
else null
end
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
SDE Patient sex for quality measurement |
|
define "SDE Patient sex for quality measurement":
SDE."SDE Sex"
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Population |
|
define "Measure Population":
[Encounter: "Encounter Inpatient"] EncounterInpatient
where EncounterInpatient.period ends during day of "Measurement Period"
and AgeInYearsAt(date from start of EncounterInpatient.period) >= 18
and ( duration in hours of EncounterInpatient.period >= 24 )
and EncounterInpatient.status = 'finished'
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Discharge for Hospice Care |
|
define "Encounter with Discharge for Hospice Care":
( "Measure Population" QualifyingEncounter
where QualifyingEncounter.status = 'finished'
and ( QualifyingEncounter.hospitalization.dischargeDisposition in "Hospice Care Referral or Admission" )
)
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Hospice during Eligible Encounter |
|
define "Encounter with Hospice during Eligible Encounter":
from
"Measure Population" QualifyingEncounter,
( ["ServiceRequest": code in "Hospice Status"]
union ["Procedure": "Hospice Status"] ) HospiceStatus
where "Hospice Status" contains HospiceStatus.code as Concept
and HospiceStatus.status in { 'active', 'completed' }
and Coalesce(start of HospiceStatus.performed.toInterval(), HospiceStatus.authoredOn) during day of QualifyingEncounter."hospitalizationWithObservation" ( )
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Population Exclusion |
|
define "Measure Population Exclusion":
"Encounter with Discharge for Hospice Care"
union "Encounter with Hospice during Eligible Encounter"
|
| Library Name |
Name |
| SupplementalDataElements |
SDE Race |
|
define "SDE Race":
Patient.race R
return Tuple {
codes: R.ombCategory union R.detailed,
display: R.text
}
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
SDE Race |
|
define "SDE Race":
SDE."SDE Race"
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Malnutrition Risk Screening |
|
define "Encounter with Malnutrition Risk Screening":
from
"Measure Population" QualifyingEncounter,
["Observation": "Malnutrition Risk Screening"] MalnutritionRiskScreening
where ( "Malnutrition Risk Screening" contains MalnutritionRiskScreening.code as Concept
and MalnutritionRiskScreening.status in { 'final', 'amended', 'corrected' }
and MalnutritionRiskScreening.effective.toInterval ( ) during QualifyingEncounter.hospitalizationWithObservation ( )
and ( "Malnutrition Screening Finding of Not At Risk Result" contains MalnutritionRiskScreening.value as Concept
or "Malnutrition Screening Finding of At Risk Result" contains MalnutritionRiskScreening.value as Concept
)
)
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Dietitian Referral |
|
define "Encounter with Dietitian Referral":
from
"Measure Population" QualifyingEncounter,
["Procedure": "Hospital Dietitian Referral"] HospitalDietitianReferral
where "Hospital Dietitian Referral" contains HospitalDietitianReferral.code as Concept
and HospitalDietitianReferral.status in { 'active', 'completed', 'in-progress' }
and HospitalDietitianReferral.performed.earliest ( ) during day of QualifyingEncounter.hospitalizationWithObservation ( )
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Malnutrition Risk Screening or with Hospital Dietitian Referral |
|
define "Encounter with Malnutrition Risk Screening or with Hospital Dietitian Referral":
from
"Measure Population" QualifyingEncounter
where "Encounter with Malnutrition Risk Screening" contains QualifyingEncounter
or "Encounter with Dietitian Referral" contains QualifyingEncounter
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Malnutrition Risk Screening Not At Risk |
|
define "Encounter with Malnutrition Risk Screening Not At Risk":
from
"Measure Population" QualifyingEncounter,
["Observation": "Malnutrition Risk Screening"] MalnutritionRiskScreening
where "Malnutrition Risk Screening" contains MalnutritionRiskScreening.code as Concept
and MalnutritionRiskScreening.status in { 'final', 'amended', 'corrected' }
and MalnutritionRiskScreening.effective.toInterval ( ) during QualifyingEncounter.hospitalizationWithObservation ( )
and ( "Malnutrition Screening Finding of Not At Risk Result" contains MalnutritionRiskScreening.value as Concept )
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral |
|
define "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral":
from
"Measure Population" QualifyingEncounter
where "Encounter with Malnutrition Risk Screening Not At Risk" contains QualifyingEncounter
and not exists ( "Encounter with Dietitian Referral" )
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Malnutrition Risk Screening At Risk |
|
define "Encounter with Malnutrition Risk Screening At Risk":
from
"Measure Population" QualifyingEncounter,
["Observation": "Malnutrition Risk Screening"] MalnutritionRiskScreening
where "Malnutrition Risk Screening" contains MalnutritionRiskScreening.code as Concept
and MalnutritionRiskScreening.status in { 'final', 'amended', 'corrected' }
and MalnutritionRiskScreening.effective.toInterval ( ) during QualifyingEncounter.hospitalizationWithObservation ( )
and ( "Malnutrition Screening Finding of At Risk Result" contains MalnutritionRiskScreening.value as Concept )
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral |
|
define "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral":
from
"Measure Population" QualifyingEncounter
where "Encounter with Malnutrition Risk Screening At Risk" contains QualifyingEncounter
or "Encounter with Dietitian Referral" contains QualifyingEncounter
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Nutrition Assessment Performed |
|
define "Nutrition Assessment Performed":
from
"Measure Population" QualifyingEncounter,
["Observation": "Nutrition Assessment"] NutritionAssessment
let NAssessLatest: NutritionAssessment.effective.latest ( )
where "Nutrition Assessment" contains NutritionAssessment.code as Concept
and NutritionAssessment.status in { 'final', 'amended', 'corrected' }
and NutritionAssessment.effective.toInterval ( ) during QualifyingEncounter.hospitalizationWithObservation ( )
and NutritionAssessment.value is not null
return Tuple {
HospEncId: QualifyingEncounter.id,
HospitalizationPeriod: QualifyingEncounter.hospitalizationWithObservation ( ),
NutrAssessCode: NutritionAssessment.code as Concept,
NutrAssessId: NutritionAssessment.id,
NutrAssessResult: NutritionAssessment.value,
NutrAssessTimingEff: NutritionAssessment.effective,
NutrAssessTimingInt: NutritionAssessment.effective.toInterval ( ),
NutrAssessTimingLatest: NAssessLatest
}
sort by NutrAssessTimingLatest asc
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Most Recent Encounter with Nutrition Assessment and Identified Status |
|
define "Most Recent Encounter with Nutrition Assessment and Identified Status":
from
"Measure Population" QualifyingEncounter,
["Observation": "Nutrition Assessment"] NutritionAssessment
where ( "Nutrition Assessment" contains NutritionAssessment.code as Concept
and NutritionAssessment.status in { 'final', 'amended', 'corrected' }
and NutritionAssessment.effective.toInterval ( ) during QualifyingEncounter.hospitalizationWithObservation ( )
and ( "Nutrition Assessment Status Finding of Well Nourished or Not Malnourished or Mildly Malnourished" contains NutritionAssessment.value as Concept
or ( "Nutrition Assessment Status Finding of Moderately Malnourished" contains NutritionAssessment.value as Concept )
or ( "Nutrition Assessment Status Finding of Severely Malnourished" contains NutritionAssessment.value as Concept )
)
and ( exists ( "Encounter with Malnutrition Risk Screening At Risk" )
or exists ( "Encounter with Dietitian Referral" )
)
and NutritionAssessment.effective.latest ( ) same day as "Last Nutrition Assessment Day During Encounter"(QualifyingEncounter)
)
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Malnutrition Diagnosis |
|
define "Encounter with Malnutrition Diagnosis":
from
"Measure Population" QualifyingEncounter,
["Condition": "Malnutrition Diagnosis"] MalnutritionDiagnosis
where "Malnutrition Diagnosis" contains MalnutritionDiagnosis.code as Concept
and MalnutritionDiagnosis.prevalenceInterval ( ) overlaps QualifyingEncounter.hospitalizationWithObservation ( )
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Nutrition Assessment Not or Mildly Malnourished |
|
define "Encounter with Nutrition Assessment Not or Mildly Malnourished":
from
"Measure Population" QualifyingEncounter,
["Observation": "Nutrition Assessment"] NutritionAssessment
where ( "Nutrition Assessment" contains NutritionAssessment.code as Concept
and NutritionAssessment.status in { 'final', 'amended', 'corrected' }
and NutritionAssessment.effective.toInterval ( ) during QualifyingEncounter.hospitalizationWithObservation ( )
and ( "Nutrition Assessment Status Finding of Well Nourished or Not Malnourished or Mildly Malnourished" contains NutritionAssessment.value as Concept )
and NutritionAssessment.effective.latest ( ) same day as "Last Nutrition Assessment Day During Encounter"(QualifyingEncounter)
)
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished |
|
define "Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished":
from
"Measure Population" QualifyingEncounter,
["Observation": "Nutrition Assessment"] NutritionAssessment
where ( "Nutrition Assessment" contains NutritionAssessment.code as Concept
and NutritionAssessment.status in { 'final', 'amended', 'corrected' }
and NutritionAssessment.effective.toInterval ( ) during QualifyingEncounter.hospitalizationWithObservation ( )
and ( "Nutrition Assessment Status Finding of Moderately Malnourished" contains NutritionAssessment.value as Concept
or "Nutrition Assessment Status Finding of Severely Malnourished" contains NutritionAssessment.value as Concept
)
and NutritionAssessment.effective.latest ( ) same day as "Last Nutrition Assessment Day During Encounter"(QualifyingEncounter)
)
return QualifyingEncounter
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Encounter with Nutrition Care Plan |
|
define "Encounter with Nutrition Care Plan":
from
"Measure Population" QualifyingEncounter,
["Procedure": "Nutrition Care Plan"] NutritionCarePlan
where "Nutrition Care Plan" contains NutritionCarePlan.code as Concept
and NutritionCarePlan.status in { 'completed', 'in-progress' }
and NutritionCarePlan.performed.earliest ( ) during QualifyingEncounter.hospitalizationWithObservation ( )
return QualifyingEncounter
|
| Library Name |
Name |
| SupplementalDataElements |
SDE Payer |
|
define "SDE Payer":
[Coverage: type in "Payer Type"] Payer
return {
code: Payer.type,
period: Payer.period
}
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
SDE Payer Type |
|
define "SDE Payer Type":
SDE."SDE Payer"
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Initial Population |
|
define "Initial Population":
"Measure Population"
|
| Library Name |
Name |
| SupplementalDataElements |
SDE Ethnicity |
|
define "SDE Ethnicity":
Patient.ethnicity E
return Tuple {
codes: { E.ombCategory } union E.detailed,
display: E.text
}
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
SDE Ethnicity |
|
define "SDE Ethnicity":
SDE."SDE Ethnicity"
|
| Library Name |
Name |
| FHIRHelpers |
ToInterval |
|
/*
@description: Converts the given [Period](https://hl7.org/fhir/datatypes.html#Period)
value to a CQL DateTime Interval
@comment: If the start value of the given period is unspecified, the starting
boundary of the resulting interval will be open (meaning the start of the interval
is unknown, as opposed to interpreted as the beginning of time).
*/
define function ToInterval(period FHIR.Period):
if period is null then
null
else
if period."start" is null then
Interval(period."start".value, period."end".value]
else
Interval[period."start".value, period."end".value]
|
| Library Name |
Name |
| CQMCommon |
hospitalizationWithObservation |
|
/*
@description: Hospitalization with Observation returns the total interval from the start of any immediately prior emergency department visit through the observation visit to the discharge of the given encounter
*/
define fluent function hospitalizationWithObservation(TheEncounter Encounter ):
TheEncounter Visit
let ObsVisit: Last([Encounter: "Observation Services"] LastObs
where LastObs.status = 'finished'
and LastObs.period ends 1 hour or less on or before start of Visit.period
sort by end of period
),
VisitStart: Coalesce(start of ObsVisit.period, start of Visit.period),
EDVisit: Last([Encounter: "Emergency Department Visit"] LastED
where LastED.status = 'finished'
and LastED.period ends 1 hour or less on or before VisitStart
sort by end of period
)
return Interval[Coalesce(start of EDVisit.period, VisitStart), end of Visit.period]
|
| Library Name |
Name |
| FHIRHelpers |
ToString |
|
define function ToString(value uri): value.value
|
| Library Name |
Name |
| FHIRHelpers |
ToCode |
|
/*
@description: Converts the given FHIR [Coding](https://hl7.org/fhir/datatypes.html#Coding) value to a CQL Code.
*/
define function ToCode(coding FHIR.Coding):
if coding is null then
null
else
System.Code {
code: coding.code.value,
system: coding.system.value,
version: coding.version.value,
display: coding.display.value
}
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation 1 |
|
define function "Measure Observation 1"(MalnutritionRiskScreening Encounter):
if "Encounter with Malnutrition Risk Screening or with Hospital Dietitian Referral" contains MalnutritionRiskScreening then 1
else 0
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation Total Malnutrition Components Score |
|
define function "Measure Observation Total Malnutrition Components Score"(QualifyingEncounter Encounter):
Sum({ "Measure Observation 1"(QualifyingEncounter), "Measure Observation 2"(QualifyingEncounter), "Measure Observation 3"(QualifyingEncounter), "Measure Observation 4"(QualifyingEncounter) })
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation 1 |
|
define function "Measure Observation 1"(MalnutritionRiskScreening Encounter):
if "Encounter with Malnutrition Risk Screening or with Hospital Dietitian Referral" contains MalnutritionRiskScreening then 1
else 0
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation 2 |
|
define function "Measure Observation 2"(NutritionAssessment Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains NutritionAssessment then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains NutritionAssessment then if "Most Recent Encounter with Nutrition Assessment and Identified Status" contains NutritionAssessment then 1
else 0
else 0
|
| Library Name |
Name |
| QICoreCommon |
latest |
|
/*
@description: Given an interval, returns the ending point if the interval has an ending boundary specified,
otherwise, returns the starting point
*/
define fluent function latest(choice Choice<DateTime, Quantity, Interval<DateTime>, Interval<Quantity>> ):
(choice.toInterval()) period
return
if (period."hasEnd"()) then end of period
else start of period
|
| Library Name |
Name |
| QICoreCommon |
hasEnd |
|
/*
@description: Given an interval, returns true if the interval has an ending boundary specified
(i.e. the end of the interval is not null and not the maximum DateTime value)
*/
define fluent function hasEnd(period Interval<DateTime> ):
not (
end of period is null
or end of period = maximum DateTime
)
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Last Nutrition Assessment Day During Encounter |
|
define function "Last Nutrition Assessment Day During Encounter"(QualifyingEncounter Encounter):
Last("Nutrition Assessment Performed" NutritionAssessmentTuple
where NutritionAssessmentTuple.HospEncId = QualifyingEncounter.id
return NutritionAssessmentTuple.NutrAssessTimingLatest
sort asc
)
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation 3 |
|
define function "Measure Observation 3"(MalnutritionDiagnosis Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains MalnutritionDiagnosis then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains MalnutritionDiagnosis then if "Encounter with Malnutrition Diagnosis" contains MalnutritionDiagnosis then if "Encounter with Nutrition Assessment Not or Mildly Malnourished" contains MalnutritionDiagnosis then 0
else if "Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished" contains MalnutritionDiagnosis then 1
else 0
else 0
else 0
|
| Library Name |
Name |
| QICoreCommon |
prevalenceInterval |
|
/*
@description: Returns an interval representing the normalized prevalence period of a given Condition.
@comment: Uses the ToInterval and ToAbatementInterval functions to determine the widest potential interval from
onset to abatement as specified in the given Condition. If the condition is active, or has an abatement date the resulting
interval will have a closed ending boundary. Otherwise, the resulting interval will have an open ending boundary.
*/
define fluent function prevalenceInterval(condition Condition):
if condition.clinicalStatus ~ "active"
or condition.clinicalStatus ~ "recurrence"
or condition.clinicalStatus ~ "relapse" then
Interval[start of condition.onset.toInterval(), end of condition.abatementInterval()]
else
(end of condition.abatementInterval()) abatementDate
return if abatementDate is null then
Interval[start of condition.onset.toInterval(), abatementDate)
else
Interval[start of condition.onset.toInterval(), abatementDate]
|
| Library Name |
Name |
| QICoreCommon |
abatementInterval |
|
/*
@description: Returns an interval representing the normalized abatement of a given Condition.
@comment: If the abatement element of the Condition is represented as a DateTime, the result
is an interval beginning and ending on that DateTime.
If the abatement is represented as a Quantity, the quantity is expected to be a calendar-duration and is interpreted as the age of the patient. The
result is an interval from the date the patient turned that age to immediately before one year later.
If the abatement is represented as a Quantity Interval, the quantities are expected to be calendar-durations and are interpreted as an age range during
which the abatement occurred. The result is an interval from the date the patient turned the starting age of the quantity interval, and ending immediately
before one year later than the date the patient turned the ending age of the quantity interval.
*/
define fluent function abatementInterval(condition Condition):
if condition.abatement is DateTime then
Interval[condition.abatement as DateTime, condition.abatement as DateTime]
else if condition.abatement is Quantity then
Interval[Patient.birthDate + (condition.abatement as Quantity),
Patient.birthDate + (condition.abatement as Quantity) + 1 year)
else if condition.abatement is Interval<Quantity> then
Interval[Patient.birthDate + (condition.abatement.low as Quantity),
Patient.birthDate + (condition.abatement.high as Quantity) + 1 year)
else if condition.abatement is Interval<DateTime> then
Interval[condition.abatement.low, condition.abatement.high)
else null as Interval<DateTime>
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation 4 |
|
define function "Measure Observation 4"(NutritionCarePlan Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains NutritionCarePlan then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains NutritionCarePlan then if "Encounter with Nutrition Care Plan" contains NutritionCarePlan then if "Encounter with Nutrition Assessment Not or Mildly Malnourished" contains NutritionCarePlan then 0
else if "Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished" contains NutritionCarePlan then 1
else 0
else 0
else 0
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation 3 |
|
define function "Measure Observation 3"(MalnutritionDiagnosis Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains MalnutritionDiagnosis then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains MalnutritionDiagnosis then if "Encounter with Malnutrition Diagnosis" contains MalnutritionDiagnosis then if "Encounter with Nutrition Assessment Not or Mildly Malnourished" contains MalnutritionDiagnosis then 0
else if "Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished" contains MalnutritionDiagnosis then 1
else 0
else 0
else 0
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation 2 |
|
define function "Measure Observation 2"(NutritionAssessment Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains NutritionAssessment then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains NutritionAssessment then if "Most Recent Encounter with Nutrition Assessment and Identified Status" contains NutritionAssessment then 1
else 0
else 0
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation 4 |
|
define function "Measure Observation 4"(NutritionCarePlan Encounter):
if "Encounter with Malnutrition Not At Risk Screening and without Hospital Dietitian Referral" contains NutritionCarePlan then 0
else if "Encounter with Malnutrition Risk Screening At Risk or with Hospital Dietitian Referral" contains NutritionCarePlan then if "Encounter with Nutrition Care Plan" contains NutritionCarePlan then if "Encounter with Nutrition Assessment Not or Mildly Malnourished" contains NutritionCarePlan then 0
else if "Encounter with Nutrition Assessment Status Moderately Or Severely Malnourished" contains NutritionCarePlan then 1
else 0
else 0
else 0
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation Total Malnutrition Care Score as Percentage |
|
define function "Measure Observation Total Malnutrition Care Score as Percentage"(QualifyingEncounter Encounter):
100 * ( "Measure Observation Total Malnutrition Components Score"(QualifyingEncounter) / "Total Malnutrition Care Score Eligible Occurrences"(QualifyingEncounter) )
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Measure Observation Total Malnutrition Components Score |
|
define function "Measure Observation Total Malnutrition Components Score"(QualifyingEncounter Encounter):
Sum({ "Measure Observation 1"(QualifyingEncounter), "Measure Observation 2"(QualifyingEncounter), "Measure Observation 3"(QualifyingEncounter), "Measure Observation 4"(QualifyingEncounter) })
|
| Library Name |
Name |
| CMS986FHIRMalnutritionScore |
Total Malnutrition Care Score Eligible Occurrences |
|
define function "Total Malnutrition Care Score Eligible Occurrences"(QualifyingEncounter Encounter):
if ( ( "Encounter with Malnutrition Risk Screening or with Hospital Dietitian Referral" contains QualifyingEncounter )
and ( "Encounter with Malnutrition Risk Screening Not At Risk" contains QualifyingEncounter )
)
and not ( "Encounter with Dietitian Referral" contains QualifyingEncounter ) then 1
else if ( ( ( "Encounter with Malnutrition Risk Screening or with Hospital Dietitian Referral" contains QualifyingEncounter )
and ( "Encounter with Malnutrition Risk Screening At Risk" contains QualifyingEncounter )
)
or ( "Encounter with Dietitian Referral" contains QualifyingEncounter )
)
and ( "Encounter with Nutrition Assessment Not or Mildly Malnourished" contains QualifyingEncounter )
or not ( "Most Recent Encounter with Nutrition Assessment and Identified Status" contains QualifyingEncounter ) then 2
else 4
|