← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 18628: metadata attributes for TE implemented

 

------------------------------------------------------------
revno: 18628
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2015-03-19 16:11:49 +0700
message:
  metadata attributes for TE implemented
added:
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/trackedentity/ShowAddUpdateTrackedEntityAction.java
modified:
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/resources/META-INF/dhis/beans.xml
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/webapp/dhis-web-maintenance-program/addTrackedEntity.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/webapp/dhis-web-maintenance-program/updateTrackedEntity.vm


--
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
=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/trackedentity/ShowAddUpdateTrackedEntityAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/trackedentity/ShowAddUpdateTrackedEntityAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/trackedentity/ShowAddUpdateTrackedEntityAction.java	2015-03-19 09:11:49 +0000
@@ -0,0 +1,111 @@
+package org.hisp.dhis.trackedentity.action.trackedentity;
+
+/*
+ * Copyright (c) 2004-2015, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import com.opensymphony.xwork2.Action;
+import org.hisp.dhis.attribute.Attribute;
+import org.hisp.dhis.attribute.AttributeService;
+import org.hisp.dhis.system.util.AttributeUtils;
+import org.hisp.dhis.trackedentity.TrackedEntity;
+import org.hisp.dhis.trackedentity.TrackedEntityService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+public class ShowAddUpdateTrackedEntityAction
+    implements Action
+{
+    // -------------------------------------------------------------------------
+    // Dependency
+    // -------------------------------------------------------------------------
+
+    @Autowired
+    private TrackedEntityService trackedEntityService;
+
+    @Autowired
+    private AttributeService attributeService;
+
+    // -------------------------------------------------------------------------
+    // Input/Output
+    // -------------------------------------------------------------------------
+
+    private Integer id;
+
+    public void setId( Integer id )
+    {
+        this.id = id;
+    }
+
+    private TrackedEntity trackedEntity;
+
+    public TrackedEntity getTrackedEntity()
+    {
+        return trackedEntity;
+    }
+
+    private List<Attribute> attributes;
+
+    public List<Attribute> getAttributes()
+    {
+        return attributes;
+    }
+
+    private Map<Integer, String> attributeValues = new HashMap<>();
+
+    public Map<Integer, String> getAttributeValues()
+    {
+        return attributeValues;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action implementation
+    // -------------------------------------------------------------------------
+
+    @Override
+    public String execute()
+        throws Exception
+    {
+        if ( id != null )
+        {
+            trackedEntity = trackedEntityService.getTrackedEntity( id );
+            attributeValues = AttributeUtils.getAttributeValueMap( trackedEntity.getAttributeValues() );
+        }
+
+        attributes = new ArrayList<>( attributeService.getTrackedEntityAttributes() );
+
+        return SUCCESS;
+    }
+
+}

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/resources/META-INF/dhis/beans.xml	2015-03-19 05:16:59 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/resources/META-INF/dhis/beans.xml	2015-03-19 09:11:49 +0000
@@ -1,1199 +1,1199 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans";
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd";>
-
-	<!-- RelationshipType -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.relationship.GetRelationshipTypeListAction"
-		class="org.hisp.dhis.trackedentity.action.relationship.GetRelationshipTypeListAction"
-		scope="prototype">
-		<property name="relationshipTypeService"
-			ref="org.hisp.dhis.relationship.RelationshipTypeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.relationship.GetRelationshipTypeAction"
-		class="org.hisp.dhis.trackedentity.action.relationship.GetRelationshipTypeAction"
-		scope="prototype">
-		<property name="relationshipTypeService"
-			ref="org.hisp.dhis.relationship.RelationshipTypeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.relationship.AddRelationshipTypeAction"
-		class="org.hisp.dhis.trackedentity.action.relationship.AddRelationshipTypeAction"
-		scope="prototype">
-		<property name="relationshipTypeService"
-			ref="org.hisp.dhis.relationship.RelationshipTypeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.relationship.RemoveRelationshipTypeAction"
-		class="org.hisp.dhis.trackedentity.action.relationship.RemoveRelationshipTypeAction"
-		scope="prototype">
-		<property name="relationshipTypeService"
-			ref="org.hisp.dhis.relationship.RelationshipTypeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.relationship.UpdateRelationshipTypeAction"
-		class="org.hisp.dhis.trackedentity.action.relationship.UpdateRelationshipTypeAction"
-		scope="prototype">
-		<property name="relationshipTypeService"
-			ref="org.hisp.dhis.relationship.RelationshipTypeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.relationship.ValidateRelationshipTypeAction"
-		class="org.hisp.dhis.trackedentity.action.relationship.ValidateRelationshipTypeAction"
-		scope="prototype">
-		<property name="relationshipTypeService"
-			ref="org.hisp.dhis.relationship.RelationshipTypeService" />
-	</bean>
-
-	<!-- TrackedEntityAttribute -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributeListAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributeListAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributeAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributeAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.AddAttributeAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.AddAttributeAction"
-		scope="prototype">
-		<property name="trackedEntityAttributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.RemoveAttributeAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.RemoveAttributeAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.UpdateAttributeAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.UpdateAttributeAction"
-		scope="prototype">
-		<property name="trackedEntityAttributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ValidateAttributeAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ValidateAttributeAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetOptionalAttributesWithoutGroupAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetOptionalAttributesWithoutGroupAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributesWithoutGroupAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributesWithoutGroupAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAddAttributeFormAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAddAttributeFormAction"
-		scope="prototype">
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowUpdateAttributeAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowUpdateAttributeAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAttributeVisitScheduleFormAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAttributeVisitScheduleFormAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.SaveAttributeVisitScheduleAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.SaveAttributeVisitScheduleAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAttributeInListNoProgramAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAttributeInListNoProgramAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattribute.SaveAttributeInListNoProgramAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattribute.SaveAttributeInListNoProgramAction"
-		scope="prototype">
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<!-- Program -->
-
-	<bean id="org.hisp.dhis.trackedentity.action.program.AddProgramAction"
-		class="org.hisp.dhis.trackedentity.action.program.AddProgramAction"
-		scope="prototype">
-	</bean>
-
-	<bean id="org.hisp.dhis.trackedentity.action.program.UpdateProgramAction"
-		class="org.hisp.dhis.trackedentity.action.program.UpdateProgramAction"
-		scope="prototype">
-	</bean>
-
-	<bean id="org.hisp.dhis.trackedentity.action.program.GetProgramListAction"
-		class="org.hisp.dhis.trackedentity.action.program.GetProgramListAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.program.GetUnAnonymousProgramAction"
-		class="org.hisp.dhis.trackedentity.action.program.GetUnAnonymousProgramAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.trackedentity.action.program.GetProgramAction"
-		class="org.hisp.dhis.trackedentity.action.program.GetProgramAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="selectionTreeManager"
-			ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean id="org.hisp.dhis.trackedentity.action.program.RemoveProgramAction"
-		class="org.hisp.dhis.trackedentity.action.program.RemoveProgramAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.program.ShowAddProgramFormAction"
-		class="org.hisp.dhis.trackedentity.action.program.ShowAddProgramFormAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="trackedEntityAttributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-		<property name="relationshipTypeService"
-			ref="org.hisp.dhis.relationship.RelationshipTypeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.program.ShowUpdateProgramFormAction"
-		class="org.hisp.dhis.trackedentity.action.program.ShowUpdateProgramFormAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="trackedEntityAttributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-		<property name="relationshipTypeService"
-			ref="org.hisp.dhis.relationship.RelationshipTypeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.program.ValidateProgramAction"
-		class="org.hisp.dhis.trackedentity.action.program.ValidateProgramAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.program.DefineProgramUserroleAction"
-		class="org.hisp.dhis.trackedentity.action.program.DefineProgramUserroleAction"
-		scope="prototype">
-		<property name="userService" ref="org.hisp.dhis.user.UserService" />
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-	</bean>
-
-	<!-- Program_OrganisationUnit Association -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.program.DefineProgramAssociationsAction"
-		class="org.hisp.dhis.trackedentity.action.program.DefineProgramAssociationsAction"
-		scope="prototype">
-		<property name="selectionTreeManager"
-			ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-	</bean>
-
-	<!-- ProgramStage -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.AddProgramStageAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.AddProgramStageAction"
-		scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="programStageDataElementService"
-			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageAction"
-		scope="prototype">
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.RemoveProgramStageAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.RemoveProgramStageAction"
-		scope="prototype">
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.UpdateProgramStageAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.UpdateProgramStageAction"
-		scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="programStageDataElementService"
-			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.ValidateProgramStageAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.ValidateProgramStageAction"
-		scope="prototype">
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.SortProgramStagesAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.SortProgramStagesAction"
-		scope="prototype">
-	</bean>
-	
-	<!-- Program Stage Section -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.AddProgramStageSectionAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.AddProgramStageSectionAction"
-		scope="prototype">
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-		<property name="programStageDataElementService"
-			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.UpdateProgramStageSectionAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.UpdateProgramStageSectionAction"
-		scope="prototype">
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-		<property name="programStageSectionService"
-			ref="org.hisp.dhis.program.ProgramStageSectionService" />
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="programStageDataElementService"
-			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.RemoveProgramStageSectionAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.RemoveProgramStageSectionAction"
-		scope="prototype">
-		<property name="programStageSectionService"
-			ref="org.hisp.dhis.program.ProgramStageSectionService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageSectionAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageSectionAction"
-		scope="prototype">
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="programStageSectionService"
-			ref="org.hisp.dhis.program.ProgramStageSectionService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.ShowAddProgramStageSectionAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.ShowAddProgramStageSectionAction"
-		scope="prototype">
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.ValidateProgramStageSectionAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.ValidateProgramStageSectionAction"
-		scope="prototype">
-		<property name="programStageSectionService"
-			ref="org.hisp.dhis.program.ProgramStageSectionService" />
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.SaveProgramStageSectionSortOrderAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.SaveProgramStageSectionSortOrderAction"
-		scope="prototype">
-		<property name="programStageSectionService"
-			ref="org.hisp.dhis.program.ProgramStageSectionService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageSectionListAction"
-		class="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageSectionListAction"
-		scope="prototype">
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-	</bean>
-
-	<!-- Data Entry Form -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.ShowDataEntryFormAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.ShowDataEntryFormAction"
-		scope="prototype">
-		<property name="dataEntryFormService">
-			<ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
-		</property>
-		<property name="programDataEntryService">
-			<ref bean="org.hisp.dhis.program.ProgramDataEntryService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.ViewDataEntryFormAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.ViewDataEntryFormAction"
-		scope="prototype">
-		<property name="dataEntryFormService">
-			<ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
-		</property>
-		<property name="programStageService">
-			<ref bean="org.hisp.dhis.program.ProgramStageService" />
-		</property>
-		<property name="programDataEntryService"
-			ref="org.hisp.dhis.program.ProgramDataEntryService" />
-		<property name="programStageDataElementService"
-			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
-		<property name="systemSettingManager">
-			<ref bean="org.hisp.dhis.setting.SystemSettingManager" />
-		</property>
-		<property name="userSettingService">
-			<ref bean="org.hisp.dhis.user.UserSettingService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.SaveDataEntryFormAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.SaveDataEntryFormAction"
-		scope="prototype">
-		<property name="dataEntryFormService">
-			<ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
-		</property>
-		<property name="programStageService">
-			<ref bean="org.hisp.dhis.program.ProgramStageService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.RemoveDataEntryFormAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.RemoveDataEntryFormAction"
-		scope="prototype">
-		<property name="dataEntryFormService">
-			<ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
-		</property>
-		<property name="programStageService">
-			<ref bean="org.hisp.dhis.program.ProgramStageService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.SelectProgramStageDataElementAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.SelectProgramStageDataElementAction"
-		scope="prototype">
-		<property name="programStageService">
-			<ref bean="org.hisp.dhis.program.ProgramStageService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.SelectDataElementAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.SelectDataElementAction"
-		scope="prototype">
-		<property name="programStageService">
-			<ref bean="org.hisp.dhis.program.ProgramStageService" />
-		</property>
-		<property name="programStageDataElementService"
-			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.GetSelectedDataElementsAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.GetSelectedDataElementsAction"
-		scope="prototype">
-		<property name="programStageService">
-			<ref bean="org.hisp.dhis.program.ProgramStageService" />
-		</property>
-		<property name="programStageDataElementService"
-			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.ValidateDataEntryFormAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.ValidateDataEntryFormAction"
-		scope="prototype">
-		<property name="dataEntryFormService">
-			<ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.SetAutoSaveDataEntrySettingAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.SetAutoSaveDataEntrySettingAction"
-		scope="prototype">
-		<property name="userSettingService" ref="org.hisp.dhis.user.UserSettingService" />
-	</bean>
-
-	<!-- TrackedEntityForm -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.GetTrackedEntityFormListAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.GetTrackedEntityFormListAction"
-		scope="prototype">
-		<property name="formService">
-			<ref bean="org.hisp.dhis.trackedentity.TrackedEntityFormService" />
-		</property>
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.RemoveTrackedEntityFormAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.RemoveTrackedEntityFormAction"
-		scope="prototype">
-		<property name="formService">
-			<ref bean="org.hisp.dhis.trackedentity.TrackedEntityFormService" />
-		</property>
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.SaveTrackedEntityFormAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.SaveTrackedEntityFormAction"
-		scope="prototype">
-		<property name="dataEntryFormService">
-			<ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
-		</property>
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-		<property name="formService">
-			<ref bean="org.hisp.dhis.trackedentity.TrackedEntityFormService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.ShowTrackedEntityFormAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.ShowTrackedEntityFormAction"
-		scope="prototype">
-		<property name="dataEntryFormService">
-			<ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.ViewTrackedEntityFormAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.ViewTrackedEntityFormAction"
-		scope="prototype">
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-		<property name="attributeService">
-			<ref bean="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-		</property>
-		<property name="formService">
-			<ref bean="org.hisp.dhis.trackedentity.TrackedEntityFormService" />
-		</property>
-		<property name="systemSettingManager">
-			<ref bean="org.hisp.dhis.setting.SystemSettingManager" />
-		</property>
-		<property name="userSettingService">
-			<ref bean="org.hisp.dhis.user.UserSettingService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.dataentryform.SetAutoSaveTrackedEntityFormSettingAction"
-		class="org.hisp.dhis.trackedentity.action.dataentryform.SetAutoSaveTrackedEntityFormSettingAction"
-		scope="prototype">
-		<property name="userSettingService" ref="org.hisp.dhis.user.UserSettingService" />
-	</bean>
-
-	<!-- Attribute Group -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.AddAttributeGroupAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.AddAttributeGroupAction"
-		scope="prototype">
-		<property name="attributeGroupService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.GetAttributeGroupAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.GetAttributeGroupAction"
-		scope="prototype">
-		<property name="attributeGroupService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.GetAttributeGroupListAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.GetAttributeGroupListAction"
-		scope="prototype">
-		<property name="attributeGroupService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.RemoveAttributeGroupAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.RemoveAttributeGroupAction"
-		scope="prototype">
-		<property name="attributeGroupService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.SaveAttributeGroupSortOrderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.SaveAttributeGroupSortOrderAction"
-		scope="prototype">
-		<property name="attributeGroupService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.UpdateAttributeGroupAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.UpdateAttributeGroupAction"
-		scope="prototype">
-		<property name="attributeGroupService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.ValidateAttributeGroupAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.ValidateAttributeGroupAction"
-		scope="prototype">
-		<property name="attributeGroupService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
-	</bean>
-
-	<!-- Case Aggregation Mapping -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.AddCaseAggregationConditionAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.AddCaseAggregationConditionAction"
-		scope="prototype">
-		<property name="aggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
-		<property name="dataElementService">
-			<ref bean="org.hisp.dhis.dataelement.DataElementService" />
-		</property>
-		<property name="dataElementCategoryService">
-			<ref bean="org.hisp.dhis.dataelement.DataElementCategoryService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.GetCaseAggregationConditionAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.GetCaseAggregationConditionAction"
-		scope="prototype">
-		<property name="aggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.GetAllCaseAggregationConditionAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.GetAllCaseAggregationConditionAction"
-		scope="prototype">
-		<property name="aggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
-		<property name="dataSetService">
-			<ref bean="org.hisp.dhis.dataset.DataSetService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.GetParamsByProgramAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.GetParamsByProgramAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="attributeService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.GetTrackedEntityDataElementsAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.GetTrackedEntityDataElementsAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="programStageDataElementService"
-			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.GetAggPSDataElementsAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.GetAggPSDataElementsAction"
-		scope="prototype">
-		<property name="programStageService">
-			<ref bean="org.hisp.dhis.program.ProgramStageService" />
-		</property>
-		<property name="programStageDataElementService"
-			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.RemoveCaseAggregationConditionAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.RemoveCaseAggregationConditionAction"
-		scope="prototype">
-		<property name="aggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.ShowAddCaseAggregationConditionFormAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.ShowAddCaseAggregationConditionFormAction"
-		scope="prototype">
-		<property name="dataSetService">
-			<ref bean="org.hisp.dhis.dataset.DataSetService" />
-		</property>
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-		<property name="attributeService">
-			<ref bean="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.ShowUpdateCaseAggregationConditionFormAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.ShowUpdateCaseAggregationConditionFormAction"
-		scope="prototype">
-		<property name="dataSetService">
-			<ref bean="org.hisp.dhis.dataset.DataSetService" />
-		</property>
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-		<property name="attributeService">
-			<ref bean="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
-		</property>
-		<property name="aggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.UpdateCaseAggregationConditionAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.UpdateCaseAggregationConditionAction"
-		scope="prototype">
-		<property name="aggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
-		<property name="dataElementService">
-			<ref bean="org.hisp.dhis.dataelement.DataElementService" />
-		</property>
-		<property name="dataElementCategoryService">
-			<ref bean="org.hisp.dhis.dataelement.DataElementCategoryService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.GetAggConditionDescriptionAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.GetAggConditionDescriptionAction"
-		scope="prototype">
-		<property name="aggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.ValidateCaseAggregationConditionAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.ValidateCaseAggregationConditionAction"
-		scope="prototype">
-		<property name="aggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
-		<property name="dataElementService">
-			<ref bean="org.hisp.dhis.dataelement.DataElementService" />
-		</property>
-		<property name="dataElementCategoryService">
-			<ref bean="org.hisp.dhis.dataelement.DataElementCategoryService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.TestCaseAggregationConditionAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.TestCaseAggregationConditionAction"
-		scope="prototype">
-		<property name="caseAggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.GetDataElementsByDataSetAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.GetDataElementsByDataSetAction"
-		scope="prototype">
-		<property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
-		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
-	</bean>
-	
-	<bean
-		id="org.hisp.dhis.trackedentity.action.caseaggregation.GetOptionsAction"
-		class="org.hisp.dhis.trackedentity.action.caseaggregation.GetOptionsAction"
-		scope="prototype">
-	</bean>
-
-	<!-- Validation - ValidationCriteria -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.AddValidationCriteriaAction"
-		class="org.hisp.dhis.trackedentity.action.validation.AddValidationCriteriaAction"
-		scope="prototype">
-		<property name="validationCriteriaService">
-			<ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
-		</property>
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.GetValidationCriteriaAction"
-		class="org.hisp.dhis.trackedentity.action.validation.GetValidationCriteriaAction"
-		scope="prototype">
-		<property name="validationCriteriaService">
-			<ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
-		</property>
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.GetValidationCriteriaListAction"
-		class="org.hisp.dhis.trackedentity.action.validation.GetValidationCriteriaListAction"
-		scope="prototype">
-		<property name="validationCriteriaService">
-			<ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.RemoveValidationCriteriaAction"
-		class="org.hisp.dhis.trackedentity.action.validation.RemoveValidationCriteriaAction"
-		scope="prototype">
-		<property name="validationCriteriaService">
-			<ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.UpdateValidationCriteriaAction"
-		class="org.hisp.dhis.trackedentity.action.validation.UpdateValidationCriteriaAction"
-		scope="prototype">
-		<property name="validationCriteriaService">
-			<ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.ValidateValidationCriteriaAction"
-		class="org.hisp.dhis.trackedentity.action.validation.ValidateValidationCriteriaAction"
-		scope="prototype">
-		<property name="validationCriteriaService">
-			<ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
-		</property>
-	</bean>
-
-	<!-- Program Validation -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.AddProgramValidationAction"
-		class="org.hisp.dhis.trackedentity.action.validation.AddProgramValidationAction"
-		scope="prototype">
-		<property name="programValidationService">
-			<ref bean="org.hisp.dhis.program.ProgramValidationService" />
-		</property>
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.GetProgramValidationAction"
-		class="org.hisp.dhis.trackedentity.action.validation.GetProgramValidationAction"
-		scope="prototype">
-		<property name="programValidationService">
-			<ref bean="org.hisp.dhis.program.ProgramValidationService" />
-		</property>
-		<property name="programExpressionService">
-			<ref bean="org.hisp.dhis.program.ProgramExpressionService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.GetProgramValidationListAction"
-		class="org.hisp.dhis.trackedentity.action.validation.GetProgramValidationListAction"
-		scope="prototype">
-		<property name="programValidationService">
-			<ref bean="org.hisp.dhis.program.ProgramValidationService" />
-		</property>
-		<property name="programService">
-			<ref bean="org.hisp.dhis.program.ProgramService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.RemoveProgramValidationAction"
-		class="org.hisp.dhis.trackedentity.action.validation.RemoveProgramValidationAction"
-		scope="prototype">
-		<property name="programValidationService">
-			<ref bean="org.hisp.dhis.program.ProgramValidationService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.UpdateProgramValidationAction"
-		class="org.hisp.dhis.trackedentity.action.validation.UpdateProgramValidationAction"
-		scope="prototype">
-		<property name="programValidationService">
-			<ref bean="org.hisp.dhis.program.ProgramValidationService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.validation.GetProgramExpressionDescriptionAction"
-		class="org.hisp.dhis.trackedentity.action.validation.GetProgramExpressionDescriptionAction"
-		scope="prototype">
-		<property name="programExpressionService"
-			ref="org.hisp.dhis.program.ProgramExpressionService" />
-	</bean>
-
-
-	<!-- Scheduling -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.schedule.GetScheduleParamsAction"
-		class="org.hisp.dhis.trackedentity.action.schedule.GetScheduleParamsAction"
-		scope="prototype">
-		<property name="systemSettingManager" ref="org.hisp.dhis.setting.SystemSettingManager" />
-		<property name="schedulingManager"
-			ref="org.hisp.dhis.scheduling.ProgramSchedulingManager" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.schedule.ScheduleSendMessageTasksAction"
-		class="org.hisp.dhis.trackedentity.action.schedule.ScheduleSendMessageTasksAction"
-		scope="prototype">
-		<property name="systemSettingManager" ref="org.hisp.dhis.setting.SystemSettingManager" />
-		<property name="schedulingManager"
-			ref="org.hisp.dhis.scheduling.ProgramSchedulingManager" />
-		<property name="notifier" ref="notifier" />
-		<property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
-		<property name="sendMessageScheduled" ref="sendMessageScheduled" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.schedule.GetScheduleAggQueryBuilderParamsAction"
-		class="org.hisp.dhis.trackedentity.action.schedule.GetScheduleAggQueryBuilderParamsAction"
-		scope="prototype">
-		<property name="schedulingManager"
-			ref="org.hisp.dhis.scheduling.CaseAggregateConditionSchedulingManager" />
-		<property name="systemSettingManager">
-			<ref bean="org.hisp.dhis.setting.SystemSettingManager" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.schedule.ScheduleCaseAggregateConditionAction"
-		class="org.hisp.dhis.trackedentity.action.schedule.ScheduleCaseAggregateConditionAction"
-		scope="prototype">
-		<property name="schedulingManager"
-			ref="org.hisp.dhis.scheduling.CaseAggregateConditionSchedulingManager" />
-		<property name="systemSettingManager">
-			<ref bean="org.hisp.dhis.setting.SystemSettingManager" />
-		</property>
-		<property name="currentUserService">
-			<ref bean="org.hisp.dhis.user.CurrentUserService" />
-		</property>
-		<property name="notifier" ref="notifier" />
-		<property name="aggregateConditionTask" ref="aggregateQueryBuilder" />
-	</bean>
-
-	<!-- Program Indicator -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programindicator.AddProgramIndicatorAction"
-		class="org.hisp.dhis.trackedentity.action.programindicator.AddProgramIndicatorAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="programIndicatorService">
-			<ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programindicator.RemoveProgramIndicatorAction"
-		class="org.hisp.dhis.trackedentity.action.programindicator.RemoveProgramIndicatorAction"
-		scope="prototype">
-		<property name="programIndicatorService">
-			<ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorAction"
-		class="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorAction"
-		scope="prototype">
-		<property name="programIndicatorService"
-			ref="org.hisp.dhis.program.ProgramIndicatorService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorListAction"
-		class="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorListAction"
-		scope="prototype">
-		<property name="programIndicatorService"
-			ref="org.hisp.dhis.program.ProgramIndicatorService" />
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programindicator.UpdateProgramIndicatorAction"
-		class="org.hisp.dhis.trackedentity.action.programindicator.UpdateProgramIndicatorAction"
-		scope="prototype">
-		<property name="programIndicatorService">
-			<ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programindicator.ValidateProgramIndicatorAction"
-		class="org.hisp.dhis.trackedentity.action.programindicator.ValidateProgramIndicatorAction"
-		scope="prototype">
-		<property name="programIndicatorService">
-			<ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
-		</property>
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorDescriptionAction"
-		class="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorDescriptionAction"
-		scope="prototype">
-		<property name="programIndicatorService">
-			<ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
-		</property>
-	</bean>
-
-	<!-- Program reminder -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.AddProgramReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.AddProgramReminderAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.UpdateProgramReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.UpdateProgramReminderAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="reminderService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.RemoveProgramReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.RemoveProgramReminderAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="reminderService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.GetInstanceReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.GetInstanceReminderAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="reminderService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ValidateProgramReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ValidateProgramReminderAction"
-		scope="prototype">
-		<property name="reminderService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ShowAddProgramReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ShowAddProgramReminderAction"
-		scope="prototype">
-		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-	</bean>
-
-	<!-- ProgramStage reminder -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.AddProgramStageReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.AddProgramStageReminderAction"
-		scope="prototype">
-		<property name="programStageService"
-			ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.UpdateProgramStageReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.UpdateProgramStageReminderAction"
-		scope="prototype">
-		<property name="programStageService"
-			ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="reminderService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.RemoveProgramStageReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.RemoveProgramStageReminderAction"
-		scope="prototype">
-		<property name="programStageService"
-			ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="reminderService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.GetProgramStageReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.GetProgramStageReminderAction"
-		scope="prototype">
-		<property name="programStageService"
-			ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="reminderService"
-			ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ShowAddProgramStageReminderAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ShowAddProgramStageReminderAction"
-		scope="prototype">
-		<property name="programStageService"
-			ref="org.hisp.dhis.program.ProgramStageService" />
-		<property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
-	</bean>
-
-	<!-- TrackedEntity -->
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentity.AddTrackedEntityAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentity.AddTrackedEntityAction"
-		scope="prototype">
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentity.GetTrackedEntityAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentity.GetTrackedEntityAction"
-		scope="prototype">
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentity.GetTrackedEntityListAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentity.GetTrackedEntityListAction"
-		scope="prototype">
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentity.RemoveTrackedEntityAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentity.RemoveTrackedEntityAction"
-		scope="prototype">
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentity.UpdateTrackedEntityAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentity.UpdateTrackedEntityAction"
-		scope="prototype">
-	</bean>
-
-	<bean
-		id="org.hisp.dhis.trackedentity.action.trackedentity.ValidateTrackedEntityAction"
-		class="org.hisp.dhis.trackedentity.action.trackedentity.ValidateTrackedEntityAction"
-		scope="prototype">
-	</bean>
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd";>
+
+  <!-- RelationshipType -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.relationship.GetRelationshipTypeListAction"
+    class="org.hisp.dhis.trackedentity.action.relationship.GetRelationshipTypeListAction"
+    scope="prototype">
+    <property name="relationshipTypeService"
+      ref="org.hisp.dhis.relationship.RelationshipTypeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.relationship.GetRelationshipTypeAction"
+    class="org.hisp.dhis.trackedentity.action.relationship.GetRelationshipTypeAction"
+    scope="prototype">
+    <property name="relationshipTypeService"
+      ref="org.hisp.dhis.relationship.RelationshipTypeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.relationship.AddRelationshipTypeAction"
+    class="org.hisp.dhis.trackedentity.action.relationship.AddRelationshipTypeAction"
+    scope="prototype">
+    <property name="relationshipTypeService"
+      ref="org.hisp.dhis.relationship.RelationshipTypeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.relationship.RemoveRelationshipTypeAction"
+    class="org.hisp.dhis.trackedentity.action.relationship.RemoveRelationshipTypeAction"
+    scope="prototype">
+    <property name="relationshipTypeService"
+      ref="org.hisp.dhis.relationship.RelationshipTypeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.relationship.UpdateRelationshipTypeAction"
+    class="org.hisp.dhis.trackedentity.action.relationship.UpdateRelationshipTypeAction"
+    scope="prototype">
+    <property name="relationshipTypeService"
+      ref="org.hisp.dhis.relationship.RelationshipTypeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.relationship.ValidateRelationshipTypeAction"
+    class="org.hisp.dhis.trackedentity.action.relationship.ValidateRelationshipTypeAction"
+    scope="prototype">
+    <property name="relationshipTypeService"
+      ref="org.hisp.dhis.relationship.RelationshipTypeService" />
+  </bean>
+
+  <!-- TrackedEntityAttribute -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributeListAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributeListAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributeAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributeAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.AddAttributeAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.AddAttributeAction"
+    scope="prototype">
+    <property name="trackedEntityAttributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.RemoveAttributeAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.RemoveAttributeAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.UpdateAttributeAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.UpdateAttributeAction"
+    scope="prototype">
+    <property name="trackedEntityAttributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ValidateAttributeAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ValidateAttributeAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetOptionalAttributesWithoutGroupAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetOptionalAttributesWithoutGroupAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributesWithoutGroupAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.GetAttributesWithoutGroupAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAddAttributeFormAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAddAttributeFormAction"
+    scope="prototype">
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowUpdateAttributeAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowUpdateAttributeAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAttributeVisitScheduleFormAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAttributeVisitScheduleFormAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.SaveAttributeVisitScheduleAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.SaveAttributeVisitScheduleAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAttributeInListNoProgramAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.ShowAttributeInListNoProgramAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattribute.SaveAttributeInListNoProgramAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattribute.SaveAttributeInListNoProgramAction"
+    scope="prototype">
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <!-- Program -->
+
+  <bean id="org.hisp.dhis.trackedentity.action.program.AddProgramAction"
+    class="org.hisp.dhis.trackedentity.action.program.AddProgramAction"
+    scope="prototype">
+  </bean>
+
+  <bean id="org.hisp.dhis.trackedentity.action.program.UpdateProgramAction"
+    class="org.hisp.dhis.trackedentity.action.program.UpdateProgramAction"
+    scope="prototype">
+  </bean>
+
+  <bean id="org.hisp.dhis.trackedentity.action.program.GetProgramListAction"
+    class="org.hisp.dhis.trackedentity.action.program.GetProgramListAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.program.GetUnAnonymousProgramAction"
+    class="org.hisp.dhis.trackedentity.action.program.GetUnAnonymousProgramAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.trackedentity.action.program.GetProgramAction"
+    class="org.hisp.dhis.trackedentity.action.program.GetProgramAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="selectionTreeManager"
+      ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean id="org.hisp.dhis.trackedentity.action.program.RemoveProgramAction"
+    class="org.hisp.dhis.trackedentity.action.program.RemoveProgramAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.program.ShowAddProgramFormAction"
+    class="org.hisp.dhis.trackedentity.action.program.ShowAddProgramFormAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="trackedEntityAttributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+    <property name="relationshipTypeService"
+      ref="org.hisp.dhis.relationship.RelationshipTypeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.program.ShowUpdateProgramFormAction"
+    class="org.hisp.dhis.trackedentity.action.program.ShowUpdateProgramFormAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="trackedEntityAttributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+    <property name="relationshipTypeService"
+      ref="org.hisp.dhis.relationship.RelationshipTypeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.program.ValidateProgramAction"
+    class="org.hisp.dhis.trackedentity.action.program.ValidateProgramAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.program.DefineProgramUserroleAction"
+    class="org.hisp.dhis.trackedentity.action.program.DefineProgramUserroleAction"
+    scope="prototype">
+    <property name="userService" ref="org.hisp.dhis.user.UserService" />
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+  </bean>
+
+  <!-- Program_OrganisationUnit Association -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.program.DefineProgramAssociationsAction"
+    class="org.hisp.dhis.trackedentity.action.program.DefineProgramAssociationsAction"
+    scope="prototype">
+    <property name="selectionTreeManager"
+      ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+  </bean>
+
+  <!-- ProgramStage -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.AddProgramStageAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.AddProgramStageAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="programStageDataElementService"
+      ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageAction"
+    scope="prototype">
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.RemoveProgramStageAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.RemoveProgramStageAction"
+    scope="prototype">
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.UpdateProgramStageAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.UpdateProgramStageAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="programStageDataElementService"
+      ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+    <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.ValidateProgramStageAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.ValidateProgramStageAction"
+    scope="prototype">
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.SortProgramStagesAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.SortProgramStagesAction"
+    scope="prototype">
+  </bean>
+
+  <!-- Program Stage Section -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.AddProgramStageSectionAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.AddProgramStageSectionAction"
+    scope="prototype">
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+    <property name="programStageDataElementService"
+      ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.UpdateProgramStageSectionAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.UpdateProgramStageSectionAction"
+    scope="prototype">
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+    <property name="programStageSectionService"
+      ref="org.hisp.dhis.program.ProgramStageSectionService" />
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="programStageDataElementService"
+      ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.RemoveProgramStageSectionAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.RemoveProgramStageSectionAction"
+    scope="prototype">
+    <property name="programStageSectionService"
+      ref="org.hisp.dhis.program.ProgramStageSectionService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageSectionAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageSectionAction"
+    scope="prototype">
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="programStageSectionService"
+      ref="org.hisp.dhis.program.ProgramStageSectionService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.ShowAddProgramStageSectionAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.ShowAddProgramStageSectionAction"
+    scope="prototype">
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.ValidateProgramStageSectionAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.ValidateProgramStageSectionAction"
+    scope="prototype">
+    <property name="programStageSectionService"
+      ref="org.hisp.dhis.program.ProgramStageSectionService" />
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.SaveProgramStageSectionSortOrderAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.SaveProgramStageSectionSortOrderAction"
+    scope="prototype">
+    <property name="programStageSectionService"
+      ref="org.hisp.dhis.program.ProgramStageSectionService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageSectionListAction"
+    class="org.hisp.dhis.trackedentity.action.programstage.GetProgramStageSectionListAction"
+    scope="prototype">
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+  </bean>
+
+  <!-- Data Entry Form -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.ShowDataEntryFormAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.ShowDataEntryFormAction"
+    scope="prototype">
+    <property name="dataEntryFormService">
+      <ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
+    </property>
+    <property name="programDataEntryService">
+      <ref bean="org.hisp.dhis.program.ProgramDataEntryService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.ViewDataEntryFormAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.ViewDataEntryFormAction"
+    scope="prototype">
+    <property name="dataEntryFormService">
+      <ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
+    </property>
+    <property name="programStageService">
+      <ref bean="org.hisp.dhis.program.ProgramStageService" />
+    </property>
+    <property name="programDataEntryService"
+      ref="org.hisp.dhis.program.ProgramDataEntryService" />
+    <property name="programStageDataElementService"
+      ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+    <property name="systemSettingManager">
+      <ref bean="org.hisp.dhis.setting.SystemSettingManager" />
+    </property>
+    <property name="userSettingService">
+      <ref bean="org.hisp.dhis.user.UserSettingService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.SaveDataEntryFormAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.SaveDataEntryFormAction"
+    scope="prototype">
+    <property name="dataEntryFormService">
+      <ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
+    </property>
+    <property name="programStageService">
+      <ref bean="org.hisp.dhis.program.ProgramStageService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.RemoveDataEntryFormAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.RemoveDataEntryFormAction"
+    scope="prototype">
+    <property name="dataEntryFormService">
+      <ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
+    </property>
+    <property name="programStageService">
+      <ref bean="org.hisp.dhis.program.ProgramStageService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.SelectProgramStageDataElementAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.SelectProgramStageDataElementAction"
+    scope="prototype">
+    <property name="programStageService">
+      <ref bean="org.hisp.dhis.program.ProgramStageService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.SelectDataElementAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.SelectDataElementAction"
+    scope="prototype">
+    <property name="programStageService">
+      <ref bean="org.hisp.dhis.program.ProgramStageService" />
+    </property>
+    <property name="programStageDataElementService"
+      ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.GetSelectedDataElementsAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.GetSelectedDataElementsAction"
+    scope="prototype">
+    <property name="programStageService">
+      <ref bean="org.hisp.dhis.program.ProgramStageService" />
+    </property>
+    <property name="programStageDataElementService"
+      ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.ValidateDataEntryFormAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.ValidateDataEntryFormAction"
+    scope="prototype">
+    <property name="dataEntryFormService">
+      <ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.SetAutoSaveDataEntrySettingAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.SetAutoSaveDataEntrySettingAction"
+    scope="prototype">
+    <property name="userSettingService" ref="org.hisp.dhis.user.UserSettingService" />
+  </bean>
+
+  <!-- TrackedEntityForm -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.GetTrackedEntityFormListAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.GetTrackedEntityFormListAction"
+    scope="prototype">
+    <property name="formService">
+      <ref bean="org.hisp.dhis.trackedentity.TrackedEntityFormService" />
+    </property>
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.RemoveTrackedEntityFormAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.RemoveTrackedEntityFormAction"
+    scope="prototype">
+    <property name="formService">
+      <ref bean="org.hisp.dhis.trackedentity.TrackedEntityFormService" />
+    </property>
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.SaveTrackedEntityFormAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.SaveTrackedEntityFormAction"
+    scope="prototype">
+    <property name="dataEntryFormService">
+      <ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
+    </property>
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+    <property name="formService">
+      <ref bean="org.hisp.dhis.trackedentity.TrackedEntityFormService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.ShowTrackedEntityFormAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.ShowTrackedEntityFormAction"
+    scope="prototype">
+    <property name="dataEntryFormService">
+      <ref bean="org.hisp.dhis.dataentryform.DataEntryFormService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.ViewTrackedEntityFormAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.ViewTrackedEntityFormAction"
+    scope="prototype">
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+    <property name="attributeService">
+      <ref bean="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+    </property>
+    <property name="formService">
+      <ref bean="org.hisp.dhis.trackedentity.TrackedEntityFormService" />
+    </property>
+    <property name="systemSettingManager">
+      <ref bean="org.hisp.dhis.setting.SystemSettingManager" />
+    </property>
+    <property name="userSettingService">
+      <ref bean="org.hisp.dhis.user.UserSettingService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.dataentryform.SetAutoSaveTrackedEntityFormSettingAction"
+    class="org.hisp.dhis.trackedentity.action.dataentryform.SetAutoSaveTrackedEntityFormSettingAction"
+    scope="prototype">
+    <property name="userSettingService" ref="org.hisp.dhis.user.UserSettingService" />
+  </bean>
+
+  <!-- Attribute Group -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.AddAttributeGroupAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.AddAttributeGroupAction"
+    scope="prototype">
+    <property name="attributeGroupService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.GetAttributeGroupAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.GetAttributeGroupAction"
+    scope="prototype">
+    <property name="attributeGroupService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.GetAttributeGroupListAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.GetAttributeGroupListAction"
+    scope="prototype">
+    <property name="attributeGroupService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.RemoveAttributeGroupAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.RemoveAttributeGroupAction"
+    scope="prototype">
+    <property name="attributeGroupService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.SaveAttributeGroupSortOrderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.SaveAttributeGroupSortOrderAction"
+    scope="prototype">
+    <property name="attributeGroupService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.UpdateAttributeGroupAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.UpdateAttributeGroupAction"
+    scope="prototype">
+    <property name="attributeGroupService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.ValidateAttributeGroupAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityattributegroup.ValidateAttributeGroupAction"
+    scope="prototype">
+    <property name="attributeGroupService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeGroupService" />
+  </bean>
+
+  <!-- Case Aggregation Mapping -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.AddCaseAggregationConditionAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.AddCaseAggregationConditionAction"
+    scope="prototype">
+    <property name="aggregationConditionService">
+      <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+    </property>
+    <property name="dataElementService">
+      <ref bean="org.hisp.dhis.dataelement.DataElementService" />
+    </property>
+    <property name="dataElementCategoryService">
+      <ref bean="org.hisp.dhis.dataelement.DataElementCategoryService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.GetCaseAggregationConditionAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.GetCaseAggregationConditionAction"
+    scope="prototype">
+    <property name="aggregationConditionService">
+      <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.GetAllCaseAggregationConditionAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.GetAllCaseAggregationConditionAction"
+    scope="prototype">
+    <property name="aggregationConditionService">
+      <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+    </property>
+    <property name="dataSetService">
+      <ref bean="org.hisp.dhis.dataset.DataSetService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.GetParamsByProgramAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.GetParamsByProgramAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="attributeService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.GetTrackedEntityDataElementsAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.GetTrackedEntityDataElementsAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="programStageDataElementService"
+      ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.GetAggPSDataElementsAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.GetAggPSDataElementsAction"
+    scope="prototype">
+    <property name="programStageService">
+      <ref bean="org.hisp.dhis.program.ProgramStageService" />
+    </property>
+    <property name="programStageDataElementService"
+      ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.RemoveCaseAggregationConditionAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.RemoveCaseAggregationConditionAction"
+    scope="prototype">
+    <property name="aggregationConditionService">
+      <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.ShowAddCaseAggregationConditionFormAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.ShowAddCaseAggregationConditionFormAction"
+    scope="prototype">
+    <property name="dataSetService">
+      <ref bean="org.hisp.dhis.dataset.DataSetService" />
+    </property>
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+    <property name="attributeService">
+      <ref bean="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.ShowUpdateCaseAggregationConditionFormAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.ShowUpdateCaseAggregationConditionFormAction"
+    scope="prototype">
+    <property name="dataSetService">
+      <ref bean="org.hisp.dhis.dataset.DataSetService" />
+    </property>
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+    <property name="attributeService">
+      <ref bean="org.hisp.dhis.trackedentity.TrackedEntityAttributeService" />
+    </property>
+    <property name="aggregationConditionService">
+      <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.UpdateCaseAggregationConditionAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.UpdateCaseAggregationConditionAction"
+    scope="prototype">
+    <property name="aggregationConditionService">
+      <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+    </property>
+    <property name="dataElementService">
+      <ref bean="org.hisp.dhis.dataelement.DataElementService" />
+    </property>
+    <property name="dataElementCategoryService">
+      <ref bean="org.hisp.dhis.dataelement.DataElementCategoryService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.GetAggConditionDescriptionAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.GetAggConditionDescriptionAction"
+    scope="prototype">
+    <property name="aggregationConditionService">
+      <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.ValidateCaseAggregationConditionAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.ValidateCaseAggregationConditionAction"
+    scope="prototype">
+    <property name="aggregationConditionService">
+      <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+    </property>
+    <property name="dataElementService">
+      <ref bean="org.hisp.dhis.dataelement.DataElementService" />
+    </property>
+    <property name="dataElementCategoryService">
+      <ref bean="org.hisp.dhis.dataelement.DataElementCategoryService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.TestCaseAggregationConditionAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.TestCaseAggregationConditionAction"
+    scope="prototype">
+    <property name="caseAggregationConditionService">
+      <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.GetDataElementsByDataSetAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.GetDataElementsByDataSetAction"
+    scope="prototype">
+    <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+    <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.caseaggregation.GetOptionsAction"
+    class="org.hisp.dhis.trackedentity.action.caseaggregation.GetOptionsAction"
+    scope="prototype">
+  </bean>
+
+  <!-- Validation - ValidationCriteria -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.AddValidationCriteriaAction"
+    class="org.hisp.dhis.trackedentity.action.validation.AddValidationCriteriaAction"
+    scope="prototype">
+    <property name="validationCriteriaService">
+      <ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
+    </property>
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.GetValidationCriteriaAction"
+    class="org.hisp.dhis.trackedentity.action.validation.GetValidationCriteriaAction"
+    scope="prototype">
+    <property name="validationCriteriaService">
+      <ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
+    </property>
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.GetValidationCriteriaListAction"
+    class="org.hisp.dhis.trackedentity.action.validation.GetValidationCriteriaListAction"
+    scope="prototype">
+    <property name="validationCriteriaService">
+      <ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.RemoveValidationCriteriaAction"
+    class="org.hisp.dhis.trackedentity.action.validation.RemoveValidationCriteriaAction"
+    scope="prototype">
+    <property name="validationCriteriaService">
+      <ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.UpdateValidationCriteriaAction"
+    class="org.hisp.dhis.trackedentity.action.validation.UpdateValidationCriteriaAction"
+    scope="prototype">
+    <property name="validationCriteriaService">
+      <ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.ValidateValidationCriteriaAction"
+    class="org.hisp.dhis.trackedentity.action.validation.ValidateValidationCriteriaAction"
+    scope="prototype">
+    <property name="validationCriteriaService">
+      <ref bean="org.hisp.dhis.validation.ValidationCriteriaService" />
+    </property>
+  </bean>
+
+  <!-- Program Validation -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.AddProgramValidationAction"
+    class="org.hisp.dhis.trackedentity.action.validation.AddProgramValidationAction"
+    scope="prototype">
+    <property name="programValidationService">
+      <ref bean="org.hisp.dhis.program.ProgramValidationService" />
+    </property>
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.GetProgramValidationAction"
+    class="org.hisp.dhis.trackedentity.action.validation.GetProgramValidationAction"
+    scope="prototype">
+    <property name="programValidationService">
+      <ref bean="org.hisp.dhis.program.ProgramValidationService" />
+    </property>
+    <property name="programExpressionService">
+      <ref bean="org.hisp.dhis.program.ProgramExpressionService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.GetProgramValidationListAction"
+    class="org.hisp.dhis.trackedentity.action.validation.GetProgramValidationListAction"
+    scope="prototype">
+    <property name="programValidationService">
+      <ref bean="org.hisp.dhis.program.ProgramValidationService" />
+    </property>
+    <property name="programService">
+      <ref bean="org.hisp.dhis.program.ProgramService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.RemoveProgramValidationAction"
+    class="org.hisp.dhis.trackedentity.action.validation.RemoveProgramValidationAction"
+    scope="prototype">
+    <property name="programValidationService">
+      <ref bean="org.hisp.dhis.program.ProgramValidationService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.UpdateProgramValidationAction"
+    class="org.hisp.dhis.trackedentity.action.validation.UpdateProgramValidationAction"
+    scope="prototype">
+    <property name="programValidationService">
+      <ref bean="org.hisp.dhis.program.ProgramValidationService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.validation.GetProgramExpressionDescriptionAction"
+    class="org.hisp.dhis.trackedentity.action.validation.GetProgramExpressionDescriptionAction"
+    scope="prototype">
+    <property name="programExpressionService"
+      ref="org.hisp.dhis.program.ProgramExpressionService" />
+  </bean>
+
+
+  <!-- Scheduling -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.schedule.GetScheduleParamsAction"
+    class="org.hisp.dhis.trackedentity.action.schedule.GetScheduleParamsAction"
+    scope="prototype">
+    <property name="systemSettingManager" ref="org.hisp.dhis.setting.SystemSettingManager" />
+    <property name="schedulingManager"
+      ref="org.hisp.dhis.scheduling.ProgramSchedulingManager" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.schedule.ScheduleSendMessageTasksAction"
+    class="org.hisp.dhis.trackedentity.action.schedule.ScheduleSendMessageTasksAction"
+    scope="prototype">
+    <property name="systemSettingManager" ref="org.hisp.dhis.setting.SystemSettingManager" />
+    <property name="schedulingManager"
+      ref="org.hisp.dhis.scheduling.ProgramSchedulingManager" />
+    <property name="notifier" ref="notifier" />
+    <property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
+    <property name="sendMessageScheduled" ref="sendMessageScheduled" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.schedule.GetScheduleAggQueryBuilderParamsAction"
+    class="org.hisp.dhis.trackedentity.action.schedule.GetScheduleAggQueryBuilderParamsAction"
+    scope="prototype">
+    <property name="schedulingManager"
+      ref="org.hisp.dhis.scheduling.CaseAggregateConditionSchedulingManager" />
+    <property name="systemSettingManager">
+      <ref bean="org.hisp.dhis.setting.SystemSettingManager" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.schedule.ScheduleCaseAggregateConditionAction"
+    class="org.hisp.dhis.trackedentity.action.schedule.ScheduleCaseAggregateConditionAction"
+    scope="prototype">
+    <property name="schedulingManager"
+      ref="org.hisp.dhis.scheduling.CaseAggregateConditionSchedulingManager" />
+    <property name="systemSettingManager">
+      <ref bean="org.hisp.dhis.setting.SystemSettingManager" />
+    </property>
+    <property name="currentUserService">
+      <ref bean="org.hisp.dhis.user.CurrentUserService" />
+    </property>
+    <property name="notifier" ref="notifier" />
+    <property name="aggregateConditionTask" ref="aggregateQueryBuilder" />
+  </bean>
+
+  <!-- Program Indicator -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programindicator.AddProgramIndicatorAction"
+    class="org.hisp.dhis.trackedentity.action.programindicator.AddProgramIndicatorAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="programIndicatorService">
+      <ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programindicator.RemoveProgramIndicatorAction"
+    class="org.hisp.dhis.trackedentity.action.programindicator.RemoveProgramIndicatorAction"
+    scope="prototype">
+    <property name="programIndicatorService">
+      <ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorAction"
+    class="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorAction"
+    scope="prototype">
+    <property name="programIndicatorService"
+      ref="org.hisp.dhis.program.ProgramIndicatorService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorListAction"
+    class="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorListAction"
+    scope="prototype">
+    <property name="programIndicatorService"
+      ref="org.hisp.dhis.program.ProgramIndicatorService" />
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programindicator.UpdateProgramIndicatorAction"
+    class="org.hisp.dhis.trackedentity.action.programindicator.UpdateProgramIndicatorAction"
+    scope="prototype">
+    <property name="programIndicatorService">
+      <ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programindicator.ValidateProgramIndicatorAction"
+    class="org.hisp.dhis.trackedentity.action.programindicator.ValidateProgramIndicatorAction"
+    scope="prototype">
+    <property name="programIndicatorService">
+      <ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
+    </property>
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorDescriptionAction"
+    class="org.hisp.dhis.trackedentity.action.programindicator.GetProgramIndicatorDescriptionAction"
+    scope="prototype">
+    <property name="programIndicatorService">
+      <ref bean="org.hisp.dhis.program.ProgramIndicatorService" />
+    </property>
+  </bean>
+
+  <!-- Program reminder -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.AddProgramReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.AddProgramReminderAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.UpdateProgramReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.UpdateProgramReminderAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="reminderService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.RemoveProgramReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.RemoveProgramReminderAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="reminderService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.GetInstanceReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.GetInstanceReminderAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="reminderService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ValidateProgramReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ValidateProgramReminderAction"
+    scope="prototype">
+    <property name="reminderService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ShowAddProgramReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ShowAddProgramReminderAction"
+    scope="prototype">
+    <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+  </bean>
+
+  <!-- ProgramStage reminder -->
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.AddProgramStageReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.AddProgramStageReminderAction"
+    scope="prototype">
+    <property name="programStageService"
+      ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.UpdateProgramStageReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.UpdateProgramStageReminderAction"
+    scope="prototype">
+    <property name="programStageService"
+      ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="reminderService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.RemoveProgramStageReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.RemoveProgramStageReminderAction"
+    scope="prototype">
+    <property name="programStageService"
+      ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="reminderService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.GetProgramStageReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.GetProgramStageReminderAction"
+    scope="prototype">
+    <property name="programStageService"
+      ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="reminderService"
+      ref="org.hisp.dhis.trackedentity.TrackedEntityInstanceReminderService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ShowAddProgramStageReminderAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentityinstancereminder.ShowAddProgramStageReminderAction"
+    scope="prototype">
+    <property name="programStageService"
+      ref="org.hisp.dhis.program.ProgramStageService" />
+    <property name="userGroupService" ref="org.hisp.dhis.user.UserGroupService" />
+  </bean>
+
+  <!-- TrackedEntity -->
+
+  <bean id="org.hisp.dhis.trackedentity.action.trackedentity.ShowAddUpdateTrackedEntityAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentity.ShowAddUpdateTrackedEntityAction" scope="prototype" />
+
+  <bean id="org.hisp.dhis.trackedentity.action.trackedentity.AddTrackedEntityAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentity.AddTrackedEntityAction" scope="prototype" />
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentity.GetTrackedEntityAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentity.GetTrackedEntityAction"
+    scope="prototype">
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentity.GetTrackedEntityListAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentity.GetTrackedEntityListAction"
+    scope="prototype">
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentity.RemoveTrackedEntityAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentity.RemoveTrackedEntityAction"
+    scope="prototype">
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentity.UpdateTrackedEntityAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentity.UpdateTrackedEntityAction"
+    scope="prototype">
+  </bean>
+
+  <bean
+    id="org.hisp.dhis.trackedentity.action.trackedentity.ValidateTrackedEntityAction"
+    class="org.hisp.dhis.trackedentity.action.trackedentity.ValidateTrackedEntityAction"
+    scope="prototype">
+  </bean>
 
 </beans>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/resources/struts.xml	2015-03-09 17:34:30 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/resources/struts.xml	2015-03-19 09:11:49 +0000
@@ -1215,7 +1215,7 @@
       <param name="requiredAuthorities">F_TRACKED_ENTITY_MANAGEMENT</param>
     </action>
 
-    <action name="showAddTrackedEntityForm" class="org.hisp.dhis.trackedentity.action.NoAction">
+    <action name="showAddTrackedEntityForm" class="org.hisp.dhis.trackedentity.action.trackedentity.ShowAddUpdateTrackedEntityAction">
       <result name="success" type="velocity">/main.vm</result>
       <param name="page">/dhis-web-maintenance-program/addTrackedEntity.vm</param>
       <param name="javascripts">javascript/trackedEntity.js</param>
@@ -1230,7 +1230,7 @@
     </action>
 
     <action name="showUpdateTrackedEntityForm"
-      class="org.hisp.dhis.trackedentity.action.trackedentity.GetTrackedEntityAction">
+      class="org.hisp.dhis.trackedentity.action.trackedentity.ShowAddUpdateTrackedEntityAction">
       <result name="success" type="velocity">/main.vm</result>
       <param name="page">/dhis-web-maintenance-program/updateTrackedEntity.vm</param>
       <param name="javascripts">javascript/trackedEntity.js</param>

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/webapp/dhis-web-maintenance-program/addTrackedEntity.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/webapp/dhis-web-maintenance-program/addTrackedEntity.vm	2014-08-06 15:20:54 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/webapp/dhis-web-maintenance-program/addTrackedEntity.vm	2015-03-19 09:11:49 +0000
@@ -4,7 +4,10 @@
 		{
 			form.submit();
 		},{
-			'rules' : getValidationRules( "trackedEntity" )
+			'rules' : getValidationRules( "trackedEntity" ),
+      'beforeValidateHandler' : function() {
+        #tblDynamicAttributesJavascript()
+      }
 		});
 		
 		checkValueIsExist( "name", "validateTrackedEntity.action");
@@ -32,7 +35,11 @@
 			<td></td>
 		</tr>
     </tbody>
-
+</table>
+
+#tblDynamicAttributes( { "attributes": $attributes, "attributeValues": $attributeValues } )
+
+<table>
 	<tr>
 		<td></td>
 		<td>

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/webapp/dhis-web-maintenance-program/updateTrackedEntity.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/webapp/dhis-web-maintenance-program/updateTrackedEntity.vm	2014-11-03 13:35:42 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/webapp/dhis-web-maintenance-program/updateTrackedEntity.vm	2015-03-19 09:11:49 +0000
@@ -4,7 +4,10 @@
 		{
 			form.submit();
 		},{
-			'rules' : getValidationRules( "trackedEntity" )
+			'rules' : getValidationRules( "trackedEntity" ),
+      'beforeValidateHandler' : function() {
+        #tblDynamicAttributesJavascript()
+      }
 		});
 		
 		checkValueIsExist( "name", "validateTrackedEntity.action", {id:getFieldValue('id')});
@@ -15,7 +18,8 @@
 <form id="updateTrackedEntityForm" action="updateTrackedEntity.action" method="post" class="inputForm">
 
 <input type='hidden' id='id' name='id' value='$trackedEntity.id'/>
-<table id="attrTable"> 
+
+  <table id="attrTable">
 	<thead>
 		<tr><th colspan="2">$i18n.getString( "tracked_entity_details" )</th></tr>
     </thead>
@@ -33,8 +37,12 @@
 			<td></td>
 		</tr>
     </tbody>
-
-	<tr>
+</table>
+
+#tblDynamicAttributes( { "attributes": $attributes, "attributeValues": $attributeValues } )
+
+<table>
+  <tr>
 		<td></td>
 		<td>
 			<input type="submit" value="$i18n.getString( 'update' )" style="width:10em"/>