=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientReminder.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientReminder.java 2013-08-23 15:56:19 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientReminder.java 2013-09-10 04:51:49 +0000 @@ -66,6 +66,10 @@ public static final int SEND_WHEN_TO_C0MPLETED_EVENT = 2; public static final int SEND_WHEN_TO_C0MPLETED_PROGRAM = 3; + public static final int MESSAGE_TYPE_DIRECT_SMS = 1; + public static final int MESSAGE_TYPE_DHIS_MESSAGE = 2; + public static final int MESSAGE_TYPE_BOTH = 3; + private int id; private String name; @@ -80,6 +84,8 @@ private Integer whenToSend; + private Integer messageType; + private UserGroup userGroup; // ------------------------------------------------------------------------- @@ -182,4 +188,14 @@ { this.userGroup = userGroup; } + + public Integer getMessageType() + { + return messageType; + } + + public void setMessageType( Integer messageType ) + { + this.messageType = messageType; + } } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientReminderService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientReminderService.java 2013-08-23 15:56:19 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientReminderService.java 2013-09-10 04:51:49 +0000 @@ -33,6 +33,7 @@ import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.program.ProgramInstance; import org.hisp.dhis.program.ProgramStageInstance; +import org.hisp.dhis.user.User; /** * @author Chau Thu Tran @@ -43,7 +44,10 @@ { String getMessageFromTemplate( PatientReminder patientReminder, ProgramInstance programInstance, I18nFormat format ); - String getMessageFromTemplate( PatientReminder patientReminder, ProgramStageInstance programStageInstance, I18nFormat format ); - + String getMessageFromTemplate( PatientReminder patientReminder, ProgramStageInstance programStageInstance, + I18nFormat format ); + Set getPhonenumbers( PatientReminder patientReminder, Patient patient ); + + Set getUsers( PatientReminder patientReminder, Patient patient ); } === 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-03 15:04:30 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramInstance.java 2013-09-10 04:51:49 +0000 @@ -37,6 +37,7 @@ import org.hisp.dhis.common.DxfNamespaces; import org.hisp.dhis.common.view.DetailedView; import org.hisp.dhis.common.view.ExportView; +import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patientcomment.PatientComment; import org.hisp.dhis.sms.outbound.OutboundSms; @@ -52,10 +53,13 @@ * @version $Id$ */ @JacksonXmlRootElement( localName = "programInstance", namespace = DxfNamespaces.DXF_2_0 ) -public class ProgramInstance extends BaseIdentifiableObject +public class ProgramInstance + extends BaseIdentifiableObject { public static int STATUS_ACTIVE = 0; + public static int STATUS_COMPLETED = 1; + public static int STATUS_CANCELLED = 2; /** @@ -81,6 +85,8 @@ private List outboundSms; + private List messageConversations; + private Boolean followup; private PatientComment patientComment; @@ -119,10 +125,10 @@ final int prime = 31; int result = 1; - result = prime * result + ( ( dateOfIncident == null) ? 0 : dateOfIncident.hashCode() ); - result = prime * result + ( ( enrollmentDate == null) ? 0 : enrollmentDate.hashCode() ); - result = prime * result + ( ( patient == null) ? 0 : patient.hashCode() ); - result = prime * result + ( ( program == null) ? 0 : program.hashCode() ); + result = prime * result + ((dateOfIncident == null) ? 0 : dateOfIncident.hashCode()); + result = prime * result + ((enrollmentDate == null) ? 0 : enrollmentDate.hashCode()); + result = prime * result + ((patient == null) ? 0 : patient.hashCode()); + result = prime * result + ((program == null) ? 0 : program.hashCode()); return result; } @@ -373,6 +379,16 @@ this.patientComment = patientComment; } + public List getMessageConversations() + { + return messageConversations; + } + + public void setMessageConversations( List messageConversations ) + { + this.messageConversations = messageConversations; + } + // ------------------------------------------------------------------------- // Convenience method // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramInstanceService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramInstanceService.java 2013-08-23 15:56:19 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramInstanceService.java 2013-09-10 04:51:49 +0000 @@ -35,6 +35,7 @@ import org.hisp.dhis.common.Grid; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.sms.outbound.OutboundSms; @@ -104,4 +105,7 @@ Collection sendMessages( ProgramInstance programInstance, int status, I18nFormat format ); + Collection sendMessageConversations( ProgramInstance programInstance, + int sendWhenToC0mpletedEvent, I18nFormat format ); + } === 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 2013-09-06 08:24:36 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstance.java 2013-09-10 04:51:49 +0000 @@ -29,6 +29,7 @@ */ import org.hisp.dhis.common.BaseIdentifiableObject; +import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patientcomment.PatientComment; @@ -74,6 +75,8 @@ private List outboundSms; + private List messageConversations; + private PatientComment patientComment; private Integer status; @@ -306,6 +309,16 @@ this.patients = patients; } + public List getMessageConversations() + { + return messageConversations; + } + + public void setMessageConversations( List messageConversations ) + { + this.messageConversations = messageConversations; + } + public Integer getEventStatus() { if ( this.status != null ) === 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 2013-09-02 10:37:36 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java 2013-09-10 04:51:49 +0000 @@ -36,6 +36,7 @@ import org.hisp.dhis.common.Grid; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patientreport.TabularReportColumn; @@ -64,9 +65,11 @@ Collection getProgramStageInstances( ProgramStage programStage ); - Collection getProgramStageInstances( ProgramStage programStage, OrganisationUnit organisationUnit); + Collection getProgramStageInstances( ProgramStage programStage, + OrganisationUnit organisationUnit ); - Collection getProgramStageInstances( ProgramStage programStage, OrganisationUnit organisationUnit, Date start, Date end); + Collection getProgramStageInstances( ProgramStage programStage, + OrganisationUnit organisationUnit, Date start, Date end ); Collection getProgramStageInstances( Collection programInstances ); @@ -145,4 +148,7 @@ Collection getProgramStageInstance( Patient patient ); + Collection sendMessageConversations( ProgramStageInstance programStageInstance, int status, + I18nFormat format ); + } === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientReminderService.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientReminderService.java 2013-09-04 10:01:16 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientReminderService.java 2013-09-10 04:51:49 +0000 @@ -163,4 +163,31 @@ } return phoneNumbers; } + + public Set getUsers( PatientReminder patientReminder, Patient patient ) + { + Set users = new HashSet(); + + switch ( patientReminder.getSendTo() ) + { + case PatientReminder.SEND_TO_ALL_USERS_IN_ORGUGNIT_REGISTERED: + users.addAll( patient.getOrganisationUnit().getUsers() ); + break; + case PatientReminder.SEND_TO_HEALTH_WORKER: + if ( patient.getHealthWorker() != null && patient.getHealthWorker().getPhoneNumber() != null ) + { + users.add( patient.getHealthWorker() ); + } + break; + case PatientReminder.SEND_TO_USER_GROUP: + if ( patientReminder.getUserGroup().getMembers().size() > 0 ) + { + users.addAll( patientReminder.getUserGroup().getMembers() ); + } + break; + default: + break; + } + return users; + } } === 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-08 09:55:20 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/startup/TableAlteror.java 2013-09-10 04:51:49 +0000 @@ -233,6 +233,8 @@ executeSql( "ALTER TABLE program DROP COLUMN remindCompleted" ); executeSql( "ALTER TABLE program DROP COLUMN displayProvidedOtherFacility" ); executeSql( "UPDATE programstage_dataelements SET displayAsRadioButton=false WHERE displayAsRadioButton is null" ); + executeSql( "UPDATE patientreminder SET messageType=1 WHERE messageType 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-09 14:47:21 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java 2013-09-10 04:51:49 +0000 @@ -41,6 +41,8 @@ import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.message.MessageConversation; +import org.hisp.dhis.message.MessageService; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patient.PatientAttribute; @@ -121,6 +123,13 @@ this.patientReminderService = patientReminderService; } + private MessageService messageService; + + public void setMessageService( MessageService messageService ) + { + this.messageService = messageService; + } + // ------------------------------------------------------------------------- // Implementation methods // ------------------------------------------------------------------------- @@ -477,6 +486,18 @@ + format.formatDateTime( messasge.getDate() ) ); grid.addValue( messasge.getMessage() ); } + + // Get message conversations of the program-instance + + List conversations = programInstance.getMessageConversations(); + + for ( MessageConversation conversation : conversations ) + { + grid.addRow(); + grid.addValue( i18n.getString( "message" ) + " " + i18n.getString( "on" ) + " " + + format.formatDateTime( conversation.getLastUpdated()) ); + grid.addValue( conversation.getMessages().get( 0 ) ); + } // Program-instance attributes @@ -528,7 +549,10 @@ Collection reminders = programInstance.getProgram().getPatientReminders(); for ( PatientReminder rm : reminders ) { - if ( rm != null && rm.getWhenToSend() != null && rm.getWhenToSend() == status ) + if ( rm != null + && rm.getWhenToSend() != null + && rm.getWhenToSend() == status + && (rm.getMessageType() == PatientReminder.MESSAGE_TYPE_DIRECT_SMS || rm.getMessageType() == PatientReminder.MESSAGE_TYPE_BOTH) ) { OutboundSms outboundSms = sendProgramMessage( rm, programInstance, patient, format ); if ( outboundSms != null ) @@ -541,6 +565,30 @@ return outboundSmsList; } + @Override + public Collection sendMessageConversations( ProgramInstance programInstance, int status, + I18nFormat format ) + { + Collection messageConversations = new HashSet(); + + Collection reminders = programInstance.getProgram().getPatientReminders(); + for ( PatientReminder rm : reminders ) + { + if ( rm != null + && rm.getWhenToSend() != null + && rm.getWhenToSend() == status + && (rm.getMessageType() == PatientReminder.MESSAGE_TYPE_DHIS_MESSAGE || rm.getMessageType() == PatientReminder.MESSAGE_TYPE_BOTH) ) + { + int id = messageService.sendMessage( programInstance.getProgram().getDisplayName(), + patientReminderService.getMessageFromTemplate( rm, programInstance, format ), null, + patientReminderService.getUsers( rm, programInstance.getPatient() ), null, false, true ); + messageConversations.add( messageService.getMessageConversation( id ) ); + } + } + + return messageConversations; + } + // ------------------------------------------------------------------------- // Supportive methods // ------------------------------------------------------------------------- @@ -586,7 +634,7 @@ + format.formatDateTime( comment.getCreatedDate() ) ); grid.addValue( comment.getCommentText() ); } - + // SMS messages List messasges = programStageInstance.getOutboundSms(); === 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 2013-09-02 10:37:36 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java 2013-09-10 04:51:49 +0000 @@ -33,6 +33,8 @@ import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.message.MessageConversation; +import org.hisp.dhis.message.MessageService; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitLevel; import org.hisp.dhis.organisationunit.OrganisationUnitService; @@ -120,6 +122,13 @@ this.patientReminderService = patientReminderService; } + private MessageService messageService; + + public void setMessageService( MessageService messageService ) + { + this.messageService = messageService; + } + // ------------------------------------------------------------------------- // Implementation methods // ------------------------------------------------------------------------- @@ -161,13 +170,15 @@ } @Override - public Collection getProgramStageInstances( ProgramStage programStage, OrganisationUnit organisationUnit ) + public Collection getProgramStageInstances( ProgramStage programStage, + OrganisationUnit organisationUnit ) { return programStageInstanceStore.get( programStage, organisationUnit ); } @Override - public Collection getProgramStageInstances( ProgramStage programStage, OrganisationUnit organisationUnit, Date start, Date end ) + public Collection getProgramStageInstances( ProgramStage programStage, + OrganisationUnit organisationUnit, Date start, Date end ) { return programStageInstanceStore.get( programStage, organisationUnit, start, end, 0, Integer.MAX_VALUE ); } @@ -582,7 +593,10 @@ Collection reminders = programStageInstance.getProgramStage().getPatientReminders(); for ( PatientReminder rm : reminders ) { - if ( rm != null && rm.getWhenToSend() != null && rm.getWhenToSend() == status ) + if ( rm != null + && rm.getWhenToSend() != null + && rm.getWhenToSend() == status + && (rm.getMessageType() == PatientReminder.MESSAGE_TYPE_DIRECT_SMS || rm.getMessageType() == PatientReminder.MESSAGE_TYPE_BOTH) ) { OutboundSms outboundSms = sendEventMessage( rm, programStageInstance, patient, format ); if ( outboundSms != null ) @@ -595,6 +609,31 @@ return outboundSmsList; } + @Override + public Collection sendMessageConversations( ProgramStageInstance programStageInstance, + int status, I18nFormat format ) + { + Collection messageConversations = new HashSet(); + + Collection reminders = programStageInstance.getProgramStage().getPatientReminders(); + for ( PatientReminder rm : reminders ) + { + if ( rm != null + && rm.getWhenToSend() != null + && rm.getWhenToSend() == status + && (rm.getMessageType() == PatientReminder.MESSAGE_TYPE_DHIS_MESSAGE || rm.getMessageType() == PatientReminder.MESSAGE_TYPE_BOTH) ) + { + int id = messageService.sendMessage( programStageInstance.getProgramStage().getDisplayName(), + patientReminderService.getMessageFromTemplate( rm, programStageInstance, format ), null, + patientReminderService.getUsers( rm, programStageInstance.getProgramInstance().getPatient() ), + null, false, true ); + messageConversations.add( messageService.getMessageConversation( id ) ); + } + } + + return messageConversations; + } + public Collection getProgramStageInstance( Patient patient ) { return programStageInstanceStore.get( patient ); === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-patient/src/main/resources/META-INF/dhis/beans.xml 2013-08-22 12:09:00 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/META-INF/dhis/beans.xml 2013-09-10 04:51:49 +0000 @@ -194,6 +194,7 @@ + @@ -206,6 +207,7 @@ + @@ -416,7 +418,8 @@ class="org.hisp.dhis.patient.scheduling.SendScheduledMessageTask"> - + @@ -500,11 +503,13 @@ - + - + === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/patient/hibernate/PatientReminder.hbm.xml' --- dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/patient/hibernate/PatientReminder.hbm.xml 2013-07-19 06:04:09 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/patient/hibernate/PatientReminder.hbm.xml 2013-09-10 04:51:49 +0000 @@ -22,6 +22,8 @@ + + === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramInstance.hbm.xml' --- dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramInstance.hbm.xml 2013-08-29 11:59:39 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramInstance.hbm.xml 2013-09-10 04:51:49 +0000 @@ -10,11 +10,11 @@ - - - - - + + + + + @@ -43,8 +43,13 @@ - - + + + + + + - - - + + + + + + + === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/CompleteDataEntryAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/CompleteDataEntryAction.java 2013-09-04 03:23:44 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/CompleteDataEntryAction.java 2013-09-10 04:51:49 +0000 @@ -35,6 +35,7 @@ import java.util.Set; import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patient.PatientReminder; import org.hisp.dhis.patient.PatientService; @@ -146,7 +147,9 @@ programStageInstance.setCompletedDate( date ); programStageInstance.setCompletedUser( currentUserService.getCurrentUsername() ); - // Send message when to completed the event + // --------------------------------------------------------------------- + // Send sms-message when to completed the event + // --------------------------------------------------------------------- List psiOutboundSms = programStageInstance.getOutboundSms(); if ( psiOutboundSms == null ) @@ -157,8 +160,21 @@ psiOutboundSms.addAll( programStageInstanceService.sendMessages( programStageInstance, PatientReminder.SEND_WHEN_TO_C0MPLETED_EVENT, format ) ); + // --------------------------------------------------------------------- + // Send DHIS message when to completed the event + // --------------------------------------------------------------------- + + List psiMessageConversations = programStageInstance.getMessageConversations(); + if ( psiMessageConversations == null ) + { + psiMessageConversations = new ArrayList(); + } + + psiMessageConversations.addAll( programStageInstanceService.sendMessageConversations( programStageInstance, + PatientReminder.SEND_WHEN_TO_C0MPLETED_EVENT, format ) ); + programStageInstanceService.updateProgramStageInstance( programStageInstance ); - + // --------------------------------------------------------------------- // Check Completed status for all of ProgramStageInstance of // ProgramInstance @@ -181,6 +197,11 @@ programInstance.setStatus( ProgramInstance.STATUS_COMPLETED ); programInstance.setEndDate( new Date() ); + + // --------------------------------------------------------------------- + // Send sms-message when to completed the program + // --------------------------------------------------------------------- + List piOutboundSms = programInstance.getOutboundSms(); if ( piOutboundSms == null ) { @@ -190,6 +211,19 @@ piOutboundSms.addAll( programInstanceService.sendMessages( programInstance, PatientReminder.SEND_WHEN_TO_C0MPLETED_PROGRAM, format ) ); + // --------------------------------------------------------------------- + // Send DHIS message when to completed the program + // --------------------------------------------------------------------- + + List piMessageConversations = programInstance.getMessageConversations(); + if ( piMessageConversations == null ) + { + piMessageConversations = new ArrayList(); + } + + piMessageConversations.addAll( programInstanceService.sendMessageConversations( programInstance, + PatientReminder.SEND_WHEN_TO_C0MPLETED_PROGRAM, format ) ); + programInstanceService.updateProgramInstance( programInstance ); Program program = programInstance.getProgram(); === 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-02 21:20:47 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SaveProgramEnrollmentAction.java 2013-09-10 04:51:49 +0000 @@ -32,8 +32,10 @@ import java.util.Collection; import java.util.Date; import java.util.List; + import org.hisp.dhis.caseentry.state.SelectedStateManager; import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patient.PatientReminder; import org.hisp.dhis.patient.PatientService; @@ -225,7 +227,7 @@ Date dueDate = DateUtils .getDateAfterAddition( dateCreatedEvent, programStage.getMinDaysFromStart() ); - + if ( !program.getIgnoreOverdueEvents() || !(program.getIgnoreOverdueEvents() && dueDate.before( currentDate )) ) { @@ -251,7 +253,10 @@ } } + // ----------------------------------------------------------------- // send messages after enrollment program + // ----------------------------------------------------------------- + List outboundSms = programInstance.getOutboundSms(); if ( outboundSms == null ) { @@ -260,6 +265,20 @@ outboundSms.addAll( programInstanceService.sendMessages( programInstance, PatientReminder.SEND_WHEN_TO_EMROLLEMENT, format ) ); + + // ----------------------------------------------------------------- + // Send DHIS message when to completed the program + // ----------------------------------------------------------------- + + List piMessageConversations = programInstance.getMessageConversations(); + if ( piMessageConversations == null ) + { + piMessageConversations = new ArrayList(); + } + + piMessageConversations.addAll( programInstanceService.sendMessageConversations( programInstance, + PatientReminder.SEND_WHEN_TO_EMROLLEMENT, format ) ); + programInstanceService.updateProgramInstance( programInstance ); } else @@ -272,7 +291,7 @@ for ( ProgramStageInstance programStageInstance : programInstance.getProgramStageInstances() ) { if ( !programStageInstance.isCompleted() - || programStageInstance.getStatus() != ProgramStageInstance.SKIPPED_STATUS ) + || (programStageInstance.getStatus() != null && programStageInstance.getStatus() != ProgramStageInstance.SKIPPED_STATUS) ) { Date dueDate = DateUtils.getDateAfterAddition( format.parseDate( dateOfIncident ), programStageInstance.getProgramStage().getMinDaysFromStart() ); === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SetProgramInstanceStatusAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SetProgramInstanceStatusAction.java 2013-08-23 16:05:01 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SetProgramInstanceStatusAction.java 2013-09-10 04:51:49 +0000 @@ -32,11 +32,10 @@ import java.util.Calendar; import java.util.Collection; import java.util.Date; -import java.util.HashSet; import java.util.List; -import java.util.Set; import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patient.PatientReminder; import org.hisp.dhis.patient.PatientService; @@ -46,12 +45,7 @@ import org.hisp.dhis.program.ProgramInstanceService; import org.hisp.dhis.program.ProgramStageInstance; import org.hisp.dhis.program.ProgramStageInstanceService; -import org.hisp.dhis.sms.SmsSender; -import org.hisp.dhis.sms.SmsServiceException; import org.hisp.dhis.sms.outbound.OutboundSms; -import org.hisp.dhis.system.util.DateUtils; -import org.hisp.dhis.user.CurrentUserService; -import org.hisp.dhis.user.User; import com.opensymphony.xwork2.Action; @@ -87,20 +81,6 @@ this.programStageInstanceService = programStageInstanceService; } - private CurrentUserService currentUserService; - - public void setCurrentUserService( CurrentUserService currentUserService ) - { - this.currentUserService = currentUserService; - } - - private SmsSender smsSender; - - public void setSmsSender( SmsSender smsSender ) - { - this.smsSender = smsSender; - } - private I18nFormat format; public void setFormat( I18nFormat format ) @@ -153,7 +133,31 @@ if ( status == ProgramInstance.STATUS_COMPLETED ) { - sendSMSToCompletedProgram( programInstance ); + // --------------------------------------------------------------------- + // Send sms-message when to completed the program + // --------------------------------------------------------------------- + + List piOutboundSms = programInstance.getOutboundSms(); + if ( piOutboundSms == null ) + { + piOutboundSms = new ArrayList(); + } + + piOutboundSms.addAll( programInstanceService.sendMessages( programInstance, + PatientReminder.SEND_WHEN_TO_C0MPLETED_PROGRAM, format ) ); + + // ----------------------------------------------------------------- + // Send DHIS message when to completed the program + // ----------------------------------------------------------------- + + List piMessageConversations = programInstance.getMessageConversations(); + if ( piMessageConversations == null ) + { + piMessageConversations = new ArrayList(); + } + + piMessageConversations.addAll( programInstanceService.sendMessageConversations( programInstance, + PatientReminder.SEND_WHEN_TO_C0MPLETED_PROGRAM, format ) ); programInstance.setEndDate( new Date() ); if ( !program.getOnlyEnrollOnce() ) @@ -204,115 +208,4 @@ return SUCCESS; } - private void sendSMSToCompletedProgram( ProgramInstance programInstance ) - { - Patient patient = programInstance.getPatient(); - - if ( patient != null ) - { - Collection reminders = programInstance.getProgram().getPatientReminders(); - for ( PatientReminder rm : reminders ) - { - if ( rm.getWhenToSend() == PatientReminder.SEND_WHEN_TO_C0MPLETED_PROGRAM ) - { - sendProgramMessage( rm, programInstance, patient ); - } - } - } - } - - private void sendProgramMessage( PatientReminder reminder, ProgramInstance programInstance, Patient patient ) - { - Set phoneNumbers = new HashSet(); - - switch ( reminder.getSendTo() ) - { - case PatientReminder.SEND_TO_ALL_USERS_IN_ORGUGNIT_REGISTERED: - Collection users = patient.getOrganisationUnit().getUsers(); - for ( User user : users ) - { - if ( user.getPhoneNumber() != null && !user.getPhoneNumber().isEmpty() ) - { - phoneNumbers.add( user.getPhoneNumber() ); - } - } - break; - case PatientReminder.SEND_TO_HEALTH_WORKER: - if ( patient.getHealthWorker() != null && patient.getHealthWorker().getPhoneNumber() != null ) - { - phoneNumbers.add( patient.getHealthWorker().getPhoneNumber() ); - } - break; - case PatientReminder.SEND_TO_ORGUGNIT_REGISTERED: - if ( patient.getOrganisationUnit().getPhoneNumber() != null - && !patient.getOrganisationUnit().getPhoneNumber().isEmpty() ) - { - phoneNumbers.add( patient.getOrganisationUnit().getPhoneNumber() ); - } - break; - case PatientReminder.SEND_TO_USER_GROUP: - for ( User user : reminder.getUserGroup().getMembers() ) - { - if ( user.getPhoneNumber() != null && !user.getPhoneNumber().isEmpty() ) - { - phoneNumbers.add( user.getPhoneNumber() ); - } - } - break; - default: - if ( patient.getPhoneNumber() != null && !patient.getPhoneNumber().isEmpty() ) - { - String[] _phoneNumbers = patient.getPhoneNumber().split( ";" ); - for ( String phoneNumber : _phoneNumbers ) - { - phoneNumbers.add( phoneNumber ); - } - } - break; - } - - if ( phoneNumbers.size() > 0 ) - { - String msg = reminder.getTemplateMessage(); - - String patientName = patient.getFirstName(); - String organisationunitName = patient.getOrganisationUnit().getName(); - String programName = programInstance.getProgram().getName(); - String daysSinceEnrollementDate = DateUtils.daysBetween( new Date(), programInstance.getEnrollmentDate() ) - + ""; - String daysSinceIncidentDate = DateUtils.daysBetween( new Date(), programInstance.getDateOfIncident() ) - + ""; - String incidentDate = format.formatDate( programInstance.getDateOfIncident() ); - String erollmentDate = format.formatDate( programInstance.getEnrollmentDate() ); - - msg = msg.replace( PatientReminder.TEMPLATE_MESSSAGE_PATIENT_NAME, patientName ); - msg = msg.replace( PatientReminder.TEMPLATE_MESSSAGE_PROGRAM_NAME, programName ); - msg = msg.replace( PatientReminder.TEMPLATE_MESSSAGE_ORGUNIT_NAME, organisationunitName ); - msg = msg.replace( PatientReminder.TEMPLATE_MESSSAGE_INCIDENT_DATE, incidentDate ); - msg = msg.replace( PatientReminder.TEMPLATE_MESSSAGE_ENROLLMENT_DATE, erollmentDate ); - msg = msg.replace( PatientReminder.TEMPLATE_MESSSAGE_DAYS_SINCE_ENROLLMENT_DATE, daysSinceEnrollementDate ); - msg = msg.replace( PatientReminder.TEMPLATE_MESSSAGE_DAYS_SINCE_INCIDENT_DATE, daysSinceIncidentDate ); - - try - { - OutboundSms outboundSms = new OutboundSms(); - outboundSms.setMessage( msg ); - outboundSms.setRecipients( phoneNumbers ); - outboundSms.setSender( currentUserService.getCurrentUsername() ); - smsSender.sendMessage( outboundSms, null ); - List outboundSmsList = programInstance.getOutboundSms(); - if ( outboundSmsList == null ) - { - outboundSmsList = new ArrayList(); - } - outboundSmsList.add( outboundSms ); - programInstance.setOutboundSms( outboundSmsList ); - } - catch ( SmsServiceException e ) - { - e.printStackTrace(); - } - } - } - } === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/UpdatePatientAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/UpdatePatientAction.java 2013-08-23 16:05:01 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/UpdatePatientAction.java 2013-09-10 04:51:49 +0000 @@ -212,6 +212,10 @@ { patient.setHealthWorker( userService.getUser( healthWorker ) ); } + else + { + patient.setHealthWorker( null ); + } if ( birthDate != null || age != null ) { @@ -379,9 +383,9 @@ this.userService = userService; } - public void setHealthWorkerId( Integer healthWorkerId ) + public void setHealthWorker( Integer healthWorker ) { - this.healthWorker = healthWorkerId; + this.healthWorker = healthWorker; } public void setPatientIdentifierTypeService( PatientIdentifierTypeService patientIdentifierTypeService ) === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SetEventStatusAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SetEventStatusAction.java 2013-08-23 16:05:01 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SetEventStatusAction.java 2013-09-10 04:51:49 +0000 @@ -32,6 +32,7 @@ import java.util.List; import org.hisp.dhis.i18n.I18nFormat; +import org.hisp.dhis.message.MessageConversation; import org.hisp.dhis.patient.PatientReminder; import org.hisp.dhis.program.ProgramStageInstance; import org.hisp.dhis.program.ProgramStageInstanceService; @@ -100,7 +101,10 @@ programStageInstance.setCompleted( true ); programStageInstance.setStatus( null ); - // Send message when to completed the event + // ----------------------------------------------------------------- + // Send sms when to completed program + // ----------------------------------------------------------------- + List psiOutboundSms = programStageInstance.getOutboundSms(); if ( psiOutboundSms == null ) { @@ -108,6 +112,20 @@ } psiOutboundSms.addAll( programStageInstanceService.sendMessages( programStageInstance, PatientReminder.SEND_WHEN_TO_C0MPLETED_EVENT, format ) ); + + // ----------------------------------------------------------------- + // Send DHIS message when to completed the event + // ----------------------------------------------------------------- + + List psiMessageConversations = programStageInstance.getMessageConversations(); + if ( psiMessageConversations == null ) + { + psiMessageConversations = new ArrayList(); + } + + psiMessageConversations.addAll( programStageInstanceService.sendMessageConversations( programStageInstance, + PatientReminder.SEND_WHEN_TO_C0MPLETED_EVENT, format ) ); + break; case ProgramStageInstance.VISITED_STATUS: programStageInstance.setCompleted( false ); === 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 2013-09-07 21:25:35 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml 2013-09-10 04:51:49 +0000 @@ -705,8 +705,6 @@ - - $format.formatDateTime($!sms.date) $i18n.getString('all') $sms.sender - $i18n.getString('message') + $i18n.getString('sms') $sms.status $sms.message @@ -45,6 +45,20 @@ #set( $mark = !$mark ) + #end + #foreach( $messageConversation in $programInstance.messageConversations ) + + $format.formatDateTime($!messageConversation.lastMessage) + $i18n.getString('all') + $messageConversation.lastSender.username + $i18n.getString('message') + + $messageConversation.messages.get(0) + + $i18n.getString( 'remove' ) + + + #set( $mark = !$mark ) #end #foreach($programStageInstance in $programStageInstances) #foreach( $comment in $programStageInstance.patientComments ) @@ -78,6 +92,20 @@ #set( $mark = !$mark ) #end + #foreach( $messageConversation in $programStageInstance.messageConversations ) + + $format.formatDateTime($!messageConversation.lastMessage) + $programStageInstance.programStage.displayName + $messageConversation.lastSender.username + $i18n.getString('message') + + $messageConversation.messages.get(0) + + $i18n.getString( 'remove' ) + + + #set( $mark = !$mark ) + #end #end === 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-05 17:59:57 +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-10 04:51:49 +0000 @@ -254,6 +254,13 @@ this.whenToSend = whenToSend; } + private List messageType = new ArrayList(); + + public void setMessageType( List messageType ) + { + this.messageType = messageType; + } + private Boolean selectEnrollmentDatesInFuture; public void setSelectEnrollmentDatesInFuture( Boolean selectEnrollmentDatesInFuture ) @@ -348,7 +355,7 @@ RelationshipType relationshipType = relationshipTypeService.getRelationshipType( relationshipTypeId ); program.setRelationshipType( relationshipType ); } - program.setRelationshipFromA( relationshipFromA );; + program.setRelationshipFromA( relationshipFromA ); program.setRelationshipText( relationshipText ); List identifierTypes = new ArrayList(); @@ -390,6 +397,7 @@ reminder.setDateToCompare( datesToCompare.get( i ) ); reminder.setSendTo( sendTo.get( i ) ); reminder.setWhenToSend( whenToSend.get( i ) ); + reminder.setMessageType( messageType.get( i ) ); if ( sendTo.get( i ) == PatientReminder.SEND_TO_USER_GROUP ) { UserGroup selectedUserGroup = userGroupService.getUserGroup( userGroup.get( i ) ); === 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-05 17:59:57 +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-10 04:51:49 +0000 @@ -257,6 +257,13 @@ this.whenToSend = whenToSend; } + private List messageType = new ArrayList(); + + public void setMessageType( List messageType ) + { + this.messageType = messageType; + } + private Boolean useBirthDateAsIncidentDate; public void setUseBirthDateAsIncidentDate( Boolean useBirthDateAsIncidentDate ) @@ -415,6 +422,7 @@ reminder.setDateToCompare( datesToCompare.get( i ) ); reminder.setSendTo( sendTo.get( i ) ); reminder.setWhenToSend( whenToSend.get( i ) ); + reminder.setMessageType( messageType.get( i ) ); if ( reminder.getSendTo() == PatientReminder.SEND_TO_USER_GROUP ) { === 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-06 15:53:07 +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-10 04:51:49 +0000 @@ -208,6 +208,13 @@ this.whenToSend = whenToSend; } + private List messageType = new ArrayList(); + + public void setMessageType( List messageType ) + { + this.messageType = messageType; + } + private Boolean autoGenerateEvent; public void setAutoGenerateEvent( Boolean autoGenerateEvent ) @@ -329,6 +336,7 @@ reminder.setDateToCompare( PatientReminder.DUE_DATE_TO_COMPARE ); reminder.setSendTo( sendTo.get( i ) ); reminder.setWhenToSend( whenToSend.get( i ) ); + reminder.setMessageType( messageType.get( i ) ); if ( sendTo.get( i ) == PatientReminder.SEND_TO_USER_GROUP ) { UserGroup selectedUserGroup = userGroupService.getUserGroup( userGroup.get( i ) ); === 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-09 13:38:36 +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-10 04:51:49 +0000 @@ -236,6 +236,13 @@ this.whenToSend = whenToSend; } + private List messageType = new ArrayList(); + + public void setMessageType( List messageType ) + { + this.messageType = messageType; + } + private List userGroup = new ArrayList(); public void setUserGroup( List userGroup ) @@ -295,8 +302,7 @@ generatedByEnrollmentDate = (generatedByEnrollmentDate == null) ? false : generatedByEnrollmentDate; blockEntryForm = (blockEntryForm == null) ? false : blockEntryForm; remindCompleted = (remindCompleted == null) ? false : remindCompleted; - captureCoordinates = (captureCoordinates == null) ? false : captureCoordinates; - + ProgramStage programStage = programStageService.getProgramStage( id ); programStage.setName( name ); @@ -328,6 +334,7 @@ reminder.setDateToCompare( PatientReminder.DUE_DATE_TO_COMPARE ); reminder.setSendTo( sendTo.get( i ) ); reminder.setWhenToSend( whenToSend.get( i ) ); + reminder.setMessageType( messageType.get( i ) ); if ( reminder.getSendTo() == PatientReminder.SEND_TO_USER_GROUP ) { UserGroup selectedUserGroup = userGroupService.getUserGroup( userGroup.get( i ) ); @@ -363,7 +370,7 @@ this.compulsories.get( i ), i ); programStageDataElement.setAllowProvidedElsewhere( allowed ); programStageDataElement.setDisplayInReports( displayInReport ); - programStageDataElement.setAllowDateInFuture( allowDate ); + programStageDataElement.setAllowDateInFuture( allowDate ); programStageDataElement.setDisplayAsRadioButton( displayRadioButton ); programStageDataElementService.addProgramStageDataElement( programStageDataElement ); } === 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-09 18:00:50 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties 2013-09-10 04:51:49 +0000 @@ -466,4 +466,8 @@ characters_without_params = Characters without params scheduled_date = scheduled date send_message = Send message -message_is_sent = Message is sent \ No newline at end of file +message_is_sent = Message is sent +recipients = Recipients +message_type = Message type +both = Both +direct_sms = Direct SMS \ 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 2013-09-09 16:11:17 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addProgramForm.vm 2013-09-10 04:51:49 +0000 @@ -26,6 +26,9 @@ var whenToSend = jQuery( "#whenToSend" ); whenToSend.empty(); + + var messageType = jQuery( "#messageType" ); + messageType.empty(); var userGroup = jQuery( "#userGroup" ); userGroup.empty(); @@ -51,6 +54,10 @@ whenToSend.append( "" ); }); + jQuery(".messageType").each( function( i, item ){ + messageType.append( "" ); + }); + jQuery(".userGroup").each( function( i, item ){ userGroup.append( "" ); }); @@ -85,6 +92,7 @@ + @@ -339,4 +347,8 @@ var i18n_before = '$encoder.jsEscape( $i18n.getString( "before" ) , "'")'; var i18n_after = '$encoder.jsEscape( $i18n.getString( "after" ) , "'")'; var i18n_scheduled_date = '$encoder.jsEscape( $i18n.getString( "scheduled_date" ) , "'")'; + var i18n_message_type = '$encoder.jsEscape( $i18n.getString( "message_type" ) , "'")'; + var i18n_direct_sms = '$encoder.jsEscape( $i18n.getString( "direct_sms" ) , "'")'; + var i18n_message = '$encoder.jsEscape( $i18n.getString( "message" ) , "'")'; + var i18n_both = '$encoder.jsEscape( $i18n.getString( "both" ) , "'")'; === 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-09 16:11:17 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addProgramStageForm.vm 2013-09-10 04:51:49 +0000 @@ -18,6 +18,7 @@ +
@@ -223,6 +224,10 @@ var i18n_before = '$encoder.jsEscape( $i18n.getString( "before" ) , "'")'; var i18n_after = '$encoder.jsEscape( $i18n.getString( "after" ) , "'")'; var i18n_scheduled_date = '$encoder.jsEscape( $i18n.getString( "scheduled_date" ) , "'")'; + var i18n_message_type = '$encoder.jsEscape( $i18n.getString( "message_type" ) , "'")'; + var i18n_direct_sms = '$encoder.jsEscape( $i18n.getString( "direct_sms" ) , "'")'; + var i18n_message = '$encoder.jsEscape( $i18n.getString( "message" ) , "'")'; + var i18n_both = '$encoder.jsEscape( $i18n.getString( "both" ) , "'")'; var programStageList = new Array(); #foreach($programStage in $program.programStages) === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/addProgramStageForm.js' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/addProgramStageForm.js 2013-09-09 16:11:17 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/addProgramStageForm.js 2013-09-10 04:51:49 +0000 @@ -37,6 +37,9 @@ var userGroup = jQuery( "#userGroup" ); userGroup.empty(); + var messageType = jQuery( "#messageType" ); + messageType.empty(); + jQuery("#selectedList").find("tr").each( function( i, item ){ selectedDataElementsValidator.append( "" ); @@ -74,6 +77,9 @@ jQuery(".whenToSend").each( function( i, item ){ whenToSend.append( "" ); }); + jQuery(".messageType").each( function( i, item ){ + messageType.append( "" ); + }); jQuery(".userGroup").each( function( i, item ){ userGroup.append( "" ); }); @@ -100,12 +106,3 @@ checkValueIsExist( "name", "validateProgramStage.action",{id: getFieldValue('programId')}); }); - -function onchangeUserGroup( id ) -{ - var value = document.getElementById( 'sendTo'+id ).value; - hideById( 'tr'+id ); - if ( value == 5) { - showById( 'tr'+id ); - } -}; \ 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/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-07 12:09:05 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/program.js 2013-09-10 04:51:49 +0000 @@ -297,7 +297,7 @@ + '' + '' + '' - + '' + + '' + '' + '/' + '' + + ' ' + + ' ' + + '' + + '' + '' + '' + '' + '' - + '' + + '' + '' + '' + '' @@ -424,3 +434,20 @@ daysAllowedSendMessage.attr("realvalue", time * eval(daysAllowedSendMessage).val()); var aasdf= 0; } + +function onchangeUserGroup( id ) +{ + var value = document.getElementById( 'sendTo' + id ).value; + hideById( 'tr'+id ); + + if( value=="1" || value=="3" ){ + setFieldValue('messageType' + id , '1'); + disable('messageType' + id ); + } + else{ + if ( value == "5") { + showById( 'tr' + id ); + } + enable ('messageType' + id ); + } +} === 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-09 16:11:17 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programStage.js 2013-09-10 04:51:49 +0000 @@ -351,6 +351,16 @@ + '' + '/' + '' + + ' ' + + ' ' + + '' + + '' + '' + ' - + + + + + - + @@ -472,5 +480,10 @@ var i18n_before = '$encoder.jsEscape( $i18n.getString( "before" ) , "'")'; var i18n_after = '$encoder.jsEscape( $i18n.getString( "after" ) , "'")'; var i18n_scheduled_date = '$encoder.jsEscape( $i18n.getString( "scheduled_date" ) , "'")'; + var i18n_message_type = '$encoder.jsEscape( $i18n.getString( "message_type" ) , "'")'; + var i18n_direct_sms = '$encoder.jsEscape( $i18n.getString( "direct_sms" ) , "'")'; + var i18n_message = '$encoder.jsEscape( $i18n.getString( "message" ) , "'")'; + var i18n_both = '$encoder.jsEscape( $i18n.getString( "both" ) , "'")'; + programOnChange(); === 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-09 16:11:17 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramStageForm.vm 2013-09-10 04:51:49 +0000 @@ -18,6 +18,7 @@ +
' + ' ' + i18n_days @@ -327,6 +327,16 @@ + '
' + + ' ' + + '
' + i18n_params + '' + '
' + + ' ' + + '
' + i18n_params + '' + ' + @@ -335,7 +333,7 @@
@@ -398,6 +396,16 @@
+ +
$i18n.getString( "params" )
@@ -248,8 +249,8 @@ + + + + - + @@ -336,4 +347,8 @@ var i18n_before = '$encoder.jsEscape( $i18n.getString( "before" ) , "'")'; var i18n_after = '$encoder.jsEscape( $i18n.getString( "after" ) , "'")'; var i18n_scheduled_date = '$encoder.jsEscape( $i18n.getString( "scheduled_date" ) , "'")'; + var i18n_message_type = '$encoder.jsEscape( $i18n.getString( "message_type" ) , "'")'; + var i18n_direct_sms = '$encoder.jsEscape( $i18n.getString( "direct_sms" ) , "'")'; + var i18n_message = '$encoder.jsEscape( $i18n.getString( "message" ) , "'")'; + var i18n_both = '$encoder.jsEscape( $i18n.getString( "both" ) , "'")'; \ No newline at end of file
@@ -266,6 +267,16 @@
+ +
$i18n.getString( "params" )