use of org.hl7.fhir.r4.model.CapabilityStatement in project quality-measure-and-cohort-service by Alvearie.
the class MeasureEvaluatorTest method measure_report_generated___datetime_parameters_on_report_in_utc.
@Test
public void measure_report_generated___datetime_parameters_on_report_in_utc() throws Exception {
CapabilityStatement metadata = getCapabilityStatement();
mockFhirResourceRetrieval("/metadata?_format=json", metadata);
Patient patient = getPatient("123", AdministrativeGender.MALE, "1970-10-10");
mockFhirResourceRetrieval(patient);
Library library = mockLibraryRetrieval("TestDummyPopulations", DEFAULT_VERSION, "cql/fhir-measure/test-dummy-populations.xml", ELM_MIME_TYPE);
String fhirDefaultDatetimeParamterName = "fhirDatetimeParamDefault";
String fhirTimezoneDatetimeParameterName = "fhirDatetimeParamGMTPlus4";
Measure measure = getCohortMeasure("CohortMeasureName", library, INITIAL_POPULATION);
measure.addExtension(createParameterExtension(fhirDefaultDatetimeParamterName, new DateTimeType("2020-04-04")));
measure.addExtension(createParameterExtension(fhirTimezoneDatetimeParameterName, new DateTimeType("2020-04-04T00:00:00.0+04:00")));
mockFhirResourceRetrieval(measure);
String javaDefaultDatetimeParamterName = "javaDatetimeParamDefault";
String javaTimezoneDatetimeParameterName = "javaDatetimeParamGMTPlus4";
Map<String, Parameter> parameterMap = new HashMap<>();
parameterMap.put(javaDefaultDatetimeParamterName, new DatetimeParameter("2020-01-01"));
parameterMap.put(javaTimezoneDatetimeParameterName, new DatetimeParameter("2020-01-01T00:00:00.0+04:00"));
MeasureReport report = evaluator.evaluatePatientMeasure(measure.getId(), patient.getId(), parameterMap);
assertNotNull(report);
Map<String, DateTimeType> parameterNames = report.getExtension().stream().filter(x -> x.getUrl().equals(MEASURE_PARAMETER_VALUE_URL)).map(x -> (ParameterDefinition) x.getValue()).filter(x -> x.getExtensionByUrl(PARAMETER_VALUE_URL).getValue() instanceof DateTimeType).collect(Collectors.toMap(ParameterDefinition::getName, x -> (DateTimeType) x.getExtensionByUrl(PARAMETER_VALUE_URL).getValue()));
DateTimeType javaDefaultResult = parameterNames.get(javaDefaultDatetimeParamterName);
DateTimeType javaTimezoneResult = parameterNames.get(javaTimezoneDatetimeParameterName);
assertTrue(new DateTimeType("2020-01-01T00:00:00.000Z").equalsUsingFhirPathRules(javaDefaultResult));
assertEquals(TimeZone.getTimeZone("UTC"), javaDefaultResult.getTimeZone());
assertTrue(new DateTimeType("2019-12-31T20:00:00.000Z").equalsUsingFhirPathRules(javaTimezoneResult));
assertEquals(TimeZone.getTimeZone("UTC"), javaTimezoneResult.getTimeZone());
DateTimeType fhirDefaultResult = parameterNames.get(fhirDefaultDatetimeParamterName);
DateTimeType fhirTimezoneResult = parameterNames.get(fhirTimezoneDatetimeParameterName);
assertTrue(new DateTimeType("2020-04-04T00:00:00.000Z").equalsUsingFhirPathRules(fhirDefaultResult));
assertEquals(TimeZone.getTimeZone("UTC"), fhirDefaultResult.getTimeZone());
assertTrue(new DateTimeType("2020-04-03T20:00:00.000Z").equalsUsingFhirPathRules(fhirTimezoneResult));
assertEquals(TimeZone.getTimeZone("UTC"), fhirTimezoneResult.getTimeZone());
}
use of org.hl7.fhir.r4.model.CapabilityStatement in project quality-measure-and-cohort-service by Alvearie.
the class MeasureEvaluatorTest method measure_default_invalid_type.
@Test(expected = InvalidOperatorArgument.class)
public void measure_default_invalid_type() throws Exception {
CapabilityStatement metadata = getCapabilityStatement();
mockFhirResourceRetrieval("/metadata?_format=json", metadata);
Patient patient = getPatient("123", AdministrativeGender.MALE, "1970-10-10");
mockFhirResourceRetrieval(patient);
Library library = mockLibraryRetrieval("TestAdultMales", DEFAULT_VERSION, "cql/fhir-measure/test-parameter-defaults.cql");
expressionsByPopulationType.clear();
expressionsByPopulationType.put(MeasurePopulationType.INITIALPOPULATION, INITIAL_POPULATION);
expressionsByPopulationType.put(MeasurePopulationType.DENOMINATOR, DENOMINATOR);
expressionsByPopulationType.put(MeasurePopulationType.NUMERATOR, NUMERATOR);
Measure measure = getProportionMeasure("ProportionMeasureName", library, expressionsByPopulationType);
measure.addExtension(createMeasureParameter("SomeAge", new StringType("invalid")));
mockFhirResourceRetrieval(measure);
evaluator.evaluatePatientMeasure(measure.getId(), patient.getId(), null, new MeasureEvidenceOptions());
}
use of org.hl7.fhir.r4.model.CapabilityStatement in project quality-measure-and-cohort-service by Alvearie.
the class MeasureEvaluatorTest method in_populations_evaluated_resources_returned.
@Test
public void in_populations_evaluated_resources_returned() throws Exception {
CapabilityStatement metadata = getCapabilityStatement();
mockFhirResourceRetrieval("/metadata?_format=json", metadata);
Patient patient = getPatient("123", AdministrativeGender.MALE, "1970-10-10");
mockFhirResourceRetrieval(patient);
Library library = setupDefineReturnLibrary();
expressionsByPopulationType.clear();
expressionsByPopulationType.put(MeasurePopulationType.INITIALPOPULATION, INITIAL_POPULATION);
expressionsByPopulationType.put(MeasurePopulationType.DENOMINATOR, DENOMINATOR);
expressionsByPopulationType.put(MeasurePopulationType.NUMERATOR, NUMERATOR);
Measure measure = getProportionMeasure("ProportionMeasureName", library, expressionsByPopulationType);
mockFhirResourceRetrieval(measure);
MeasureReport report = evaluator.evaluatePatientMeasure(measure.getId(), patient.getId(), null, new MeasureEvidenceOptions(true, DefineReturnOptions.NONE));
assertNotNull(report);
assertFalse(report.getEvaluatedResource().isEmpty());
assertEquals(null, report.getExtensionByUrl(CDMConstants.EVIDENCE_URL));
}
use of org.hl7.fhir.r4.model.CapabilityStatement in project quality-measure-and-cohort-service by Alvearie.
the class MeasureEvaluatorTest method in_one_initial_population_for_two_measures___two_measure_reports_returned.
@Test
public void in_one_initial_population_for_two_measures___two_measure_reports_returned() throws Exception {
CapabilityStatement metadata = getCapabilityStatement();
mockFhirResourceRetrieval("/metadata?_format=json", metadata);
Patient patient = getPatient("123", AdministrativeGender.MALE, "1970-10-10");
mockFhirResourceRetrieval(patient);
Library library = mockLibraryRetrieval("TestDummyPopulations", DEFAULT_VERSION, "cql/fhir-measure/test-dummy-populations.cql");
String measure1Name = "ProportionMeasureName1";
Measure measure1 = getCareGapMeasure(measure1Name, library, expressionsByPopulationType, "CareGap1", "CareGap2");
mockFhirResourceRetrieval(measure1);
String measure2Name = "ProportionMeasureName2";
Measure measure2 = getCareGapMeasure(measure2Name, library, expressionsByPopulationType, "CareGap1", "CareGap2");
mockFhirResourceRetrieval(measure2);
Map<String, Parameter> passingParameters = new HashMap<>();
passingParameters.put("InInitialPopulation", new BooleanParameter(true));
Map<String, Parameter> failingParameters = new HashMap<>();
failingParameters.put("InInitialPopulation", new BooleanParameter(false));
List<MeasureContext> measureContexts = new ArrayList<>();
measureContexts.add(new MeasureContext(measure1.getId(), passingParameters));
measureContexts.add(new MeasureContext(measure2.getId(), failingParameters));
List<MeasureReport> measureReports = evaluator.evaluatePatientMeasures(patient.getId(), measureContexts);
assertEquals(2, measureReports.size());
// Make sure reports have measure references with meta version included
assertEquals("Measure/" + measure1Name + "/_history/" + MeasureTestBase.MEASURE_META_VERSION_ID, measureReports.get(0).getMeasure());
assertEquals("Measure/" + measure2Name + "/_history/" + MeasureTestBase.MEASURE_META_VERSION_ID, measureReports.get(1).getMeasure());
}
use of org.hl7.fhir.r4.model.CapabilityStatement in project quality-measure-and-cohort-service by Alvearie.
the class MeasureEvaluatorTest method elm_and_cql_in_initial_population___cohort_evaluated_correctly.
@Test
public void elm_and_cql_in_initial_population___cohort_evaluated_correctly() throws Exception {
CapabilityStatement metadata = getCapabilityStatement();
mockFhirResourceRetrieval("/metadata?_format=json", metadata);
Patient patient = getPatient("123", AdministrativeGender.MALE, "1970-10-10");
mockFhirResourceRetrieval(patient);
Library library = mockLibraryRetrieval("TestDummyPopulations", DEFAULT_VERSION, "cql/fhir-measure/test-dummy-populations.cql", "text/cql", "cql/fhir-measure/test-dummy-populations.xml", "application/elm+xml");
Measure measure = getCohortMeasure("CohortMeasureName", library, INITIAL_POPULATION);
mockFhirResourceRetrieval(measure);
MeasureReport report = evaluator.evaluatePatientMeasure(measure.getId(), patient.getId(), null);
assertNotNull(report);
assertEquals(1, report.getGroupFirstRep().getPopulationFirstRep().getCount());
}
Aggregations