use of org.pmiops.workbench.model.ColumnFilter in project workbench by all-of-us.
the class CohortMaterializationServiceTest method testMaterializeCohortObservationFilterObservationDatetimeGreaterThan.
@Test
public void testMaterializeCohortObservationFilterObservationDatetimeGreaterThan() {
TableQuery tableQuery = new TableQuery();
tableQuery.setTableName("observation");
tableQuery.setColumns(ImmutableList.of("observation_id"));
ColumnFilter columnFilter = new ColumnFilter();
columnFilter.setColumnName("observation_datetime");
columnFilter.setOperator(Operator.GREATER_THAN);
columnFilter.setValueDate("2009-12-03 04:59:59 UTC");
tableQuery.addFiltersItem(ImmutableList.of(columnFilter));
FieldSet fieldSet = new FieldSet();
fieldSet.setTableQuery(tableQuery);
MaterializeCohortResponse response = cohortMaterializationService.materializeCohort(null, SearchRequests.males(), makeRequest(fieldSet, 1000));
assertResults(response, ImmutableMap.of("observation_id", 5L));
assertThat(response.getNextPageToken()).isNull();
}
use of org.pmiops.workbench.model.ColumnFilter in project workbench by all-of-us.
the class CohortMaterializationServiceTest method testMaterializeCohortObservationFilterObservationDateMismatch.
@Test
public void testMaterializeCohortObservationFilterObservationDateMismatch() {
TableQuery tableQuery = new TableQuery();
tableQuery.setTableName("observation");
tableQuery.setColumns(ImmutableList.of("observation_id"));
ColumnFilter columnFilter = new ColumnFilter();
columnFilter.setColumnName("observation_date");
columnFilter.setValueDate("2009-12-04");
tableQuery.addFiltersItem(ImmutableList.of(columnFilter));
FieldSet fieldSet = new FieldSet();
fieldSet.setTableQuery(tableQuery);
MaterializeCohortResponse response = cohortMaterializationService.materializeCohort(null, SearchRequests.males(), makeRequest(fieldSet, 1000));
assertResults(response);
assertThat(response.getNextPageToken()).isNull();
}
use of org.pmiops.workbench.model.ColumnFilter in project workbench by all-of-us.
the class CohortMaterializationServiceTest method testMaterializeCohortObservationFilterObservationDatetimeMismatch.
@Test
public void testMaterializeCohortObservationFilterObservationDatetimeMismatch() {
TableQuery tableQuery = new TableQuery();
tableQuery.setTableName("observation");
tableQuery.setColumns(ImmutableList.of("observation_id"));
ColumnFilter columnFilter = new ColumnFilter();
columnFilter.setColumnName("observation_datetime");
columnFilter.setValueDate("2009-12-03 05:00:01 UTC");
tableQuery.addFiltersItem(ImmutableList.of(columnFilter));
FieldSet fieldSet = new FieldSet();
fieldSet.setTableQuery(tableQuery);
MaterializeCohortResponse response = cohortMaterializationService.materializeCohort(null, SearchRequests.males(), makeRequest(fieldSet, 1000));
assertResults(response);
assertThat(response.getNextPageToken()).isNull();
}
use of org.pmiops.workbench.model.ColumnFilter in project workbench by all-of-us.
the class CohortMaterializationServiceTest method testMaterializeCohortPersonFieldSetPersonIdWithStringGreaterThanNullNonMatch.
@Test
public void testMaterializeCohortPersonFieldSetPersonIdWithStringGreaterThanNullNonMatch() {
TableQuery tableQuery = new TableQuery();
tableQuery.setTableName("person");
tableQuery.setColumns(ImmutableList.of("person_id"));
ColumnFilter filter = new ColumnFilter();
filter.setColumnName("ethnicity_source_value");
filter.setOperator(Operator.GREATER_THAN);
filter.setValue("esf");
tableQuery.addFiltersItem(ImmutableList.of(filter));
FieldSet fieldSet = new FieldSet();
fieldSet.setTableQuery(tableQuery);
MaterializeCohortResponse response = cohortMaterializationService.materializeCohort(null, SearchRequests.allGenders(), makeRequest(fieldSet, 1000));
assertPersonIds(response, 1L, 2L);
assertThat(response.getNextPageToken()).isNull();
}
use of org.pmiops.workbench.model.ColumnFilter in project workbench by all-of-us.
the class FieldSetQueryBuilder method handleColumnFilters.
private void handleColumnFilters(List<ColumnFilter> columnFilters, TableQueryAndConfig tableQueryAndConfig, StringBuilder sqlBuilder, Map<String, QueryParameterValue> paramMap) {
if (columnFilters.isEmpty()) {
throw new BadRequestException("Empty column filter list is invalid");
}
sqlBuilder.append("(");
boolean first = true;
for (ColumnFilter columnFilter : columnFilters) {
if (first) {
first = false;
} else {
sqlBuilder.append("\nand\n");
}
handleColumnFilter(columnFilter, tableQueryAndConfig, sqlBuilder, paramMap);
}
sqlBuilder.append(")");
}
Aggregations