=== 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 2013-09-03 14:59:12 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/Program.java 2013-09-05 17:59:57 +0000 @@ -34,6 +34,7 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; + import org.apache.commons.lang.StringUtils; import org.hisp.dhis.common.BaseIdentifiableObject; import org.hisp.dhis.common.DxfNamespaces; @@ -46,6 +47,7 @@ import org.hisp.dhis.patient.PatientAttribute; import org.hisp.dhis.patient.PatientIdentifierType; import org.hisp.dhis.patient.PatientReminder; +import org.hisp.dhis.relationship.RelationshipType; import org.hisp.dhis.user.UserAuthorityGroup; import org.hisp.dhis.validation.ValidationCriteria; @@ -131,9 +133,17 @@ private Boolean useBirthDateAsEnrollmentDate; private Boolean selectEnrollmentDatesInFuture; - + private Boolean selectIncidentDatesInFuture; + private String relationshipText; + + private RelationshipType relationshipType; + + private Boolean relationshipFromA; + + private Program relatedProgram; + // ------------------------------------------------------------------------- // Constructors // ------------------------------------------------------------------------- @@ -588,4 +598,56 @@ this.selectIncidentDatesInFuture = selectIncidentDatesInFuture; } + @JsonProperty + @JsonView( { DetailedView.class, ExportView.class } ) + @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + public String getRelationshipText() + { + return relationshipText; + } + + public void setRelationshipText( String relationshipText ) + { + this.relationshipText = relationshipText; + } + + @JsonProperty + @JsonView( { DetailedView.class, ExportView.class } ) + @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + public RelationshipType getRelationshipType() + { + return relationshipType; + } + + public void setRelationshipType( RelationshipType relationshipType ) + { + this.relationshipType = relationshipType; + } + + @JsonProperty + @JsonView( { DetailedView.class, ExportView.class } ) + @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + public Program getRelatedProgram() + { + return relatedProgram; + } + + public void setRelatedProgram( Program relatedProgram ) + { + this.relatedProgram = relatedProgram; + } + + @JsonProperty + @JsonView( { DetailedView.class, ExportView.class } ) + @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + public Boolean getRelationshipFromA() + { + return relationshipFromA; + } + + public void setRelationshipFromA( Boolean relationshipFromA ) + { + this.relationshipFromA = relationshipFromA; + } + } === 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-02 21:20:47 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStage.java 2013-09-05 17:59:57 +0000 @@ -90,9 +90,7 @@ private Boolean displayGenerateEventBox = true; private Boolean captureCoordinates = false; - - private Boolean relatedPatient = false; - + private Boolean displayProvidedOtherFacility; private Boolean blockEntryForm = false; @@ -418,14 +416,4 @@ this.captureCoordinates = captureCoordinates; } - public Boolean getRelatedPatient() - { - return relatedPatient; - } - - public void setRelatedPatient( Boolean relatedPatient ) - { - this.relatedPatient = relatedPatient; - } - } === 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-03 14:59:12 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/startup/TableAlteror.java 2013-09-05 17:59:57 +0000 @@ -223,18 +223,16 @@ executeSql( "update program set useBirthDateAsIncidentDate = false where useBirthDateAsIncidentDate is null"); executeSql( "update program set useBirthDateAsEnrollmentDate = false where useBirthDateAsEnrollmentDate is null"); executeSql( "update program set selectEnrollmentDatesInFuture = false where selectEnrollmentDatesInFuture is null"); - executeSql( "update programstage set relatedPatient = false where relatedPatient is null"); + executeSql( " "); executeSql( "update validationcriteria set description = name where description is null or description='' "); executeSql( "update programstage set generatedByEnrollmentDate = false where generatedByEnrollmentDate is null "); executeSql( "update programstage set blockEntryForm = false where blockEntryForm is null "); executeSql( "update programstage set remindCompleted = false where remindCompleted is null "); executeSql( "update programstage set displayProvidedOtherFacility = false where displayProvidedOtherFacility is null "); - executeSql( "update programstage set selectIncidentDatesInFuture = false where selectIncidentDatesInFuture is null "); executeSql( "ALTER TABLE program DROP COLUMN generatedByEnrollmentDate" ); executeSql( "ALTER TABLE program DROP COLUMN blockEntryForm" ); executeSql( "ALTER TABLE program DROP COLUMN remindCompleted" ); executeSql( "ALTER TABLE program DROP COLUMN displayProvidedOtherFacility" ); - } // ------------------------------------------------------------------------- @@ -313,7 +311,6 @@ while ( inputMatcher.find() ) { String inputHTML = inputMatcher.group(); - inputHTML = inputHTML.replace( ">", "" ); // ----------------------------------------------------------------- // Get HTML input field code === 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 2013-09-03 14:59:12 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/Program.hbm.xml 2013-09-05 17:59:57 +0000 @@ -6,97 +6,112 @@ > - + - - - + + + &identifiableProperties; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + === 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-02 21:20:47 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStage.hbm.xml 2013-09-05 17:59:57 +0000 @@ -57,8 +57,6 @@ - - === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/ShowAddPatientFormAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/ShowAddPatientFormAction.java 2013-09-03 06:39:59 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/ShowAddPatientFormAction.java 2013-09-05 17:59:57 +0000 @@ -141,6 +141,25 @@ this.programId = programId; } + private Integer patientId; + + public void setPatientId( Integer patientId ) + { + this.patientId = patientId; + } + + public Integer getPatientId() + { + return patientId; + } + + private Integer relatedProgramId; + + public void setRelatedProgramId( Integer relatedProgramId ) + { + this.relatedProgramId = relatedProgramId; + } + private Collection healthWorkers; public Collection getHealthWorkers() @@ -211,6 +230,13 @@ return patientRegistrationForm; } + private Program relatedProgram; + + public Program getRelatedProgram() + { + return relatedProgram; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -278,6 +304,11 @@ orgunitCountIdentifier = generateOrgunitIdentifier( organisationUnit ); + if ( relatedProgramId != null ) + { + relatedProgram = programService.getProgram( relatedProgramId ); + } + return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/addPatientForm.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/addPatientForm.vm 2013-08-08 06:20:51 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/addPatientForm.vm 2013-09-05 17:59:57 +0000 @@ -10,7 +10,14 @@ ,errorElement:"span" ,submitHandler: function(form) { - validateAddPatient(isContinue); + #if($!relatedProgram) + var programId = getFieldValue("relatedProgramId"); + validateAddPatient(programId, true, isContinue); + #else + var programId = getFieldValue('programIdAddPatient'); + validateAddPatient(programId, false, isContinue); + #end + } ,beforeValidateHandler: function(form) { @@ -45,21 +52,37 @@
- - - + +#if($relatedProgram) + + + + +#else + + + +#end #parse( "/dhis-web-caseentry/patientForm.vm" )
+ #if($!relatedProgram) + + + #else + #end
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/dataEntryForm.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/dataEntryForm.vm 2013-09-02 19:05:50 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/dataEntryForm.vm 2013-09-05 17:59:57 +0000 @@ -125,10 +125,4 @@ disable('validateBtn'); } } - - #if($programStage.relatedPatient=='true') - setInnerHTML('patientRelatedStageSpan',"• " + i18n_add_patient_related_the_selected_event + ""); - #else - setInnerHTML('patientRelatedStageSpan','
 '); - #end === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/commons.js' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/commons.js 2013-09-03 14:59:12 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/commons.js 2013-09-05 17:59:57 +0000 @@ -1726,7 +1726,23 @@ { showById('programEnrollmentDiv'); var hasDataEntry = getFieldValue('hasDataEntry'); - var type = jQuery('#tb_'+programInstanceId).attr('programType'); + var type = jQuery( '#tb_' + programInstanceId ).attr('programType'); + + var program = jQuery( '#tr1_' + programInstanceId ) + var relationshipText=program.attr('relationshipText'); + var relatedProgramId=program.attr('relatedProgram'); + var patientId = getFieldValue('patientId'); + var selectedProgram = program.attr('programId'); + + if( relationshipText != "") + { + setInnerHTML('patientRelatedStageSpan',"• " + relationshipText + ""); + } + else + { + setInnerHTML('patientRelatedStageSpan',''); + } + if(type=='2'){ hideById('colorHelpLink'); hideById('programInstanceDiv'); === 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-08-27 08:54:26 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/patient.js 2013-09-05 17:59:57 +0000 @@ -65,7 +65,7 @@ removeItem( this.patientId, this.fullName, confirm_delete_patient, 'removePatient.action' ); }; - this.add = function(params,isContinue) + this.add = function( programId, related, params,isContinue) { $.ajax({ type: "POST", @@ -75,11 +75,28 @@ if(json.response=='success') { var patientId = json.message.split('_')[0]; - var programId = getFieldValue('programIdAddPatient'); var dateOfIncident = jQuery('#patientForm [id=dateOfIncident]').val(); var enrollmentDate = jQuery('#patientForm [id=enrollmentDate]').val(); - - if( getFieldValue('programIdAddPatient')!='' && enrollmentDate != '') + + var originalPatientId = getFieldValue('patientId'); + var relatedPatientId = patientId; + if(getFieldValue('relationshipFromA')=='false') + { + originalPatientId = patientId; + relatedPatientId = getFieldValue('patientId'); + } + var relatedPatientId = + jQuery.postJSON( "saveProgramEnrollment.action", + { + originalPatientId: originalPatientId, + relationshipTypeId: getFieldValue('relationshipTypeId'), + relatedPatientId: relatedPatientId + }, + function( json ) + { + }); + + if( programId !='' && enrollmentDate != '') { jQuery.postJSON( "saveProgramEnrollment.action", { @@ -199,24 +216,29 @@ // Add Patient // ----------------------------------------------------------------------------- -function addPatient( isContinue ) +function addPatient( programId, related, isContinue ) { var patient = new Patient(); - var params = 'programId=' + getFieldValue('programIdAddPatient') + '&' + getParamsForDiv('patientForm'); - patient.add(params); + var params = 'programId=' + programId + '&' + getParamsForDiv('patientForm'); + patient.add(programId,related,params); return false; } -function showAddPatientForm() +function showAddPatientForm( programId, patientId, relatedProgramId ) { hideById('listPatientDiv'); hideById('selectDiv'); hideById('searchDiv'); hideById('migrationPatientDiv'); + hideById('patientDashboard'); jQuery('#loaderDiv').show(); - jQuery('#editPatientDiv').load('showAddPatientForm.action?programId=' + getFieldValue('programIdAddPatient') - , function() + jQuery('#editPatientDiv').load('showAddPatientForm.action', + { + programId: programId, + patientId: patientId, + relatedProgramId: relatedProgramId + }, function() { showById('editPatientDiv'); jQuery('#loaderDiv').hide(); @@ -224,9 +246,9 @@ } -function validateAddPatient( isContinue ) +function validateAddPatient( programId, related, isContinue ) { - var params = "programId=" + getFieldValue('programIdAddPatient') + "&" + getParamsForDiv('patientForm'); + var params = "programId=" + programId + "&" + getParamsForDiv('patientForm'); $("#patientForm :input").attr("disabled", true); $("#patientForm").find("select").attr("disabled", true); $.ajax({ @@ -234,12 +256,12 @@ url: 'validatePatient.action', data: params, success: function(data){ - addValidationCompleted(data,isContinue); + addValidationCompleted( programId, related, data,isContinue); } }); } -function addValidationCompleted( data, isContinue ) +function addValidationCompleted( programId, related, data, isContinue ) { var type = jQuery(data).find('message').attr('type'); var message = jQuery(data).find('message').text(); @@ -247,7 +269,7 @@ if ( type == 'success' ) { removeDisabledIdentifier( ); - addPatient( isContinue ); + addPatient( programId, related, isContinue ); } else { @@ -269,6 +291,32 @@ } } +function addRelationship() +{ + jQuery('#loaderDiv').show(); + var params = getParamsForDiv('addRelationshipDiv'); + params += "&relationshipFromA=" + jQuery('#patientForm option:selected').attr("relationshipFromA"); + $.ajax({ + type: "POST", + url: 'addRelationshipPatient.action', + data: params, + success: function( json ) { + hideById('addRelationshipDiv'); + showById('selectDiv'); + showById('searchDiv'); + showById('listPatientDiv'); + jQuery('#loaderDiv').hide(); + + if( getFieldValue( 'isShowPatientList' ) == 'false' ){ + showRelationshipList( getFieldValue('relationshipId') ); + } + else{ + loadPatientList(); + } + }}); + return false; +} + // ---------------------------------------------------------------- // Click Back to main form === 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-08-01 07:29:25 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientDashboard.vm 2013-09-05 17:59:57 +0000 @@ -139,7 +139,13 @@ #set( $status = $programStageInstance.getEventStatus() ) #if( $status!=1 && $status!=5 && $flag=='false') $programInstance.program.displayName ($format.formatDate($programInstance.enrollmentDate)) @@ -148,7 +154,9 @@ #if($programInstance.program.type==1 && $programStageInstance) - + • $programStageInstance.programStage.displayName ($format.formatDate($programStageInstance.dueDate)) @@ -159,6 +167,10 @@ #if($flag=='false') $programInstance.program.displayName ($format.formatDate($programInstance.enrollmentDate)) === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/searchPatientCriteria.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/searchPatientCriteria.vm 2013-08-30 04:23:39 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/searchPatientCriteria.vm 2013-09-05 17:59:57 +0000 @@ -13,7 +13,7 @@ - + === 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 2013-09-03 14:59:12 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/AddProgramAction.java 2013-09-05 17:59:57 +0000 @@ -46,6 +46,8 @@ import org.hisp.dhis.program.ProgramService; import org.hisp.dhis.program.ProgramStage; import org.hisp.dhis.program.ProgramStageService; +import org.hisp.dhis.relationship.RelationshipType; +import org.hisp.dhis.relationship.RelationshipTypeService; import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.user.UserGroupService; @@ -108,6 +110,13 @@ this.userGroupService = userGroupService; } + private RelationshipTypeService relationshipTypeService; + + public void setRelationshipTypeService( RelationshipTypeService relationshipTypeService ) + { + this.relationshipTypeService = relationshipTypeService; + } + // ------------------------------------------------------------------------- // Input/Output // ------------------------------------------------------------------------- @@ -259,6 +268,34 @@ this.selectIncidentDatesInFuture = selectIncidentDatesInFuture; } + private String relationshipText; + + public void setRelationshipText( String relationshipText ) + { + this.relationshipText = relationshipText; + } + + private Integer relationshipTypeId; + + public void setRelationshipTypeId( Integer relationshipTypeId ) + { + this.relationshipTypeId = relationshipTypeId; + } + + private Integer relatedProgramId; + + public void setRelatedProgramId( Integer relatedProgramId ) + { + this.relatedProgramId = relatedProgramId; + } + + private Boolean relationshipFromA; + + public void setRelationshipFromA( Boolean relationshipFromA ) + { + this.relationshipFromA = relationshipFromA; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -300,6 +337,20 @@ program.setIgnoreOverdueEvents( false ); } + if ( relatedProgramId != null ) + { + Program relatedProgram = programService.getProgram( relatedProgramId ); + program.setRelatedProgram( relatedProgram ); + } + + if ( relationshipTypeId != null ) + { + RelationshipType relationshipType = relationshipTypeService.getRelationshipType( relationshipTypeId ); + program.setRelationshipType( relationshipType ); + } + program.setRelationshipFromA( relationshipFromA );; + program.setRelationshipText( relationshipText ); + List identifierTypes = new ArrayList(); List patientAttributes = new ArrayList(); int index = 0; === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/ShowAddProgramFormAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/ShowAddProgramFormAction.java 2013-08-23 16:05:01 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/ShowAddProgramFormAction.java 2013-09-05 17:59:57 +0000 @@ -30,14 +30,18 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.List; +import org.hisp.dhis.common.comparator.IdentifiableObjectNameComparator; import org.hisp.dhis.patient.PatientAttribute; import org.hisp.dhis.patient.PatientAttributeService; import org.hisp.dhis.patient.PatientIdentifierType; import org.hisp.dhis.patient.PatientIdentifierTypeService; import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramService; +import org.hisp.dhis.relationship.RelationshipType; +import org.hisp.dhis.relationship.RelationshipTypeService; import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.user.UserGroupService; @@ -74,14 +78,21 @@ { this.patientAttributeService = patientAttributeService; } - + private UserGroupService userGroupService; - + public void setUserGroupService( UserGroupService userGroupService ) { this.userGroupService = userGroupService; } - + + private RelationshipTypeService relationshipTypeService; + + public void setRelationshipTypeService( RelationshipTypeService relationshipTypeService ) + { + this.relationshipTypeService = relationshipTypeService; + } + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -99,14 +110,28 @@ { return availableAttributes; } - + private List userGroups; - + public List getUserGroups() { return userGroups; } + private List relationshipTypes; + + public List getRelationshipTypes() + { + return relationshipTypes; + } + + private List programs; + + public List getPrograms() + { + return programs; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -117,16 +142,20 @@ availableAttributes = patientAttributeService.getAllPatientAttributes(); - Collection programs = programService.getAllPrograms(); - + programs = new ArrayList( programService.getAllPrograms() ); + Collections.sort( programs, IdentifiableObjectNameComparator.INSTANCE ); + for ( Program program : programs ) { availableIdentifierTypes.removeAll( program.getPatientIdentifierTypes() ); availableAttributes.removeAll( program.getPatientAttributes() ); } - + userGroups = new ArrayList( userGroupService.getAllUserGroups() ); + relationshipTypes = new ArrayList(relationshipTypeService.getAllRelationshipTypes()); + Collections.sort( relationshipTypes, IdentifiableObjectNameComparator.INSTANCE ); + return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/ShowUpdateProgramFormAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/ShowUpdateProgramFormAction.java 2013-08-23 16:05:01 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/ShowUpdateProgramFormAction.java 2013-09-05 17:59:57 +0000 @@ -30,9 +30,11 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.List; +import org.hisp.dhis.common.comparator.IdentifiableObjectNameComparator; import org.hisp.dhis.organisationunit.OrganisationUnitGroup; import org.hisp.dhis.organisationunit.OrganisationUnitLevel; import org.hisp.dhis.patient.PatientAttribute; @@ -41,6 +43,8 @@ import org.hisp.dhis.patient.PatientIdentifierTypeService; import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramService; +import org.hisp.dhis.relationship.RelationshipType; +import org.hisp.dhis.relationship.RelationshipTypeService; import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.user.UserGroupService; @@ -77,14 +81,21 @@ { this.patientAttributeService = patientAttributeService; } - + private UserGroupService userGroupService; - + public void setUserGroupService( UserGroupService userGroupService ) { this.userGroupService = userGroupService; } - + + private RelationshipTypeService relationshipTypeService; + + public void setRelationshipTypeService( RelationshipTypeService relationshipTypeService ) + { + this.relationshipTypeService = relationshipTypeService; + } + // ------------------------------------------------------------------------- // Input/Output // ------------------------------------------------------------------------- @@ -159,7 +170,7 @@ { return availableAttributes; } - + private List userGroups; public List getUserGroups() @@ -167,6 +178,20 @@ return userGroups; } + private List relationshipTypes; + + public List getRelationshipTypes() + { + return relationshipTypes; + } + + private List programs; + + public List getPrograms() + { + return programs; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -180,16 +205,23 @@ availableAttributes = patientAttributeService.getAllPatientAttributes(); - Collection programs = programService.getAllPrograms(); + programs = new ArrayList( programService.getAllPrograms() ); for ( Program program : programs ) { - availableIdentifierTypes.removeAll( new HashSet( program.getPatientIdentifierTypes() ) ); - availableAttributes.removeAll( new HashSet( program.getPatientAttributes() ) ); + availableIdentifierTypes + .removeAll( new HashSet( program.getPatientIdentifierTypes() ) ); + availableAttributes.removeAll( new HashSet( program.getPatientAttributes() ) ); } - + userGroups = new ArrayList( userGroupService.getAllUserGroups() ); - + + programs.remove( program ); + Collections.sort( programs, IdentifiableObjectNameComparator.INSTANCE ); + + relationshipTypes = new ArrayList( relationshipTypeService.getAllRelationshipTypes() ); + Collections.sort( relationshipTypes, IdentifiableObjectNameComparator.INSTANCE ); + 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 2013-09-03 14:59:12 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/UpdateProgramAction.java 2013-09-05 17:59:57 +0000 @@ -41,6 +41,8 @@ import org.hisp.dhis.patient.PatientReminder; import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramService; +import org.hisp.dhis.relationship.RelationshipType; +import org.hisp.dhis.relationship.RelationshipTypeService; import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.user.UserGroupService; @@ -85,6 +87,13 @@ this.userGroupService = userGroupService; } + private RelationshipTypeService relationshipTypeService; + + public void setRelationshipTypeService( RelationshipTypeService relationshipTypeService ) + { + this.relationshipTypeService = relationshipTypeService; + } + // ------------------------------------------------------------------------- // Input/Output // ------------------------------------------------------------------------- @@ -283,6 +292,34 @@ this.selectIncidentDatesInFuture = selectIncidentDatesInFuture; } + private String relationshipText; + + public void setRelationshipText( String relationshipText ) + { + this.relationshipText = relationshipText; + } + + private Integer relationshipTypeId; + + public void setRelationshipTypeId( Integer relationshipTypeId ) + { + this.relationshipTypeId = relationshipTypeId; + } + + private Boolean relationshipFromA; + + public void setRelationshipFromA( Boolean relationshipFromA ) + { + this.relationshipFromA = relationshipFromA; + } + + private Integer relatedProgramId; + + public void setRelatedProgramId( Integer relatedProgramId ) + { + this.relatedProgramId = relatedProgramId; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -326,6 +363,20 @@ program.setIgnoreOverdueEvents( false ); } + if ( relatedProgramId != null ) + { + Program relatedProgram = programService.getProgram( relatedProgramId ); + program.setRelatedProgram( relatedProgram ); + } + + if ( relationshipTypeId != null ) + { + RelationshipType relationshipType = relationshipTypeService.getRelationshipType( relationshipTypeId ); + program.setRelationshipType( relationshipType ); + } + program.setRelationshipFromA( relationshipFromA ); + program.setRelationshipText( relationshipText ); + List identifierTypes = new ArrayList(); List patientAttributes = new ArrayList(); int index = 0; @@ -374,6 +425,13 @@ { reminder.setUserGroup( null ); } + + if ( relatedProgramId != null ) + { + Program relatedProgram = programService.getProgram( relatedProgramId ); + program.setRelatedProgram( relatedProgram ); + } + patientReminders.add( reminder ); } program.setPatientReminders( patientReminders ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/programstage/AddProgramStageAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/programstage/AddProgramStageAction.java 2013-09-02 21:20:47 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/programstage/AddProgramStageAction.java 2013-09-05 17:59:57 +0000 @@ -318,7 +318,6 @@ programStage.setValidCompleteOnly( validCompleteOnly ); programStage.setAutoGenerateEvent( autoGenerateEvent ); programStage.setCaptureCoordinates( captureCoordinates ); - programStage.setRelatedPatient( relatedPatient ); programStage.setDisplayProvidedOtherFacility( displayProvidedOtherFacility ); programStage.setBlockEntryForm( blockEntryForm ); programStage.setRemindCompleted( remindCompleted ); === 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-04 08:56:15 +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-05 17:59:57 +0000 @@ -307,7 +307,6 @@ programStage.setIrregular( irregular ); programStage.setMinDaysFromStart( minDaysFromStart ); programStage.setDisplayGenerateEventBox( displayGenerateEventBox ); - programStage.setRelatedPatient( relatedPatient ); programStage.setDisplayProvidedOtherFacility( displayProvidedOtherFacility ); programStage.setBlockEntryForm( blockEntryForm ); programStage.setRemindCompleted( remindCompleted ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml 2013-08-21 12:29:12 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml 2013-09-05 17:59:57 +0000 @@ -181,6 +181,8 @@ ref="org.hisp.dhis.patient.PatientAttributeService" /> + + + + + $i18n.getString( "program_related" ) + + + + $i18n.getString("relationship_text") + + + + + $i18n.getString("relationship_type") + + + + + + + $i18n.getString("relationship_details") + + + + + + + $i18n.getString("program_related") + + + + + + $i18n.getString( "enrollment_details" ) === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/program.js' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/program.js 2013-09-03 14:59:12 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/program.js 2013-09-05 17:59:57 +0000 @@ -60,6 +60,21 @@ removeItem( programId, name, i18n_confirm_delete, 'removeProgram.action' ); } +function relationshipTypeOnchange() +{ + clearListById( 'relationshipSide' ); + var relationshipType = jQuery('#relationshipTypeId option:selected'); + if( relationshipType.val() != "") + { + var aIsToB = relationshipType.attr('aIsToB'); + var bIsToA = relationshipType.attr('bIsToA'); + + var relationshipSide = jQuery("#relationshipFromA"); + relationshipSide.append( '' ); + relationshipSide.append( '' ); + } +} + function programOnChange() { var type = getFieldValue('type'); === 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 2013-09-03 14:59:12 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramForm.vm 2013-09-05 17:59:57 +0000 @@ -148,6 +148,52 @@ + $i18n.getString( "program_related" ) + + + + $i18n.getString("relationship_text") + + + + + $i18n.getString("relationship") + + + + + + + $i18n.getString("relationship_details") + + + + + + + $i18n.getString("program_related") + + + + + + $i18n.getString( "enrollment_details" )