=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceQueryParams.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceQueryParams.java 2015-08-25 21:48:10 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceQueryParams.java 2015-11-17 17:21:07 +0000 @@ -38,7 +38,6 @@ import org.hisp.dhis.common.OrganisationUnitSelectionMode; import org.hisp.dhis.common.QueryFilter; import org.hisp.dhis.common.QueryItem; -import org.hisp.dhis.common.SetMap; import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.program.Program; @@ -239,21 +238,6 @@ } /** - * Returns a mapping between level and organisation units. - */ - public SetMap getLevelOrgUnitMap() - { - SetMap setMap = new SetMap<>(); - - for ( OrganisationUnit ou : organisationUnits ) - { - setMap.putValue( ou.getLevel(), ou ); - } - - return setMap; - } - - /** * Add the given attributes to this params if they are not already present. */ public void addAttributesIfNotExist( List attrs ) === 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-11-12 12:21:41 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java 2015-11-17 17:21:07 +0000 @@ -39,7 +39,6 @@ import org.hisp.dhis.common.QueryFilter; import org.hisp.dhis.common.QueryItem; import org.hisp.dhis.common.QueryOperator; -import org.hisp.dhis.common.SetMap; import org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore; import org.hisp.dhis.commons.util.SqlHelper; import org.hisp.dhis.event.EventStatus; @@ -342,11 +341,6 @@ } } - if ( params.isOrganisationUnitMode( OrganisationUnitSelectionMode.DESCENDANTS ) ) - { - sql += "left join _orgunitstructure ous on tei.organisationunitid = ous.organisationunitid "; - } - if ( params.hasTrackedEntity() ) { sql += hlp.whereAnd() + " tei.trackedentityid = " + params.getTrackedEntity().getId() + " "; @@ -358,12 +352,9 @@ } else if ( params.isOrganisationUnitMode( OrganisationUnitSelectionMode.DESCENDANTS ) ) { - SetMap levelOuMap = params.getLevelOrgUnitMap(); - - for ( Integer level : levelOuMap.keySet() ) + for ( OrganisationUnit unit : params.getOrganisationUnits() ) { - sql += hlp.whereAnd() + " ous.idlevel" + level + " in (" - + getCommaDelimitedString( getIdentifiers( levelOuMap.get( level ) ) ) + ") or "; + sql += hlp.whereAnd() + " ou.path like '" + unit.getPath() + "%' or "; } sql = removeLastOr( sql );