Class MeasureEvaluator
java.lang.Object
org.opencds.cqf.fhir.cr.measure.common.MeasureEvaluator
This class implements the core Measure evaluation logic that's defined in the
Quality Measure
implementation guide and HQMF specifications. There are a number of
model-independent concepts
such as "groups", "populations", and "stratifiers" that can be used across a
number of different
data models including FHIR, QDM, and QICore. To the extent feasible, this
class is intended to be
model-independent so that it can be used in any Java-based implementation of
Quality Measure
evaluation.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.opencds.cqf.cql.engine.execution.CqlEngineprotected String -
Constructor Summary
ConstructorsConstructorDescriptionMeasureEvaluator(org.opencds.cqf.cql.engine.execution.CqlEngine context, String measurementPeriodParameterName) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcaptureEvaluatedResources(Set<Object> outEvaluatedResources) protected org.opencds.cqf.cql.engine.runtime.IntervalconvertInterval(org.opencds.cqf.cql.engine.runtime.Interval interval, String targetType) evaluate(MeasureDef measureDef, MeasureEvalType measureEvalType, List<String> subjectIds, org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod) protected MeasureDefevaluate(MeasureDef measureDef, MeasureReportType type, List<String> subjectIds) protected voidevaluateCohort(MeasureDef measureDef, GroupDef groupDef, String subjectType, String subjectId) protected voidevaluateContinuousVariable(MeasureDef measureDef, GroupDef groupDef, String subjectType, String subjectId) protected ObjectevaluateCriteria(String criteriaExpression, Set<Object> outEvaluatedResources) protected voidevaluateGroup(MeasureDef measureDef, GroupDef groupDef, String subjectType, String subjectId) protected ObjectevaluateObservationCriteria(Object resource, String criteriaExpression, Set<Object> outEvaluatedResources, boolean isBooleanBasis) evaluatePopulationCriteria(String subjectType, String subjectId, String criteriaExpression, Set<Object> outEvaluatedResources) protected PopulationDefevaluatePopulationMembership(String subjectType, String subjectId, PopulationDef inclusionDef) protected voidevaluateProportion(MeasureDef measureDef, GroupDef groupDef, String subjectType, String subjectId) protected voidevaluateSdes(String subjectId, List<SdeDef> sdes) protected voidevaluateStratifiers(String subjectId, List<StratifierDef> stratifierDefs) protected voidevaluateSubject(MeasureDef measureDef, Map<GroupDef, MeasureScoring> scoring, String subjectType, String subjectId) protected org.hl7.elm.r1.ParameterDefgetSubjectTypeAndId(String subjectId) protected voidsetMeasurementPeriod(org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod) protected org.opencds.cqf.cql.engine.runtime.DatetruncateDateTime(org.opencds.cqf.cql.engine.runtime.DateTime dateTime)
-
Field Details
-
context
protected org.opencds.cqf.cql.engine.execution.CqlEngine context -
measurementPeriodParameterName
-
-
Constructor Details
-
MeasureEvaluator
public MeasureEvaluator(org.opencds.cqf.cql.engine.execution.CqlEngine context, String measurementPeriodParameterName)
-
-
Method Details
-
evaluate
public MeasureDef evaluate(MeasureDef measureDef, MeasureEvalType measureEvalType, List<String> subjectIds, org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod) -
getMeasurementPeriodParameterDef
protected org.hl7.elm.r1.ParameterDef getMeasurementPeriodParameterDef() -
setMeasurementPeriod
protected void setMeasurementPeriod(org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod) -
convertInterval
protected org.opencds.cqf.cql.engine.runtime.Interval convertInterval(org.opencds.cqf.cql.engine.runtime.Interval interval, String targetType) -
truncateDateTime
protected org.opencds.cqf.cql.engine.runtime.Date truncateDateTime(org.opencds.cqf.cql.engine.runtime.DateTime dateTime) -
getSubjectTypeAndId
-
captureEvaluatedResources
-
evaluate
protected MeasureDef evaluate(MeasureDef measureDef, MeasureReportType type, List<String> subjectIds) -
evaluateSubject
protected void evaluateSubject(MeasureDef measureDef, Map<GroupDef, MeasureScoring> scoring, String subjectType, String subjectId) -
evaluatePopulationCriteria
-
evaluateCriteria
-
evaluateObservationCriteria
-
evaluatePopulationMembership
protected PopulationDef evaluatePopulationMembership(String subjectType, String subjectId, PopulationDef inclusionDef) -
evaluateProportion
protected void evaluateProportion(MeasureDef measureDef, GroupDef groupDef, String subjectType, String subjectId) -
evaluateContinuousVariable
protected void evaluateContinuousVariable(MeasureDef measureDef, GroupDef groupDef, String subjectType, String subjectId) -
evaluateCohort
protected void evaluateCohort(MeasureDef measureDef, GroupDef groupDef, String subjectType, String subjectId) -
evaluateGroup
protected void evaluateGroup(MeasureDef measureDef, GroupDef groupDef, String subjectType, String subjectId) -
evaluateSdes
-
evaluateStratifiers
-