=== modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/FindSingleEventOptionSetAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/FindSingleEventOptionSetAction.java 2012-09-28 09:17:17 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/FindSingleEventOptionSetAction.java 2012-10-03 07:43:08 +0000 @@ -123,6 +123,30 @@ { return this.organisationUnitId; } + + private String isEditing; + + public String getIsEditing() + { + return isEditing; + } + + public void setIsEditing( String isEditing ) + { + this.isEditing = isEditing; + } + + private int programStageInstanceId; + + public int getProgramStageInstanceId() + { + return programStageInstanceId; + } + + public void setProgramStageInstanceId( int programStageInstanceId ) + { + this.programStageInstanceId = programStageInstanceId; + } @Override public String execute() === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/GetSingleEventFormAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/GetSingleEventFormAction.java 2012-09-28 09:17:17 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/GetSingleEventFormAction.java 2012-10-03 07:43:08 +0000 @@ -32,12 +32,23 @@ import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.Set; +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.patient.Patient; +import org.hisp.dhis.patient.PatientService; +import org.hisp.dhis.patientdatavalue.PatientDataValue; +import org.hisp.dhis.patientdatavalue.PatientDataValueService; import org.hisp.dhis.program.Program; +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.ProgramStageDataElement; +import org.hisp.dhis.program.ProgramStageInstance; +import org.hisp.dhis.program.ProgramStageInstanceService; import org.hisp.dhis.util.SessionUtils; public class GetSingleEventFormAction @@ -54,6 +65,34 @@ this.programService = programService; } + private PatientDataValueService patientDataValueService; + + public void setPatientDataValueService( PatientDataValueService patientDataValueService ) + { + this.patientDataValueService = patientDataValueService; + } + + private ProgramStageInstanceService programStageInstanceService; + + public void setProgramStageInstanceService( ProgramStageInstanceService programStageInstanceService ) + { + this.programStageInstanceService = programStageInstanceService; + } + + private ProgramInstanceService programInstanceService; + + public void setProgramInstanceService( ProgramInstanceService programInstanceService ) + { + this.programInstanceService = programInstanceService; + } + + private PatientService patientService; + + public void setPatientService( PatientService patientService ) + { + this.patientService = patientService; + } + // ------------------------------------------------------------------------- // Input Output // ------------------------------------------------------------------------- @@ -146,39 +185,102 @@ { return prevDataValues; } - + private String searchResult; - + public void setSearchResult( String searchResult ) { this.searchResult = searchResult; } - + private int dataElementIdForSearching; - + public void setDataElementIdForSearching( int dataElementIdForSearching ) { this.dataElementIdForSearching = dataElementIdForSearching; } - + + private String isEditing; + + public String getIsEditing() + { + return isEditing; + } + + public void setIsEditing( String isEditing ) + { + this.isEditing = isEditing; + } + + private int programStageInstanceId; + + public int getProgramStageInstanceId() + { + return programStageInstanceId; + } + + public void setProgramStageInstanceId( int programStageInstanceId ) + { + this.programStageInstanceId = programStageInstanceId; + } + @Override public String execute() throws Exception { - if( SessionUtils.getSessionVar( "prevDataValues" ) != null ) - { - this.prevDataValues = (Map) SessionUtils.getSessionVar( "prevDataValues" ); - } - if( searchResult != null) - { - this.prevDataValues.put( "DE"+this.dataElementIdForSearching, searchResult ); - } - + Program program = programService.getProgram( programId ); eventName = program.getName(); ProgramStage programStage = program.getProgramStages().iterator().next(); programStageDataElements = new ArrayList( programStage.getProgramStageDataElements() ); Collections.sort( programStageDataElements, OrderBySortOrder ); + + if ( SessionUtils.getSessionVar( "prevDataValues" ) != null ) + { + this.prevDataValues = (Map) SessionUtils.getSessionVar( "prevDataValues" ); + } + if ( searchResult != null ) + { + this.prevDataValues.put( "DE" + this.dataElementIdForSearching, searchResult ); + System.out.println("ko co null"); + } + else + { + // For editing if user finished the form + Patient patient = patientService.getPatient( this.patientId ); + + if ( programInstanceService.getProgramInstances( patient, program ) != null ) + { + List proInstanceList = (List) programInstanceService + .getProgramInstances( patient, program ); + + ProgramInstance proInstance = null; + + if ( proInstanceList.size() != 0 ) + { + proInstance = proInstanceList.iterator().next(); + } + + ProgramStageInstance proStageInstance = programStageInstanceService.getProgramStageInstance( + proInstance, programStage ); + + this.programStageInstanceId = proStageInstance.getId(); + + for ( ProgramStageDataElement each : programStageDataElements ) + { + DataElement dataElement = each.getDataElement(); + + PatientDataValue patientDataValue = patientDataValueService.getPatientDataValue( proStageInstance, + dataElement ); + + if ( patientDataValue != null ) + { + this.prevDataValues.put( "DE" + dataElement.getId(), patientDataValue.getValue() ); + } + } + } + } + return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/SaveSingleEventAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/SaveSingleEventAction.java 2012-09-28 09:17:17 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/SaveSingleEventAction.java 2012-10-03 07:43:08 +0000 @@ -70,7 +70,7 @@ // ------------------------------------------------------------------------- // Dependencies // ------------------------------------------------------------------------- - + private ProgramInstanceService programInstanceService; public void setProgramInstanceService( ProgramInstanceService programInstanceService ) @@ -289,12 +289,35 @@ return dataElementIdForSearching; } - + private String isEditing; + + public String getIsEditing() + { + return isEditing; + } + + public void setIsEditing( String isEditing ) + { + this.isEditing = isEditing; + } + + private int programStageInstanceId; + + public int getProgramStageInstanceId() + { + return programStageInstanceId; + } + + public void setProgramStageInstanceId( int programStageInstanceId ) + { + this.programStageInstanceId = programStageInstanceId; + } @Override public String execute() throws Exception { + Program program = programService.getProgram( programId ); eventName = program.getName(); @@ -308,7 +331,7 @@ HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get( ServletActionContext.HTTP_REQUEST ); Map parameterMap = ContextUtils.getParameterMap( request ); - + typeViolations.clear(); prevDataValues.clear(); @@ -371,42 +394,84 @@ return REDIRECT; } - ProgramInstance programInstance = new ProgramInstance(); - programInstance.setEnrollmentDate( new Date() ); - programInstance.setDateOfIncident( new Date() ); - programInstance.setProgram( program ); - programInstance.setPatient( patient ); - programInstance.setCompleted( false ); - programInstanceService.addProgramInstance( programInstance ); - - ProgramStageInstance programStageInstance = new ProgramStageInstance(); - programStageInstance.setOrganisationUnit( organisationUnit ); - programStageInstance.setProgramInstance( programInstance ); - programStageInstance.setProgramStage( programStage ); - programStageInstance.setDueDate( new Date() ); - programStageInstance.setExecutionDate( new Date() ); - programStageInstance.setCompleted( false ); - programStageInstanceService.addProgramStageInstance( programStageInstance ); - - for ( ProgramStageDataElement programStageDataElement : programStageDataElements ) - { - DataElement dataElement = programStageDataElement.getDataElement(); - - PatientDataValue patientDataValue = new PatientDataValue(); - - patientDataValue.setDataElement( dataElement ); - - String id = "DE" + dataElement.getId(); - - patientDataValue.setValue( parameterMap.get( id ) ); - - patientDataValue.setProgramStageInstance( programStageInstance ); - - patientDataValue.setProvidedElsewhere( false ); - - patientDataValue.setTimestamp( new Date() ); - - patientDataValueService.savePatientDataValue( patientDataValue ); + if( this.isEditing.equals( "true" ) ) + { + ProgramStageInstance programStageInstance = programStageInstanceService.getProgramStageInstance( this.programStageInstanceId ); + + for ( ProgramStageDataElement programStageDataElement : programStageDataElements ) + { + DataElement dataElement = programStageDataElement.getDataElement(); + + PatientDataValue patientDataValue = patientDataValueService.getPatientDataValue( programStageInstance, dataElement ); + + String id = "DE" + dataElement.getId(); + + String value = parameterMap.get( id ); + + if ( patientDataValue == null && value != null ) + { + + patientDataValue = new PatientDataValue( programStageInstance, dataElement, new Date(), value ); + + patientDataValue.setProvidedElsewhere( false ); + + patientDataValueService.savePatientDataValue( patientDataValue ); + } + if( patientDataValue != null && value == null ) + { + patientDataValueService.deletePatientDataValue( patientDataValue ); + } + else if( patientDataValue != null && value != null ) + { + patientDataValue.setValue( value ); + + patientDataValue.setTimestamp( new Date() ); + + patientDataValue.setProvidedElsewhere( false ); + + patientDataValueService.updatePatientDataValue( patientDataValue ); + } + } + } + else + { + ProgramInstance programInstance = new ProgramInstance(); + programInstance.setEnrollmentDate( new Date() ); + programInstance.setDateOfIncident( new Date() ); + programInstance.setProgram( program ); + programInstance.setPatient( patient ); + programInstance.setCompleted( true ); + programInstanceService.addProgramInstance( programInstance ); + + ProgramStageInstance programStageInstance = new ProgramStageInstance(); + programStageInstance.setOrganisationUnit( organisationUnit ); + programStageInstance.setProgramInstance( programInstance ); + programStageInstance.setProgramStage( programStage ); + programStageInstance.setDueDate( new Date() ); + programStageInstance.setExecutionDate( new Date() ); + programStageInstance.setCompleted( true ); + programStageInstanceService.addProgramStageInstance( programStageInstance ); + + for ( ProgramStageDataElement programStageDataElement : programStageDataElements ) + { + DataElement dataElement = programStageDataElement.getDataElement(); + + PatientDataValue patientDataValue = new PatientDataValue(); + + patientDataValue.setDataElement( dataElement ); + + String id = "DE" + dataElement.getId(); + + patientDataValue.setValue( parameterMap.get( id ) ); + + patientDataValue.setProgramStageInstance( programStageInstance ); + + patientDataValue.setProvidedElsewhere( false ); + + patientDataValue.setTimestamp( new Date() ); + + patientDataValueService.savePatientDataValue( patientDataValue ); + } } SessionUtils.removeSessionVar( "prevDataValues" ); === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml 2012-10-03 07:23:08 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml 2012-10-03 07:43:08 +0000 @@ -176,6 +176,7 @@ + + class="org.hisp.dhis.light.namebaseddataentry.action.GetPatientProgramListAction" + scope="prototype"> @@ -208,7 +210,6 @@ ref="org.hisp.dhis.relationship.RelationshipTypeService" /> - + class="org.hisp.dhis.light.namebaseddataentry.action.AddNewRalationshipAction" + scope="prototype"> - + @@ -259,15 +261,14 @@ - + - + - + - - + + @@ -293,10 +296,14 @@ - - - - + + + + @@ -385,6 +392,12 @@ class="org.hisp.dhis.light.singleevent.action.GetSingleEventFormAction" scope="prototype"> + + + + - + - - + + @@ -495,13 +511,17 @@ - + - - + + - - /dhis-web-light/main.vm - findSingleEventOptionSet.action?keyword=${keyword}&dataElementIdForSearching=${dataElementIdForSearching}&organisationUnitId=${organisationUnitId}&patientId=${patientId}&programId=${programId} + findSingleEventOptionSet.action?keyword=${keyword}&dataElementIdForSearching=${dataElementIdForSearching}&organisationUnitId=${organisationUnitId}&patientId=${patientId}&programId=${programId}&programStageInstanceId=${programStageInstanceId}&isEditing=${isEditing} /dhis-web-light/singleevent/singleEventForm.vm === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/namebased/beneficiaryProgramList.vm' --- dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/namebased/beneficiaryProgramList.vm 2012-09-28 09:17:17 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/namebased/beneficiaryProgramList.vm 2012-10-03 07:43:08 +0000 @@ -35,7 +35,11 @@
    #if( $listOfCompletedProgram.size() != 0 ) #foreach( $programInstance in $listOfCompletedProgram ) - $programInstance.getProgram().getName() + #if( $programInstance.getProgram().getProgramStages().size() > 1) + $programInstance.getProgram().getName() + #else + $programInstance.getProgram().getName() + #end #end #else
  • $i18n.getString("no_completed_programs")
  • === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/singleevent/singleEventForm.vm' --- dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/singleevent/singleEventForm.vm 2012-09-28 08:13:37 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/singleevent/singleEventForm.vm 2012-10-03 07:43:08 +0000 @@ -3,7 +3,6 @@

    - #foreach( $programStageDataElement in $programStageDataElements) #set($dataElement = $programStageDataElement.getDataElement()) #set( $key = "DE${dataElement.id}" ) @@ -54,6 +53,8 @@ + +

    === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/singleevent/singleEventOptionSetFindForm.vm' --- dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/singleevent/singleEventOptionSetFindForm.vm 2012-09-28 08:13:37 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/singleevent/singleEventOptionSetFindForm.vm 2012-10-03 07:43:08 +0000 @@ -1,11 +1,12 @@ -

    Option Set Searching Result

    +

    $i18n.getString("option_set_searching_result")

    #if( $searchingResultList.size() == 0 ) No result #else

      + $isEditing #foreach( $option in $searchingResultList ) -
    • $option
    • +
    • $option
    • #end
    #end @@ -13,7 +14,7 @@ \ No newline at end of file