=== modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntAggregator.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntAggregator.java 2010-07-04 11:11:30 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntAggregator.java 2010-12-02 21:52:11 +0000 @@ -165,6 +165,7 @@ "', for data element with id: '" + entry.getKey() + "', for period with id: '" + crossTabValue.getPeriodId() + "', for source with id: '" + crossTabValue.getSourceId() + "'" ); + continue; } if ( currentStartDate.compareTo( startDate ) >= 0 && currentEndDate.compareTo( endDate ) <= 0 ) // Value is within period === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntSingleValueAggregator.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntSingleValueAggregator.java 2010-07-04 11:50:16 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntSingleValueAggregator.java 2010-12-02 21:52:11 +0000 @@ -153,6 +153,7 @@ "', for data element with id: '" + entry.getKey() + "', for period with id: '" + crossTabValue.getPeriodId() + "', for source with id: '" + crossTabValue.getSourceId() + "'" ); + continue; } if ( currentStartDate.compareTo( endDate ) <= 0 && currentEndDate.compareTo( startDate ) >= 0 ) // Value is intersecting === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumIntAggregator.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumIntAggregator.java 2010-07-04 11:11:30 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumIntAggregator.java 2010-12-02 21:52:11 +0000 @@ -155,6 +155,7 @@ "', for data element with id: '" + entry.getKey() + "', for period with id: '" + crossTabValue.getPeriodId() + "', for source with id: '" + crossTabValue.getSourceId() + "'" ); + continue; } if ( currentStartDate.compareTo( startDate ) >= 0 && currentEndDate.compareTo( endDate ) <= 0 ) // Value is within period === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/engine/DefaultDataMartEngine.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/engine/DefaultDataMartEngine.java 2010-12-02 21:24:43 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/engine/DefaultDataMartEngine.java 2010-12-02 21:52:11 +0000 @@ -221,13 +221,21 @@ log.info( "Deleted existing aggregated data: " + TimeUtils.getHMS() ); // --------------------------------------------------------------------- + // Get objects + // --------------------------------------------------------------------- + + Collection indicators = indicatorService.getIndicators( indicatorIds ); + Collection periods = periodService.getPeriods( periodIds ); + Collection organisationUnits = organisationUnitService.getOrganisationUnits( organisationUnitIds ); + + // --------------------------------------------------------------------- // Filter and get operands // --------------------------------------------------------------------- final Set nonCalculatedDataElementIds = filterCalculatedDataElementIds( dataElementIds, false ); final Set calculatedDataElementIds = filterCalculatedDataElementIds( dataElementIds, true ); - final Set dataElementInIndicatorIds = getDataElementIdsInIndicators( indicatorIds ); + final Set dataElementInIndicatorIds = getDataElementIdsInIndicators( indicators ); final Set dataElementInCalculatedDataElementIds = getDataElementIdsInCalculatedDataElements( calculatedDataElementIds ); final Set allDataElementIds = new HashSet(); @@ -294,14 +302,6 @@ log.info( "Trimmed crosstab table: " + TimeUtils.getHMS() ); // --------------------------------------------------------------------- - // Get objects - // --------------------------------------------------------------------- - - Collection periods = periodService.getPeriods( periodIds ); - Collection organisationUnits = organisationUnitService.getOrganisationUnits( organisationUnitIds ); - Collection indicators = indicatorService.getIndicators( indicatorIds ); - - // --------------------------------------------------------------------- // Data element export // --------------------------------------------------------------------- @@ -330,8 +330,7 @@ count += dataElementDataMart.exportDataValues( averageIntDataElementOperands, periods, organisationUnits, averageIntSingleValueAggregator, key ); - log - .info( "Exported values for data element operands with average aggregation operator with single value of type number (" + log.info( "Exported values for data element operands with average aggregation operator with single value of type number (" + averageIntDataElementOperands.size() + "): " + TimeUtils.getHMS() ); } @@ -364,7 +363,7 @@ count += indicatorDataMart.exportIndicatorValues( indicators, periods, organisationUnits, dataElementInIndicatorOperands, key ); - log.info( "Exported values for indicators (" + indicatorIds.size() + "): " + TimeUtils.getHMS() ); + log.info( "Exported values for indicators (" + indicators.size() + "): " + TimeUtils.getHMS() ); } state.setMessage( "exporting_data_for_calculated_data_elements" ); @@ -422,14 +421,12 @@ * Returns all data element identifiers included in the indicators in the * given identifier collection. */ - private Set getDataElementIdsInIndicators( final Collection indicatorIds ) + private Set getDataElementIdsInIndicators( final Collection indicators ) { - final Set identifiers = new HashSet( indicatorIds.size() ); + final Set identifiers = new HashSet( indicators.size() ); - for ( final Integer id : indicatorIds ) + for ( final Indicator indicator : indicators ) { - final Indicator indicator = indicatorService.getIndicator( id ); - identifiers.addAll( getDataElementIdsInExpression( indicator.getNumerator() ) ); identifiers.addAll( getDataElementIdsInExpression( indicator.getDenominator() ) ); }