=== 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 2013-09-11 15:26:20 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramInstance.java 2013-09-19 08:26:17 +0000 @@ -409,4 +409,27 @@ return null; } + + public ProgramStageInstance getActiveProgramStageInstance() + { + for ( ProgramStageInstance programStageInstance : programStageInstances ) + { + if ( programStageInstance.getProgramStage().getOpenAfterEnrollment() && !programStageInstance.isCompleted() + && ( programStageInstance.getStatus() != null && programStageInstance.getStatus() != ProgramStageInstance.SKIPPED_STATUS ) ) + { + return programStageInstance; + } + } + + for ( ProgramStageInstance programStageInstance : programStageInstances ) + { + if ( !programStageInstance.isCompleted() + && ( programStageInstance.getStatus() != null && programStageInstance.getStatus() != ProgramStageInstance.SKIPPED_STATUS ) ) + { + return programStageInstance; + } + } + + return null; + } } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStage.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStage.java 2013-09-12 05:49:31 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStage.java 2013-09-19 08:26:17 +0000 @@ -58,6 +58,12 @@ public static final String TYPE_CUSTOM = "custom"; + public static final String REPORT_DATE_TO_USE_REGISTRATION_DATE = "registrationDate"; + + public static final String REPORT_DATE_TO_USE_INCIDENT_DATE = "dateOfIncident"; + + public static final String REPORT_DATE_TO_USE_ENROLLMENT_DATE = "enrollmentDate"; + /** * Determines if a de-serialized file is compatible with this class. */ @@ -103,6 +109,10 @@ private Boolean allowGenerateNextVisit = false; + private Boolean openAfterEnrollment = false; + + private String reportDateToUse; + // ------------------------------------------------------------------------- // Constructors // ------------------------------------------------------------------------- @@ -377,4 +387,30 @@ this.allowGenerateNextVisit = allowGenerateNextVisit; } + @JsonProperty + @JsonView( { DetailedView.class, ExportView.class } ) + @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + public Boolean getOpenAfterEnrollment() + { + return openAfterEnrollment; + } + + public void setOpenAfterEnrollment( Boolean openAfterEnrollment ) + { + this.openAfterEnrollment = openAfterEnrollment; + } + + @JsonProperty + @JsonView( { DetailedView.class, ExportView.class } ) + @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + public String getReportDateToUse() + { + return reportDateToUse; + } + + public void setReportDateToUse( String reportDateToUse ) + { + this.reportDateToUse = reportDateToUse; + } + } === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/startup/TableAlteror.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/startup/TableAlteror.java 2013-09-19 03:24:26 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/startup/TableAlteror.java 2013-09-19 08:26:17 +0000 @@ -242,6 +242,9 @@ executeSql( "DROP TABLE patient_programs" ); executeSql( "DROP TABLE patient_attributes" ); + + executeSql( "update programstage set openAfterEnrollment=false where openAfterEnrollment is null" ); + executeSql( "update programstage set reportDateToUse=false where reportDateToUse is null" ); } // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java 2013-09-18 13:55:25 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java 2013-09-19 08:26:17 +0000 @@ -190,12 +190,14 @@ return programInstanceStore.get( programs ); } - public Collection getProgramInstances( Collection programs, OrganisationUnit organisationUnit ) + public Collection getProgramInstances( Collection programs, + OrganisationUnit organisationUnit ) { return programInstanceStore.get( programs, organisationUnit ); } - public Collection getProgramInstances( Collection programs, OrganisationUnit organisationUnit, int status ) + public Collection getProgramInstances( Collection programs, + OrganisationUnit organisationUnit, int status ) { return programInstanceStore.get( programs, organisationUnit, status ); } @@ -616,8 +618,8 @@ } @Override - public ProgramInstance enrollPatient( Patient patient, Program program, Date enrollmentDate, - Date dateOfIncident, OrganisationUnit organisationUnit, I18nFormat format ) + public ProgramInstance enrollPatient( Patient patient, Program program, Date enrollmentDate, Date dateOfIncident, + OrganisationUnit organisationUnit, I18nFormat format ) { if ( enrollmentDate == null ) { === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStage.hbm.xml' --- dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStage.hbm.xml 2013-09-12 05:49:31 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStage.hbm.xml 2013-09-19 08:26:17 +0000 @@ -64,6 +64,10 @@ + + + + === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SaveProgramEnrollmentAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SaveProgramEnrollmentAction.java 2013-09-18 09:17:43 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SaveProgramEnrollmentAction.java 2013-09-19 08:26:17 +0000 @@ -180,8 +180,8 @@ if ( programInstance == null ) { - programInstance = programInstanceService.enrollPatient( patient, program, enrollment, incident, - orgunit, format ); + programInstance = programInstanceService.enrollPatient( patient, program, enrollment, incident, orgunit, + format ); } // --------------------------------------------------------------------- @@ -204,15 +204,7 @@ programInstance.getProgramStageInstances() ); Collections.sort( programStageInstances, new ProgramStageInstanceVisitDateComparator() ); - for ( ProgramStageInstance programStageInstance : programStageInstances ) - { - if ( !programStageInstance.isCompleted() - && programStageInstance.getStatus() != ProgramStageInstance.SKIPPED_STATUS ) - { - activeProgramStageInstance = programStageInstance; - break; - } - } + activeProgramStageInstance = programInstance.getActiveProgramStageInstance(); return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/patient.js' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/patient.js 2013-09-17 06:08:16 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/patient.js 2013-09-19 08:26:17 +0000 @@ -80,6 +80,7 @@ var dateOfIncident = jQuery('#patientForm [id=dateOfIncident]').val(); var enrollmentDate = jQuery('#patientForm [id=enrollmentDate]').val(); + // Enroll patient into the program if( programId !='' && enrollmentDate != '') { jQuery.postJSON( "saveProgramEnrollment.action", @@ -428,5 +429,13 @@ resize(); hideLoader(); hideById('contentDiv'); + + var reportDateToUse = selectedProgramStageInstance.attr('reportDateToUse'); + if(reportDateToUse!='' && $('#executionDate').val() == '' ){ + $('#executionDate').val(reportDateToUse); + $('#executionDate').change(); + } + } ); + } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientDashboard.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientDashboard.vm 2013-09-17 09:47:21 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientDashboard.vm 2013-09-19 08:26:17 +0000 @@ -122,19 +122,26 @@
#foreach( $programInstance in $activeProgramInstances ) - #set($programStageInstanceId = '') - #if($programInstance.program.type==1) - #foreach( $programStageInstance in $programInstance.programStageInstances) - #set($programStageInstanceId = $programStageInstance.id) + #set($programStageInstance='') + #foreach ( $psi in $programInstance.programStageInstances ) + #if( $psi.programStage.openAfterEnrollment=='true' && $psi.getStatus() != 1 && $psi.getStatus() != 5 ) + #set($programStageInstance=$psi) #end #end - #set($flag = 'false') - #foreach( $programStageInstance in $programInstance.programStageInstances ) + #if($programStageInstance=='') + #foreach( $psi in $programInstance.programStageInstances ) + #if ( $psi.getStatus() != 1 && $psi.getStatus() != 5 ) + #set($programStageInstance=$psi) + #end + #end + #end + + #set($programStageInstance = $programInstance.getActiveProgramStageInstance()) + #if( $!programStageInstance) #set( $status = $programStageInstance.getEventStatus() ) - #if( $status!=1 && $status!=5 && $flag=='false') #end - #set($flag = 'true') - #end - #end - #if($flag=='false') + #else \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programStageInstanceFlow.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programStageInstanceFlow.vm 2013-09-19 03:16:23 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programStageInstanceFlow.vm 2013-09-19 08:26:17 +0000 @@ -19,6 +19,15 @@ #if($!programStageInstance.executionDate) #set($valueDate=$format.formatDate( $programStageInstance.executionDate )) #end + + #set($reportDateToUse = "") + #if($programStageInstance.programStage.reportDateToUse=='registrationDate' ) + #set($reportDateToUse = "$format.formatDate( $programInstance.patient.registrationDate)") + #elseif($programStageInstance.programStage.reportDateToUse=='dateOfIncident' ) + #set($reportDateToUse = "$format.formatDate( $programInstance.dateOfIncident)") + #elseif($programStageInstance.programStage.reportDateToUse=='enrollmentDate' ) + #set($reportDateToUse = "$format.formatDate( $programInstance.enrollmentDate)") + #end
 $!programStageInstance.organisationUnit.name
