=== modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java' --- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java 2014-03-17 18:16:56 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java 2014-03-17 18:34:31 +0000 @@ -213,6 +213,8 @@ throw new IllegalQueryException( "Tracked entity does not exist: " + program ); } + params.setProgram( pr ); + params.setTrackedEntity( te ); params.setOrganisationUnitMode( ouMode ); params.setPage( page ); params.setPageSize( pageSize ); === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java' --- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java 2014-03-17 18:16:56 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java 2014-03-17 18:34:31 +0000 @@ -177,7 +177,7 @@ if ( params.hasTrackedEntity() ) { - sql += hlp.whereAnd() + " tei.trackedentityid = " + params.getTrackedEntity().getId(); + sql += hlp.whereAnd() + " tei.trackedentityid = " + params.getTrackedEntity().getId() + " "; } if ( params.isOrganisationUnitMode( DimensionalObject.OU_MODE_DESCENDANTS ) ) @@ -195,6 +195,14 @@ { sql += hlp.whereAnd() + " tei.organisationunitid in (" + getCommaDelimitedString( getIdentifiers( params.getOrganisationUnits() ) ) + ") "; } + + if ( params.hasProgram() ) + { + sql += + hlp.whereAnd() + " exists ( select trackedentityinstanceid from programinstance pi " + + "where pi.trackedentityinstanceid=tei.trackedentityinstanceid " + + "and pi.programid = " + params.getProgram().getId() + ") "; + } // --------------------------------------------------------------------- // Paging clause