Search in sources :

Example 1 with CombinationGenerator

use of org.hisp.dhis.common.CombinationGenerator in project dhis2-core by dhis2.

the class DefaultAnalyticsService method getAggregatedDataValuesTableLayout.

/**
     * Returns a Grid with aggregated data in table layout.
     *
     * @param params the {@link DataQueryParams}.
     * @param columns the column dimensions.
     * @param rows the row dimensions.
     * @return a Grid with aggregated data in table layout.
     */
private Grid getAggregatedDataValuesTableLayout(DataQueryParams params, List<String> columns, List<String> rows) {
    params.setOutputIdScheme(null);
    Grid grid = getAggregatedDataValues(params);
    ListUtils.removeEmptys(columns);
    ListUtils.removeEmptys(rows);
    queryPlanner.validateTableLayout(params, columns, rows);
    ReportTable reportTable = new ReportTable();
    List<DimensionalItemObject[]> tableColumns = new ArrayList<>();
    List<DimensionalItemObject[]> tableRows = new ArrayList<>();
    if (columns != null) {
        for (String dimension : columns) {
            reportTable.getColumnDimensions().add(dimension);
            tableColumns.add(params.getDimensionItemArrayExplodeCoc(dimension));
        }
    }
    if (rows != null) {
        for (String dimension : rows) {
            reportTable.getRowDimensions().add(dimension);
            tableRows.add(params.getDimensionItemArrayExplodeCoc(dimension));
        }
    }
    reportTable.setGridTitle(IdentifiableObjectUtils.join(params.getFilterItems())).setGridColumns(new CombinationGenerator<>(tableColumns.toArray(IRT2D)).getCombinations()).setGridRows(new CombinationGenerator<>(tableRows.toArray(IRT2D)).getCombinations());
    addListIfEmpty(reportTable.getGridColumns());
    addListIfEmpty(reportTable.getGridRows());
    reportTable.setHideEmptyRows(params.isHideEmptyRows());
    reportTable.setHideEmptyColumns(params.isHideEmptyColumns());
    reportTable.setShowHierarchy(params.isShowHierarchy());
    Map<String, Object> valueMap = AnalyticsUtils.getAggregatedDataValueMapping(grid);
    return reportTable.getGrid(new ListGrid(grid.getMetaData(), grid.getInternalMetaData()), valueMap, params.getDisplayProperty(), false);
}
Also used : CombinationGenerator(org.hisp.dhis.common.CombinationGenerator) ListGrid(org.hisp.dhis.system.grid.ListGrid) Grid(org.hisp.dhis.common.Grid) ArrayList(java.util.ArrayList) ReportTable(org.hisp.dhis.reporttable.ReportTable) DimensionalObject(org.hisp.dhis.common.DimensionalObject) AnalyticalObject(org.hisp.dhis.common.AnalyticalObject) DimensionalItemObject(org.hisp.dhis.common.DimensionalItemObject) BaseDimensionalObject(org.hisp.dhis.common.BaseDimensionalObject) PeriodType.getPeriodTypeFromIsoString(org.hisp.dhis.period.PeriodType.getPeriodTypeFromIsoString) ListGrid(org.hisp.dhis.system.grid.ListGrid)

Aggregations

ArrayList (java.util.ArrayList)1 AnalyticalObject (org.hisp.dhis.common.AnalyticalObject)1 BaseDimensionalObject (org.hisp.dhis.common.BaseDimensionalObject)1 CombinationGenerator (org.hisp.dhis.common.CombinationGenerator)1 DimensionalItemObject (org.hisp.dhis.common.DimensionalItemObject)1 DimensionalObject (org.hisp.dhis.common.DimensionalObject)1 Grid (org.hisp.dhis.common.Grid)1 PeriodType.getPeriodTypeFromIsoString (org.hisp.dhis.period.PeriodType.getPeriodTypeFromIsoString)1 ReportTable (org.hisp.dhis.reporttable.ReportTable)1 ListGrid (org.hisp.dhis.system.grid.ListGrid)1