patientReminders = new HashSet(); for ( int i = 0; i < daysAllowedSendMessages.size(); i++ ) @@ -360,7 +377,7 @@ Boolean allowed = allowProvidedElsewhere.get( i ) == null ? false : allowProvidedElsewhere.get( i ); Boolean displayInReport = displayInReports.get( i ) == null ? false : displayInReports.get( i ); Boolean allowDate = allowDateInFutures.get( i ) == null ? false : allowDateInFutures.get( i ); - + ProgramStageDataElement programStageDataElement = new ProgramStageDataElement( programStage, dataElement, this.compulsories.get( i ), new Integer( i ) ); programStageDataElement.setAllowProvidedElsewhere( allowed ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/programstage/UpdateProgramStageAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/programstage/UpdateProgramStageAction.java 2013-09-16 09:47:59 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/programstage/UpdateProgramStageAction.java 2013-09-19 08:26:17 +0000 @@ -285,6 +285,20 @@ this.allowGenerateNextVisit = allowGenerateNextVisit; } + private Boolean openAfterEnrollment; + + public void setOpenAfterEnrollment( Boolean openAfterEnrollment ) + { + this.openAfterEnrollment = openAfterEnrollment; + } + + private String reportDateToUse; + + public void setReportDateToUse( String reportDateToUse ) + { + this.reportDateToUse = reportDateToUse; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -303,6 +317,7 @@ blockEntryForm = (blockEntryForm == null) ? false : blockEntryForm; remindCompleted = (remindCompleted == null) ? false : remindCompleted; allowGenerateNextVisit = (allowGenerateNextVisit == null) ? false : allowGenerateNextVisit; + openAfterEnrollment = (openAfterEnrollment == null) ? false : openAfterEnrollment; ProgramStage programStage = programStageService.getProgramStage( id ); @@ -318,6 +333,8 @@ programStage.setRemindCompleted( remindCompleted ); programStage.setGeneratedByEnrollmentDate( generatedByEnrollmentDate ); programStage.setAllowGenerateNextVisit( allowGenerateNextVisit ); + programStage.setOpenAfterEnrollment( openAfterEnrollment ); + programStage.setReportDateToUse( reportDateToUse ); if ( !programStage.getProgram().isSingleEvent() ) { @@ -361,7 +378,7 @@ Boolean allowed = allowProvidedElsewhere.get( i ) == null ? false : allowProvidedElsewhere.get( i ); Boolean displayInReport = displayInReports.get( i ) == null ? false : displayInReports.get( i ); Boolean allowDate = allowDateInFutures.get( i ) == null ? false : allowDateInFutures.get( i ); - + ProgramStageDataElement programStageDataElement = programStageDataElementService.get( programStage, dataElement ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties 2013-09-19 03:16:23 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties 2013-09-19 08:26:17 +0000 @@ -475,5 +475,8 @@ data_entry_method = Data entry method local_identifier = Local Identifier scope = Scope -drop_down_lists = drop-down lists -radio_buttons = radio buttons \ No newline at end of file +drop_down_lists = Drop-down lists +radio_buttons = Radio buttons +open_data_entry_form_after_enrolment = Open data entry form after enrolment +report_date_to_use = Report Date to use +the_properties_to_open_data_entry_form_after_enrolment_is_active_in_the_stage = The properties to open data entry form after enrolment is active in the stage \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addProgramStageForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addProgramStageForm.vm 2013-09-16 09:47:59 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addProgramStageForm.vm 2013-09-19 08:26:17 +0000 @@ -67,6 +67,42 @@ + #set($openAfterEnrollment = '' ) + #foreach($ps in $program.programStages ) + #if( $ps.openAfterEnrollment=='true') + #set($openAfterEnrollment = $ps.displayName ) + #end + #end + + #if($openAfterEnrollment!='' ) + + + + + #end + + + + + + + + + + + + + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programStage.js' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programStage.js 2013-09-16 09:47:59 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programStage.js 2013-09-19 08:26:17 +0000 @@ -93,6 +93,11 @@ var allowGenerateNextVisit = ( json.programStage.allowGenerateNextVisit == 'true') ? i18n_yes : i18n_no; setInnerHTML( 'allowGenerateNextVisitField', allowGenerateNextVisit ); + var openAfterEnrollment = ( json.programStage.openAfterEnrollment == 'true') ? i18n_yes : i18n_no; + setInnerHTML( 'openAfterEnrollmentField', openAfterEnrollment ); + + setInnerHTML( 'reportDateToUseField', json.programStage.reportDateToUse ); + var templateMessage = ""; for(var i in json.programStage.patientReminders){ var index = eval(i) + 1; @@ -451,3 +456,13 @@ daysAllowedSendMessage.attr("realvalue", time * eval(daysAllowedSendMessage).val()); var aasdf= 0; } + +function openAfterEnrollmentOnchange() +{ + if(byId('openAfterEnrollment').checked){ + enable('reportDateToUse'); + } + else{ + disable('reportDateToUse'); + } +} === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/programList.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/programList.vm 2013-09-18 15:34:38 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/programList.vm 2013-09-19 08:26:17 +0000 @@ -46,9 +46,9 @@ #end #if( $auth.hasAccess( "dhis-web-maintenance-patient", "programIndicator" ) && $program.type !='3' ) - + #else - + #end #if ( $security.canManage( $program ) ) === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/programStage.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/programStage.vm 2013-09-12 05:49:31 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/programStage.vm 2013-09-19 08:26:17 +0000 @@ -73,6 +73,8 @@




+


+



=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramStageForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramStageForm.vm 2013-09-16 09:47:59 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramStageForm.vm 2013-09-19 08:26:17 +0000 @@ -69,6 +69,43 @@ + #set($openAfterEnrollment = '' ) + #foreach($ps in $programStage.program.programStages ) + #if( $ps.openAfterEnrollment=='true' && $ps.id != $programStage.id ) + #set($openAfterEnrollment = $ps.displayName ) + #end + #end + + #if($openAfterEnrollment!='' ) + + + + + #end + + + + + + + + + + + + +
$i18n.getString( "form_details" )
$i18n.getString('the_properties_to_open_data_entry_form_after_enrolment_is_active_in_the_stage'): $openAfterEnrollment
+
+ +
$i18n.getString( "form_details" )
$i18n.getString('the_properties_to_open_data_entry_form_after_enrolment_is_active_in_the_stage'): $openAfterEnrollment
+ +