dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #38097
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 19454: Analytics, adding program indicators to getFromUrl method
------------------------------------------------------------
revno: 19454
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2015-06-18 16:35:18 +0200
message:
Analytics, adding program indicators to getFromUrl method
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseDimensionalObject.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/DimensionType.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/DimensionalObject.java
dhis-2/dhis-api/src/test/java/org/hisp/dhis/common/BaseAnalyticalObjectTest.java
dhis-2/dhis-api/src/test/java/org/hisp/dhis/common/DimensionalObjectTest.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/dimension/DefaultDimensionService.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
dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/event/data/EventAnalyticsServiceTest.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/adx/DefaultADXDataService.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/BaseAnalyticalObject.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java 2015-05-27 13:54:41 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java 2015-06-18 14:35:18 +0000
@@ -393,7 +393,7 @@
{
TrackedEntityAttributeDimension tead = attributes.get( dimension );
- return new BaseDimensionalObject( dimension, DimensionType.TRACKED_ENTITY_ATTRIBUTE, null, tead.getDisplayName(), tead.getLegendSet(), tead.getFilter() );
+ return new BaseDimensionalObject( dimension, DimensionType.PROGRAM_ATTRIBUTE, null, tead.getDisplayName(), tead.getLegendSet(), tead.getFilter() );
}
// Tracked entity data element
@@ -409,7 +409,7 @@
{
TrackedEntityDataElementDimension tedd = dataElements.get( dimension );
- return new BaseDimensionalObject( dimension, DimensionType.TRACKED_ENTITY_DATAELEMENT, null, tedd.getDisplayName(), tedd.getLegendSet(), tedd.getFilter() );
+ return new BaseDimensionalObject( dimension, DimensionType.PROGRAM_DATAELEMENT, null, tedd.getDisplayName(), tedd.getLegendSet(), tedd.getFilter() );
}
}
@@ -606,7 +606,7 @@
{
TrackedEntityAttributeDimension tead = attributes.get( dimension );
- objects.add( new BaseDimensionalObject( dimension, DimensionType.TRACKED_ENTITY_ATTRIBUTE, null, tead.getDisplayName(), tead.getLegendSet(), tead.getFilter() ) );
+ objects.add( new BaseDimensionalObject( dimension, DimensionType.PROGRAM_ATTRIBUTE, null, tead.getDisplayName(), tead.getLegendSet(), tead.getFilter() ) );
}
// Tracked entity data element
@@ -622,7 +622,7 @@
{
TrackedEntityDataElementDimension tedd = dataElements.get( dimension );
- objects.add( new BaseDimensionalObject( dimension, DimensionType.TRACKED_ENTITY_DATAELEMENT, null, tedd.getDisplayName(), tedd.getLegendSet(), tedd.getFilter() ) );
+ objects.add( new BaseDimensionalObject( dimension, DimensionType.PROGRAM_DATAELEMENT, null, tedd.getDisplayName(), tedd.getLegendSet(), tedd.getFilter() ) );
}
}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseDimensionalObject.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseDimensionalObject.java 2015-06-16 16:07:21 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseDimensionalObject.java 2015-06-18 14:35:18 +0000
@@ -162,8 +162,8 @@
public AnalyticsType getAnalyticsType()
{
return
- DimensionType.TRACKED_ENTITY_ATTRIBUTE.equals( dimensionType ) ||
- DimensionType.TRACKED_ENTITY_DATAELEMENT.equals( dimensionType ) ?
+ DimensionType.PROGRAM_ATTRIBUTE.equals( dimensionType ) ||
+ DimensionType.PROGRAM_DATAELEMENT.equals( dimensionType ) ?
AnalyticsType.EVENT : AnalyticsType.AGGREGATE;
}
=== 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-06-17 14:52:34 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/DimensionType.java 2015-06-18 14:35:18 +0000
@@ -37,6 +37,7 @@
DATAELEMENT,
DATASET,
DATAELEMENT_OPERAND,
+ PROGRAM_INDICATOR,
PROGRAM_DATAELEMENT,
PROGRAM_ATTRIBUTE,
DATA_X,
@@ -48,8 +49,5 @@
DATAELEMENT_GROUPSET,
ORGANISATIONUNIT_GROUPSET,
CATEGORY,
- TRACKED_ENTITY_ATTRIBUTE,
- TRACKED_ENTITY_DATAELEMENT,
- PROGRAM_INDICATOR,
STATIC
}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/DimensionalObject.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/DimensionalObject.java 2015-06-17 14:52:34 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/DimensionalObject.java 2015-06-18 14:35:18 +0000
@@ -53,13 +53,13 @@
final String DATAELEMENT_DIM_ID = "de";
final String DATASET_DIM_ID = "ds";
final String DATAELEMENT_OPERAND_ID = "dc";
+ final String PROGRAM_INDICATOR_DIM_ID = "pi";
final String PROGRAM_DATAELEMENT_DIM_ID = "pd";
final String PROGRAM_ATTRIBUTE_DIM_ID = "pa";
final String CATEGORYOPTIONCOMBO_DIM_ID = "co";
final String PERIOD_DIM_ID = "pe";
final String ORGUNIT_DIM_ID = "ou";
final String ORGUNIT_GROUP_DIM_ID = "oug"; // Used for org unit target
- final String PROGRAM_INDICATOR_DIM_ID = "pin";
final String ITEM_DIM_ID = "item";
final String OU_MODE_SELECTED = "selected"; //TODO replace with OrganisationUnitSelectionMode
@@ -88,8 +88,8 @@
put( DimensionType.DATAELEMENT_GROUPSET, DataElementGroupSet.class );
put( DimensionType.ORGANISATIONUNIT_GROUPSET, OrganisationUnitGroupSet.class );
put( DimensionType.CATEGORYOPTION_GROUPSET, CategoryOptionGroupSet.class );
- put( DimensionType.TRACKED_ENTITY_ATTRIBUTE, TrackedEntityAttribute.class );
- put( DimensionType.TRACKED_ENTITY_DATAELEMENT, DataElement.class );
+ put( DimensionType.PROGRAM_ATTRIBUTE, TrackedEntityAttribute.class );
+ put( DimensionType.PROGRAM_DATAELEMENT, DataElement.class );
} };
/**
=== modified file 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/common/BaseAnalyticalObjectTest.java'
--- dhis-2/dhis-api/src/test/java/org/hisp/dhis/common/BaseAnalyticalObjectTest.java 2015-02-25 20:40:28 +0000
+++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/common/BaseAnalyticalObjectTest.java 2015-06-18 14:35:18 +0000
@@ -125,7 +125,7 @@
assertNotNull( dim );
assertEquals( tea.getDimension(), dim.getDimension() );
- assertEquals( DimensionType.TRACKED_ENTITY_ATTRIBUTE, dim.getDimensionType() );
+ assertEquals( DimensionType.PROGRAM_ATTRIBUTE, dim.getDimensionType() );
assertEquals( AnalyticsType.EVENT, dim.getAnalyticsType() );
assertEquals( tead.getFilter(), dim.getFilter() );
}
=== modified file 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/common/DimensionalObjectTest.java'
--- dhis-2/dhis-api/src/test/java/org/hisp/dhis/common/DimensionalObjectTest.java 2015-02-25 20:40:28 +0000
+++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/common/DimensionalObjectTest.java 2015-06-18 14:35:18 +0000
@@ -44,11 +44,11 @@
@Test
public void testGetFilterItemsAsList()
{
- BaseDimensionalObject objectA = new BaseDimensionalObject( "dimA", DimensionType.TRACKED_ENTITY_DATAELEMENT, null, null, null, "IN:uidA;uidB;uidC" );
+ BaseDimensionalObject objectA = new BaseDimensionalObject( "dimA", DimensionType.PROGRAM_DATAELEMENT, null, null, null, "IN:uidA;uidB;uidC" );
List<String> expectedA = new ArrayList<>( Arrays.asList( "uidA", "uidB", "uidC" ) );
assertEquals( expectedA, objectA.getFilterItemsAsList() );
- BaseDimensionalObject objectB = new BaseDimensionalObject( "dimA", DimensionType.TRACKED_ENTITY_DATAELEMENT, null, null, null, "EQ:uidA" );
+ BaseDimensionalObject objectB = new BaseDimensionalObject( "dimA", DimensionType.PROGRAM_DATAELEMENT, null, null, null, "EQ:uidA" );
assertEquals( null, objectB.getFilterItemsAsList() );
}
}
=== 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-06-18 10:54:01 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2015-06-18 14:35:18 +0000
@@ -44,6 +44,7 @@
import static org.hisp.dhis.common.DimensionalObject.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.DimensionalObject.PROGRAM_INDICATOR_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.PROGRAM_DATAELEMENT_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.PROGRAM_ATTRIBUTE_DIM_ID;
import static org.hisp.dhis.common.NameableObjectUtils.asList;
@@ -103,7 +104,6 @@
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";
@@ -111,11 +111,11 @@
public static final int CO_IN_INDEX = 1;
public static final List<String> DATA_DIMS = Arrays.asList(
- INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, DATAELEMENT_OPERAND_ID, DATASET_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
+ INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, DATAELEMENT_OPERAND_ID, DATASET_DIM_ID, PROGRAM_INDICATOR_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
public static final List<String> FIXED_DIMS = Arrays.asList(
- DATA_X_DIM_ID, INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, DATASET_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID, PERIOD_DIM_ID, ORGUNIT_DIM_ID );
+ DATA_X_DIM_ID, INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, DATASET_DIM_ID, PROGRAM_INDICATOR_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID, PERIOD_DIM_ID, ORGUNIT_DIM_ID );
private static final List<String> DIMENSION_PERMUTATION_IGNORE_DIMS = Arrays.asList(
- INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, CATEGORYOPTIONCOMBO_DIM_ID, DATASET_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
+ INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, CATEGORYOPTIONCOMBO_DIM_ID, DATASET_DIM_ID, PROGRAM_INDICATOR_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
public static final List<DimensionType> COMPLETENESS_DIMENSION_TYPES = Arrays.asList(
DATASET, PERIOD, ORGANISATIONUNIT, ORGANISATIONUNIT_GROUPSET, CATEGORYOPTION_GROUPSET );
private static final List<DimensionType> COMPLETENESS_TARGET_DIMENSION_TYPES = Arrays.asList(
@@ -286,6 +286,7 @@
if ( !dimensions.contains( new BaseDimensionalObject( DATAELEMENT_DIM_ID ) ) ||
dimensions.contains( new BaseDimensionalObject( INDICATOR_DIM_ID ) ) ||
dimensions.contains( new BaseDimensionalObject( DATASET_DIM_ID ) ) ||
+ dimensions.contains( new BaseDimensionalObject( PROGRAM_INDICATOR_DIM_ID ) ) ||
dimensions.contains( new BaseDimensionalObject( PROGRAM_DATAELEMENT_DIM_ID ) ) ||
dimensions.contains( new BaseDimensionalObject( PROGRAM_ATTRIBUTE_DIM_ID ) ) )
{
@@ -360,6 +361,7 @@
new BaseDimensionalObject( INDICATOR_DIM_ID ),
new BaseDimensionalObject( DATAELEMENT_DIM_ID ),
new BaseDimensionalObject( DATASET_DIM_ID ),
+ new BaseDimensionalObject( PROGRAM_INDICATOR_DIM_ID ),
new BaseDimensionalObject( PROGRAM_DATAELEMENT_DIM_ID ),
new BaseDimensionalObject( PROGRAM_ATTRIBUTE_DIM_ID ) ) );
@@ -464,7 +466,7 @@
/**
* Removes the dimensions with the given identifiers.
*/
- public DataQueryParams removeDimensions( Set<String> dimension )
+ public DataQueryParams removeDimensions( Collection<String> dimension )
{
if ( dimension != null )
{
@@ -1599,6 +1601,16 @@
setOrganisationUnits( getList( organisationUnit ) );
}
+ public List<NameableObject> getProgramIndicators()
+ {
+ return getDimensionOptions( PROGRAM_INDICATOR_DIM_ID );
+ }
+
+ public void setProgramIndicators( List<? extends NameableObject> programIndicators )
+ {
+ setDimensionOptions( PROGRAM_INDICATOR_DIM_ID, DimensionType.PROGRAM_INDICATOR, null, asList( programIndicators ) );
+ }
+
public List<NameableObject> getProgramDataElements()
{
return getDimensionOptions( PROGRAM_DATAELEMENT_DIM_ID );
=== 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-06-18 10:54:01 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-06-18 14:35:18 +0000
@@ -32,16 +32,15 @@
import static org.hisp.dhis.analytics.AnalyticsTableManager.COMPLETENESS_TABLE_NAME;
import static org.hisp.dhis.analytics.AnalyticsTableManager.COMPLETENESS_TARGET_TABLE_NAME;
import static org.hisp.dhis.analytics.AnalyticsTableManager.ORGUNIT_TARGET_TABLE_NAME;
+import static org.hisp.dhis.analytics.DataQueryParams.COMPLETENESS_DIMENSION_TYPES;
import static org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_CATEGORYOPTIONCOMBO;
import static org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_DATA_X;
import static org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_LATITUDE;
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.DX_INDEX;
import static org.hisp.dhis.analytics.DataQueryParams.KEY_DE_GROUP;
-import static org.hisp.dhis.analytics.DataQueryParams.COMPLETENESS_DIMENSION_TYPES;
-import static org.hisp.dhis.analytics.DataQueryParams.DX_INDEX;
import static org.hisp.dhis.common.DimensionalObject.CATEGORYOPTIONCOMBO_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.DATAELEMENT_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.DATASET_DIM_ID;
@@ -52,9 +51,9 @@
import static org.hisp.dhis.common.DimensionalObject.LONGITUDE_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.DimensionalObject.PROGRAM_ATTRIBUTE_DIM_ID;
+import static org.hisp.dhis.common.DimensionalObject.PROGRAM_DATAELEMENT_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.PROGRAM_INDICATOR_DIM_ID;
-import static org.hisp.dhis.common.DimensionalObject.PROGRAM_DATAELEMENT_DIM_ID;
-import static org.hisp.dhis.common.DimensionalObject.PROGRAM_ATTRIBUTE_DIM_ID;
import static org.hisp.dhis.common.DimensionalObjectUtils.toDimension;
import static org.hisp.dhis.common.IdentifiableObjectUtils.getLocalPeriodIdentifier;
import static org.hisp.dhis.common.IdentifiableObjectUtils.getLocalPeriodIdentifiers;
@@ -115,6 +114,9 @@
import org.hisp.dhis.common.MapMap;
import org.hisp.dhis.common.NameableObject;
import org.hisp.dhis.common.NameableObjectUtils;
+import org.hisp.dhis.commons.collection.ListUtils;
+import org.hisp.dhis.commons.collection.UniqueArrayList;
+import org.hisp.dhis.commons.util.DebugUtils;
import org.hisp.dhis.constant.ConstantService;
import org.hisp.dhis.dataelement.CategoryOptionGroup;
import org.hisp.dhis.dataelement.CategoryOptionGroupSet;
@@ -148,14 +150,11 @@
import org.hisp.dhis.setting.SystemSettingManager;
import org.hisp.dhis.system.grid.ListGrid;
import org.hisp.dhis.system.util.MathUtils;
+import org.hisp.dhis.system.util.SystemUtils;
+import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
import org.hisp.dhis.user.CurrentUserService;
import org.hisp.dhis.user.User;
-import org.hisp.dhis.commons.util.DebugUtils;
-import org.hisp.dhis.commons.collection.ListUtils;
-import org.hisp.dhis.system.util.SystemUtils;
-import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
import org.hisp.dhis.util.Timer;
-import org.hisp.dhis.commons.collection.UniqueArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import com.google.common.collect.Lists;
@@ -298,7 +297,7 @@
if ( !params.getIndicators().isEmpty() )
{
DataQueryParams dataSourceParams = params.instance();
- dataSourceParams.removeDimensions( DATAELEMENT_DIM_ID, DATASET_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
+ dataSourceParams.removeDimensions( DATAELEMENT_DIM_ID, DATASET_DIM_ID, PROGRAM_INDICATOR_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
List<Indicator> indicators = asTypedList( dataSourceParams.getIndicators() );
@@ -368,7 +367,7 @@
if ( !params.getDataElements().isEmpty() )
{
DataQueryParams dataSourceParams = params.instance();
- dataSourceParams.removeDimensions( INDICATOR_DIM_ID, DATASET_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
+ dataSourceParams.removeDimensions( INDICATOR_DIM_ID, DATASET_DIM_ID, PROGRAM_INDICATOR_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
Map<String, Object> aggregatedDataMap = getAggregatedDataValueMapObjectTyped( dataSourceParams );
@@ -398,7 +397,7 @@
DataQueryParams dataSourceParams = params.instance();
dataSourceParams.ignoreDataApproval(); // No approval for reporting rates
- dataSourceParams.removeDimensions( INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
+ dataSourceParams.removeDimensions( INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, PROGRAM_INDICATOR_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
dataSourceParams.setAggregationType( AggregationType.COUNT );
if ( !COMPLETENESS_DIMENSION_TYPES.containsAll( dataSourceParams.getDimensionTypes() ) )
@@ -972,6 +971,7 @@
List<NameableObject> dataElements = new ArrayList<>();
List<NameableObject> dataSets = new ArrayList<>();
List<NameableObject> operandDataElements = new ArrayList<>();
+ List<NameableObject> programIndicators = new ArrayList<>();
List<NameableObject> programDataElements = new ArrayList<>();
List<NameableObject> programAttributes = new ArrayList<>();
@@ -1007,7 +1007,8 @@
dataElements.add( de );
continue itemLoop;
}
- else if ( de != null && DataElementDomain.TRACKER.equals( de.getDomainType() ) )
+
+ if ( de != null && DataElementDomain.TRACKER.equals( de.getDomainType() ) )
{
programDataElements.add( de );
continue itemLoop;
@@ -1029,6 +1030,14 @@
continue itemLoop;
}
+ ProgramIndicator pi = idObjectManager.get( ProgramIndicator.class, uid );
+
+ if ( pi != null )
+ {
+ programIndicators.add( pi );
+ continue itemLoop;
+ }
+
TrackedEntityAttribute pa = idObjectManager.get( TrackedEntityAttribute.class, uid );
if ( pa != null )
@@ -1069,6 +1078,11 @@
dataDimensions.add( new BaseDimensionalObject( CATEGORYOPTIONCOMBO_DIM_ID, DimensionType.CATEGORY_OPTION_COMBO, new ArrayList<NameableObject>() ) );
}
+ if ( !programIndicators.isEmpty() )
+ {
+ dataDimensions.add( new BaseDimensionalObject( PROGRAM_INDICATOR_DIM_ID, DimensionType.PROGRAM_INDICATOR, programIndicators ) );
+ }
+
if ( !programDataElements.isEmpty() )
{
dataDimensions.add( new BaseDimensionalObject( PROGRAM_DATAELEMENT_DIM_ID, DimensionType.PROGRAM_DATAELEMENT, programDataElements ) );
@@ -1079,7 +1093,8 @@
dataDimensions.add( new BaseDimensionalObject( PROGRAM_ATTRIBUTE_DIM_ID, DimensionType.PROGRAM_ATTRIBUTE, programAttributes ) );
}
- if ( indicators.isEmpty() && dataElements.isEmpty() && dataSets.isEmpty() && operandDataElements.isEmpty() && programDataElements.isEmpty() && programAttributes.isEmpty() )
+ if ( indicators.isEmpty() && dataElements.isEmpty() && dataSets.isEmpty() && operandDataElements.isEmpty() &&
+ programDataElements.isEmpty() && programAttributes.isEmpty() && programIndicators.isEmpty() )
{
throw new IllegalQueryException( "Dimension dx is present in query without any valid dimension options" );
}
@@ -1227,15 +1242,6 @@
return Lists.newArrayList( 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 Lists.newArrayList( object );
- }
-
if ( LONGITUDE_DIM_ID.contains( dimension ) )
{
DimensionalObject object = new BaseDimensionalObject( dimension, DimensionType.STATIC, null, DISPLAY_NAME_LONGITUDE, new ArrayList<NameableObject>() );
@@ -1340,8 +1346,7 @@
if ( !dataElements.isEmpty() )
{
- DataQueryParams dataSourceParams = params.instance().removeDimensions(
- INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, DATASET_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
+ DataQueryParams dataSourceParams = params.instance().removeDimensions( DataQueryParams.DATA_DIMS );
dataSourceParams.getDimensions().add( DX_INDEX, new BaseDimensionalObject(
DATAELEMENT_DIM_ID, DimensionType.DATAELEMENT, dataElements ) );
@@ -1367,8 +1372,7 @@
if ( !dataElements.isEmpty() )
{
- DataQueryParams dataSourceParams = params.instance().removeDimensions(
- INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, DATASET_DIM_ID, PROGRAM_DATAELEMENT_DIM_ID, PROGRAM_ATTRIBUTE_DIM_ID );
+ DataQueryParams dataSourceParams = params.instance().removeDimensions( DataQueryParams.DATA_DIMS );
dataSourceParams.getDimensions().add( DataQueryParams.DX_INDEX, new BaseDimensionalObject(
DATAELEMENT_DIM_ID, DimensionType.DATAELEMENT, dataElements ) );
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/dimension/DefaultDimensionService.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/dimension/DefaultDimensionService.java 2015-06-15 13:44:20 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/dimension/DefaultDimensionService.java 2015-06-18 14:35:18 +0000
@@ -47,6 +47,7 @@
import org.hisp.dhis.dataelement.DataElementCategoryDimension;
import org.hisp.dhis.dataelement.DataElementCategoryOption;
import org.hisp.dhis.dataelement.DataElementCategoryService;
+import org.hisp.dhis.dataelement.DataElementDomain;
import org.hisp.dhis.dataelement.DataElementGroup;
import org.hisp.dhis.dataelement.DataElementGroupSet;
import org.hisp.dhis.dataelement.DataElementOperandService;
@@ -155,16 +156,16 @@
if ( tea != null )
{
- tea.setDimensionType( DimensionType.TRACKED_ENTITY_ATTRIBUTE );
+ tea.setDimensionType( DimensionType.PROGRAM_ATTRIBUTE );
return tea;
}
- DataElement tde = identifiableObjectManager.get( DataElement.class, uid );
+ DataElement pde = identifiableObjectManager.get( DataElement.class, uid );
- if ( tde != null )
+ if ( pde != null && DataElementDomain.TRACKER.equals( pde.getDomainType() ) )
{
- tde.setDimensionType( DimensionType.TRACKED_ENTITY_DATAELEMENT );
- return tde;
+ pde.setDimensionType( DimensionType.PROGRAM_DATAELEMENT );
+ return pde;
}
return null;
@@ -267,14 +268,14 @@
if ( tea != null )
{
- return DimensionType.TRACKED_ENTITY_ATTRIBUTE;
+ return DimensionType.PROGRAM_ATTRIBUTE;
}
- DataElement de = identifiableObjectManager.get( DataElement.class, uid );
+ DataElement pde = identifiableObjectManager.get( DataElement.class, uid );
- if ( de != null )
+ if ( pde != null && DataElementDomain.TRACKER.equals( pde.getDomainType() ) )
{
- return DimensionType.TRACKED_ENTITY_DATAELEMENT;
+ return DimensionType.PROGRAM_DATAELEMENT;
}
final Map<String, DimensionType> dimObjectTypeMap = new HashMap<>();
@@ -533,7 +534,7 @@
{
object.getCategoryOptionGroups().addAll( identifiableObjectManager.getByUidOrdered( CategoryOptionGroup.class, uids ) );
}
- else if ( TRACKED_ENTITY_ATTRIBUTE.equals( type ) )
+ else if ( PROGRAM_ATTRIBUTE.equals( type ) )
{
TrackedEntityAttributeDimension attributeDimension = new TrackedEntityAttributeDimension();
attributeDimension.setAttribute( identifiableObjectManager.get( TrackedEntityAttribute.class, dimensionId ) );
@@ -542,7 +543,7 @@
object.getAttributeDimensions().add( attributeDimension );
}
- else if ( TRACKED_ENTITY_DATAELEMENT.equals( type ) )
+ else if ( PROGRAM_DATAELEMENT.equals( type ) )
{
TrackedEntityDataElementDimension dataElementDimension = new TrackedEntityDataElementDimension();
dataElementDimension.setDataElement( identifiableObjectManager.get( DataElement.class, dimensionId ) );
=== 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-06-17 14:52:34 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java 2015-06-18 14:35:18 +0000
@@ -29,9 +29,8 @@
*/
import static org.hisp.dhis.common.DimensionalObject.PERIOD_DIM_ID;
-import static org.hisp.dhis.common.DimensionalObject.PROGRAM_INDICATOR_DIM_ID;
+import static org.hisp.dhis.common.DimensionalObject.PROGRAM_ATTRIBUTE_DIM_ID;
import static org.hisp.dhis.common.DimensionalObject.PROGRAM_DATAELEMENT_DIM_ID;
-import static org.hisp.dhis.common.DimensionalObject.PROGRAM_ATTRIBUTE_DIM_ID;
import java.util.ArrayList;
import java.util.Date;
@@ -47,13 +46,13 @@
import org.hisp.dhis.common.NameableObject;
import org.hisp.dhis.common.NameableObjectUtils;
import org.hisp.dhis.common.QueryItem;
+import org.hisp.dhis.commons.collection.ListUtils;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.legend.Legend;
import org.hisp.dhis.option.OptionSet;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.period.Period;
import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
-import org.hisp.dhis.commons.collection.ListUtils;
/**
* @author Lars Helge Overland
@@ -296,17 +295,6 @@
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-06-14 17:51:03 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java 2015-06-18 14:35:18 +0000
@@ -124,11 +124,6 @@
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();
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/event/data/EventAnalyticsServiceTest.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/event/data/EventAnalyticsServiceTest.java 2015-06-13 21:26:59 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/event/data/EventAnalyticsServiceTest.java 2015-06-18 14:35:18 +0000
@@ -312,7 +312,7 @@
assertNotNull( dim );
assertEquals( tea.getDimension(), dim.getDimension() );
- assertEquals( DimensionType.TRACKED_ENTITY_ATTRIBUTE, dim.getDimensionType() );
+ assertEquals( DimensionType.PROGRAM_ATTRIBUTE, dim.getDimensionType() );
assertEquals( AnalyticsType.EVENT, dim.getAnalyticsType() );
assertEquals( tead.getFilter(), dim.getFilter() );
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/adx/DefaultADXDataService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/adx/DefaultADXDataService.java 2015-06-18 13:24:57 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/adx/DefaultADXDataService.java 2015-06-18 14:35:18 +0000
@@ -32,27 +32,37 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
+
import org.apache.commons.io.IOUtils;
+
import java.util.logging.Level;
import java.util.logging.Logger;
+
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+
import org.w3c.dom.Document;
+
import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
import javax.xml.stream.XMLStreamException;
+
import org.amplecode.staxwax.factory.XMLFactory;
import org.hisp.dhis.dxf2.common.ImportOptions;
import org.hisp.dhis.dxf2.datavalueset.DataExportParams;
import org.hisp.dhis.dxf2.datavalueset.DataValueSetService;
import org.hisp.dhis.dxf2.importsummary.ImportSummaries;
import org.amplecode.staxwax.reader.XMLReader;
+
import javax.xml.stream.XMLStreamReader;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
+
import org.hisp.dhis.dxf2.importsummary.ImportStatus;
import org.hisp.dhis.dxf2.importsummary.ImportSummary;
import org.hisp.dhis.period.Period;
@@ -106,7 +116,7 @@
StreamResult result = new StreamResult(writer);
transformer.transform( source, result );
// create an inputstream for the String
- InputStream dxfIn = IOUtils.toInputStream(result.toString(), "UTF-8" );
+ InputStream dxfIn = IOUtils.toInputStream( result.toString(), StandardCharsets.UTF_8 );
// pass off to the dxf2 datavalueset service
importSummaries.addImportSummary( dataValueSetService.saveDataValueSet( dxfIn, importOptions ) );