use of com.ibm.cohort.cql.evaluation.CqlEvaluationRequest in project quality-measure-and-cohort-service by Alvearie.
the class SparkCqlEvaluatorTest method makeEvaluationRequest.
private CqlEvaluationRequest makeEvaluationRequest(String contextName, String libraryName, String libraryVersion) {
CqlEvaluationRequest cqlEvaluationRequest = new CqlEvaluationRequest();
cqlEvaluationRequest.setContextKey(contextName);
cqlEvaluationRequest.setContextValue("NA");
CqlLibraryDescriptor descriptor = new CqlLibraryDescriptor();
descriptor.setLibraryId(libraryName);
descriptor.setVersion(libraryVersion);
cqlEvaluationRequest.setDescriptor(descriptor);
return cqlEvaluationRequest;
}
use of com.ibm.cohort.cql.evaluation.CqlEvaluationRequest in project quality-measure-and-cohort-service by Alvearie.
the class ContextColumnNameEncoderTest method testMultipleRequestsColumnNames.
@Test
public void testMultipleRequestsColumnNames() {
CqlLibraryDescriptor libraryDescriptor1 = new CqlLibraryDescriptor();
libraryDescriptor1.setLibraryId("lib1");
CqlEvaluationRequest request = new CqlEvaluationRequest();
request.setDescriptor(libraryDescriptor1);
request.setId(1);
CqlExpressionConfiguration expressionConfiguration1 = new CqlExpressionConfiguration();
expressionConfiguration1.setName("abcd");
CqlExpressionConfiguration expressionConfiguration2 = new CqlExpressionConfiguration();
expressionConfiguration2.setName("efgh");
expressionConfiguration2.setOutputColumn("A2");
request.setExpressions(new HashSet<>(Arrays.asList(expressionConfiguration1, expressionConfiguration2)));
CqlLibraryDescriptor libraryDescriptor2 = new CqlLibraryDescriptor();
libraryDescriptor2.setLibraryId("lib2");
CqlEvaluationRequest request2 = new CqlEvaluationRequest();
request2.setDescriptor(libraryDescriptor2);
request2.setId(2);
CqlExpressionConfiguration expressionConfiguration3 = new CqlExpressionConfiguration();
expressionConfiguration3.setName("ijkl");
expressionConfiguration3.setOutputColumn("A3");
CqlExpressionConfiguration expressionConfiguration4 = new CqlExpressionConfiguration();
expressionConfiguration4.setName("mnop");
request2.setExpressions(new HashSet<>(Arrays.asList(expressionConfiguration3, expressionConfiguration4)));
ContextColumnNameEncoder contextColumnNameEncoder = ContextColumnNameEncoder.create(Arrays.asList(request, request2), "|");
assertEquals("lib1|abcd", contextColumnNameEncoder.getColumnName(request, "abcd"));
assertEquals("A2", contextColumnNameEncoder.getColumnName(request, "efgh"));
assertEquals("A3", contextColumnNameEncoder.getColumnName(request2, "ijkl"));
assertEquals("lib2|mnop", contextColumnNameEncoder.getColumnName(request2, "mnop"));
}
use of com.ibm.cohort.cql.evaluation.CqlEvaluationRequest in project quality-measure-and-cohort-service by Alvearie.
the class ContextColumnNameEncoderTest method testOneDefineDefaultNaming.
@Test
public void testOneDefineDefaultNaming() {
CqlLibraryDescriptor libraryDescriptor = new CqlLibraryDescriptor();
libraryDescriptor.setLibraryId("lib1");
CqlEvaluationRequest request = new CqlEvaluationRequest();
request.setExpressionsByNames(new HashSet<>(Collections.singletonList("abcd")));
request.setDescriptor(libraryDescriptor);
request.setId(1);
Map<String, String> defineToOutputNameMap = ContextColumnNameEncoder.getDefineToOutputNameMap(request, "|");
Map<String, String> expectedResult = new HashMap<String, String>() {
{
put("abcd", "lib1|abcd");
}
};
TestCase.assertEquals(expectedResult, defineToOutputNameMap);
}
use of com.ibm.cohort.cql.evaluation.CqlEvaluationRequest in project quality-measure-and-cohort-service by Alvearie.
the class SparkCqlEvaluatorTest method testParameterMatrixOutputDisabledRowsGroupingSuccess.
@Test
public void testParameterMatrixOutputDisabledRowsGroupingSuccess() throws Exception {
String outputLocation = "target/output/param-matrix-group-disabled/patient_cohort";
CqlEvaluationRequest template = new CqlEvaluationRequest();
template.setDescriptor(new CqlLibraryDescriptor().setLibraryId("SampleLibrary").setVersion("1.0.0"));
template.setExpressionsByNames(Collections.singleton("IsFemale"));
template.setContextKey("Patient");
template.setContextValue("NA");
CqlEvaluationRequests requests = new CqlEvaluationRequests();
requests.setEvaluations(new ArrayList<>());
List<Integer> ages = Arrays.asList(15, 17, 18);
for (Integer age : ages) {
Map<String, Parameter> parameters = new HashMap<>();
parameters.put("MinimumAge", new IntegerParameter(age));
CqlExpressionConfiguration renamed = new CqlExpressionConfiguration();
renamed.setName("IsFemale");
renamed.setOutputColumn("IsFemale" + age);
CqlEvaluationRequest request = new CqlEvaluationRequest(template);
request.setExpressions(Collections.singleton(renamed));
request.setParameters(parameters);
requests.getEvaluations().add(request);
}
ObjectMapper om = new ObjectMapper();
File jobsFile = new File("target/output/param-matrix-simple/cql-jobs.json");
if (!jobsFile.exists()) {
jobsFile.getParentFile().mkdirs();
}
FileUtils.write(jobsFile, om.writeValueAsString(requests), StandardCharsets.UTF_8);
try {
String[] args = new String[] { "-d", "src/test/resources/simple-job/context-definitions.json", "-j", jobsFile.getPath(), "-m", "src/test/resources/simple-job/modelinfo/simple-modelinfo-1.0.0.xml", "-c", "src/test/resources/simple-job/cql", "-i", "Patient=" + new File("src/test/resources/simple-job/testdata/patient").toURI().toString(), "-o", "Patient=" + new File(outputLocation).toURI().toString(), "--output-format", "delta", "--overwrite-output-for-contexts", "--metadata-output-path", outputLocation, "--disable-result-grouping" };
SparkCqlEvaluator.main(args);
validateOutputCountsAndColumns(outputLocation, new HashSet<>(Arrays.asList("id", "parameters", "IsFemale15", "IsFemale17", "IsFemale18")), 10, "delta");
} finally {
jobsFile.delete();
}
}
use of com.ibm.cohort.cql.evaluation.CqlEvaluationRequest in project quality-measure-and-cohort-service by Alvearie.
the class ConfigurableOutputColumnNameEncoderTest method testOutputColumnsRepeatedInContextThrowsError.
@Test
public void testOutputColumnsRepeatedInContextThrowsError() {
CqlLibraryDescriptor libraryDescriptor1 = new CqlLibraryDescriptor();
libraryDescriptor1.setLibraryId("lib1");
CqlEvaluationRequest request = new CqlEvaluationRequest();
request.setDescriptor(libraryDescriptor1);
request.setId(1);
CqlExpressionConfiguration expressionConfiguration1 = new CqlExpressionConfiguration();
expressionConfiguration1.setName("abcd");
expressionConfiguration1.setOutputColumn("A1");
CqlExpressionConfiguration expressionConfiguration2 = new CqlExpressionConfiguration();
expressionConfiguration2.setName("efgh");
expressionConfiguration2.setOutputColumn("A1");
request.setExpressions(new HashSet<>(Arrays.asList(expressionConfiguration1, expressionConfiguration2)));
request.setContextKey("context1");
CqlEvaluationRequests evaluationRequests = new CqlEvaluationRequests();
evaluationRequests.setEvaluations(Collections.singletonList(request));
IllegalArgumentException ex = assertThrows(IllegalArgumentException.class, () -> ConfigurableOutputColumnNameEncoder.create(evaluationRequests, "|"));
assertTrue(ex.getMessage().contains("Evaluation request contains duplicate outputColumn"));
}
Aggregations