[Branch ~dhis2-devs-core/dhis2/trunk] Rev 19856: Analaytics, implementd query parameter relativePeriodDate which will be used as basis for relativ...

revision-diff.txt (30.6 KB)

Lars,

Will this work as a sort of

···

On 26 August 2015 at 12:43, noreply@launchpad.net wrote:


revno: 19856

committer: Lars Helge Overland larshelge@gmail.com

branch nick: dhis2

timestamp: Wed 2015-08-26 11:42:00 +0200

message:

Analaytics, implementd query parameter relativePeriodDate which will be used as basis for relative periods in response

modified:

dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java

dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java

dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java

dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java

dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java

dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java

dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java

lp:dhis2

https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.

To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription

=== modified file ‘dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java’

— dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java 2015-08-04 11:09:17 +0000

+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java 2015-08-26 09:42:00 +0000

@@ -166,6 +166,7 @@

  * @param displayProperty the property to display for meta-data.

  * @param outputIdScheme the identifier scheme to use in the query response.

  * @param approvalLevel the approval level identifier.
  • * @param relativePeriodDate the date to use as basis for relative periods.
    
    * @param userOrgUnit the user organisation unit to use, overrides current user.
    
    * @param program the program identifier.
    
    * @param stage the program stage identifier.
    

@@ -174,7 +175,7 @@

  */

 DataQueryParams getFromUrl( Set<String> dimensionParams, Set<String> filterParams, AggregationType aggregationType, String measureCriteria,

     boolean skipMeta, boolean skipData, boolean skipRounding, boolean hierarchyMeta, boolean ignoreLimit, boolean hideEmptyRows, boolean showHierarchy,
  •    DisplayProperty displayProperty, IdentifiableProperty outputIdScheme, String approvalLevel, String userOrgUnit,
    
  •    DisplayProperty displayProperty, IdentifiableProperty outputIdScheme, String approvalLevel, Date relativePeriodDate, String userOrgUnit,
    
       String program, String stage, I18nFormat format );
    

    /**

@@ -190,12 +191,13 @@

  * Creates a list of DimensionalObject from the given set of dimension params.

  *

  * @param dimensionParams the dimension URL params.
  • * @param relativePeriodDate the date to use as basis for relative periods.
    
    * @param userOrgUnit the user organisation unit param, overrides current
    
    *        user, can be null.
    
    * @param format the i18n format.
    
    * @return a list of DimensionalObject.
    
    */
    
  • List getDimensionalObjects( Set dimensionParams, String userOrgUnit, I18nFormat format );
  • List getDimensionalObjects( Set dimensionParams, Date relativePeriodDate, String userOrgUnit, I18nFormat format );

    /**

    • Returns a persisted DimensionalObject generated from the given dimension

=== modified file ‘dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java’

— dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-08-21 01:47:02 +0000

+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-08-26 09:42:00 +0000

@@ -910,7 +910,7 @@

 public DataQueryParams getFromUrl( Set<String> dimensionParams, Set<String> filterParams, AggregationType aggregationType,

     String measureCriteria, boolean skipMeta, boolean skipData, boolean skipRounding, boolean hierarchyMeta, boolean ignoreLimit,

     boolean hideEmptyRows, boolean showHierarchy, DisplayProperty displayProperty, IdentifiableProperty outputIdScheme,
  •    String approvalLevel, String userOrgUnit, String program, String stage, I18nFormat format )
    
  •    String approvalLevel, Date relativePeriodDate, String userOrgUnit, String program, String stage, I18nFormat format )
    

    {

       DataQueryParams params = new DataQueryParams();
    

@@ -919,12 +919,12 @@

     if ( dimensionParams != null && !dimensionParams.isEmpty() )

     {
  •        params.addDimensions( getDimensionalObjects( dimensionParams, userOrgUnit, format ) );
    
  •        params.addDimensions( getDimensionalObjects( dimensionParams, relativePeriodDate, userOrgUnit, format ) );
    
       }
    
    
    
       if ( filterParams != null && !filterParams.isEmpty() )
    
       {
    
  •        params.getFilters().addAll( getDimensionalObjects( filterParams, userOrgUnit, format ) );
    
  •        params.getFilters().addAll( getDimensionalObjects( filterParams, relativePeriodDate, userOrgUnit, format ) );
    
       }
    
    
    
       if ( measureCriteria != null && !measureCriteria.isEmpty() )
    

@@ -988,7 +988,7 @@

 }



 @Override
  • public List getDimensionalObjects( Set dimensionParams, String userOrgUnit, I18nFormat format )
  • public List getDimensionalObjects( Set dimensionParams, Date relativePeriodDate, String userOrgUnit, I18nFormat format )

    {

    List<DimensionalObject> list = new ArrayList<>();
    

@@ -1003,7 +1003,7 @@

             if ( dimension != null && items != null )

             {
  •                list.add( getDimension( dimension, items, null, userOrgUnits, format, false ) );
    
  •                list.add( getDimension( dimension, items, relativePeriodDate, userOrgUnits, format, false ) );
    
               }
    
           }
    
       }
    

=== modified file ‘dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java’

— dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java 2015-08-04 11:09:17 +0000

+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java 2015-08-26 09:42:00 +0000

@@ -85,7 +85,7 @@

 @Override

 public DataQueryParams getFromUrl( Set<String> dimensionParams, Set<String> filterParams, AggregationType aggregationType,

     String measureCriteria, boolean skipMeta, boolean skipData, boolean skipRounding, boolean hierarchyMeta, boolean ignoreLimit, boolean hideEmptyRows,
  •    boolean showHierarchy, DisplayProperty displayProperty, IdentifiableProperty idScheme, String approvalLevel, String userOrgUnit,
    
  •    boolean showHierarchy, DisplayProperty displayProperty, IdentifiableProperty idScheme, String approvalLevel, Date relativePeriodDate, String userOrgUnit,
    
       String program, String stage, I18nFormat format )
    

    {

       throw new NotImplementedException( "" );
    

@@ -98,7 +98,7 @@

 }



 @Override
  • public List getDimensionalObjects( Set dimensionParams, String userOrgUnit, I18nFormat format )
  • public List getDimensionalObjects( Set dimensionParams, Date relateivePeriodDate, String userOrgUnit, I18nFormat format )

    {

    throw new NotImplementedException( "" );
    

    }

=== modified file ‘dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java’

— dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java 2015-08-04 11:09:17 +0000

+++ dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java 2015-08-26 09:42:00 +0000

@@ -193,7 +193,7 @@

     filterParams.add( "ou:" + ouA.getUid() + ";" + ouB.getUid() + ";" + ouC.getUid() + ";" + ouD.getUid() + ";" + ouE.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 4, params.getDataElements().size() );
    
       assertEquals( 3, params.getPeriods().size() );
    

@@ -211,7 +211,7 @@

     filterParams.add( "ou:" + ouA.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 4, params.getDataElements().size() );
    
       assertEquals( 1, params.getFilterOrganisationUnits().size() );
    

@@ -227,7 +227,7 @@

     filterParams.add( "ou:" + ouA.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 2, params.getDataElements().size() );
    
       assertEquals( 2, params.getProgramDataElements().size() );
    

@@ -244,7 +244,7 @@

     filterParams.add( "ou:" + ouA.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 2, params.getDataElements().size() );
    
       assertEquals( 2, params.getProgramAttributes().size() );
    

@@ -263,7 +263,7 @@

     filterParams.add( "ou:" + ouA.getUid() + ";" + ouB.getUid() + ";" + ouC.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 3, params.getDataElements().size() );
    
       assertEquals( 2, params.getPeriods().size() );
    

@@ -282,7 +282,7 @@

     filterParams.add( "ou:" + ouA.getUid() + ";" + ouB.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 4, params.getDataElements().size() );
    
       assertEquals( 12, params.getPeriods().size() );
    

@@ -298,7 +298,7 @@

     dimensionParams.add( "pe:2011;2012" );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 1, params.getOrganisationUnits().size() );
    
       assertEquals( 2, params.getDataElements().size() );
    

@@ -314,7 +314,7 @@

     dimensionParams.add( "pe:2011;2012" );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 3, params.getOrganisationUnits().size() );
    
       assertEquals( 2, params.getDataElements().size() );
    

@@ -330,7 +330,7 @@

     dimensionParams.add( "pe:2011;2012" );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 2, params.getOrganisationUnits().size() );
    
       assertEquals( 2, params.getDataElements().size() );
    

@@ -345,7 +345,7 @@

     dimensionParams.add( "pe:2012,2012S1,2012S2" );



     analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    

    }

    @Test( expected = IllegalQueryException.class )

@@ -356,7 +356,7 @@

     dimensionParams.add( "pe" );



     analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    

    }

    @Test( expected = IllegalQueryException.class )

@@ -367,7 +367,7 @@

     dimensionParams.add( "ou" );



     analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    

    }

    @Test( expected = IllegalQueryException.class )

@@ -378,7 +378,7 @@

     dimensionParams.add( "yebo:2012,2012S1,2012S2" );



     analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    

    }

    @Test

=== modified file ‘dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java’

— dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java 2015-08-03 12:01:11 +0000

+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java 2015-08-26 09:42:00 +0000

@@ -88,7 +88,7 @@

     if ( dimensions != null )

     {
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null ) );
    
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null, null ) );
    
       }
    
    
    
       Map<String, Object> map = analyticsService.getAggregatedDataValueMapping( params );
    

@@ -137,7 +137,7 @@

             if ( dimensions != null )

             {
  •                params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null ) );
    
  •                params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null, null ) );
    
               }
    
    
    
               Map<String, Object> map = analyticsService.getAggregatedDataValueMapping( params );
    

@@ -173,7 +173,7 @@

     if ( dimensions != null )

     {
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null ) );
    
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null, null ) );
    
       }
    
    
    
       Map<String, Object> map = analyticsService.getAggregatedDataValueMapping( params );
    

@@ -207,7 +207,7 @@

     if ( dimensions != null )

     {
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null ) );
    
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null, null ) );
    
       }
    
    
    
       Map<String, Object> map = analyticsService.getAggregatedDataValueMapping( params );
    

=== modified file ‘dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java’

— dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java 2015-08-04 11:09:17 +0000

+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java 2015-08-26 09:42:00 +0000

@@ -30,6 +30,7 @@

import static org.hisp.dhis.common.DimensionalObjectUtils.getItemsFromParam;

+import java.util.Date;

import java.util.Set;

import javax.servlet.http.HttpServletResponse;

@@ -91,6 +92,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -100,7 +102,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_JSON, CacheStrategy.RESPECT_SYSTEM_SETTING );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -126,6 +128,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -135,7 +138,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_XML, CacheStrategy.RESPECT_SYSTEM_SETTING );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -159,6 +162,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -168,7 +172,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -192,6 +196,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -201,7 +206,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -225,6 +230,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -234,7 +240,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_CSV, CacheStrategy.RESPECT_SYSTEM_SETTING, "data.csv", true );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -258,6 +264,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -267,7 +274,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_EXCEL, CacheStrategy.RESPECT_SYSTEM_SETTING, "data.xls", true );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -291,6 +298,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) Integer approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -300,7 +308,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, null, null,
  •        true, false, false, false, false, false, false, null, null, null, null, null, null, i18nManager.getI18nFormat() );
    
  •        true, false, false, false, false, false, false, null, null, null, null, null, null, null, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_XML, CacheStrategy.RESPECT_SYSTEM_SETTING, "data.jrxml", false );
    
       Grid grid = analyticsService.getAggregatedDataValues( params );
    

@@ -325,6 +333,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -334,7 +343,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_TEXT, CacheStrategy.NO_CACHE, "debug.sql", false );
    
       return AnalyticsUtils.getDebugDataSql( params );
    

=== modified file ‘dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java’

— dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java 2015-08-05 14:30:34 +0000

+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java 2015-08-26 09:42:00 +0000

@@ -32,6 +32,7 @@

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

+import java.util.Date;

import java.util.HashSet;

import java.util.List;

import java.util.Map;

@@ -100,6 +101,7 @@

 public void getGeoFeaturesJson(

     @RequestParam String ou,

     @RequestParam( required = false ) DisplayProperty displayProperty,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( defaultValue = "false", value = "includeGroupSets" ) boolean rpIncludeGroupSets,
    
       @RequestParam Map<String, String> parameters,
    

@@ -108,7 +110,7 @@

     WebOptions options = new WebOptions( parameters );

     boolean includeGroupSets = "detailed".equals( options.getViewClass() ) || rpIncludeGroupSets;
  •    List<GeoFeature> features = getGeoFeatures( ou, displayProperty, userOrgUnit, request, response, includeGroupSets );
    
  •    List<GeoFeature> features = getGeoFeatures( ou, displayProperty, relativePeriodDate, userOrgUnit, request, response, includeGroupSets );
    
    
    
       if ( features == null )
    
       {
    

@@ -123,6 +125,7 @@

 public void getGeoFeaturesJsonP(

     @RequestParam String ou,

     @RequestParam( required = false ) DisplayProperty displayProperty,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( defaultValue = "callback" ) String callback,
    
       @RequestParam( defaultValue = "false", value = "includeGroupSets" ) boolean rpIncludeGroupSets,
    

@@ -132,7 +135,7 @@

     WebOptions options = new WebOptions( parameters );

     boolean includeGroupSets = "detailed".equals( options.getViewClass() ) || rpIncludeGroupSets;
  •    List<GeoFeature> features = getGeoFeatures( ou, displayProperty, userOrgUnit, request, response, includeGroupSets );
    
  •    List<GeoFeature> features = getGeoFeatures( ou, displayProperty, relativePeriodDate, userOrgUnit, request, response, includeGroupSets );
    
    
    
       if ( features == null )
    
       {
    

@@ -153,20 +156,21 @@

  *

  * @param ou the organisation unit parameter.

  * @param displayProperty the display property.
  • * @param relativePeriodDate the date to use as basis for relative periods.
    
    * @param userOrgUnit the user organisation unit parameter.
    
    * @param request the HTTP request.
    
    * @param response the HTTP response.
    
    * @param includeGroupSets whether to include organisation unit group sets.
    
    * @return a list of geo features or null.
    
    */
    
  • private List getGeoFeatures( String ou, DisplayProperty displayProperty,
  • private List getGeoFeatures( String ou, DisplayProperty displayProperty, Date relativePeriodDate,

    String userOrgUnit, HttpServletRequest request, HttpServletResponse response, boolean includeGroupSets )
    

    {

    Set<String> set = new HashSet<>();
    
    set.add( ou );
    
    
    
    DataQueryParams params = analyticsService.getFromUrl( set, null, AggregationType.SUM, null,
    
  •        false, false, false, false, false, false, false, displayProperty, null, null, userOrgUnit, null, null, null );
    
  •        false, false, false, false, false, false, false, displayProperty, null, null, relativePeriodDate, userOrgUnit, null, null, null );
    
    
    
       DimensionalObject dim = params.getDimension( DimensionalObject.ORGUNIT_DIM_ID );
    

Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp


Calle Hedberg

46D Alma Road, 7700 Rosebank, SOUTH AFRICA

Tel/fax (home): +27-21-685-6472

Cell: +27-82-853-5352

Iridium SatPhone: +8816-315-19274

Email: calle.hedberg@gmail.com

Skype: calle_hedberg


Lars,

Will this work as an “anchor date” which will determine other relative periods? So that if you last month of usable data is July-2015, then setting this anchor data to some date in July will result in “last 6 months” being Feb-Jul 2015 and
“last 6 months previous year” (if existing) being Feb-Jul 2014? We had this type of anchor date way back in the DHIS 1.3 report generator, and it was useful…

Regards

Calle

···

On 26 August 2015 at 13:41, Calle Hedberg calle.hedberg@gmail.com wrote:

Lars,

Will this work as a sort of

On 26 August 2015 at 12:43, noreply@launchpad.net wrote:


revno: 19856

committer: Lars Helge Overland larshelge@gmail.com

branch nick: dhis2

timestamp: Wed 2015-08-26 11:42:00 +0200

message:

Analaytics, implementd query parameter relativePeriodDate which will be used as basis for relative periods in response

modified:

dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java

dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java

dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java

dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java

dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java

dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java

dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java

lp:dhis2

https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.

To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription

=== modified file ‘dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java’

— dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java 2015-08-04 11:09:17 +0000

+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java 2015-08-26 09:42:00 +0000

@@ -166,6 +166,7 @@

  * @param displayProperty the property to display for meta-data.

  * @param outputIdScheme the identifier scheme to use in the query response.

  * @param approvalLevel the approval level identifier.
  • * @param relativePeriodDate the date to use as basis for relative periods.
    
    * @param userOrgUnit the user organisation unit to use, overrides current user.
    
    * @param program the program identifier.
    
    * @param stage the program stage identifier.
    

@@ -174,7 +175,7 @@

  */

 DataQueryParams getFromUrl( Set<String> dimensionParams, Set<String> filterParams, AggregationType aggregationType, String measureCriteria,

     boolean skipMeta, boolean skipData, boolean skipRounding, boolean hierarchyMeta, boolean ignoreLimit, boolean hideEmptyRows, boolean showHierarchy,
  •    DisplayProperty displayProperty, IdentifiableProperty outputIdScheme, String approvalLevel, String userOrgUnit,
    
  •    DisplayProperty displayProperty, IdentifiableProperty outputIdScheme, String approvalLevel, Date relativePeriodDate, String userOrgUnit,
    
       String program, String stage, I18nFormat format );
    

    /**

@@ -190,12 +191,13 @@

  * Creates a list of DimensionalObject from the given set of dimension params.

  *

  * @param dimensionParams the dimension URL params.
  • * @param relativePeriodDate the date to use as basis for relative periods.
    
    * @param userOrgUnit the user organisation unit param, overrides current
    
    *        user, can be null.
    
    * @param format the i18n format.
    
    * @return a list of DimensionalObject.
    
    */
    
  • List getDimensionalObjects( Set dimensionParams, String userOrgUnit, I18nFormat format );
  • List getDimensionalObjects( Set dimensionParams, Date relativePeriodDate, String userOrgUnit, I18nFormat format );

    /**

    • Returns a persisted DimensionalObject generated from the given dimension

=== modified file ‘dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java’

— dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-08-21 01:47:02 +0000

+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-08-26 09:42:00 +0000

@@ -910,7 +910,7 @@

 public DataQueryParams getFromUrl( Set<String> dimensionParams, Set<String> filterParams, AggregationType aggregationType,

     String measureCriteria, boolean skipMeta, boolean skipData, boolean skipRounding, boolean hierarchyMeta, boolean ignoreLimit,

     boolean hideEmptyRows, boolean showHierarchy, DisplayProperty displayProperty, IdentifiableProperty outputIdScheme,
  •    String approvalLevel, String userOrgUnit, String program, String stage, I18nFormat format )
    
  •    String approvalLevel, Date relativePeriodDate, String userOrgUnit, String program, String stage, I18nFormat format )
    

    {

       DataQueryParams params = new DataQueryParams();
    

@@ -919,12 +919,12 @@

     if ( dimensionParams != null && !dimensionParams.isEmpty() )

     {
  •        params.addDimensions( getDimensionalObjects( dimensionParams, userOrgUnit, format ) );
    
  •        params.addDimensions( getDimensionalObjects( dimensionParams, relativePeriodDate, userOrgUnit, format ) );
    
       }
    
    
    
       if ( filterParams != null && !filterParams.isEmpty() )
    
       {
    
  •        params.getFilters().addAll( getDimensionalObjects( filterParams, userOrgUnit, format ) );
    
  •        params.getFilters().addAll( getDimensionalObjects( filterParams, relativePeriodDate, userOrgUnit, format ) );
    
       }
    
    
    
       if ( measureCriteria != null && !measureCriteria.isEmpty() )
    

@@ -988,7 +988,7 @@

 }



 @Override
  • public List getDimensionalObjects( Set dimensionParams, String userOrgUnit, I18nFormat format )
  • public List getDimensionalObjects( Set dimensionParams, Date relativePeriodDate, String userOrgUnit, I18nFormat format )

    {

    List<DimensionalObject> list = new ArrayList<>();
    

@@ -1003,7 +1003,7 @@

             if ( dimension != null && items != null )

             {
  •                list.add( getDimension( dimension, items, null, userOrgUnits, format, false ) );
    
  •                list.add( getDimension( dimension, items, relativePeriodDate, userOrgUnits, format, false ) );
    
               }
    
           }
    
       }
    

=== modified file ‘dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java’

— dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java 2015-08-04 11:09:17 +0000

+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java 2015-08-26 09:42:00 +0000

@@ -85,7 +85,7 @@

 @Override

 public DataQueryParams getFromUrl( Set<String> dimensionParams, Set<String> filterParams, AggregationType aggregationType,

     String measureCriteria, boolean skipMeta, boolean skipData, boolean skipRounding, boolean hierarchyMeta, boolean ignoreLimit, boolean hideEmptyRows,
  •    boolean showHierarchy, DisplayProperty displayProperty, IdentifiableProperty idScheme, String approvalLevel, String userOrgUnit,
    
  •    boolean showHierarchy, DisplayProperty displayProperty, IdentifiableProperty idScheme, String approvalLevel, Date relativePeriodDate, String userOrgUnit,
    
       String program, String stage, I18nFormat format )
    

    {

       throw new NotImplementedException( "" );
    

@@ -98,7 +98,7 @@

 }



 @Override
  • public List getDimensionalObjects( Set dimensionParams, String userOrgUnit, I18nFormat format )
  • public List getDimensionalObjects( Set dimensionParams, Date relateivePeriodDate, String userOrgUnit, I18nFormat format )

    {

    throw new NotImplementedException( "" );
    

    }

=== modified file ‘dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java’

— dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java 2015-08-04 11:09:17 +0000

+++ dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java 2015-08-26 09:42:00 +0000

@@ -193,7 +193,7 @@

     filterParams.add( "ou:" + ouA.getUid() + ";" + ouB.getUid() + ";" + ouC.getUid() + ";" + ouD.getUid() + ";" + ouE.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 4, params.getDataElements().size() );
    
       assertEquals( 3, params.getPeriods().size() );
    

@@ -211,7 +211,7 @@

     filterParams.add( "ou:" + ouA.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 4, params.getDataElements().size() );
    
       assertEquals( 1, params.getFilterOrganisationUnits().size() );
    

@@ -227,7 +227,7 @@

     filterParams.add( "ou:" + ouA.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 2, params.getDataElements().size() );
    
       assertEquals( 2, params.getProgramDataElements().size() );
    

@@ -244,7 +244,7 @@

     filterParams.add( "ou:" + ouA.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 2, params.getDataElements().size() );
    
       assertEquals( 2, params.getProgramAttributes().size() );
    

@@ -263,7 +263,7 @@

     filterParams.add( "ou:" + ouA.getUid() + ";" + ouB.getUid() + ";" + ouC.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 3, params.getDataElements().size() );
    
       assertEquals( 2, params.getPeriods().size() );
    

@@ -282,7 +282,7 @@

     filterParams.add( "ou:" + ouA.getUid() + ";" + ouB.getUid() );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, filterParams, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 4, params.getDataElements().size() );
    
       assertEquals( 12, params.getPeriods().size() );
    

@@ -298,7 +298,7 @@

     dimensionParams.add( "pe:2011;2012" );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 1, params.getOrganisationUnits().size() );
    
       assertEquals( 2, params.getDataElements().size() );
    

@@ -314,7 +314,7 @@

     dimensionParams.add( "pe:2011;2012" );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 3, params.getOrganisationUnits().size() );
    
       assertEquals( 2, params.getDataElements().size() );
    

@@ -330,7 +330,7 @@

     dimensionParams.add( "pe:2011;2012" );



     DataQueryParams params = analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    
    
    
       assertEquals( 2, params.getOrganisationUnits().size() );
    
       assertEquals( 2, params.getDataElements().size() );
    

@@ -345,7 +345,7 @@

     dimensionParams.add( "pe:2012,2012S1,2012S2" );



     analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    

    }

    @Test( expected = IllegalQueryException.class )

@@ -356,7 +356,7 @@

     dimensionParams.add( "pe" );



     analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    

    }

    @Test( expected = IllegalQueryException.class )

@@ -367,7 +367,7 @@

     dimensionParams.add( "ou" );



     analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    

    }

    @Test( expected = IllegalQueryException.class )

@@ -378,7 +378,7 @@

     dimensionParams.add( "yebo:2012,2012S1,2012S2" );



     analyticsService.getFromUrl( dimensionParams, null, null, null,
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null );
    
  •        false, false, false, false, false, false, false, null, null, null, null, null, null, null, null );
    

    }

    @Test

=== modified file ‘dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java’

— dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java 2015-08-03 12:01:11 +0000

+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java 2015-08-26 09:42:00 +0000

@@ -88,7 +88,7 @@

     if ( dimensions != null )

     {
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null ) );
    
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null, null ) );
    
       }
    
    
    
       Map<String, Object> map = analyticsService.getAggregatedDataValueMapping( params );
    

@@ -137,7 +137,7 @@

             if ( dimensions != null )

             {
  •                params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null ) );
    
  •                params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null, null ) );
    
               }
    
    
    
               Map<String, Object> map = analyticsService.getAggregatedDataValueMapping( params );
    

@@ -173,7 +173,7 @@

     if ( dimensions != null )

     {
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null ) );
    
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null, null ) );
    
       }
    
    
    
       Map<String, Object> map = analyticsService.getAggregatedDataValueMapping( params );
    

@@ -207,7 +207,7 @@

     if ( dimensions != null )

     {
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null ) );
    
  •        params.setFilters( analyticsService.getDimensionalObjects( dimensions, null, null, null ) );
    
       }
    
    
    
       Map<String, Object> map = analyticsService.getAggregatedDataValueMapping( params );
    

=== modified file ‘dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java’

— dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java 2015-08-04 11:09:17 +0000

+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java 2015-08-26 09:42:00 +0000

@@ -30,6 +30,7 @@

import static org.hisp.dhis.common.DimensionalObjectUtils.getItemsFromParam;

+import java.util.Date;

import java.util.Set;

import javax.servlet.http.HttpServletResponse;

@@ -91,6 +92,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -100,7 +102,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_JSON, CacheStrategy.RESPECT_SYSTEM_SETTING );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -126,6 +128,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -135,7 +138,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_XML, CacheStrategy.RESPECT_SYSTEM_SETTING );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -159,6 +162,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -168,7 +172,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -192,6 +196,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -201,7 +206,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -225,6 +230,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -234,7 +240,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_CSV, CacheStrategy.RESPECT_SYSTEM_SETTING, "data.csv", true );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -258,6 +264,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -267,7 +274,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_EXCEL, CacheStrategy.RESPECT_SYSTEM_SETTING, "data.xls", true );
    
       Grid grid = analyticsService.getAggregatedDataValues( params, tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) );
    

@@ -291,6 +298,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) Integer approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -300,7 +308,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, null, null,
  •        true, false, false, false, false, false, false, null, null, null, null, null, null, i18nManager.getI18nFormat() );
    
  •        true, false, false, false, false, false, false, null, null, null, null, null, null, null, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_XML, CacheStrategy.RESPECT_SYSTEM_SETTING, "data.jrxml", false );
    
       Grid grid = analyticsService.getAggregatedDataValues( params );
    

@@ -325,6 +333,7 @@

     @RequestParam( required = false ) DisplayProperty displayProperty,

     @RequestParam( required = false ) IdentifiableProperty outputIdScheme,

     @RequestParam( required = false ) String approvalLevel,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( required = false ) String program,
    
       @RequestParam( required = false ) String stage,
    

@@ -334,7 +343,7 @@

     HttpServletResponse response ) throws Exception

 {

     DataQueryParams params = analyticsService.getFromUrl( dimension, filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, hierarchyMeta,
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
  •        ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, stage, i18nManager.getI18nFormat() );
    
    
    
       contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_TEXT, CacheStrategy.NO_CACHE, "debug.sql", false );
    
       return AnalyticsUtils.getDebugDataSql( params );
    

=== modified file ‘dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java’

— dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java 2015-08-05 14:30:34 +0000

+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java 2015-08-26 09:42:00 +0000

@@ -32,6 +32,7 @@

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

+import java.util.Date;

import java.util.HashSet;

import java.util.List;

import java.util.Map;

@@ -100,6 +101,7 @@

 public void getGeoFeaturesJson(

     @RequestParam String ou,

     @RequestParam( required = false ) DisplayProperty displayProperty,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( defaultValue = "false", value = "includeGroupSets" ) boolean rpIncludeGroupSets,
    
       @RequestParam Map<String, String> parameters,
    

@@ -108,7 +110,7 @@

     WebOptions options = new WebOptions( parameters );

     boolean includeGroupSets = "detailed".equals( options.getViewClass() ) || rpIncludeGroupSets;
  •    List<GeoFeature> features = getGeoFeatures( ou, displayProperty, userOrgUnit, request, response, includeGroupSets );
    
  •    List<GeoFeature> features = getGeoFeatures( ou, displayProperty, relativePeriodDate, userOrgUnit, request, response, includeGroupSets );
    
    
    
       if ( features == null )
    
       {
    

@@ -123,6 +125,7 @@

 public void getGeoFeaturesJsonP(

     @RequestParam String ou,

     @RequestParam( required = false ) DisplayProperty displayProperty,
  •    @RequestParam( required = false ) Date relativePeriodDate,
    
       @RequestParam( required = false ) String userOrgUnit,
    
       @RequestParam( defaultValue = "callback" ) String callback,
    
       @RequestParam( defaultValue = "false", value = "includeGroupSets" ) boolean rpIncludeGroupSets,
    

@@ -132,7 +135,7 @@

     WebOptions options = new WebOptions( parameters );

     boolean includeGroupSets = "detailed".equals( options.getViewClass() ) || rpIncludeGroupSets;
  •    List<GeoFeature> features = getGeoFeatures( ou, displayProperty, userOrgUnit, request, response, includeGroupSets );
    
  •    List<GeoFeature> features = getGeoFeatures( ou, displayProperty, relativePeriodDate, userOrgUnit, request, response, includeGroupSets );
    
    
    
       if ( features == null )
    
       {
    

@@ -153,20 +156,21 @@

  *

  * @param ou the organisation unit parameter.

  * @param displayProperty the display property.
  • * @param relativePeriodDate the date to use as basis for relative periods.
    
    * @param userOrgUnit the user organisation unit parameter.
    
    * @param request the HTTP request.
    
    * @param response the HTTP response.
    
    * @param includeGroupSets whether to include organisation unit group sets.
    
    * @return a list of geo features or null.
    
    */
    
  • private List getGeoFeatures( String ou, DisplayProperty displayProperty,
  • private List getGeoFeatures( String ou, DisplayProperty displayProperty, Date relativePeriodDate,

    String userOrgUnit, HttpServletRequest request, HttpServletResponse response, boolean includeGroupSets )
    

    {

    Set<String> set = new HashSet<>();
    
    set.add( ou );
    
    
    
    DataQueryParams params = analyticsService.getFromUrl( set, null, AggregationType.SUM, null,
    
  •        false, false, false, false, false, false, false, displayProperty, null, null, userOrgUnit, null, null, null );
    
  •        false, false, false, false, false, false, false, displayProperty, null, null, relativePeriodDate, userOrgUnit, null, null, null );
    
    
    
       DimensionalObject dim = params.getDimension( DimensionalObject.ORGUNIT_DIM_ID );
    

Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp


Calle Hedberg

46D Alma Road, 7700 Rosebank, SOUTH AFRICA

Tel/fax (home): +27-21-685-6472

Cell: +27-82-853-5352

Iridium SatPhone: +8816-315-19274

Email: calle.hedberg@gmail.com

Skype: calle_hedberg



Calle Hedberg

46D Alma Road, 7700 Rosebank, SOUTH AFRICA

Tel/fax (home): +27-21-685-6472

Cell: +27-82-853-5352

Iridium SatPhone: +8816-315-19274

Email: calle.hedberg@gmail.com

Skype: calle_hedberg


Hi Calle,

···

On Wed, Aug 26, 2015 at 12:45 PM, Calle Hedberg calle.hedberg@gmail.com wrote:

Lars,

Will this work as an “anchor date” which will determine other relative periods? So that if you last month of usable data is July-2015, then setting this anchor data to some date in July will result in “last 6 months” being Feb-Jul 2015 and
“last 6 months previous year” (if existing) being Feb-Jul 2014? We had this type of anchor date way back in the DHIS 1.3 report generator, and it was useful…

yes that is correct.

The first application will be as a filter in the dashboard, to allow you to “rewind” time for dashboards which contain favorites with relative periods.

Lars

Hi,

excellent - only in 2.21, or will you add this to 2.20 and earlier versions too?

Regards
Calle

···

On 26 August 2015 at 14:08, Lars Helge Øverland larshelge@gmail.com wrote:

Hi Calle,

On Wed, Aug 26, 2015 at 12:45 PM, Calle Hedberg calle.hedberg@gmail.com wrote:

Lars,

Will this work as an “anchor date” which will determine other relative periods? So that if you last month of usable data is July-2015, then setting this anchor data to some date in July will result in “last 6 months” being Feb-Jul 2015 and
“last 6 months previous year” (if existing) being Feb-Jul 2014? We had this type of anchor date way back in the DHIS 1.3 report generator, and it was useful…

yes that is correct.

The first application will be as a filter in the dashboard, to allow you to “rewind” time for dashboards which contain favorites with relative periods.

Lars


Calle Hedberg

46D Alma Road, 7700 Rosebank, SOUTH AFRICA

Tel/fax (home): +27-21-685-6472

Cell: +27-82-853-5352

Iridium SatPhone: +8816-315-19274

Email: calle.hedberg@gmail.com

Skype: calle_hedberg


We are aiming for 2.21 for this one.

Lars

···

On Wed, Aug 26, 2015 at 11:15 PM, Calle Hedberg calle.hedberg@gmail.com wrote:

Hi,

excellent - only in 2.21, or will you add this to 2.20 and earlier versions too?

Regards
Calle

On 26 August 2015 at 14:08, Lars Helge Øverland larshelge@gmail.com wrote:

Hi Calle,


Calle Hedberg

46D Alma Road, 7700 Rosebank, SOUTH AFRICA

Tel/fax (home): +27-21-685-6472

Cell: +27-82-853-5352

Iridium SatPhone: +8816-315-19274

Email: calle.hedberg@gmail.com

Skype: calle_hedberg


On Wed, Aug 26, 2015 at 12:45 PM, Calle Hedberg calle.hedberg@gmail.com wrote:

Lars,

Will this work as an “anchor date” which will determine other relative periods? So that if you last month of usable data is July-2015, then setting this anchor data to some date in July will result in “last 6 months” being Feb-Jul 2015 and
“last 6 months previous year” (if existing) being Feb-Jul 2014? We had this type of anchor date way back in the DHIS 1.3 report generator, and it was useful…

yes that is correct.

The first application will be as a filter in the dashboard, to allow you to “rewind” time for dashboards which contain favorites with relative periods.

Lars

Lars Helge Øverland

Lead developer, DHIS 2

University of Oslo

Skype: larshelgeoverland

http://www.dhis2.org