=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java 2015-07-03 08:41:47 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java 2015-07-06 05:46:44 +0000 @@ -132,7 +132,7 @@ { String hql = "from TrackedEntityInstance tei"; - if ( params.hasTrackedEntity() || params.hasOrganisationUnits() || params.hasFilters() ) + if ( params.hasTrackedEntity() || params.hasOrganisationUnits() || params.hasFilters() || params.hasProgram() ) { hql += " where "; } @@ -172,6 +172,34 @@ } } + if ( params.hasProgram() ) + { + hql += " and exists (from ProgramInstance pi where pi.entityInstance=tei"; + hql += " and pi.program.uid = '" + params.getProgram().getUid() + "'"; + + if ( params.hasProgramStatus() ) + { + hql += " and pi.status = " + PROGRAM_STATUS_MAP.get( params.getProgramStatus() ); + } + + if ( params.hasFollowUp() ) + { + hql += " and pi.followup = " + params.getFollowUp() + " "; + } + + if ( params.hasProgramStartDate() ) + { + hql += " and pi.enrollmentdate >= '" + getMediumDateString( params.getProgramStartDate() ) + "' "; + } + + if ( params.hasProgramEndDate() ) + { + hql += "and pi.enrollmentdate <= '" + getMediumDateString( params.getProgramEndDate() ) + "' "; + } + + hql += ")"; + } + return hql; }