Package com.ibm.fhir.ecqm.r4
Class R4MeasureEvaluation<ST extends DomainResource>
- java.lang.Object
-
- com.ibm.fhir.ecqm.common.MeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST>
-
- com.ibm.fhir.ecqm.r4.R4MeasureEvaluation<ST>
-
- Type Parameters:
ST- Model class for the subject type that will be evaluated (e.g. Patient)
public class R4MeasureEvaluation<ST extends DomainResource> extends MeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST>
Implementation of FHIR Quality Measure Evaluation logic on top of the IBM FHIR Server model.
-
-
Field Summary
-
Fields inherited from class com.ibm.fhir.ecqm.common.MeasureEvaluation
context, EXT_DAVINCI_POPULATION_REFERENCE, getId, measure, measurementPeriod, packageName, subjectOrPractitionerId, URL_CODESYSTEM_MEASURE_POPULATION
-
-
Constructor Summary
Constructors Constructor Description R4MeasureEvaluation(org.opencds.cqf.cql.engine.execution.Context context, Measure measure, org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod, java.lang.String packageName, java.util.function.Function<DomainResource,java.lang.String> getId)R4MeasureEvaluation(org.opencds.cqf.cql.engine.execution.Context context, Measure measure, org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod, java.lang.String packageName, java.util.function.Function<DomainResource,java.lang.String> getId, java.lang.String patientOrPractitionerId)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddContained(MeasureReport.Builder report, DomainResource resource)protected voidaddEvaluatedResource(MeasureReport.Builder report, DomainResource resource)protected voidaddExtension(Reference.Builder reference, Extension extension)protected voidaddPopulationReport(MeasureReport.Builder report, MeasureReport.Group.Builder group, Measure.Group.Population populationCriteria, int populationCount, java.lang.Iterable<ST> subjectPopulation)protected voidaddReportGroup(MeasureReport.Builder report, MeasureReport.Group.Builder group)protected CodingcreateCoding(java.lang.String text)protected ExtensioncreateCodingExtension(java.lang.String url, java.lang.String codeSystem, java.lang.String code)protected List.EntrycreateListEntry(Reference.Builder reference)protected ListcreateListResource(java.util.Collection<List.Entry> entries)protected ExtensioncreateMeasureInfoExtension(MeasureInfo measureInfo)protected MeasureReport.BuildercreateMeasureReport(java.lang.String status, MeasureReportType type, org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod, java.util.List<ST> subjects)protected DomainResourcecreatePatientObservation(Measure measure, java.lang.String populationId, Coding coding)protected DomainResourcecreatePopulationObservation(Measure measure, java.lang.String populationId, Coding coding, java.lang.Integer value)protected Reference.BuildercreateReference(java.lang.String resourceId)protected MeasureReport.Group.BuildercreateReportGroup(java.lang.String id)protected java.lang.StringgetCodingCode(Coding coding)protected java.lang.StringgetCriteriaExpression(Measure.Group.Population population)protected CodinggetExtensionCoding(ST patient, java.lang.String coreCategory, java.lang.String sdeCode)Retrieve the coding from an extension that that looks like the following...protected java.lang.Iterable<Measure.Group>getGroup()protected java.lang.StringgetGroupId(Measure.Group group)protected MeasureScoringgetMeasureScoring()protected java.lang.Iterable<Measure.Group.Population>getPopulation(Measure.Group mgc)protected MeasurePopulationTypegetPopulationType(Measure.Group.Population population)protected CodinggetSDECoding(Measure.SupplementalData sdeItem)protected java.lang.StringgetSDEExpression(Measure.SupplementalData sdeItem)protected java.util.List<Measure.SupplementalData>getSupplementalData(Measure measure)protected booleanisCoding(java.lang.Object obj)protected voidsetEvaluatedResources(MeasureReport.Builder report, java.util.Collection<Reference.Builder> evaluatedResources)protected voidsetGroupScore(MeasureReport.Group.Builder group, java.lang.Double score)-
Methods inherited from class com.ibm.fhir.ecqm.common.MeasureEvaluation
evaluate, evaluatePatientListMeasure, evaluatePatientMeasure, evaluatePopulationMeasure, evaluateSubjectListMeasure
-
-
-
-
Constructor Detail
-
R4MeasureEvaluation
public R4MeasureEvaluation(org.opencds.cqf.cql.engine.execution.Context context, Measure measure, org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod, java.lang.String packageName, java.util.function.Function<DomainResource,java.lang.String> getId, java.lang.String patientOrPractitionerId)
-
R4MeasureEvaluation
public R4MeasureEvaluation(org.opencds.cqf.cql.engine.execution.Context context, Measure measure, org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod, java.lang.String packageName, java.util.function.Function<DomainResource,java.lang.String> getId)
-
-
Method Detail
-
addPopulationReport
protected void addPopulationReport(MeasureReport.Builder report, MeasureReport.Group.Builder group, Measure.Group.Population populationCriteria, int populationCount, java.lang.Iterable<ST> subjectPopulation)
- Specified by:
addPopulationReportin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
addReportGroup
protected void addReportGroup(MeasureReport.Builder report, MeasureReport.Group.Builder group)
- Specified by:
addReportGroupin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createMeasureReport
protected MeasureReport.Builder createMeasureReport(java.lang.String status, MeasureReportType type, org.opencds.cqf.cql.engine.runtime.Interval measurementPeriod, java.util.List<ST> subjects)
- Specified by:
createMeasureReportin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createReportGroup
protected MeasureReport.Group.Builder createReportGroup(java.lang.String id)
- Specified by:
createReportGroupin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getCriteriaExpression
protected java.lang.String getCriteriaExpression(Measure.Group.Population population)
- Specified by:
getCriteriaExpressionin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getGroup
protected java.lang.Iterable<Measure.Group> getGroup()
- Specified by:
getGroupin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getGroupId
protected java.lang.String getGroupId(Measure.Group group)
- Specified by:
getGroupIdin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getMeasureScoring
protected MeasureScoring getMeasureScoring()
- Specified by:
getMeasureScoringin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getPopulation
protected java.lang.Iterable<Measure.Group.Population> getPopulation(Measure.Group mgc)
- Specified by:
getPopulationin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getPopulationType
protected MeasurePopulationType getPopulationType(Measure.Group.Population population)
- Specified by:
getPopulationTypein classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
setGroupScore
protected void setGroupScore(MeasureReport.Group.Builder group, java.lang.Double score)
- Specified by:
setGroupScorein classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getSDEExpression
protected java.lang.String getSDEExpression(Measure.SupplementalData sdeItem)
- Specified by:
getSDEExpressionin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getSupplementalData
protected java.util.List<Measure.SupplementalData> getSupplementalData(Measure measure)
- Specified by:
getSupplementalDatain classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getSDECoding
protected Coding getSDECoding(Measure.SupplementalData sdeItem)
- Specified by:
getSDECodingin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
isCoding
protected boolean isCoding(java.lang.Object obj)
- Specified by:
isCodingin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createCoding
protected Coding createCoding(java.lang.String text)
- Specified by:
createCodingin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getCodingCode
protected java.lang.String getCodingCode(Coding coding)
- Specified by:
getCodingCodein classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createPatientObservation
protected DomainResource createPatientObservation(Measure measure, java.lang.String populationId, Coding coding)
- Specified by:
createPatientObservationin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createPopulationObservation
protected DomainResource createPopulationObservation(Measure measure, java.lang.String populationId, Coding coding, java.lang.Integer value)
- Specified by:
createPopulationObservationin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createMeasureInfoExtension
protected Extension createMeasureInfoExtension(MeasureInfo measureInfo)
-
addEvaluatedResource
protected void addEvaluatedResource(MeasureReport.Builder report, DomainResource resource)
- Specified by:
addEvaluatedResourcein classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
addContained
protected void addContained(MeasureReport.Builder report, DomainResource resource)
- Specified by:
addContainedin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
getExtensionCoding
protected Coding getExtensionCoding(ST patient, java.lang.String coreCategory, java.lang.String sdeCode)
Description copied from class:MeasureEvaluationRetrieve the coding from an extension that that looks like the following... { "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race", "extension": [ { "url": "ombCategory", "valueCoding": { "system": "urn:oid:2.16.840.1.113883.6.238", "code": "2054-5", "display": "Black or African American" } } ] }- Specified by:
getExtensionCodingin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createCodingExtension
protected Extension createCodingExtension(java.lang.String url, java.lang.String codeSystem, java.lang.String code)
- Specified by:
createCodingExtensionin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createReference
protected Reference.Builder createReference(java.lang.String resourceId)
- Specified by:
createReferencein classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createListResource
protected List createListResource(java.util.Collection<List.Entry> entries)
- Specified by:
createListResourcein classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
createListEntry
protected List.Entry createListEntry(Reference.Builder reference)
- Specified by:
createListEntryin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
addExtension
protected void addExtension(Reference.Builder reference, Extension extension)
- Specified by:
addExtensionin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
setEvaluatedResources
protected void setEvaluatedResources(MeasureReport.Builder report, java.util.Collection<Reference.Builder> evaluatedResources)
- Specified by:
setEvaluatedResourcesin classMeasureEvaluation<java.lang.Object,Measure,Measure.Group,Measure.Group.Population,Measure.SupplementalData,MeasureReport.Builder,MeasureReport.Group.Builder,MeasureReport.Group.Population.Builder,Coding,Extension,Reference.Builder,List,List.Entry,DomainResource,ST extends DomainResource>
-
-