=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/Patient.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/Patient.java 2010-10-25 17:44:00 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/Patient.java 2010-10-26 08:15:37 +0000 @@ -44,15 +44,14 @@ implements Serializable { public static final String MALE = "M"; - public static final String FEMALE = "F"; + public static final char DOB_TYPE_VERIFIED = 'V'; - public static final char DOB_TYPE_DECLARED = 'D'; - public static final char DOB_TYPE_APPROXIATED = 'A'; + private Integer id; private String firstName; @@ -282,16 +281,6 @@ return registrationDate; } - // public Set getAttributes() - // { - // return attributes; - // } - // - // public void setAttributes( Set attributes ) - // { - // this.attributes = attributes; - // } - public void setRepresentative( Patient representative ) { this.representative = representative; === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/Program.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/Program.java 2010-10-25 17:44:00 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/Program.java 2010-10-26 08:15:37 +0000 @@ -70,6 +70,10 @@ private Set patientValidationCriteria = new HashSet(); + private Integer minDaysAllowedInputData; + + private Integer maxDaysAllowedInputData; + // ------------------------------------------------------------------------- // Constructors // ------------------------------------------------------------------------- @@ -191,6 +195,26 @@ this.dateOfEnrollmentDescription = dateOfEnrollmentDescription; } + public Integer getMinDaysAllowedInputData() + { + return minDaysAllowedInputData; + } + + public void setMinDaysAllowedInputData( Integer minDaysAllowedInputData ) + { + this.minDaysAllowedInputData = minDaysAllowedInputData; + } + + public Integer getMaxDaysAllowedInputData() + { + return maxDaysAllowedInputData; + } + + public void setMaxDaysAllowedInputData( Integer maxDaysAllowedInputData ) + { + this.maxDaysAllowedInputData = maxDaysAllowedInputData; + } + public String getDateOfIncidentDescription() { return dateOfIncidentDescription; === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/TableAlteror.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/TableAlteror.java 2010-10-25 17:44:00 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/TableAlteror.java 2010-10-26 08:15:37 +0000 @@ -31,6 +31,10 @@ updateDOBType(); executeSql("UPDATE patientidentifiertype SET type='" + PatientIdentifierType.VALUE_TYPE_TEXT +"' WHERE type IS NULL"); + + executeSql("UPDATE program SET minDaysAllowedInputData=0 WHERE minDaysAllowedInputData IS NULL"); + + executeSql("UPDATE program SET maxDaysAllowedInputData=0 WHERE maxDaysAllowedInputData IS NULL"); } private void updatePatientOrgunitAssociation(){ === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/Program.hbm.xml' --- dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/Program.hbm.xml 2010-05-17 02:59:28 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/Program.hbm.xml 2010-10-26 08:15:37 +0000 @@ -35,5 +35,9 @@ class="org.hisp.dhis.validation.ValidationCriteria" /> + + + + === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/SaveDateValueAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/SaveDateValueAction.java 2010-08-05 12:25:16 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/SaveDateValueAction.java 2010-10-26 08:15:37 +0000 @@ -35,6 +35,7 @@ import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; import org.hisp.dhis.dataelement.DataElementService; +import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.patient.Patient; @@ -146,6 +147,20 @@ this.statusCode = statusCode; } + private String message; + + public String getMessage() + { + return message; + } + + private I18n i18n; + + public void setI18n( I18n i18n ) + { + this.i18n = i18n; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -153,7 +168,6 @@ public String execute() throws Exception { - OrganisationUnit organisationUnit = selectedStateManager.getSelectedOrganisationUnit(); Patient patient = selectedStateManager.getSelectedPatient(); @@ -192,6 +206,55 @@ return SUCCESS; } + + // ----------------------------------------------------------------- + // Check inputed value : + // value >= DueDate - program.minDaysAllowedInputData + // value <= DueDate + program.maxDaysAllowedInputData + // ----------------------------------------------------------------- + + Date dueDate = programStageInstance.getDueDate(); + + if(dateValue.before(dueDate)){ + + long diffMillis = dueDate.getTime()-dateValue.getTime(); + + long diffMinDays = diffMillis/86400000; + + if(diffMinDays > program.getMinDaysAllowedInputData() ) + { + statusCode = 2; + + message = "- " + i18n.getString( "date_is_greater_then_or_equals_due_date_minus_no_min_days" ) + " " + + " ( " + i18n.getString( "min_days") + " : ( " + program.getMinDaysAllowedInputData() + i18n.getString("days") + " )" + + "\n" + + "- " + i18n.getString( "date_is_less_then_or_equals_plus_no_max_days" ) + " " + + " ( "+ i18n.getString( "max_days") + " : " + program.getMaxDaysAllowedInputData() + i18n.getString("days") + " )"; + + + return SUCCESS; + } + + }else{ + + long diffMillis = dateValue.getTime() - dueDate.getTime(); + + long diffMaxDays = diffMillis/86400000; + + if(diffMaxDays > program.getMaxDaysAllowedInputData() ) + { + statusCode = 2; + + message = "- " + i18n.getString( "date_is_greater_then_or_equals_due_date_minus_no_min_days" ) + " " + + " ( " + i18n.getString( "min_days") + " : ( " + program.getMinDaysAllowedInputData() + i18n.getString("days") + " )" + + "\n" + + "- " + i18n.getString( "date_is_less_then_or_equals_plus_no_max_days" ) + " " + + " ( "+ i18n.getString( "max_days") + " : " + program.getMaxDaysAllowedInputData() + i18n.getString("days") + " )"; + + return SUCCESS; + } + } + } if ( programStageInstance.getExecutionDate() == null ) === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties 2010-10-14 08:54:26 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties 2010-10-26 08:15:37 +0000 @@ -457,4 +457,9 @@ from = From to = To ga_orgunit = OrganisationUnit -ga_facilityby = OrganisationUnit By \ No newline at end of file +ga_facilityby = OrganisationUnit By +date_is_greater_then_or_equals_due_date_minus_no_min_days = Date inputed is greater then or equals [ Due Date - Number of min days allowed to input data ] +date_is_less_then_or_equals_plus_no_max_days = Date inputed is less then or equals [ Due Date + Number of max days allowed to input data ] +min_days = Min days +max_days = Max days +days = days === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml 2010-09-21 12:42:34 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml 2010-10-26 08:15:37 +0000 @@ -110,7 +110,7 @@ - status.vm + status.vm plainTextError === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/dataEntry.js' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/dataEntry.js 2010-09-01 16:55:23 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/dataEntry.js 2010-10-26 08:15:37 +0000 @@ -265,6 +265,11 @@ markValue( resultColor ); } } + else if(code == 2) + { + markValue( ERROR ); + window.alert( i18n_invalid_date + ":\n" + rootElement.getElementsByTagName( 'message' )[0].firstChild.nodeValue ); + } else { if(value != "") === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/status.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/status.vm 2010-05-17 02:59:28 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/status.vm 2010-10-26 08:15:37 +0000 @@ -5,4 +5,5 @@ $validation.description #end + $message === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/AddProgramAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/AddProgramAction.java 2010-09-25 10:03:31 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/AddProgramAction.java 2010-10-26 08:15:37 +0000 @@ -66,30 +66,44 @@ public void setDescription( String description ) { this.description = description; - } - + } + /** - * Description of Date of Enrollment - * This description is differ from each program + * Description of Date of Enrollment This description is differ from each + * program */ private String dateOfEnrollmentDescription; - + public void setDateOfEnrollmentDescription( String dateOfEnrollmentDescription ) { this.dateOfEnrollmentDescription = dateOfEnrollmentDescription; } - + /** - * Description of Date of Incident - * This description is differ from each program + * Description of Date of Incident This description is differ from each + * program */ private String dateOfIncidentDescription; - + public void setDateOfIncidentDescription( String dateOfIncidentDescription ) { this.dateOfIncidentDescription = dateOfIncidentDescription; } + private Integer minDaysAllowedInputData; + + public void setMinDaysAllowedInputData( Integer minDaysAllowedInputData ) + { + this.minDaysAllowedInputData = minDaysAllowedInputData; + } + + private Integer maxDaysAllowedInputData; + + public void setMaxDaysAllowedInputData( Integer maxDaysAllowedInputData ) + { + this.maxDaysAllowedInputData = maxDaysAllowedInputData; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -97,15 +111,15 @@ public String execute() throws Exception { + Program program = new Program(); - Program program = new Program(); - program.setName( name ); program.setDescription( description ); program.setDateOfEnrollmentDescription( dateOfEnrollmentDescription ); program.setDateOfIncidentDescription( dateOfIncidentDescription ); + program.setMinDaysAllowedInputData( minDaysAllowedInputData ); + program.setMaxDaysAllowedInputData( maxDaysAllowedInputData ); - programService.saveProgram( program ); return SUCCESS; === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/UpdateProgramAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/UpdateProgramAction.java 2010-09-25 10:03:31 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/UpdateProgramAction.java 2010-10-26 08:15:37 +0000 @@ -73,29 +73,44 @@ public void setDescription( String description ) { this.description = description; - } + } /** - * Description of Date of Enrollment - * This description is differ from each program + * Description of Date of Enrollment This description is differ from each + * program */ private String dateOfEnrollmentDescription; - + public void setDateOfEnrollmentDescription( String dateOfEnrollmentDescription ) { this.dateOfEnrollmentDescription = dateOfEnrollmentDescription; } - + /** - * Description of Date of Incident - * This description is differ from each program + * Description of Date of Incident This description is differ from each + * program */ private String dateOfIncidentDescription; - + public void setDateOfIncidentDescription( String dateOfIncidentDescription ) { this.dateOfIncidentDescription = dateOfIncidentDescription; } + + private Integer minDaysAllowedInputData; + + public void setMinDaysAllowedInputData( Integer minDaysAllowedInputData ) + { + this.minDaysAllowedInputData = minDaysAllowedInputData; + } + + private Integer maxDaysAllowedInputData; + + public void setMaxDaysAllowedInputData( Integer maxDaysAllowedInputData ) + { + this.maxDaysAllowedInputData = maxDaysAllowedInputData; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -103,13 +118,15 @@ public String execute() throws Exception { - Program program = programService.getProgram( id ); - + Program program = programService.getProgram( id ); + program.setName( name ); program.setDescription( description ); program.setDateOfEnrollmentDescription( dateOfEnrollmentDescription ); program.setDateOfIncidentDescription( dateOfIncidentDescription ); - + program.setMinDaysAllowedInputData( minDaysAllowedInputData ); + program.setMaxDaysAllowedInputData( maxDaysAllowedInputData ); + programService.updateProgram( program ); return SUCCESS; === 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 2010-10-25 17:44:00 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties 2010-10-26 08:15:37 +0000 @@ -411,4 +411,7 @@ please_verify_birthday = Please verify the birthday. state_format = State Format no_of_char = Number of characters -letter = Letter \ No newline at end of file +letter = Letter +date_of_incident_invalid = Date of incident is invalid. +no_min_days_allowed_input_data = Number of min days allowed to input data +no_max_days_allowed_input_data = Number of max days allowed to input data \ 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/addProgramForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addProgramForm.vm 2010-09-25 10:03:31 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addProgramForm.vm 2010-10-26 08:15:37 +0000 @@ -36,7 +36,22 @@ - + + + + + + + + + + + + + + + +

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramForm.vm 2010-09-25 10:03:31 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramForm.vm 2010-10-26 08:15:37 +0000 @@ -44,7 +44,19 @@ - + + + + + + + + + + + + +