Class MeasureEvaluator

java.lang.Object
org.opencds.cqf.fhir.cr.measure.common.MeasureEvaluator

public class MeasureEvaluator extends Object
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 Details

    • context

      protected org.opencds.cqf.cql.engine.execution.CqlEngine context
    • measurementPeriodParameterName

      protected String 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

      protected org.apache.commons.lang3.tuple.Pair<String,String> getSubjectTypeAndId(String subjectId)
    • captureEvaluatedResources

      protected void captureEvaluatedResources(Set<Object> outEvaluatedResources)
    • 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

      protected Iterable<Object> evaluatePopulationCriteria(String subjectType, String subjectId, String criteriaExpression, Set<Object> outEvaluatedResources)
    • evaluateCriteria

      protected Object evaluateCriteria(String criteriaExpression, Set<Object> outEvaluatedResources)
    • evaluateObservationCriteria

      protected Object evaluateObservationCriteria(Object resource, String criteriaExpression, Set<Object> outEvaluatedResources, boolean isBooleanBasis)
    • 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

      protected void evaluateSdes(String subjectId, List<SdeDef> sdes)
    • evaluateStratifiers

      protected void evaluateStratifiers(String subjectId, List<StratifierDef> stratifierDefs)