@Override public int countProgramInstances( ProgramInstanceQueryParams params ) { decideAccess( params ); validate( params ); User user = currentUserService.getCurrentUser(); if ( user != null && params.isOrganisationUnitMode( OrganisationUnitSelectionMode.ACCESSIBLE ) ) { params.setOrganisationUnits( user.getDataViewOrganisationUnitsWithFallback() ); params.setOrganisationUnitMode( OrganisationUnitSelectionMode.DESCENDANTS ); } else if ( params.isOrganisationUnitMode( CHILDREN ) ) { Set<OrganisationUnit> organisationUnits = new HashSet<>(); organisationUnits.addAll( params.getOrganisationUnits() ); for ( OrganisationUnit organisationUnit : params.getOrganisationUnits() ) { organisationUnits.addAll( organisationUnit.getChildren() ); } params.setOrganisationUnits( organisationUnits ); } params.setSkipPaging( true ); return programInstanceStore.countProgramInstances( params ); }