=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/event/EventStatus.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/event/EventStatus.java 2014-04-23 20:15:31 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/event/EventStatus.java 2014-06-20 12:32:01 +0000 @@ -37,7 +37,7 @@ @JacksonXmlRootElement( localName = "eventStatus", namespace = DxfNamespaces.DXF_2_0 ) public enum EventStatus { - ACTIVE( 0 ), COMPLETED( 1 ), VISITED( 2 ), FUTURE_VISIT( 3 ), LATE_VISIT( 4 ), SKIPPED( 5 ); + ACTIVE( 0 ), COMPLETED( 1 ), VISITED( 2 ), SCHEDULE( 3 ), OVERDUE( 4 ), SKIPPED( 5 ); private final int value; === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramInstance.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramInstance.java 2014-06-17 15:55:23 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramInstance.java 2014-06-20 12:32:01 +0000 @@ -33,10 +33,12 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; + import org.hisp.dhis.common.BaseIdentifiableObject; import org.hisp.dhis.common.DxfNamespaces; import org.hisp.dhis.common.view.DetailedView; import org.hisp.dhis.common.view.ExportView; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.sms.outbound.OutboundSms; import org.hisp.dhis.trackedentity.TrackedEntityInstance; @@ -144,7 +146,7 @@ { if ( programStageInstance.getProgramStage().getOpenAfterEnrollment() && !programStageInstance.isCompleted() - && (programStageInstance.getStatus() != null && programStageInstance.getStatus() != ProgramStageInstance.SKIPPED_STATUS) ) + && (programStageInstance.getStatus() != null && programStageInstance.getStatus() != EventStatus.SKIPPED) ) { return programStageInstance; } @@ -153,7 +155,7 @@ for ( ProgramStageInstance programStageInstance : programStageInstances ) { if ( !programStageInstance.isCompleted() - && (programStageInstance.getStatus() != null && programStageInstance.getStatus() != ProgramStageInstance.SKIPPED_STATUS) ) + && (programStageInstance.getStatus() != null && programStageInstance.getStatus() != EventStatus.SKIPPED) ) { return programStageInstance; } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstance.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstance.java 2014-06-19 12:51:12 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstance.java 2014-06-20 12:32:01 +0000 @@ -29,6 +29,7 @@ */ import org.hisp.dhis.common.BaseIdentifiableObject; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.sms.outbound.OutboundSms; @@ -45,13 +46,6 @@ public class ProgramStageInstance extends BaseIdentifiableObject { - public static final int ACTIVE_STATUS = 0; - private Integer status = ACTIVE_STATUS; - public static final int COMPLETED_STATUS = 1; - public static final int VISITED_STATUS = 2; - public static final int FUTURE_VISIT_STATUS = 3; - public static final int LATE_VISIT_STATUS = 4; - public static final int SKIPPED_STATUS = 5; /** * Determines if a de-serialized file is compatible with this class. */ @@ -61,10 +55,10 @@ private Date dueDate; private Date executionDate; private OrganisationUnit organisationUnit; - private boolean completed; private List outboundSms = new ArrayList(); private List messageConversations = new ArrayList(); private TrackedEntityComment comment; + private EventStatus status = EventStatus.ACTIVE; private Double longitude; private Double latitude; @@ -171,15 +165,7 @@ */ public boolean isCompleted() { - return completed; - } - - /** - * @param completed the completed to set - */ - public void setCompleted( boolean completed ) - { - this.completed = completed; + return ( status == EventStatus.COMPLETED ) ? true : false; } public OrganisationUnit getOrganisationUnit() @@ -212,12 +198,7 @@ this.completedDate = completedDate; } - public Integer getStatus() - { - return status; - } - - public void setStatus( Integer status ) + public void setStatus( EventStatus status ) { this.status = status; } @@ -261,16 +242,16 @@ { this.comment = comment; } - - public Integer getEventStatus() + + public EventStatus getStatus() { - if ( this.status != 0 ) + if ( status == EventStatus.COMPLETED ) { return status; } else if ( this.getExecutionDate() != null ) { - return ProgramStageInstance.VISITED_STATUS; + return EventStatus.VISITED; } else { @@ -286,10 +267,10 @@ if ( dueDateCalendar.getTime().before( new Date() ) ) { - return ProgramStageInstance.LATE_VISIT_STATUS; + return EventStatus.OVERDUE; } - return ProgramStageInstance.FUTURE_VISIT_STATUS; + return EventStatus.SCHEDULE; } } } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java 2014-05-23 15:22:02 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java 2014-06-20 12:32:01 +0000 @@ -28,18 +28,18 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.util.Collection; +import java.util.Date; +import java.util.List; + import org.hisp.dhis.common.Grid; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.trackedentity.TrackedEntityAttribute; import org.hisp.dhis.trackedentity.TrackedEntityInstance; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; - /** * @author Abyot Asalefew * @version $Id$ @@ -100,30 +100,20 @@ * Retrieve an event list on program instance list with a certain status * * @param programInstances ProgramInstance list - * @param completed Optional flag to only get completed (true ) - * or uncompleted (false) instances. + * @param status EventStatus * @return ProgramStageInstance list */ Collection getProgramStageInstances( Collection programInstances, - boolean completed ); - - /** - * Get statuses of events - * - * @param programStageInstances ProgramStageInstance list - * @return Map< ProgramStageInstance ID, status > - */ - Map statusProgramStageInstances( Collection programStageInstances ); + EventStatus status ); /** * Get all events by TrackedEntityInstance, optionally filtering by completed. * * @param entityInstance TrackedEntityInstance - * @param completed - optional flag to only get completed ( - * true ) or uncompleted (false) instances. + * @param status EventStatus * @return ProgramStageInstance list */ - List getProgramStageInstances( TrackedEntityInstance entityInstance, boolean completed ); + List getProgramStageInstances( TrackedEntityInstance entityInstance, EventStatus status ); /** * Retrieve scheduled list of entityInstances registered === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java 2014-05-23 15:28:46 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java 2014-06-20 12:32:01 +0000 @@ -30,6 +30,7 @@ import org.hisp.dhis.common.GenericIdentifiableObjectStore; import org.hisp.dhis.common.Grid; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.trackedentity.TrackedEntityInstance; @@ -60,21 +61,19 @@ * Retrieve an event list on program instance list with a certain status * * @param programInstances ProgramInstance list - * @param completed Optional flag to only get completed (true ) - * or uncompleted (false) instances. + * @param status EventStatus * @return ProgramStageInstance list */ - Collection get( Collection programInstances, boolean completed ); + Collection get( Collection programInstances, EventStatus status ); /** * Get all events by TrackedEntityInstance, optionally filtering by completed. * * @param entityInstance TrackedEntityInstance - * @param completed - optional flag to only get completed ( - * true ) or uncompleted (false) instances. + * @param status EventStatus * @return ProgramStageInstance list */ - List get( TrackedEntityInstance entityInstance, boolean completed ); + List get( TrackedEntityInstance entityInstance, EventStatus status ); /** * Retrieve scheduled list of entityInstances registered === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/InitTableAlteror.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/InitTableAlteror.java 2014-06-16 10:42:58 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/InitTableAlteror.java 2014-06-20 12:32:01 +0000 @@ -42,7 +42,7 @@ extends AbstractStartupRoutine { private static final Log log = LogFactory.getLog( InitTableAlteror.class ); - + @Autowired private StatementManager statementManager; @@ -54,10 +54,13 @@ public void execute() { // domain type - + executeSql( "update dataelement set domaintype='AGGREGATE' where domaintype='aggregate' or domaintype is null;" ); executeSql( "update dataelement set domaintype='TRACKER' where domaintype='patient';" ); executeSql( "alter table dataelement alter column domaintype set not null;" ); + executeSql( "alter table programstageinstance alter column status type varchar(25);" ); + executeSql( "UPDATE programstageinstance SET status='ACTIVE' WHERE status='0';" ); + executeSql( "UPDATE programstageinstance SET status='COMPLETED' WHERE status='1';" ); } // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2014-06-11 15:01:05 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2014-06-20 12:32:01 +0000 @@ -204,7 +204,7 @@ if ( program.isSingleEvent() ) { List programStageInstances = new ArrayList( - programStageInstanceService.getProgramStageInstances( programInstances, false ) ); + programStageInstanceService.getProgramStageInstances( programInstances, EventStatus.ACTIVE ) ); if ( programStageInstances.isEmpty() ) { @@ -368,14 +368,13 @@ if ( event.getStatus() == EventStatus.ACTIVE ) { - programStageInstance.setCompleted( false ); - programStageInstance.setStatus( ProgramStageInstance.ACTIVE_STATUS ); + programStageInstance.setStatus( EventStatus.ACTIVE ); programStageInstance.setCompletedDate( null ); programStageInstance.setCompletedUser( null ); } else if ( event.getStatus() == EventStatus.COMPLETED ) { - programStageInstance.setStatus( ProgramStageInstance.COMPLETED_STATUS ); + programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstance.setCompletedDate( date ); programStageInstance.setCompletedUser( storedBy ); @@ -478,7 +477,7 @@ event.setTrackedEntityInstance( programStageInstance.getProgramInstance().getEntityInstance().getUid() ); } - event.setStatus( EventStatus.fromInt( programStageInstance.getStatus() ) ); + event.setStatus( programStageInstance.getStatus() ); event.setEventDate( DateUtils.getLongDateString( programStageInstance.getExecutionDate() ) ); event.setStoredBy( programStageInstance.getCompletedUser() ); event.setOrgUnit( programStageInstance.getOrganisationUnit().getUid() ); @@ -648,18 +647,18 @@ } private ProgramStageInstance createProgramStageInstance( ProgramStage programStage, - ProgramInstance programInstance, OrganisationUnit organisationUnit, Date date, Boolean completed, + ProgramInstance programInstance, OrganisationUnit organisationUnit, Date date, int status, Coordinate coordinate, String storedBy ) { ProgramStageInstance programStageInstance = new ProgramStageInstance(); - updateProgramStageInstance( programStage, programInstance, organisationUnit, date, completed, coordinate, + updateProgramStageInstance( programStage, programInstance, organisationUnit, date, status, coordinate, storedBy, programStageInstance ); return programStageInstance; } private void updateProgramStageInstance( ProgramStage programStage, ProgramInstance programInstance, - OrganisationUnit organisationUnit, Date date, Boolean completed, Coordinate coordinate, String storedBy, + OrganisationUnit organisationUnit, Date date, int status, Coordinate coordinate, String storedBy, ProgramStageInstance programStageInstance ) { programStageInstance.setProgramInstance( programInstance ); @@ -677,7 +676,7 @@ } } - programStageInstance.setCompleted( completed ); + programStageInstance.setStatus( EventStatus.fromInt( status ) ); if ( programStageInstance.getId() == 0 ) { @@ -686,7 +685,7 @@ if ( programStageInstance.isCompleted() ) { - programStageInstance.setStatus( ProgramStageInstance.COMPLETED_STATUS ); + programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstance.setCompletedDate( new Date() ); programStageInstance.setCompletedUser( storedBy ); programStageInstanceService @@ -720,12 +719,12 @@ if ( programStageInstance == null ) { programStageInstance = createProgramStageInstance( programStage, programInstance, organisationUnit, - eventDate, EventStatus.COMPLETED == event.getStatus(), event.getCoordinate(), storedBy ); + eventDate, event.getStatus().getValue(), event.getCoordinate(), storedBy ); } else { updateProgramStageInstance( programStage, programInstance, organisationUnit, eventDate, - EventStatus.COMPLETED == event.getStatus(), event.getCoordinate(), storedBy, programStageInstance ); + event.getStatus().getValue(), event.getCoordinate(), storedBy, programStageInstance ); } saveTrackedEntityCommentFromEvent( programInstance, event, storedBy ); === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java 2014-04-23 20:15:31 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java 2014-06-20 12:32:01 +0000 @@ -114,7 +114,7 @@ event.setEvent( rowSet.getString( "psi_uid" ) ); event.setTrackedEntityInstance( rowSet.getString( "pa_uid" ) ); - event.setStatus( EventStatus.fromInt( rowSet.getInt( "psi_status" ) ) ); + event.setStatus( EventStatus.valueOf( rowSet.getString( "psi_status" ) ) ); event.setProgram( rowSet.getString( "p_uid" ) ); event.setProgramStage( rowSet.getString( "ps_uid" ) ); event.setStoredBy( rowSet.getString( "psi_completeduser" ) ); @@ -263,17 +263,17 @@ if ( status == EventStatus.VISITED ) { - sql = "and psi.completed = false and psi.status = 0 "; + sql = "and psi.status = " + + EventStatus.ACTIVE.getValue() + " and psi.executiondate is not null "; } else if ( status == EventStatus.COMPLETED ) { - sql = "and psi.completed = true and psi.status = 0 "; + sql = "and psi.status = " + EventStatus.COMPLETED.getValue(); } - else if ( status == EventStatus.FUTURE_VISIT ) + else if ( status == EventStatus.SCHEDULE ) { sql += "and psi.executiondate is null and date(now()) <= date(psi.duedate) and psi.status = 0 "; } - else if ( status == EventStatus.LATE_VISIT ) + else if ( status == EventStatus.OVERDUE ) { sql += "and psi.executiondate is null and date(now()) > date(psi.duedate) and psi.status = 0 "; } === modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java' --- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java 2014-05-28 16:31:17 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java 2014-06-20 12:32:01 +0000 @@ -279,7 +279,7 @@ TrackedEntityInstance trackedEntityInstance = entityInstanceService .getTrackedEntityInstance( entityInstance.get( 0 ).toString() ); for ( ProgramStageInstance programStageInstance : programStageInstanceService.getProgramStageInstances( - trackedEntityInstance, false ) ) + trackedEntityInstance, EventStatus.ACTIVE ) ) { if ( programStageInstance.getDueDate().getTime() >= lowerBound && programStageInstance.getDueDate().getTime() <= upperBound ) @@ -316,7 +316,7 @@ TrackedEntityInstance trackedEntityInstance = entityInstanceService .getTrackedEntityInstance( entityInstance.get( 0 ).toString() ); for ( ProgramStageInstance programStageInstance : programStageInstanceService.getProgramStageInstances( - trackedEntityInstance, false ) ) + trackedEntityInstance, EventStatus.ACTIVE ) ) { items.add( getActivity( programStageInstance, false ) ); @@ -396,7 +396,7 @@ // Set ProgramStageInstance to completed if ( programStageSectionId == 0 ) { - programStageInstance.setCompleted( true ); + programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstanceService.updateProgramStageInstance( programStageInstance ); } @@ -442,7 +442,7 @@ programStageInstance.setDueDate( new Date() ); programStageInstance.setExecutionDate( new Date() ); programStageInstance.setOrganisationUnit( organisationUnit ); - programStageInstance.setCompleted( true ); + programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstanceService.addProgramStageInstance( programStageInstance ); // --------------------------------------------------------------------- @@ -534,7 +534,7 @@ } else { - programStageInstance.setCompleted( mobileProgramStage.isCompleted() ); +// programStageInstance.setCompleted( mobileProgramStage.isCompleted() ); programStageInstanceService.updateProgramStageInstance( programStageInstance ); // check if all belonged program stage are completed @@ -1570,11 +1570,11 @@ if ( searchEventInfosArray[1].equalsIgnoreCase( "Scheduled in future" ) ) { - eventStatus = EventStatus.FUTURE_VISIT; + eventStatus = EventStatus.SCHEDULE; } else if ( searchEventInfosArray[1].equalsIgnoreCase( "Overdue" ) ) { - eventStatus = EventStatus.LATE_VISIT; + eventStatus = EventStatus.OVERDUE; } String eventsInfo = ""; @@ -1647,7 +1647,7 @@ ProgramStageInstance programStageInstance = programStageInstanceService.getProgramStageInstance( lostEvent .getId() ); programStageInstance.setDueDate( PeriodUtil.stringToDate( lostEvent.getDueDate() ) ); - programStageInstance.setStatus( lostEvent.getStatus() ); + programStageInstance.setStatus(EventStatus.fromInt( lostEvent.getStatus() ) ); if ( lostEvent.getComment() != null ) { @@ -1777,7 +1777,7 @@ programStageInstance.setExecutionDate( new Date() ); - programStageInstance.setCompleted( true ); + programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstance.setOrganisationUnit( organisationUnitService.getOrganisationUnit( orgUnitId ) ); @@ -1873,11 +1873,11 @@ if ( status.equals( "Schedule in future" ) ) { - eventStatus = EventStatus.FUTURE_VISIT; + eventStatus = EventStatus.SCHEDULE; } else if ( status.equals( "Overdue" ) ) { - eventStatus = EventStatus.LATE_VISIT; + eventStatus = EventStatus.OVERDUE; } else if ( status.equals( "Incomplete" ) ) { === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java' --- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java 2014-06-18 13:30:41 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java 2014-06-20 12:32:01 +0000 @@ -40,6 +40,7 @@ import org.hisp.dhis.common.Grid; import org.hisp.dhis.common.GridHeader; import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.i18n.I18nManager; @@ -529,7 +530,7 @@ for ( ProgramStageInstance stageInstance : stageInstances ) { - if ( (!stageInstance.isCompleted() && stageInstance.getStatus().intValue() != ProgramStageInstance.SKIPPED_STATUS) + if ( (!stageInstance.isCompleted() && stageInstance.getStatus()!= EventStatus.SKIPPED ) || stageInstance.getProgramStage().getIrregular() ) { return false; @@ -607,7 +608,7 @@ // --------------------------------------------------------------------- if ( programStageInstance.getDueDate().before( currentDate ) ) { - programStageInstance.setStatus( ProgramStageInstance.SKIPPED_STATUS ); + programStageInstance.setStatus( EventStatus.SKIPPED ); programStageInstanceService.updateProgramStageInstance( programStageInstance ); } === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java' --- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java 2014-06-18 13:30:41 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java 2014-06-20 12:32:01 +0000 @@ -32,14 +32,13 @@ import java.util.Calendar; import java.util.Collection; import java.util.Date; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; import org.hisp.dhis.common.Grid; import org.hisp.dhis.common.GridHeader; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.message.MessageConversation; @@ -152,29 +151,16 @@ } @Override - public Map statusProgramStageInstances( Collection programStageInstances ) - { - Map colorMap = new HashMap(); - - for ( ProgramStageInstance programStageInstance : programStageInstances ) - { - colorMap.put( programStageInstance.getId(), programStageInstance.getEventStatus() ); - } - - return colorMap; - } - - @Override public Collection getProgramStageInstances( Collection programInstances, - boolean completed ) + EventStatus status ) { - return programStageInstanceStore.get( programInstances, completed ); + return programStageInstanceStore.get( programInstances, status ); } @Override - public List getProgramStageInstances( TrackedEntityInstance entityInstance, boolean completed ) + public List getProgramStageInstances( TrackedEntityInstance entityInstance, EventStatus status ) { - return programStageInstanceStore.get( entityInstance, completed ); + return programStageInstanceStore.get( entityInstance, status ); } @Override @@ -324,13 +310,11 @@ @Override public void completeProgramStageInstance( ProgramStageInstance programStageInstance, I18nFormat format ) { - programStageInstance.setCompleted( true ); - Calendar today = Calendar.getInstance(); PeriodType.clearTimeOfDay( today ); Date date = today.getTime(); - programStageInstance.setStatus( ProgramStageInstance.COMPLETED_STATUS ); + programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstance.setCompletedDate( date ); programStageInstance.setCompletedUser( currentUserService.getCurrentUsername() ); === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java' --- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java 2014-05-21 08:04:49 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java 2014-06-20 12:32:01 +0000 @@ -41,6 +41,7 @@ import org.hisp.dhis.common.Grid; import org.hisp.dhis.common.GridHeader; import org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.period.PeriodType; import org.hisp.dhis.program.Program; @@ -93,22 +94,21 @@ @Override @SuppressWarnings( "unchecked" ) - public Collection get( Collection programInstances, boolean completed ) + public Collection get( Collection programInstances, EventStatus status ) { return getCriteria( Restrictions.in( "programInstance", programInstances ), - Restrictions.eq( "completed", completed ) ).list(); + Restrictions.eq( "status", status ) ).list(); } @Override @SuppressWarnings( "unchecked" ) - public List get( TrackedEntityInstance entityInstance, boolean completed ) + public List get( TrackedEntityInstance entityInstance, EventStatus status ) { Criteria criteria = getCriteria(); criteria.createAlias( "programInstance", "programInstance" ); criteria.add( Restrictions.eq( "programInstance.entityInstance", entityInstance)); - criteria.add( Restrictions.eq( "completed", completed )); - + criteria.add( Restrictions.eq( "status", status )); return criteria.list(); } @@ -211,9 +211,9 @@ + "inner join program pg on pg.programid = ps.programid " + "where ou.organisationunitid in ( " + TextUtils.getCommaDelimitedString( orgunitIds ) + " ) " + "and pg.programid = " + program.getId() - + "group by ou.name, ps.name, psi.completeduser, psi.completeddate, psi.completed " + + "group by ou.name, ps.name, psi.completeduser, psi.completeddate, psi.status " + "having psi.completeddate >= '" + startDate + "' AND psi.completeddate <= '" + endDate + "' " - + "and psi.completed=true " + + "and psi.status=" + EventStatus.COMPLETED.getValue() + "order by ou.name, ps.name, psi.completeduser"; SqlRowSet rs = jdbcTemplate.queryForRowSet( sql ); @@ -250,7 +250,7 @@ criteria.add( Restrictions.eq( "programInstance.status", status ) ); criteria.add( Restrictions.in( "organisationUnit.id", orgunitIds ) ); criteria.add( Restrictions.between( "programInstance.endDate", after, before ) ); - criteria.add( Restrictions.eq( "completed", true ) ); + criteria.add( Restrictions.eq( "status", EventStatus.COMPLETED ) ); if ( programInstances != null && programInstances.size() > 0 ) { @@ -277,16 +277,16 @@ { criteria.createAlias( "programInstance.entityInstance", "entityInstance" ); criteria.createAlias( "entityInstance.organisationUnit", "regOrgunit" ); - criteria.add( Restrictions.or( Restrictions.and( Restrictions.eq( "completed", true ), + criteria.add( Restrictions.or( Restrictions.and( Restrictions.eq( "status", EventStatus.COMPLETED ), Restrictions.between( "executionDate", startDate, endDate ), Restrictions.in( "organisationUnit.id", orgunitIds ) ), Restrictions.and( - Restrictions.eq( "completed", false ), Restrictions.isNotNull( "executionDate" ), + Restrictions.eq( "status", EventStatus.ACTIVE ), Restrictions.isNotNull( "executionDate" ), Restrictions.between( "executionDate", startDate, endDate ), Restrictions.in( "organisationUnit.id", orgunitIds ) ), - Restrictions.and( Restrictions.eq( "completed", false ), Restrictions.isNull( "executionDate" ), + Restrictions.and( Restrictions.eq( "status", EventStatus.ACTIVE ), Restrictions.isNull( "executionDate" ), Restrictions.between( "dueDate", startDate, endDate ), Restrictions.in( "regOrgunit.id", orgunitIds ) ), Restrictions.and( - Restrictions.eq( "status", ProgramStageInstance.SKIPPED_STATUS ), + Restrictions.eq( "status", EventStatus.SKIPPED ), Restrictions.between( "dueDate", startDate, endDate ), Restrictions.in( "regOrgunit.id", orgunitIds ) ) ) ); } @@ -294,7 +294,7 @@ { if ( completed ) { - criteria.add( Restrictions.and( Restrictions.eq( "completed", true ), + criteria.add( Restrictions.and( Restrictions.eq( "status", EventStatus.COMPLETED ), Restrictions.between( "executionDate", startDate, endDate ), Restrictions.in( "organisationUnit.id", orgunitIds ) ) ); } @@ -302,7 +302,7 @@ { criteria.createAlias( "programInstance.entityInstance", "entityInstance" ); criteria.createAlias( "entityInstance.organisationUnit", "regOrgunit" ); - criteria.add( Restrictions.and( Restrictions.eq( "completed", false ), + criteria.add( Restrictions.and( Restrictions.eq( "status", EventStatus.ACTIVE ), Restrictions.isNotNull( "executionDate" ), Restrictions.between( "executionDate", startDate, endDate ), Restrictions.in( "organisationUnit.id", orgunitIds ) ) ); === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java' --- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java 2014-06-14 17:58:11 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java 2014-06-20 12:32:01 +0000 @@ -29,7 +29,6 @@ */ import static org.hisp.dhis.common.IdentifiableObjectUtils.getIdentifiers; -import static org.hisp.dhis.program.ProgramStageInstance.SKIPPED_STATUS; import static org.hisp.dhis.system.util.DateUtils.getMediumDateString; import static org.hisp.dhis.system.util.TextUtils.getCommaDelimitedString; import static org.hisp.dhis.system.util.TextUtils.getTokens; @@ -366,21 +365,21 @@ { sql = "and psi.executiondate >= '" + start + "' and psi.executiondate <= '" + end + "' " + - "and psi.completed = true "; + "and psi.status = " + EventStatus.COMPLETED.getValue() ; } else if ( params.isEventStatus( EventStatus.VISITED ) ) { sql = "and psi.executiondate >= '" + start + "' and psi.executiondate <= '" + end + "' " + - "and psi.completed = false "; + "and psi.status = " + EventStatus.ACTIVE.getValue() ; } - else if ( params.isEventStatus( EventStatus.FUTURE_VISIT ) ) + else if ( params.isEventStatus( EventStatus.SCHEDULE ) ) { sql = "and psi.executiondate is null and psi.duedate >= '" + start + "' and psi.duedate <= '" + end + "' " + "and psi.status is not null and date(now()) <= date(psi.duedate) "; } - else if ( params.isEventStatus( EventStatus.LATE_VISIT ) ) + else if ( params.isEventStatus( EventStatus.OVERDUE ) ) { sql = "and psi.executiondate is null and psi.duedate >= '" + start + "' and psi.duedate <= '" + end + "' " + @@ -390,7 +389,7 @@ { sql = "and psi.duedate >= '" + start + "' and psi.duedate <= '" + end + "' " + - "and psi.status = " + SKIPPED_STATUS + " "; + "and psi.status = " + EventStatus.SKIPPED.getValue() + " "; } return sql; === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/startup/TableAlteror.java' --- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/startup/TableAlteror.java 2014-06-17 12:21:26 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/startup/TableAlteror.java 2014-06-20 12:32:01 +0000 @@ -275,6 +275,9 @@ updateUidColumn(); executeSql( "UPDATE program_attributes SET allowDateInFuture='false' WHERE allowDateInFuture is null" ); + + executeSql( "UPDATE programstageinstance SET status=1 WHERE completed=true" ); + executeSql( "ALTER TABLE programstageinstance DROP COLUMN completed" ); } === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStageInstance.hbm.xml' --- dhis-2/dhis-services/dhis-service-tracker/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStageInstance.hbm.xml 2014-04-08 15:44:49 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStageInstance.hbm.xml 2014-06-20 12:32:01 +0000 @@ -26,8 +26,6 @@ - - @@ -46,8 +44,8 @@ column="messageconversationid" /> - - + + === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/test/java/org/hisp/dhis/program/ProgramStageInstanceServiceTest.java' --- dhis-2/dhis-services/dhis-service-tracker/src/test/java/org/hisp/dhis/program/ProgramStageInstanceServiceTest.java 2014-06-19 13:55:32 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/test/java/org/hisp/dhis/program/ProgramStageInstanceServiceTest.java 2014-06-20 12:32:01 +0000 @@ -36,15 +36,14 @@ import java.util.Calendar; import java.util.Collection; import java.util.Date; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; import org.hisp.dhis.DhisSpringTest; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementService; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.mock.MockI18nFormat; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; @@ -382,10 +381,10 @@ @Test public void testGetProgramStageInstancesByInstanceListComplete() { - programStageInstanceA.setCompleted( true ); - programStageInstanceB.setCompleted( false ); - programStageInstanceC.setCompleted( true ); - programStageInstanceD1.setCompleted( false ); + programStageInstanceA.setStatus( EventStatus.COMPLETED ); + programStageInstanceB.setStatus( EventStatus.ACTIVE ); + programStageInstanceC.setStatus( EventStatus.COMPLETED ); + programStageInstanceD1.setStatus( EventStatus.ACTIVE ); programStageInstanceService.addProgramStageInstance( programStageInstanceA ); programStageInstanceService.addProgramStageInstance( programStageInstanceB ); @@ -397,53 +396,24 @@ programInstances.add( programInstanceB ); Collection stageInstances = programStageInstanceService.getProgramStageInstances( - programInstances, true ); + programInstances, EventStatus.COMPLETED ); assertEquals( 2, stageInstances.size() ); assertTrue( stageInstances.contains( programStageInstanceA ) ); assertTrue( stageInstances.contains( programStageInstanceC ) ); - stageInstances = programStageInstanceService.getProgramStageInstances( programInstances, false ); + stageInstances = programStageInstanceService.getProgramStageInstances( programInstances, EventStatus.ACTIVE ); assertEquals( 2, stageInstances.size() ); assertTrue( stageInstances.contains( programStageInstanceB ) ); assertTrue( stageInstances.contains( programStageInstanceD1 ) ); } @Test - public void testStatusProgramStageInstances() - { - programStageInstanceA.setCompleted( true ); - programStageInstanceA.setStatus( ProgramStageInstance.COMPLETED_STATUS ); - programStageInstanceC.setStatus( ProgramStageInstance.SKIPPED_STATUS ); - - int idA = programStageInstanceService.addProgramStageInstance( programStageInstanceA ); - int idB = programStageInstanceService.addProgramStageInstance( programStageInstanceB ); - int idC = programStageInstanceService.addProgramStageInstance( programStageInstanceC ); - int idD = programStageInstanceService.addProgramStageInstance( programStageInstanceD1 ); - - Collection programStageInstances = new HashSet(); - programStageInstances.add( programStageInstanceA ); - programStageInstances.add( programStageInstanceB ); - programStageInstances.add( programStageInstanceC ); - programStageInstances.add( programStageInstanceD1 ); - - Map expectedMap = new HashMap(); - expectedMap.put( idA, ProgramStageInstance.COMPLETED_STATUS ); - expectedMap.put( idB, ProgramStageInstance.FUTURE_VISIT_STATUS ); - expectedMap.put( idC, ProgramStageInstance.SKIPPED_STATUS ); - expectedMap.put( idD, ProgramStageInstance.FUTURE_VISIT_STATUS ); - - Map actualMap = programStageInstanceService - .statusProgramStageInstances( programStageInstances ); - assertEquals( expectedMap, actualMap ); - } - - @Test public void testGetProgramStageInstancesByStatus() { - programStageInstanceA.setCompleted( true ); - programStageInstanceB.setCompleted( false ); - programStageInstanceC.setCompleted( true ); - programStageInstanceD1.setCompleted( true ); + programStageInstanceA.setStatus( EventStatus.COMPLETED ); + programStageInstanceB.setStatus( EventStatus.ACTIVE ); + programStageInstanceC.setStatus( EventStatus.COMPLETED ); + programStageInstanceD1.setStatus( EventStatus.ACTIVE ); programStageInstanceService.addProgramStageInstance( programStageInstanceA ); programStageInstanceService.addProgramStageInstance( programStageInstanceB ); @@ -451,11 +421,11 @@ programStageInstanceService.addProgramStageInstance( programStageInstanceD1 ); List stageInstances = programStageInstanceService.getProgramStageInstances( entityInstanceA, - true ); + EventStatus.COMPLETED ); assertEquals( 1, stageInstances.size() ); assertTrue( stageInstances.contains( programStageInstanceA ) ); - stageInstances = programStageInstanceService.getProgramStageInstances( entityInstanceA, false ); + stageInstances = programStageInstanceService.getProgramStageInstances( entityInstanceA, EventStatus.ACTIVE ); assertEquals( 1, stageInstances.size() ); assertTrue( stageInstances.contains( programStageInstanceB ) ); } @@ -470,6 +440,7 @@ int idA = programStageInstanceService.addProgramStageInstance( programStageInstanceA ); programStageInstanceService.completeProgramStageInstance( programStageInstanceA, mockFormat ); + assertEquals( true, programStageInstanceService.getProgramStageInstance( idA ).isCompleted() ); } === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/test/java/org/hisp/dhis/program/ProgramStageInstanceStoreTest.java' --- dhis-2/dhis-services/dhis-service-tracker/src/test/java/org/hisp/dhis/program/ProgramStageInstanceStoreTest.java 2014-05-16 15:26:10 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/test/java/org/hisp/dhis/program/ProgramStageInstanceStoreTest.java 2014-06-20 12:32:01 +0000 @@ -35,12 +35,12 @@ import java.util.Collection; import java.util.Date; import java.util.HashSet; -import java.util.List; import java.util.Set; import org.hisp.dhis.DhisSpringTest; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementService; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.PeriodType; @@ -281,10 +281,10 @@ @Test public void testGetProgramStageInstancesByInstanceListComplete() { - programStageInstanceA.setCompleted( true ); - programStageInstanceB.setCompleted( false ); - programStageInstanceC.setCompleted( true ); - programStageInstanceD1.setCompleted( false ); + programStageInstanceA.setStatus( EventStatus.COMPLETED ); + programStageInstanceB.setStatus( EventStatus.ACTIVE ); + programStageInstanceC.setStatus( EventStatus.COMPLETED ); + programStageInstanceD1.setStatus( EventStatus.ACTIVE ); programStageInstanceStore.save( programStageInstanceA ); programStageInstanceStore.save( programStageInstanceB ); @@ -295,38 +295,16 @@ programInstances.add( programInstanceA ); programInstances.add( programInstanceB ); - Collection stageInstances = programStageInstanceStore.get( programInstances, true ); + Collection stageInstances = programStageInstanceStore.get( programInstances, EventStatus.COMPLETED ); assertEquals( 2, stageInstances.size() ); assertTrue( stageInstances.contains( programStageInstanceA ) ); assertTrue( stageInstances.contains( programStageInstanceC ) ); - stageInstances = programStageInstanceStore.get( programInstances, false ); + stageInstances = programStageInstanceStore.get( programInstances, EventStatus.ACTIVE ); assertEquals( 2, stageInstances.size() ); assertTrue( stageInstances.contains( programStageInstanceB ) ); assertTrue( stageInstances.contains( programStageInstanceD1 ) ); } - - @Test - public void testGetProgramStageInstancesByEntityInstanceStatus() - { - programStageInstanceA.setCompleted( true ); - programStageInstanceB.setCompleted( false ); - programStageInstanceC.setCompleted( true ); - programStageInstanceD1.setCompleted( true ); - - programStageInstanceStore.save( programStageInstanceA ); - programStageInstanceStore.save( programStageInstanceB ); - programStageInstanceStore.save( programStageInstanceC ); - programStageInstanceStore.save( programStageInstanceD1 ); - - List stageInstances = programStageInstanceStore.get( entityInstanceA, true ); - assertEquals( 1, stageInstances.size() ); - assertTrue( stageInstances.contains( programStageInstanceA ) ); - - stageInstances = programStageInstanceStore.get( entityInstanceA, false ); - assertEquals( 1, stageInstances.size() ); - assertTrue( stageInstances.contains( programStageInstanceB ) ); - } @Test public void testGetOverDueEventCount() === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/CompleteDataEntryAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/CompleteDataEntryAction.java 2014-06-18 13:30:41 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/CompleteDataEntryAction.java 2014-06-20 12:32:01 +0000 @@ -30,7 +30,6 @@ import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.program.ProgramInstance; -import org.hisp.dhis.program.ProgramInstanceService; import org.hisp.dhis.program.ProgramStageInstance; import org.hisp.dhis.program.ProgramStageInstanceService; === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/LoadProgramStageInstancesAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/LoadProgramStageInstancesAction.java 2014-04-21 16:30:29 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/LoadProgramStageInstancesAction.java 2014-06-20 12:32:01 +0000 @@ -75,13 +75,6 @@ this.programInstanceService = programInstanceService; } - private ProgramStageInstanceService programStageInstanceService; - - public void setProgramStageInstanceService( ProgramStageInstanceService programStageInstanceService ) - { - this.programStageInstanceService = programStageInstanceService; - } - // ------------------------------------------------------------------------- // Input && Output // ------------------------------------------------------------------------- @@ -135,40 +128,26 @@ public String execute() throws Exception { - TrackedEntityInstance entityInstance = entityInstanceService.getTrackedEntityInstance( entityInstanceId ); +// TrackedEntityInstance entityInstance = entityInstanceService.getTrackedEntityInstance( entityInstanceId ); program = programService.getProgram( programId ); - - List programInstances = new ArrayList(); - - if ( program.getType() == Program.MULTIPLE_EVENTS_WITH_REGISTRATION ) - { - programInstances = new ArrayList( programInstanceService.getProgramInstances( entityInstance, - program, ProgramInstance.STATUS_ACTIVE ) ); - } - else if ( program.getType() == Program.SINGLE_EVENT_WITH_REGISTRATION ) - { - programInstances = new ArrayList( programInstanceService.getProgramInstances( entityInstance, - program ) ); - } - else - { - programInstances = new ArrayList( programInstanceService.getProgramInstances( program ) ); - } - - if ( !programInstances.isEmpty() ) - { - programInstance = programInstances.iterator().next(); - - if ( programInstance.getProgramStageInstances() != null ) - { - if ( program.isRegistration() ) - { - statusMap = programStageInstanceService.statusProgramStageInstances( programInstance - .getProgramStageInstances() ); - } - } - } +// +// List programInstances = new ArrayList(); +// +// if ( program.getType() == Program.MULTIPLE_EVENTS_WITH_REGISTRATION ) +// { +// programInstances = new ArrayList( programInstanceService.getProgramInstances( entityInstance, +// program, ProgramInstance.STATUS_ACTIVE ) ); +// } +// else if ( program.getType() == Program.SINGLE_EVENT_WITH_REGISTRATION ) +// { +// programInstances = new ArrayList( programInstanceService.getProgramInstances( entityInstance, +// program ) ); +// } +// else +// { +// programInstances = new ArrayList( programInstanceService.getProgramInstances( program ) ); +// } return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/SaveValuesAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/SaveValuesAction.java 2014-04-06 15:48:31 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/SaveValuesAction.java 2014-06-20 12:32:01 +0000 @@ -36,6 +36,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.ServletActionContext; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager; import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramInstance; @@ -177,7 +178,7 @@ programStageInstance.setDueDate( currentDate ); programStageInstance.setExecutionDate( currentDate ); programStageInstance.setOrganisationUnit( selectionManager.getSelectedOrganisationUnit() ); - programStageInstance.setCompleted( true ); + programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstanceService.addProgramStageInstance( programStageInstance ); === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UncompleteDataEntryAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UncompleteDataEntryAction.java 2014-06-19 12:51:12 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UncompleteDataEntryAction.java 2014-06-20 12:32:01 +0000 @@ -28,6 +28,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.program.ProgramInstance; import org.hisp.dhis.program.ProgramInstanceService; import org.hisp.dhis.program.ProgramStageInstance; @@ -87,8 +88,7 @@ return SUCCESS; } - programStageInstance.setCompleted( false ); - programStageInstance.setStatus( ProgramStageInstance.ACTIVE_STATUS ); + programStageInstance.setStatus( EventStatus.ACTIVE ); programStageInstanceService.updateProgramStageInstance( programStageInstance ); === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UploadAnonymousEventAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UploadAnonymousEventAction.java 2014-03-18 08:10:10 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/UploadAnonymousEventAction.java 2014-06-20 12:32:01 +0000 @@ -35,6 +35,7 @@ import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.dxf2.utils.JacksonUtils; +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; @@ -125,15 +126,15 @@ Date date = format.parseDate( (String) executionDate.get( "executionDate" ) ); - Boolean completed = null; + Integer status = null; try { - String completeString = (String) executionDate.get( "completed" ); + String statusString = (String) executionDate.get( "status" ); - if ( completeString != null ) + if ( statusString != null ) { - completed = Boolean.parseBoolean( completeString ); + status = Integer.parseInt( statusString ); } } catch ( ClassCastException ignored ) @@ -174,7 +175,7 @@ if ( programStageInstanceId != null ) { programStageInstance = programStageInstanceService.getProgramStageInstance( programStageInstanceId ); - updateExecutionDate( programStageInstance, date, completed, longitude, latitude ); + updateExecutionDate( programStageInstance, date, status, longitude, latitude ); } else { @@ -210,7 +211,7 @@ return INPUT; } - programStageInstance = saveExecutionDate( programId, organisationUnitId, date, completed, longitude, latitude ); + programStageInstance = saveExecutionDate( programId, organisationUnitId, date, status, longitude, latitude ); } Map values = (Map) input.get( "values" ); @@ -232,7 +233,7 @@ return SUCCESS; } - private void updateExecutionDate( ProgramStageInstance programStageInstance, Date date, Boolean completed, + private void updateExecutionDate( ProgramStageInstance programStageInstance, Date date, Integer status, Double longitude, Double latitude ) { if ( date != null ) @@ -241,9 +242,9 @@ programStageInstance.setExecutionDate( date ); } - if ( completed != null ) + if ( status != null ) { - programStageInstance.setCompleted( completed ); + programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstance.setCompletedDate( new Date() ); programStageInstance.setCompletedUser( currentUserService.getCurrentUsername() ); } @@ -263,7 +264,7 @@ } private ProgramStageInstance saveExecutionDate( Integer programId, Integer organisationUnitId, Date date, - Boolean completed, Double longitude, Double latitude ) + Integer status, Double longitude, Double latitude ) { OrganisationUnit organisationUnit = organisationUnitService.getOrganisationUnit( organisationUnitId ); Program program = programService.getProgram( programId ); @@ -277,11 +278,14 @@ programStageInstance.setExecutionDate( date ); programStageInstance.setOrganisationUnit( organisationUnit ); - if ( completed != null ) + if ( status != null ) { - programStageInstance.setCompleted( completed ); - programStageInstance.setCompletedDate( new Date() ); - programStageInstance.setCompletedUser( currentUserService.getCurrentUsername() ); + programStageInstance.setStatus( EventStatus.fromInt( status ) ); + if( programStageInstance.isCompleted() ) + { + programStageInstance.setCompletedDate( new Date() ); + programStageInstance.setCompletedUser( currentUserService.getCurrentUsername() ); + } } if ( programStage.getCaptureCoordinates() ) === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SetEventStatusAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SetEventStatusAction.java 2014-03-18 08:10:10 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SetEventStatusAction.java 2014-06-20 12:32:01 +0000 @@ -28,6 +28,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.program.ProgramStageInstance; import org.hisp.dhis.program.ProgramStageInstanceService; @@ -71,9 +72,9 @@ this.programStageInstanceId = programStageInstanceId; } - private Integer status; + private int status; - public void setStatus( Integer status ) + public void setStatus( int status ) { this.status = status; } @@ -89,32 +90,21 @@ ProgramStageInstance programStageInstance = programStageInstanceService .getProgramStageInstance( programStageInstanceId ); - switch ( status.intValue() ) + EventStatus eventStatus = EventStatus.fromInt( status ); + if ( eventStatus == EventStatus.COMPLETED ) { - case ProgramStageInstance.COMPLETED_STATUS: programStageInstanceService.completeProgramStageInstance( programStageInstance, format ); - break; - case ProgramStageInstance.VISITED_STATUS: - programStageInstance.setCompleted( false ); - programStageInstance.setStatus( ProgramStageInstance.ACTIVE_STATUS ); - programStageInstanceService.updateProgramStageInstance( programStageInstance ); - break; - case ProgramStageInstance.LATE_VISIT_STATUS: - programStageInstance.setCompleted( false ); - programStageInstance.setStatus( ProgramStageInstance.ACTIVE_STATUS ); - programStageInstanceService.updateProgramStageInstance( programStageInstance ); - break; - case ProgramStageInstance.FUTURE_VISIT_STATUS: - programStageInstance.setCompleted( false ); - programStageInstance.setStatus( ProgramStageInstance.ACTIVE_STATUS ); - programStageInstanceService.updateProgramStageInstance( programStageInstance ); - break; - case ProgramStageInstance.SKIPPED_STATUS: - programStageInstance.setStatus( status ); - programStageInstanceService.updateProgramStageInstance( programStageInstance ); - break; - default: - break; + } + else if ( eventStatus == EventStatus.SKIPPED ) + { + programStageInstance.setStatus( eventStatus ); + programStageInstanceService.updateProgramStageInstance( programStageInstance ); + + } + else + { + programStageInstance.setStatus( EventStatus.ACTIVE ); + programStageInstanceService.updateProgramStageInstance( programStageInstance ); } return SUCCESS; === removed file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/trackedentity/SearchTrackedEntityInstanceAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/trackedentity/SearchTrackedEntityInstanceAction.java 2014-06-12 16:30:25 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/trackedentity/SearchTrackedEntityInstanceAction.java 1970-01-01 00:00:00 +0000 @@ -1,153 +0,0 @@ -/* - * Copyright (c) 2004-2013, 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. - */ - -package org.hisp.dhis.caseentry.action.trackedentity; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.hisp.dhis.organisationunit.OrganisationUnit; -import org.hisp.dhis.organisationunit.OrganisationUnitService; -import org.hisp.dhis.paging.ActionPagingSupport; -import org.hisp.dhis.program.Program; -import org.hisp.dhis.program.ProgramService; -import org.hisp.dhis.trackedentity.TrackedEntityAttribute; -import org.hisp.dhis.trackedentity.TrackedEntityAttributeService; -import org.hisp.dhis.trackedentity.TrackedEntityInstance; -import org.hisp.dhis.trackedentity.TrackedEntityInstanceService; -import org.hisp.dhis.trackedentity.comparator.TrackedEntityAttributeSortOrderInListNoProgramComparator; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * @author Chau Thu Tran - * - * @version $ SearchTrackedEntityInstanceAction.java Jun 11, 2014 4:28:11 PM $ - */ -public class SearchTrackedEntityInstanceAction - extends ActionPagingSupport -{ - // ------------------------------------------------------------------------- - // Dependencies - // ------------------------------------------------------------------------- - - @Autowired - private OrganisationUnitService orgunitService; - - @Autowired - private ProgramService programService; - - @Autowired - private TrackedEntityAttributeService attributeService; - - @Autowired - private TrackedEntityInstanceService entityInstanceService; - - // ------------------------------------------------------------------------- - // Input/Output - // ------------------------------------------------------------------------- - - private String orgunitId; - - public void setOrgunitId( String orgunitId ) - { - this.orgunitId = orgunitId; - } - - private String attributeValue; - - public void setAttributeValue( String attributeValue ) - { - this.attributeValue = attributeValue; - } - - private String programId; - - public void setProgramId( String programId ) - { - this.programId = programId; - } - - private List entityInstances; - - public List getEntityInstances() - { - return entityInstances; - } - - private Program program; - - public Program getProgram() - { - return program; - } - - private List attributes; - - public List getAttributes() - { - return attributes; - } - - private int total; - - public int getTotal() - { - return total; - } - - // ------------------------------------------------------------------------- - // Action implementation - // ------------------------------------------------------------------------- - - public String execute() - throws Exception - { - OrganisationUnit orgunit = orgunitService.getOrganisationUnit( orgunitId ); - - if ( !programId.isEmpty() ) - { - program = programService.getProgram( programId ); - } - else - { - attributes = new ArrayList( - attributeService.getTrackedEntityAttributesDisplayInList() ); - Collections.sort( attributes, new TrackedEntityAttributeSortOrderInListNoProgramComparator() ); - } - - /* TODO use the TEI query interface - total = entityInstanceService.countTrackedEntityByAttribute( orgunit, attributeValue, program ); - this.paging = createPaging( total ); - - entityInstances = new ArrayList( entityInstanceService.searchTrackedEntityByAttribute( - orgunit, attributeValue, program, paging.getStartPos(), paging.getPageSize() ) ); - */ - - return SUCCESS; - } -} === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml 2014-06-18 13:30:41 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml 2014-06-20 12:32:01 +0000 @@ -55,8 +55,6 @@ -