dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #36513
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 18675: Event analytics, program indicators, get from url
------------------------------------------------------------
revno: 18675
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2015-03-24 12:45:27 +0100
message:
Event analytics, program indicators, get from url
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/DimensionType.java
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.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/event/EventQueryParams.java
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.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-api/src/main/java/org/hisp/dhis/common/DimensionType.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/DimensionType.java 2015-03-23 20:38:30 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/DimensionType.java 2015-03-24 11:45:27 +0000
@@ -48,5 +48,6 @@
CATEGORY,
TRACKED_ENTITY_ATTRIBUTE,
TRACKED_ENTITY_DATAELEMENT,
+ PROGRAM_INDICATOR,
STATIC
}
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2015-03-07 16:26:59 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2015-03-24 11:45:27 +0000
@@ -94,6 +94,7 @@
public static final String DISPLAY_NAME_CATEGORYOPTIONCOMBO = "Category";
public static final String DISPLAY_NAME_PERIOD = "Period";
public static final String DISPLAY_NAME_ORGUNIT = "Organisation unit";
+ public static final String DISPLAY_NAME_PROGRAM_INDICATOR = "Program indicator";
public static final String DISPLAY_NAME_LONGITUDE = "Longitude";
public static final String DISPLAY_NAME_LATITUDE = "Latitude";
@@ -514,7 +515,7 @@
return ( dimOpts != null && !dimOpts.isEmpty() ) || ( filterOpts != null && !filterOpts.isEmpty() );
}
-
+
/**
* Returns the period type of the first period specified as filter, or
* null if there is no period filter.
=== 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-03-24 11:19:25 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-03-24 11:45:27 +0000
@@ -38,6 +38,7 @@
import static org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_LONGITUDE;
import static org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_ORGUNIT;
import static org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_PERIOD;
+import static org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_PROGRAM_INDICATOR;
import static org.hisp.dhis.analytics.DataQueryParams.KEY_DE_GROUP;
import static org.hisp.dhis.common.DimensionalObject.CATEGORYOPTIONCOMBO_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.DATAELEMENT_DIM_ID;
@@ -47,6 +48,7 @@
import static org.hisp.dhis.common.DimensionalObject.INDICATOR_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.LATITUDE_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.LONGITUDE_DIM_ID;
+import static org.hisp.dhis.common.DimensionalObject.PROGRAM_INDICATOR_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.ORGUNIT_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.PERIOD_DIM_ID;
import static org.hisp.dhis.common.DimensionalObjectUtils.toDimension;
@@ -132,6 +134,7 @@
import org.hisp.dhis.period.RelativePeriodEnum;
import org.hisp.dhis.period.RelativePeriods;
import org.hisp.dhis.period.comparator.AscendingPeriodEndDateComparator;
+import org.hisp.dhis.program.ProgramIndicator;
import org.hisp.dhis.reporttable.ReportTable;
import org.hisp.dhis.setting.SystemSettingManager;
import org.hisp.dhis.system.grid.ListGrid;
@@ -1140,6 +1143,15 @@
return ListUtils.getList( object );
}
+ if ( PROGRAM_INDICATOR_DIM_ID.equals( dimension ) )
+ {
+ List<ProgramIndicator> indicators = idObjectManager.getByUid( ProgramIndicator.class, items );
+
+ DimensionalObject object = new BaseDimensionalObject( PROGRAM_INDICATOR_DIM_ID, DimensionType.PROGRAM_INDICATOR, null, DISPLAY_NAME_PROGRAM_INDICATOR, indicators );
+
+ return ListUtils.getList( object );
+ }
+
if ( LONGITUDE_DIM_ID.contains( dimension ) )
{
DimensionalObject object = new BaseDimensionalObject( dimension, DimensionType.STATIC, null, DISPLAY_NAME_LONGITUDE, new ArrayList<NameableObject>() );
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java 2015-03-12 11:27:20 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java 2015-03-24 11:45:27 +0000
@@ -29,6 +29,7 @@
*/
import static org.hisp.dhis.common.DimensionalObject.PERIOD_DIM_ID;
+import static org.hisp.dhis.common.DimensionalObject.PROGRAM_INDICATOR_DIM_ID;
import java.util.ArrayList;
import java.util.Date;
@@ -233,6 +234,25 @@
return organisationUnitMode != null && organisationUnitMode.equalsIgnoreCase( mode );
}
+ /**
+ * Indicates whether any items or item filters are present.
+ */
+ public boolean hasItemsOrItemFilters()
+ {
+ return !items.isEmpty() || !itemFilters.isEmpty();
+ }
+
+ /**
+ * Indicates whether program indicators are present as dimension or filter.
+ */
+ public boolean hasProgramIndicators()
+ {
+ List<NameableObject> dimOpts = getDimensionOptions( PROGRAM_INDICATOR_DIM_ID );
+ List<NameableObject> filterOpts = getFilterOptions( PROGRAM_INDICATOR_DIM_ID );
+
+ return ( dimOpts != null && !dimOpts.isEmpty() ) || ( filterOpts != null && !filterOpts.isEmpty() );
+ }
+
public boolean hasStartEndDate()
{
return startDate != null && endDate != null;
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java 2015-03-05 15:38:58 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java 2015-03-24 11:45:27 +0000
@@ -124,6 +124,11 @@
violation = "Start and end date or at least one period must be specified";
}
+ if ( params.hasProgramIndicators() && params.hasItemsOrItemFilters() )
+ {
+ violation = "Data elements or attributs cannot be specified together with indicators";
+ }
+
if ( params.getStartDate() != null && params.getEndDate() != null && params.getStartDate().after( params.getEndDate() ) )
{
violation = "Start date is after end date: " + params.getStartDate() + " - " + params.getEndDate();