=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/config/SmsConfiguration.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/config/SmsConfiguration.java 2013-01-22 08:31:21 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/config/SmsConfiguration.java 2013-04-17 09:03:38 +0000 @@ -126,7 +126,6 @@ return gw; } } - return null; } } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2013-01-16 10:29:01 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2013-04-17 09:03:38 +0000 @@ -90,7 +90,7 @@ log.info( "Found the following message senders: " + messageSenders ); } - + // ------------------------------------------------------------------------- // MessageService implementation // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/ActivityReportingService.java' --- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/ActivityReportingService.java 2013-04-03 08:06:46 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/ActivityReportingService.java 2013-04-17 09:03:38 +0000 @@ -57,10 +57,10 @@ public Patient findPatient( String name, int orgUnitId ) throws NotAllowedException; - public String saveProgramStage( ProgramStage programStage, int orgUnitId ) + public String saveProgramStage( ProgramStage programStage, int patientId ) throws NotAllowedException; - public Patient enrollProgram( String enrollInfo, int orgUnitId ) + public Patient enrollProgram( String enrollInfo ) throws NotAllowedException; public Collection getIdentifierTypes(); === modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Patient.java' --- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Patient.java 2013-04-16 07:52:25 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Patient.java 2013-04-17 09:03:38 +0000 @@ -37,7 +37,6 @@ import org.hisp.dhis.api.mobile.model.DataStreamSerializable; import org.hisp.dhis.api.mobile.model.PatientAttribute; import org.hisp.dhis.api.mobile.model.PatientIdentifier; -import org.hisp.dhis.organisationunit.OrganisationUnit; /** * @author Nguyen Kim Lai @@ -81,7 +80,7 @@ private String phoneNumber; - private OrganisationUnit organisationUnit; + private String organisationUnitName; public List getIdentifiers() { @@ -279,16 +278,6 @@ this.phoneNumber = phoneNumber; } - public OrganisationUnit getOrganisationUnit() - { - return organisationUnit; - } - - public void setOrganisationUnit( OrganisationUnit organisationUnit ) - { - this.organisationUnit = organisationUnit; - } - public List getEnrollmentRelationships() { return enrollmentRelationships; @@ -298,6 +287,16 @@ { this.enrollmentRelationships = enrollmentRelationships; } + + public String getOrganisationUnitName() + { + return organisationUnitName; + } + + public void setOrganisationUnitName( String organisationUnitName ) + { + this.organisationUnitName = organisationUnitName; + } @Override public void serialize( DataOutputStream out ) @@ -311,6 +310,7 @@ dout.writeUTF( this.getMiddleName() ); dout.writeUTF( this.getLastName() ); dout.writeInt( this.getAge() ); + dout.writeUTF( this.getOrganisationUnitName() ); if ( gender != null ) { === modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Program.java' --- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Program.java 2013-04-15 15:12:27 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Program.java 2013-04-17 09:03:38 +0000 @@ -93,8 +93,8 @@ throws IOException { super.serialize( dout ); - dout.writeInt( this.status ); - dout.writeInt( this.getVersion() ); + dout.writeInt( getStatus() ); + dout.writeInt( getVersion() ); if( programStages == null ) { dout.writeInt( 0 ); === modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java' --- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java 2013-04-15 15:12:27 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java 2013-04-17 09:03:38 +0000 @@ -446,9 +446,8 @@ } else { - org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( orgUnitId, - patients.get( 0 ) ); - + //org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( orgUnitId, patients.get( 0 ) ); + org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( patients.get( 0 ) ); return patientMobile; } } @@ -456,7 +455,8 @@ { Patient patient = patientService.getPatient( Integer.parseInt( keyword ) ); - org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( orgUnitId, patient ); + //org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( orgUnitId, patient ); + org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( patient ); return patientMobile; } @@ -465,7 +465,7 @@ @Override public String saveProgramStage( org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage mobileProgramStage, - int orgUnitId ) + int patientId ) throws NotAllowedException { if ( mobileProgramStage.isSingleEvent() ) @@ -496,7 +496,7 @@ programStageInstance.setCompleted( true ); - programStageInstance.setOrganisationUnit( orgUnitService.getOrganisationUnit( orgUnitId ) ); + programStageInstance.setOrganisationUnit( patientService.getPatient( patientId ).getOrganisationUnit() ); programStageInstanceService.addProgramStageInstance( programStageInstance ); @@ -607,7 +607,7 @@ } @Override - public org.hisp.dhis.api.mobile.model.LWUITmodel.Patient enrollProgram( String enrollInfo, int orgUnitId ) + public org.hisp.dhis.api.mobile.model.LWUITmodel.Patient enrollProgram( String enrollInfo ) throws NotAllowedException { String[] enrollProgramInfos = enrollInfo.split( "-" ); @@ -654,7 +654,8 @@ } - return getPatientModel( orgUnitId, patient ); + //return getPatientModel( orgUnitId, patient ); + return getPatientModel( patient ); } // ------------------------------------------------------------------------- @@ -779,7 +780,8 @@ } // get patient model for LWUIT - private org.hisp.dhis.api.mobile.model.LWUITmodel.Patient getPatientModel( int orgUnitId, Patient patient ) + //private org.hisp.dhis.api.mobile.model.LWUITmodel.Patient getPatientModel( int orgUnitId, Patient patient ) + private org.hisp.dhis.api.mobile.model.LWUITmodel.Patient getPatientModel( Patient patient ) { org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientModel = new org.hisp.dhis.api.mobile.model.LWUITmodel.Patient(); List patientAtts = new ArrayList(); @@ -793,6 +795,7 @@ Period period = new Period( new DateTime( patient.getBirthDate() ), new DateTime() ); patientModel.setAge( period.getYears() ); + patientModel.setOrganisationUnitName( patient.getOrganisationUnit().getName() ); patientModel.setPhoneNumber( patient.getPhoneNumber() ); this.setSetting( getSettings() ); @@ -907,7 +910,7 @@ // Set available enrollment programs List enrollmentProgramList = new ArrayList(); - enrollmentProgramList = generateEnrollmentProgramList( orgUnitId, patient ); + enrollmentProgramList = generateEnrollmentProgramList( patient ); List enrollmentProgramListMobileList = new ArrayList(); for ( Program enrollmentProgram : enrollmentProgramList ) @@ -1084,11 +1087,12 @@ return setting; } - private List generateEnrollmentProgramList( int orgId, Patient patient ) + private List generateEnrollmentProgramList( Patient patient ) { List programs = new ArrayList(); - for ( Program program : programService.getPrograms( orgUnitService.getOrganisationUnit( orgId ) ) ) - + + //for ( Program program : programService.getPrograms( orgUnitService.getOrganisationUnit( orgId ) ) ) + for ( Program program : programService.getPrograms( patient.getOrganisationUnit()) ) { if ( (program.isSingleEvent() && program.isRegistration()) || !program.isSingleEvent() ) { @@ -1120,74 +1124,83 @@ org.hisp.dhis.api.mobile.model.LWUITmodel.Relationship enrollmentRelationship, int orgUnitId ) throws NotAllowedException { - String fullName = enrollmentRelationship.getPersonBName(); - int startIndex = fullName.indexOf( ' ' ); - int endIndex = fullName.lastIndexOf( ' ' ); - - String firstName = fullName.toString(); - String middleName = " "; - String lastName = " "; - - if ( fullName.indexOf( ' ' ) != -1 ) - { - firstName = fullName.substring( 0, startIndex ); - if ( startIndex == endIndex ) - { - middleName = " "; - lastName = fullName.substring( startIndex + 1, fullName.length() ); - } - else - { - middleName = " " + fullName.substring( startIndex + 1, endIndex ) + " "; - lastName = fullName.substring( endIndex + 1, fullName.length() ); - } - } - List patients = (List) this.patientService.getPatientByFullname( firstName + middleName - + lastName, orgUnitId ); - - // remove the own searcher - removeIfDuplicated( patients, enrollmentRelationship.getPersonAId() ); - - if ( patients.size() > 1 ) - { - String patientsInfo = new String(); - - DateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" ); - - for ( Patient each : patients ) - { - patientsInfo += each.getId() + "/" + each.getFullName() + "/" + dateFormat.format( each.getBirthDate() ) - + "$"; - } - - throw new NotAllowedException( patientsInfo ); - } - else if ( patients.size() == 0 ) - { - throw NotAllowedException.NO_BENEFICIARY_FOUND; - } - else - { - Patient patientB = patients.get( 0 ); - Patient patientA = patientService.getPatient( enrollmentRelationship.getPersonAId() ); - RelationshipType relationshipType = relationshipTypeService.getRelationshipType( enrollmentRelationship - .getId() ); - - Relationship relationship = new Relationship(); - relationship.setRelationshipType( relationshipType ); - if ( enrollmentRelationship.getChosenRelationship().equals( relationshipType.getaIsToB() ) ) - { - relationship.setPatientA( patientA ); - relationship.setPatientB( patientB ); - } - else - { - relationship.setPatientA( patientB ); - relationship.setPatientB( patientA ); - } - relationshipService.saveRelationship( relationship ); - return getPatientModel( orgUnitId, patientA ); - } + Patient patientB; + if ( enrollmentRelationship.getPersonBId() != 0 ) + { + patientB = patientService.getPatient( enrollmentRelationship.getPersonBId() ); + } + else + { + String fullName = enrollmentRelationship.getPersonBName(); + int startIndex = fullName.indexOf( ' ' ); + int endIndex = fullName.lastIndexOf( ' ' ); + + String firstName = fullName.toString(); + String middleName = " "; + String lastName = " "; + + if ( fullName.indexOf( ' ' ) != -1 ) + { + firstName = fullName.substring( 0, startIndex ); + if ( startIndex == endIndex ) + { + middleName = " "; + lastName = fullName.substring( startIndex + 1, fullName.length() ); + } + else + { + middleName = " " + fullName.substring( startIndex + 1, endIndex ) + " "; + lastName = fullName.substring( endIndex + 1, fullName.length() ); + } + } + List patients = (List) this.patientService.getPatientByFullname( firstName + middleName + + lastName, orgUnitId ); + + //remove the own searcher + patients = removeIfDuplicated( patients, enrollmentRelationship.getPersonAId()); + + if ( patients.size() > 1 ) + { + String patientsInfo = new String(); + + DateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" ); + + for ( Patient each : patients ) + { + patientsInfo += each.getId() + "/" + each.getFullName() + "/" + dateFormat.format( each.getBirthDate() ) + + "$"; + } + + throw new NotAllowedException( patientsInfo ); + } + else if ( patients.size() == 0 ) + { + throw NotAllowedException.NO_BENEFICIARY_FOUND; + } + else + { + patientB = patients.get( 0 ); + } + } + Patient patientA = patientService.getPatient( enrollmentRelationship.getPersonAId() ); + RelationshipType relationshipType = relationshipTypeService.getRelationshipType( enrollmentRelationship + .getId() ); + + Relationship relationship = new Relationship(); + relationship.setRelationshipType( relationshipType ); + if ( enrollmentRelationship.getChosenRelationship().equals( relationshipType.getaIsToB() ) ) + { + relationship.setPatientA( patientA ); + relationship.setPatientB( patientB ); + } + else + { + relationship.setPatientA( patientB ); + relationship.setPatientB( patientA ); + } + relationshipService.saveRelationship( relationship ); + //return getPatientModel( orgUnitId, patientA ); + return getPatientModel( patientA ); } @Override @@ -1273,6 +1286,10 @@ anonymousProgramMobile.setId( anonymousProgram.getId() ); anonymousProgramMobile.setName( anonymousProgram.getName() ); + + anonymousProgramMobile.setVersion( anonymousProgram.getVersion() ); + + anonymousProgramMobile.setStatus( ProgramInstance.STATUS_ACTIVE ); ProgramStage programStage = anonymousProgram.getProgramStages().iterator().next(); @@ -1336,14 +1353,15 @@ private List removeIfDuplicated( List patients, int patientId ) { - for ( Patient each : patients ) + List result = new ArrayList(patients); + for ( int i = 0; i < patients.size(); i++ ) { - if ( each.getId() == patientId ) + if ( patients.get( i ).getId() == patientId ) { - patients.remove( each ); + result.remove( i ); } } - return patients; + return result; } private void saveDataValues( ActivityValue activityValue, ProgramStageInstance programStageInstance, === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientStore.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientStore.java 2013-04-15 17:06:42 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientStore.java 2013-04-17 09:03:38 +0000 @@ -658,7 +658,7 @@ fullName = fullName.toLowerCase(); String sql = "SELECT patientid FROM patient where lower( " + statementBuilder.getPatientFullName() + ") " + "='" + fullName + "'"; - if ( orgunitId != null ) + if ( orgunitId != null && orgunitId != 0 ) { sql += " and organisationunitid=" + orgunitId; } === added file 'dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/SmsSender.java' --- dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/SmsSender.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/SmsSender.java 2013-04-17 09:03:38 +0000 @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2004-2012, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.hisp.dhis.sms.outbound; + +import java.util.HashSet; +import java.util.Set; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.hisp.dhis.message.MessageSender; +import org.hisp.dhis.sms.SmsServiceException; +import org.hisp.dhis.user.CurrentUserService; +import org.hisp.dhis.user.User; +import org.hisp.dhis.user.UserService; +import org.hisp.dhis.user.UserSetting; +import org.hisp.dhis.user.UserSettingService; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @author Nguyen Kim Lai + * + * @version SmsSender.java 10:29:11 AM Apr 16, 2013 $ + */ +public class SmsSender + implements MessageSender +{ + private static final Log log = LogFactory.getLog( SmsMessageSender.class ); + + // ------------------------------------------------------------------------- + // Dependencies + // ------------------------------------------------------------------------- + + private CurrentUserService currentUserService; + + public void setCurrentUserService( CurrentUserService currentUserService ) + { + this.currentUserService = currentUserService; + } + + private UserService userService; + + public void setUserService( UserService userService ) + { + this.userService = userService; + } + + private OutboundSmsService outboundSmsService; + + public void setOutboundSmsService( OutboundSmsService outboundSmsService ) + { + this.outboundSmsService = outboundSmsService; + } + + @Autowired + private OutboundSmsTransportService transportService; + + @Override + public void sendMessage( String subject, String text, User sender, Set users, boolean forceSend ) + { + Set toSendUserList = new HashSet(); + + String gatewayId = transportService.getDefaultGateway(); + + if ( gatewayId != null || gatewayId.trim().length() != 0 ) + { + boolean sendSMSNotification = false; + for ( User user : users ) + { + if ( currentUserService.getCurrentUser() != user ) + { + UserSetting userSetting = userService.getUserSetting( user, UserSettingService.KEY_MESSAGE_SMS_NOTIFICATION ); + if ( userSetting != null ) + { + sendSMSNotification = (Boolean) userSetting.getValue(); + if ( sendSMSNotification == true ) + { + toSendUserList.add( user ); + sendSMSNotification = false; + } + } + } + } + + Set phoneNumbers = null; + + if ( outboundSmsService != null || outboundSmsService.isEnabled() ) + { + text = createMessage( subject, text, sender ); + + phoneNumbers = getRecipientsPhoneNumber( users ); + + if ( !phoneNumbers.isEmpty() && phoneNumbers.size() > 0 ) + { + sendMessage( text, phoneNumbers, gatewayId ); + } + + } + } + } + + // ------------------------------------------------------------------------- + // Supportive methods + // ------------------------------------------------------------------------- + + private String createMessage( String subject, String text, User sender ) + { + String name = "unknown"; + + if ( sender != null ) + { + name = sender.getUsername(); + } + + if ( subject == null || subject.isEmpty() ) + { + subject = ""; + } + else + { + subject = " - " + subject; + } + + text = "From " + name + subject + ": " + text; + + // Simplistic cutoff 160 characters.. + int length = text.length(); + + return (length > 160) ? text.substring( 0, 157 ) + "..." : text; + } + + private Set getRecipientsPhoneNumber( Set users ) + { + Set recipients = new HashSet(); + + for ( User user : users ) + { + String phoneNumber = user.getPhoneNumber(); + + if ( phoneNumber != null && !phoneNumber.trim().isEmpty() ) + { + recipients.add( phoneNumber ); + } + } + + return recipients; + } + + private void sendMessage( String text, Set recipients, String gateWayId ) + { + OutboundSms sms = new OutboundSms(); + sms.setMessage( text ); + sms.setRecipients( recipients ); + + try + { + outboundSmsService.sendMessage( sms, gateWayId ); + } + catch ( SmsServiceException e ) + { + log.warn( "Unable to send message through sms: " + sms, e ); + } + + } + +} === modified file 'dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/smslib/SmsLibService.java' --- dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/smslib/SmsLibService.java 2013-01-22 08:31:21 +0000 +++ dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/smslib/SmsLibService.java 2013-04-17 09:03:38 +0000 @@ -312,8 +312,7 @@ else if ( gatewayConfig instanceof SMPPGatewayConfig ) { gatewayMap.put( SMPP_GATEWAY, gateway.getGatewayId() ); - // Service.getInstance().setInboundMessageNotification( - // new InboundNotification() ); + // Service.getInstance().setInboundMessageNotification( new InboundNotification() ); } else { @@ -525,7 +524,7 @@ { return null; } - + if ( getGatewayMap() == null ) { return null; @@ -553,7 +552,6 @@ { gatewayId = gatewayMap.get( MODEM_GATEWAY ); } - return gatewayId; } } === modified file 'dhis-2/dhis-services/dhis-service-sms/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-sms/src/main/resources/META-INF/dhis/beans.xml 2013-03-13 14:14:24 +0000 +++ dhis-2/dhis-services/dhis-service-sms/src/main/resources/META-INF/dhis/beans.xml 2013-04-17 09:03:38 +0000 @@ -39,6 +39,12 @@ + + + + + + @@ -59,5 +65,5 @@ - + === modified file 'dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileOrganisationUnitController.java' --- dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileOrganisationUnitController.java 2013-04-10 10:07:56 +0000 +++ dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileOrganisationUnitController.java 2013-04-17 09:03:38 +0000 @@ -351,14 +351,12 @@ return activityReportingService.findPatient( keyword, id ); } - @RequestMapping( method = RequestMethod.POST, value = "{clientVersion}/LWUIT/orgUnits/{id}/uploadProgramStage" ) + @RequestMapping( method = RequestMethod.POST, value = "{clientVersion}/LWUIT/orgUnits/{id}/uploadProgramStage/{patientId}" ) @ResponseBody - public String saveProgramStage( @PathVariable - int id, @RequestBody - ProgramStage programStage ) + public String saveProgramStage( @PathVariable int patientId, @PathVariable int id, @RequestBody ProgramStage programStage ) throws NotAllowedException { - return activityReportingService.saveProgramStage( programStage, id ); + return activityReportingService.saveProgramStage( programStage, patientId ); } @RequestMapping( method = RequestMethod.GET, value = "{clientVersion}/LWUIT/orgUnits/{id}/enrollProgram" ) @@ -368,7 +366,7 @@ String enrollInfo ) throws NotAllowedException { - return activityReportingService.enrollProgram( enrollInfo, id ); + return activityReportingService.enrollProgram( enrollInfo ); } @RequestMapping( method = RequestMethod.POST, value = "{clientVersion}/LWUIT/orgUnits/{id}/addRelationship" ) === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/incoming/DeleteReceiveSMSAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/incoming/DeleteReceiveSMSAction.java 2013-03-13 10:11:52 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-mobile/src/main/java/org/hisp/dhis/mobile/action/incoming/DeleteReceiveSMSAction.java 2013-04-17 09:03:38 +0000 @@ -86,5 +86,4 @@ } return SUCCESS; } - } === modified file 'dhis-2/dhis-web/dhis-web-sms/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-sms/src/main/resources/struts.xml 2013-03-20 04:23:51 +0000 +++ dhis-2/dhis-web/dhis-web-sms/src/main/resources/struts.xml 2013-04-17 09:03:38 +0000 @@ -76,7 +76,6 @@ plainTextError F_MOBILE_SENDSMS - /dhis-web-commons/ajax/jsonResponseSuccess.vm