=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/Indicator.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/Indicator.java 2010-04-12 21:23:33 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/Indicator.java 2010-12-02 21:24:43 +0000 @@ -55,12 +55,16 @@ private String numeratorAggregationOperator; + private String explodedNumerator; + private String denominator; private String denominatorDescription; private String denominatorAggregationOperator; + private String explodedDenominator; + private ExtendedDataElement extended; private Integer sortOrder; @@ -211,6 +215,16 @@ this.numeratorAggregationOperator = numeratorAggregationOperator; } + public String getExplodedNumerator() + { + return explodedNumerator; + } + + public void setExplodedNumerator( String explodedNumerator ) + { + this.explodedNumerator = explodedNumerator; + } + public String getDenominator() { return denominator; @@ -241,6 +255,16 @@ this.denominatorAggregationOperator = denominatorAggregationOperator; } + public String getExplodedDenominator() + { + return explodedDenominator; + } + + public void setExplodedDenominator( String explodedDenominator ) + { + this.explodedDenominator = explodedDenominator; + } + public ExtendedDataElement getExtended() { return extended; === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitHierarchy.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitHierarchy.java 2010-06-08 19:47:40 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitHierarchy.java 2010-12-02 21:24:43 +0000 @@ -55,19 +55,19 @@ this.relationships = relationships; } - public OrganisationUnitHierarchy prepareChildren( Collection parentIds ) + public OrganisationUnitHierarchy prepareChildren( Collection parents ) { - for ( Integer id : parentIds ) + for ( OrganisationUnit unit : parents ) { - prepareChildren( id ); + prepareChildren( unit ); } return this; } - public OrganisationUnitHierarchy prepareChildren( int parentId ) + public OrganisationUnitHierarchy prepareChildren( OrganisationUnit unit ) { - preparedRelationships.put( parentId, getChildren( parentId ) ); + preparedRelationships.put( unit.getId(), getChildren( unit.getId() ) ); return this; } === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/calculateddataelement/CalculatedDataElementDataMart.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/calculateddataelement/CalculatedDataElementDataMart.java 2010-06-26 19:48:18 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/calculateddataelement/CalculatedDataElementDataMart.java 2010-12-02 21:24:43 +0000 @@ -30,6 +30,8 @@ import java.util.Collection; import org.hisp.dhis.dataelement.DataElementOperand; +import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.period.Period; /** * @author Lars Helge Overland @@ -38,5 +40,5 @@ public interface CalculatedDataElementDataMart { int exportCalculatedDataElements( Collection calculatedDataElementIds, - Collection periodIds, Collection organisationUnitIds, Collection operands, String key ); + Collection periods, Collection organisationUnits, Collection operands, String key ); } === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/calculateddataelement/DefaultCalculatedDataElementDataMart.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/calculateddataelement/DefaultCalculatedDataElementDataMart.java 2010-10-29 12:19:15 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/calculateddataelement/DefaultCalculatedDataElementDataMart.java 2010-12-02 21:24:43 +0000 @@ -52,7 +52,6 @@ import org.hisp.dhis.organisationunit.OrganisationUnitHierarchy; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.Period; -import org.hisp.dhis.period.PeriodService; import org.hisp.dhis.period.PeriodType; /** @@ -67,13 +66,6 @@ // ------------------------------------------------------------------------- // Dependencies // ------------------------------------------------------------------------- - - private PeriodService periodService; - - public void setPeriodService( PeriodService periodService ) - { - this.periodService = periodService; - } private OrganisationUnitService organisationUnitService; @@ -142,20 +134,18 @@ // CalculatedDataElementDataMart implementation // ------------------------------------------------------------------------- - public int exportCalculatedDataElements( final Collection calculatedDataElementIds, final Collection periodIds, - final Collection organisationUnitIds, final Collection operands, String key ) + public int exportCalculatedDataElements( final Collection calculatedDataElementIds, final Collection periods, + final Collection organisationUnits, final Collection operands, String key ) { final Map operandIndexMap = crossTabService.getOperandIndexMap( operands, key ); - final Collection calculatedDataElements = dataElementService.getDataElements( calculatedDataElementIds ); - final Collection periods = periodService.getPeriods( periodIds ); - final Collection organisationUnits = organisationUnitService.getOrganisationUnits( organisationUnitIds ); + final Collection calculatedDataElements = dataElementService.getDataElements( calculatedDataElementIds ); final DataElementCategoryOptionCombo categoryOptionCombo = categoryService.getDefaultDataElementCategoryOptionCombo(); final BatchHandler batchHandler = batchHandlerFactory.createBatchHandler( AggregatedDataValueBatchHandler.class ).init(); - final OrganisationUnitHierarchy hierarchy = organisationUnitService.getOrganisationUnitHierarchy().prepareChildren( organisationUnitIds ); + final OrganisationUnitHierarchy hierarchy = organisationUnitService.getOrganisationUnitHierarchy().prepareChildren( organisationUnits ); int count = 0; === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/dataelement/DataElementDataMart.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/dataelement/DataElementDataMart.java 2010-06-26 19:48:18 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/dataelement/DataElementDataMart.java 2010-12-02 21:24:43 +0000 @@ -31,6 +31,8 @@ import org.hisp.dhis.dataelement.DataElementOperand; import org.hisp.dhis.datamart.aggregation.dataelement.DataElementAggregator; +import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.period.Period; /** * @author Lars Helge Overland @@ -38,6 +40,6 @@ */ public interface DataElementDataMart { - int exportDataValues( Collection operands, Collection periodIds, - Collection organisationUnitIds, DataElementAggregator dataElementAggregator, String key ); + int exportDataValues( Collection operands, Collection periods, + Collection organisationUnits, DataElementAggregator dataElementAggregator, String key ); } === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/dataelement/DefaultDataElementDataMart.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/dataelement/DefaultDataElementDataMart.java 2010-06-26 19:48:18 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/dataelement/DefaultDataElementDataMart.java 2010-12-02 21:24:43 +0000 @@ -30,9 +30,7 @@ import static org.hisp.dhis.system.util.MathUtils.getRounded; import java.util.Collection; -import java.util.HashSet; import java.util.Map; -import java.util.Set; import java.util.Map.Entry; import org.amplecode.quick.BatchHandler; @@ -47,7 +45,6 @@ import org.hisp.dhis.organisationunit.OrganisationUnitHierarchy; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.Period; -import org.hisp.dhis.period.PeriodService; import org.hisp.dhis.period.PeriodType; /** @@ -69,13 +66,6 @@ { this.organisationUnitService = organisationUnitService; } - - private PeriodService periodService; - - public void setPeriodService( PeriodService periodService ) - { - this.periodService = periodService; - } private BatchHandlerFactory batchHandlerFactory; @@ -102,18 +92,14 @@ // DataMart functionality // ------------------------------------------------------------------------- - public int exportDataValues( final Collection operands, final Collection periodIds, - final Collection organisationUnitIds, final DataElementAggregator dataElementAggregator, String key ) + public int exportDataValues( final Collection operands, final Collection periods, + final Collection organisationUnits, final DataElementAggregator dataElementAggregator, String key ) { final Map operandIndexMap = crossTabService.getOperandIndexMap( operands, key ); - final Collection periods = getPeriods( periodIds ); - - final Collection organisationUnits = getOrganisationUnits( organisationUnitIds ); - final BatchHandler batchHandler = batchHandlerFactory.createBatchHandler( AggregatedDataValueBatchHandler.class ).init(); - final OrganisationUnitHierarchy hierarchy = organisationUnitService.getOrganisationUnitHierarchy().prepareChildren( organisationUnitIds ); + final OrganisationUnitHierarchy hierarchy = organisationUnitService.getOrganisationUnitHierarchy().prepareChildren( organisationUnits ); int count = 0; @@ -157,32 +143,4 @@ return count; } - - // ------------------------------------------------------------------------- - // Id-to-object methods - // ------------------------------------------------------------------------- - - private Collection getPeriods( final Collection periodIds ) - { - final Set periods = new HashSet( periodIds.size() ); - - for ( Integer id : periodIds ) - { - periods.add( periodService.getPeriod( id ) ); - } - - return periods; - } - - private Collection getOrganisationUnits( final Collection organisationUnitIds ) - { - final Set organisationUnits = new HashSet( organisationUnitIds.size() ); - - for ( Integer id : organisationUnitIds ) - { - organisationUnits.add( organisationUnitService.getOrganisationUnit( id ) ); - } - - return organisationUnits; - } } === 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-10-22 12:37:35 +0000 +++ 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 @@ -57,6 +57,7 @@ import org.hisp.dhis.expression.ExpressionService; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.indicator.IndicatorService; +import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodService; @@ -291,7 +292,15 @@ crossTabService.trimCrossTabTable( emptyOperands, key ); 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 // --------------------------------------------------------------------- @@ -300,7 +309,7 @@ if ( sumIntDataElementOperands.size() > 0 ) { - count += dataElementDataMart.exportDataValues( sumIntDataElementOperands, periodIds, organisationUnitIds, + count += dataElementDataMart.exportDataValues( sumIntDataElementOperands, periods, organisationUnits, sumIntAggregator, key ); log.info( "Exported values for data element operands with sum aggregation operator of type number (" @@ -309,8 +318,8 @@ if ( averageIntDataElementOperands.size() > 0 ) { - count += dataElementDataMart.exportDataValues( averageIntDataElementOperands, periodIds, - organisationUnitIds, averageIntAggregator, key ); + count += dataElementDataMart.exportDataValues( averageIntDataElementOperands, periods, + organisationUnits, averageIntAggregator, key ); log.info( "Exported values for data element operands with average aggregation operator of type number (" + averageIntDataElementOperands.size() + "): " + TimeUtils.getHMS() ); @@ -318,8 +327,8 @@ if ( averageIntDataElementOperands.size() > 0 ) { - count += dataElementDataMart.exportDataValues( averageIntDataElementOperands, periodIds, - organisationUnitIds, averageIntSingleValueAggregator, key ); + 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 (" @@ -328,7 +337,7 @@ if ( sumBoolDataElementOperands.size() > 0 ) { - count += dataElementDataMart.exportDataValues( sumBoolDataElementOperands, periodIds, organisationUnitIds, + count += dataElementDataMart.exportDataValues( sumBoolDataElementOperands, periods, organisationUnits, sumBoolAggregator, key ); log.info( "Exported values for data element operands with sum aggregation operator of type yes/no (" @@ -337,8 +346,8 @@ if ( averageBoolDataElementOperands.size() > 0 ) { - count += dataElementDataMart.exportDataValues( averageBoolDataElementOperands, periodIds, - organisationUnitIds, averageBoolAggregator, key ); + count += dataElementDataMart.exportDataValues( averageBoolDataElementOperands, periods, + organisationUnits, averageBoolAggregator, key ); log.info( "Exported values for data element operands with average aggregation operator of type yes/no (" + averageBoolDataElementOperands.size() + "): " + TimeUtils.getHMS() ); @@ -350,9 +359,9 @@ // Indicator export // --------------------------------------------------------------------- - if ( indicatorIds != null && indicatorIds.size() > 0 ) + if ( indicators != null && indicators.size() > 0 ) { - count += indicatorDataMart.exportIndicatorValues( indicatorIds, periodIds, organisationUnitIds, + count += indicatorDataMart.exportIndicatorValues( indicators, periods, organisationUnits, dataElementInIndicatorOperands, key ); log.info( "Exported values for indicators (" + indicatorIds.size() + "): " + TimeUtils.getHMS() ); @@ -366,8 +375,8 @@ if ( calculatedDataElementIds != null && calculatedDataElementIds.size() > 0 ) { - count += calculatedDataElementDataMart.exportCalculatedDataElements( calculatedDataElementIds, periodIds, - organisationUnitIds, dataElementInCalculatedDataElementOperands, key ); + count += calculatedDataElementDataMart.exportCalculatedDataElements( calculatedDataElementIds, periods, + organisationUnits, dataElementInCalculatedDataElementOperands, key ); log.info( "Exported values for calculated data elements (" + calculatedDataElementIds.size() + "): " + TimeUtils.getHMS() ); === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/indicator/DefaultIndicatorDataMart.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/indicator/DefaultIndicatorDataMart.java 2010-10-29 12:19:15 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/indicator/DefaultIndicatorDataMart.java 2010-12-02 21:24:43 +0000 @@ -45,14 +45,12 @@ import org.hisp.dhis.datamart.aggregation.dataelement.DataElementAggregator; import org.hisp.dhis.datamart.crosstab.CrossTabService; import org.hisp.dhis.indicator.Indicator; -import org.hisp.dhis.indicator.IndicatorService; import org.hisp.dhis.jdbc.batchhandler.AggregatedIndicatorValueBatchHandler; import org.hisp.dhis.options.SystemSettingManager; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitHierarchy; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.Period; -import org.hisp.dhis.period.PeriodService; import org.hisp.dhis.period.PeriodType; import org.hisp.dhis.system.util.DateUtils; @@ -72,20 +70,6 @@ // Dependencies // ------------------------------------------------------------------------- - private IndicatorService indicatorService; - - public void setIndicatorService( IndicatorService indicatorService ) - { - this.indicatorService = indicatorService; - } - - private PeriodService periodService; - - public void setPeriodService( PeriodService periodService ) - { - this.periodService = periodService; - } - private OrganisationUnitService organisationUnitService; public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) @@ -146,18 +130,14 @@ // IndicatorDataMart implementation // ------------------------------------------------------------------------- - public int exportIndicatorValues( final Collection indicatorIds, final Collection periodIds, - final Collection organisationUnitIds, final Collection operands, String key ) + public int exportIndicatorValues( final Collection indicators, final Collection periods, + final Collection organisationUnits, final Collection operands, String key ) { final Map operandIndexMap = crossTabService.getOperandIndexMap( operands, key ); - final Collection indicators = indicatorService.getIndicators( indicatorIds ); - final Collection periods = periodService.getPeriods( periodIds ); - final Collection organisationUnits = organisationUnitService.getOrganisationUnits( organisationUnitIds ); - final BatchHandler batchHandler = batchHandlerFactory.createBatchHandler( AggregatedIndicatorValueBatchHandler.class ).init(); - final OrganisationUnitHierarchy hierarchy = organisationUnitService.getOrganisationUnitHierarchy().prepareChildren( organisationUnitIds ); + final OrganisationUnitHierarchy hierarchy = organisationUnitService.getOrganisationUnitHierarchy().prepareChildren( organisationUnits ); int count = 0; === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/indicator/IndicatorDataMart.java' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/indicator/IndicatorDataMart.java 2010-06-26 19:48:18 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/indicator/IndicatorDataMart.java 2010-12-02 21:24:43 +0000 @@ -30,6 +30,9 @@ import java.util.Collection; import org.hisp.dhis.dataelement.DataElementOperand; +import org.hisp.dhis.indicator.Indicator; +import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.period.Period; /** * @author Lars Helge Overland @@ -37,6 +40,6 @@ */ public interface IndicatorDataMart { - int exportIndicatorValues( Collection indicatorIds, Collection periodIds, - Collection organisationUnitIds, Collection operands, String key ); + int exportIndicatorValues( Collection indicators, Collection periods, + Collection organisationUnits, Collection operands, String key ); } === modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-datamart-default/src/main/resources/META-INF/dhis/beans.xml 2010-10-29 12:19:15 +0000 +++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/resources/META-INF/dhis/beans.xml 2010-12-02 21:24:43 +0000 @@ -149,8 +149,6 @@ class="org.hisp.dhis.datamart.dataelement.DefaultDataElementDataMart"> - @@ -162,10 +160,6 @@ - - -