=== 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 2012-06-04 10:03:56 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstance.java 2012-06-07 04:23:40 +0000 @@ -43,13 +43,10 @@ */ private static final long serialVersionUID = 6239130884678145713L; - public static final String COLOR_RED = "#fb4754"; - - public static final String COLOR_YELLOW = "#f9f95a"; - - public static final String COLOR_GREEN = "#8ffe8f"; - - public static final String COLOR_LIGHTRED = "#fb6bfb"; + 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; private int id; === 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 2012-05-28 09:46:00 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java 2012-06-07 04:23:40 +0000 @@ -72,7 +72,7 @@ Collection getAllProgramStageInstances(); - Map colorProgramStageInstances( Collection programStageInstances ); + Map statusProgramStageInstances( Collection programStageInstances ); /** * Get all {@link ProgramStageInstance program stage instances} for unit, === added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/comparator/ProgramStageInstanceDueDateComparator.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/comparator/ProgramStageInstanceDueDateComparator.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/comparator/ProgramStageInstanceDueDateComparator.java 2012-06-07 04:23:40 +0000 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2004-2012, 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.program.comparator; + +import java.util.Comparator; + +import org.hisp.dhis.program.ProgramStageInstance; + +/** + * @author Chau Thu Tran + * + * @version $ProgramStageInstanceDueDateComparator.java Jun 7, 2012 9:49:25 AM$ + */ +public class ProgramStageInstanceDueDateComparator + implements Comparator +{ + public int compare( ProgramStageInstance programStageInstance1, ProgramStageInstance programStageInstance2 ) + { + if ( programStageInstance1.getDueDate().before( programStageInstance2.getDueDate() ) ) + { + return -1; + } + else if ( programStageInstance1.getDueDate().after( programStageInstance2.getDueDate() ) ) + { + return 1; + } + return 0; + } + +} === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java 2012-05-28 09:46:00 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java 2012-06-07 04:23:40 +0000 @@ -122,19 +122,19 @@ programStageInstanceStore.update( programStageInstance ); } - public Map colorProgramStageInstances( Collection programStageInstances ) + public Map statusProgramStageInstances( Collection programStageInstances ) { - Map colorMap = new HashMap(); + Map colorMap = new HashMap(); for ( ProgramStageInstance programStageInstance : programStageInstances ) { if ( programStageInstance.isCompleted() ) { - colorMap.put( programStageInstance.getId(), ProgramStageInstance.COLOR_GREEN ); + colorMap.put( programStageInstance.getId(), ProgramStageInstance.COMPLETED_STATUS ); } else if ( programStageInstance.getExecutionDate() != null ) { - colorMap.put( programStageInstance.getId(), ProgramStageInstance.COLOR_LIGHTRED ); + colorMap.put( programStageInstance.getId(), ProgramStageInstance.VISITED_STATUS ); } else { @@ -150,11 +150,11 @@ if ( dueDateCalendar.getTime().before( new Date() ) ) { - colorMap.put( programStageInstance.getId(), ProgramStageInstance.COLOR_RED ); + colorMap.put( programStageInstance.getId(), ProgramStageInstance.LATE_VISIT_STATUS ); } else { - colorMap.put( programStageInstance.getId(), ProgramStageInstance.COLOR_YELLOW ); + colorMap.put( programStageInstance.getId(), ProgramStageInstance.FUTURE_VISIT_STATUS ); } } } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/CreateAnonymousEncounterAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/CreateAnonymousEncounterAction.java 2012-06-04 10:03:56 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/CreateAnonymousEncounterAction.java 2012-06-07 04:23:40 +0000 @@ -125,7 +125,6 @@ if ( date != null ) { - ProgramInstance programInstance = programInstanceService.getProgramInstance( programInstanceId ); ProgramStageInstance programStageInstance = new ProgramStageInstance(); @@ -139,9 +138,9 @@ programStageInstance.setExecutionDate( date ); programStageInstance.setOrganisationUnit( selectedStateManager.getSelectedOrganisationUnit() ); - programStageInstanceService.addProgramStageInstance( programStageInstance ); + int id = programStageInstanceService.addProgramStageInstance( programStageInstance ); - message = programStageInstance.getId() + ""; + message = id + ""; return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/GetDataRecordsAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/GetDataRecordsAction.java 2011-09-23 18:54:49 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/GetDataRecordsAction.java 2012-06-07 04:23:40 +0000 @@ -156,11 +156,11 @@ return programStageInstanceMap; } - private Map colorMap = new HashMap(); + private Map statusMap = new HashMap(); - public Map getColorMap() + public Map getStatusMap() { - return colorMap; + return statusMap; } private Map programInstanceMap = new HashMap(); @@ -257,7 +257,7 @@ } } - colorMap = programStageInstanceService.colorProgramStageInstances( programStageInstances ); + statusMap = programStageInstanceService.statusProgramStageInstances( programStageInstances ); return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/LoadDataEntryAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/LoadDataEntryAction.java 2012-05-23 15:02:50 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/LoadDataEntryAction.java 2012-06-07 04:23:40 +0000 @@ -42,12 +42,9 @@ import org.hisp.dhis.patientdatavalue.PatientDataValueService; import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramDataEntryService; -import org.hisp.dhis.program.ProgramInstance; -import org.hisp.dhis.program.ProgramStage; import org.hisp.dhis.program.ProgramStageDataElement; import org.hisp.dhis.program.ProgramStageInstance; import org.hisp.dhis.program.ProgramStageInstanceService; -import org.hisp.dhis.program.ProgramStageService; import org.hisp.dhis.program.comparator.ProgramStageDataElementSortOrderComparator; import com.opensymphony.xwork2.Action; @@ -64,8 +61,6 @@ // Dependencies // ------------------------------------------------------------------------- - private ProgramStageService programStageService; - private ProgramDataEntryService programDataEntryService; private PatientDataValueService patientDataValueService; @@ -78,7 +73,7 @@ // Input && Output // ------------------------------------------------------------------------- - private Integer programStageId; + private Integer programStageInstanceId; private ProgramStageInstance programStageInstance; @@ -103,16 +98,16 @@ this.programStageInstanceService = programStageInstanceService; } + public void setProgramStageInstanceId( Integer programStageInstanceId ) + { + this.programStageInstanceId = programStageInstanceId; + } + public Program getProgram() { return program; } - public void setProgramStageService( ProgramStageService programStageService ) - { - this.programStageService = programStageService; - } - public void setSelectedStateManager( SelectedStateManager selectedStateManager ) { this.selectedStateManager = selectedStateManager; @@ -143,11 +138,6 @@ this.i18n = i18n; } - public void setProgramStageId( Integer programStageId ) - { - this.programStageId = programStageId; - } - public String getCustomDataEntryFormCode() { return customDataEntryFormCode; @@ -176,58 +166,49 @@ // Get program-stage-instance // --------------------------------------------------------------------- - ProgramStage programStage = programStageService.getProgramStage( programStageId ); - - program = programStage.getProgram(); - - ProgramInstance programInstance = selectedStateManager.getSelectedProgramInstance(); - - if ( programInstance != null ) + programStageInstance = programStageInstanceService.getProgramStageInstance( programStageInstanceId ); + program = programStageInstance.getProgramStage().getProgram(); + + if ( programStageInstance != null ) { - programStageInstance = programStageInstanceService.getProgramStageInstance( programInstance, programStage ); - - if ( programStageInstance != null ) - { - if ( program.getType() == Program.SINGLE_EVENT_WITHOUT_REGISTRATION - && programStageInstance.isCompleted() ) - { - return SUCCESS; - } - - selectedStateManager.setSelectedProgramStageInstance( programStageInstance ); - - // --------------------------------------------------------------------- - // Get data values - // --------------------------------------------------------------------- - - programStageDataElements = new ArrayList( programStage - .getProgramStageDataElements() ); - - Collections.sort( programStageDataElements, new ProgramStageDataElementSortOrderComparator() ); - - Collection patientDataValues = patientDataValueService - .getPatientDataValues( programStageInstance ); - - patientDataValueMap = new HashMap( patientDataValues.size() ); - - for ( PatientDataValue patientDataValue : patientDataValues ) - { - int key = patientDataValue.getDataElement().getId(); - patientDataValueMap.put( key, patientDataValue ); - } - - // --------------------------------------------------------------------- - // Get data-entry-form - // --------------------------------------------------------------------- - - DataEntryForm dataEntryForm = programStage.getDataEntryForm(); - - if ( dataEntryForm != null ) - { - customDataEntryFormCode = programDataEntryService.prepareDataEntryFormForEntry( dataEntryForm - .getHtmlCode(), patientDataValues, program.getDisplayProvidedOtherFacility().toString(), i18n, - programStage, programStageInstance, organisationUnit ); - } + if ( program.getType() == Program.SINGLE_EVENT_WITHOUT_REGISTRATION && programStageInstance.isCompleted() ) + { + return SUCCESS; + } + + selectedStateManager.setSelectedProgramStageInstance( programStageInstance ); + + // --------------------------------------------------------------------- + // Get data values + // --------------------------------------------------------------------- + + programStageDataElements = new ArrayList( programStageInstance.getProgramStage() + .getProgramStageDataElements() ); + + Collections.sort( programStageDataElements, new ProgramStageDataElementSortOrderComparator() ); + + Collection patientDataValues = patientDataValueService + .getPatientDataValues( programStageInstance ); + + patientDataValueMap = new HashMap( patientDataValues.size() ); + + for ( PatientDataValue patientDataValue : patientDataValues ) + { + int key = patientDataValue.getDataElement().getId(); + patientDataValueMap.put( key, patientDataValue ); + } + + // --------------------------------------------------------------------- + // Get data-entry-form + // --------------------------------------------------------------------- + + DataEntryForm dataEntryForm = programStageInstance.getProgramStage().getDataEntryForm(); + + if ( dataEntryForm != null ) + { + customDataEntryFormCode = programDataEntryService.prepareDataEntryFormForEntry( dataEntryForm + .getHtmlCode(), patientDataValues, program.getDisplayProvidedOtherFacility().toString(), i18n, + programStageInstance.getProgramStage(), programStageInstance, organisationUnit ); } } === renamed file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/LoadProgramStagesAction.java' => '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/LoadProgramStagesAction.java 2012-05-23 15:02:50 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/LoadProgramStageInstancesAction.java 2012-06-07 04:23:40 +0000 @@ -28,11 +28,10 @@ package org.hisp.dhis.caseentry.action.caseentry; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Set; import org.hisp.dhis.caseentry.state.SelectedStateManager; import org.hisp.dhis.patient.Patient; @@ -40,17 +39,18 @@ import org.hisp.dhis.program.ProgramInstance; import org.hisp.dhis.program.ProgramInstanceService; import org.hisp.dhis.program.ProgramService; -import org.hisp.dhis.program.ProgramStage; +import org.hisp.dhis.program.ProgramStageInstance; import org.hisp.dhis.program.ProgramStageInstanceService; +import org.hisp.dhis.program.comparator.ProgramStageInstanceDueDateComparator; import com.opensymphony.xwork2.Action; /** * @author Chau Thu Tran - * @version $ LoadProgramStagesAction.java May 7, 2011 2:31:47 PM $ + * @version $ LoadProgramStageInstancesAction.java May 7, 2011 2:31:47 PM $ * */ -public class LoadProgramStagesAction +public class LoadProgramStageInstancesAction implements Action { // ------------------------------------------------------------------------- @@ -96,25 +96,18 @@ this.programId = programId; } - private ProgramInstance programInstance; - - public ProgramInstance getProgramInstance() - { - return programInstance; - } - - private Set programStages = new HashSet(); - - public Set getProgramStages() - { - return programStages; - } - - private Map colorMap = new HashMap(); - - public Map getColorMap() - { - return colorMap; + private Map statusMap = new HashMap(); + + public Map getStatusMap() + { + return statusMap; + } + + private List programStageInstances = new ArrayList(); + + public List getProgramStageInstances() + { + return programStageInstances; } private Program program; @@ -131,19 +124,12 @@ public String execute() throws Exception { - if ( programId == null ) - { - return SUCCESS; - } - selectedStateManager.clearSelectedProgramInstance(); selectedStateManager.clearSelectedProgramStageInstance(); Patient patient = selectedStateManager.getSelectedPatient(); - program = programService.getProgram( programId ); - - programStages = program.getProgramStages(); + Program program = programService.getProgram( programId ); List programInstances = new ArrayList(); @@ -160,13 +146,16 @@ if ( programInstances != null && programInstances.size() > 0 ) { - programInstance = programInstances.iterator().next(); + ProgramInstance programInstance = programInstances.iterator().next(); selectedStateManager.setSelectedProgramInstance( programInstance ); if ( programInstance.getProgramStageInstances() != null ) { - colorMap = programStageInstanceService.colorProgramStageInstances( programInstance + programStageInstances.addAll( programInstance.getProgramStageInstances() ); + Collections.sort( programStageInstances, new ProgramStageInstanceDueDateComparator() ); + + statusMap = programStageInstanceService.statusProgramStageInstances( programInstance .getProgramStageInstances() ); } } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/RegisterIrregularEncounterAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/RegisterIrregularEncounterAction.java 2012-05-26 12:31:07 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/RegisterIrregularEncounterAction.java 2012-06-07 04:23:40 +0000 @@ -78,6 +78,13 @@ this.dueDate = dueDate; } + private String message; + + public String getMessage() + { + return message; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -94,7 +101,9 @@ programStageInstance.setStageInProgram( currentStageInstance.getStageInProgram() ); programStageInstance.setDueDate( format.parseDate( dueDate ) ); - programStageInstanceService.addProgramStageInstance( programStageInstance ); + int id = programStageInstanceService.addProgramStageInstance( programStageInstance ); + message = id + ""; + selectedStateManager.setSelectedProgramStageInstance( programStageInstance ); return SUCCESS; === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/SaveValueAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/SaveValueAction.java 2012-06-04 10:03:56 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/SaveValueAction.java 2012-06-07 04:23:40 +0000 @@ -31,7 +31,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.hisp.dhis.caseentry.state.SelectedStateManager; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.patientdatavalue.PatientDataValue; @@ -76,13 +75,6 @@ this.patientDataValueService = patientDataValueService; } - private SelectedStateManager selectedStateManager; - - public void setSelectedStateManager( SelectedStateManager selectedStateManager ) - { - this.selectedStateManager = selectedStateManager; - } - private Boolean providedElsewhere; public void setProvidedElsewhere( Boolean providedElsewhere ) @@ -136,14 +128,8 @@ public String execute() throws Exception { - if ( programStageInstanceId == null ) - { - programStageInstance = selectedStateManager.getSelectedProgramStageInstance(); - } - else - { - programStageInstance = programStageInstanceService.getProgramStageInstance( programStageInstanceId ); - } + + programStageInstance = programStageInstanceService.getProgramStageInstance( programStageInstanceId ); DataElement dataElement = dataElementService.getDataElement( dataElementId ); === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateReportAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateReportAction.java 2011-12-21 07:16:29 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateReportAction.java 2012-06-07 04:23:40 +0000 @@ -122,18 +122,18 @@ return organisationUnit; } - Collection programInstances = new ArrayList(); + private Collection programInstances = new ArrayList(); public Collection getProgramInstances() { return programInstances; } - private Map colorMap = new HashMap(); + private Map statusMap = new HashMap(); - public Map getColorMap() + public Map getStatusMap() { - return colorMap; + return statusMap; } private Program program; @@ -176,7 +176,7 @@ programStageInstances.addAll( programInstance.getProgramStageInstances() ); } - colorMap = programStageInstanceService.colorProgramStageInstances( programStageInstances ); + statusMap = programStageInstanceService.statusProgramStageInstances( programStageInstances ); 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 2012-06-04 10:03:56 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml 2012-06-07 04:23:40 +0000 @@ -80,8 +80,6 @@ ref="org.hisp.dhis.program.ProgramStageInstanceService" /> - @@ -111,7 +109,6 @@ - style/patient.css - + - /dhis-web-caseentry/responseProgramStages.vm + /dhis-web-caseentry/jsonProgramStageInstances.vm +
@@ -115,6 +103,11 @@ #end
+ +
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/dataRecordingSelect.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/dataRecordingSelect.vm 2012-06-05 08:55:00 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/dataRecordingSelect.vm 2012-06-07 04:23:40 +0000 @@ -34,54 +34,51 @@ -
- - - +
+ +
+ + - - - -
- - - - - - - - - - - - - - - - - - -
- -
- -
- -
+
+ + +
+ + +

+