=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2013-08-23 16:05:01 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2013-08-27 09:01:06 +0000 @@ -31,9 +31,12 @@ import static org.hisp.dhis.analytics.DataQueryParams.OPTION_SEP; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; +import org.hisp.dhis.analytics.AnalyticsService; import org.hisp.dhis.analytics.IllegalQueryException; import org.hisp.dhis.analytics.event.EventAnalyticsManager; import org.hisp.dhis.analytics.event.EventAnalyticsService; @@ -104,20 +107,36 @@ grid.addHeader( new GridHeader( "Program stage", ITEM_PROGRAM_STAGE ) ); grid.addHeader( new GridHeader( "Execution date", ITEM_EXECUTION_DATE ) ); grid.addHeader( new GridHeader( "Organisation unit", ITEM_ORG_UNIT ) ); - + + // --------------------------------------------------------------------- + // Headers + // --------------------------------------------------------------------- + for ( QueryItem queryItem : params.getItems() ) { IdentifiableObject item = queryItem.getItem(); grid.addHeader( new GridHeader( item.getName(), item.getUid() ) ); } - + + // --------------------------------------------------------------------- + // Data + // --------------------------------------------------------------------- + List queries = EventQueryPlanner.planQuery( params ); for ( EventQueryParams query : queries ) { analyticsManager.getEvents( query, grid ); } + + // --------------------------------------------------------------------- + // Meta-data + // --------------------------------------------------------------------- + + Map metaData = new HashMap(); + metaData.put( AnalyticsService.NAMES_META_KEY, getUidNameMap( params ) ); + grid.setMetaData( metaData ); return grid; } @@ -240,6 +259,20 @@ return params; } + + // ------------------------------------------------------------------------- + // Supportive methods + // ------------------------------------------------------------------------- + + private Map getUidNameMap( EventQueryParams params ) + { + Map map = new HashMap(); + + map.put( params.getProgram().getUid(), params.getProgram().getName() ); + map.put( params.getProgramStage().getUid(), params.getProgramStage().getName() ); + + return map; + } private String getSortItem( String item, Program program ) {