=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/AnalyticalObjectStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/AnalyticalObjectStore.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/AnalyticalObjectStore.java 2015-12-07 17:40:27 +0000 @@ -34,6 +34,7 @@ import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.Period; +import org.hisp.dhis.program.ProgramIndicator; /** * @author Morten Olav Hansen @@ -47,6 +48,8 @@ int countDataElementAnalyticalObject( DataElement dataElement ); + int countProgramIndicatorAnalyticalObject( ProgramIndicator programIndicator ); + int countPeriodAnalyticalObject( Period period ); int countOrganisationUnitAnalyticalObject( OrganisationUnit organisationUnit ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateAnalyticalObjectStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateAnalyticalObjectStore.java 2015-06-26 17:02:18 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateAnalyticalObjectStore.java 2015-12-07 17:40:27 +0000 @@ -37,6 +37,7 @@ import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.Period; +import org.hisp.dhis.program.ProgramIndicator; /** * @author Morten Olav Hansen @@ -74,6 +75,15 @@ } @Override + public int countProgramIndicatorAnalyticalObject( ProgramIndicator programIndicator ) + { + Query query = getQuery( "select count(distinct c) from " + clazz.getName() + " c join c.dataDimensionItems d where d.programIndicator = :programIndicator" ); + query.setEntity( "dataSet", programIndicator ); + + return ((Long) query.uniqueResult()).intValue(); + } + + @Override public int countPeriodAnalyticalObject( Period period ) { Query query = getQuery( "select count(distinct c) from " + clazz.getName() + " c where :period in elements(c.periods)" );