=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientService.java 2013-03-05 07:29:03 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientService.java 2013-03-06 04:25:38 +0000 @@ -217,5 +217,5 @@ Collection getPatientsByPhone( String phoneNumber, Integer min, Integer max ); - Collection getPatientByFullname( String fullName ); + Collection getPatientByFullname( String fullName, int orgUnitId ); } === 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-02-25 06:32:56 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/ActivityReportingService.java 2013-03-06 04:25:38 +0000 @@ -49,10 +49,13 @@ public void saveActivityReport( OrganisationUnit unit, ActivityValue activityValue, Integer programStageSectionId ) throws NotAllowedException; - public Patient findPatient( String name ) - throws NotAllowedException; - - public void saveProgramStage( ProgramStage programStage ) - throws NotAllowedException; - + public Patient findPatient( String name, int orgUnitId ) + throws NotAllowedException; + + public String saveProgramStage( ProgramStage programStage ) + throws NotAllowedException; + + public Patient enrollProgram( String enrollInfo, int orgUnitId ) + throws NotAllowedException; + } === 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-02-25 06:32:56 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Patient.java 2013-03-06 04:25:38 +0000 @@ -77,6 +77,8 @@ private List programs; private List relationships; + + private List enrollmentPrograms; public List getIdentifiers() { @@ -108,6 +110,16 @@ this.relationships = relationships; } + public List getEnrollmentPrograms() + { + return enrollmentPrograms; + } + + public void setEnrollmentPrograms( List enrollmentPrograms ) + { + this.enrollmentPrograms = enrollmentPrograms; + } + public String getFullName() { boolean space = false; @@ -344,7 +356,7 @@ { each.serialize( dout ); } - + // Write Relationships dout.writeInt( relationships.size() ); for ( Relationship each : relationships ) @@ -352,6 +364,13 @@ each.serialize( dout ); } + // Write Available Program To Enroll + dout.writeInt( enrollmentPrograms.size() ); + for ( Program each : enrollmentPrograms ) + { + each.serialize( dout ); + } + bout.flush(); bout.writeTo( out ); } === 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-02-01 07:09:23 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Program.java 2013-03-06 04:25:38 +0000 @@ -96,11 +96,18 @@ super.serialize( dout ); dout.writeBoolean( this.isCompleted() ); dout.writeInt( this.getVersion() ); - dout.writeInt( programStages.size() ); - for ( int i = 0; i < programStages.size(); i++ ) - { - ProgramStage ps = (ProgramStage) programStages.get( i ); - ps.serialize( dout ); + if( programStages == null ) + { + dout.writeInt( 0 ); + } + else + { + dout.writeInt( programStages.size() ); + for ( int i = 0; i < programStages.size(); i++ ) + { + ProgramStage ps = (ProgramStage) programStages.get( i ); + ps.serialize( dout ); + } } } === modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/MobileOrgUnitLinks.java' --- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/MobileOrgUnitLinks.java 2013-02-25 06:32:56 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/MobileOrgUnitLinks.java 2013-03-06 04:25:38 +0000 @@ -67,6 +67,9 @@ private String findPatientUrl; private String uploadProgramStageUrl; + + private String enrollProgramUrl; + @XmlAttribute public int getId() @@ -210,6 +213,16 @@ this.uploadProgramStageUrl = uploadProgramStageUrl; } + public String getEnrollProgramUrl() + { + return enrollProgramUrl; + } + + public void setEnrollProgramUrl( String enrollProgramUrl ) + { + this.enrollProgramUrl = enrollProgramUrl; + } + public void serialize( DataOutputStream dataOutputStream ) throws IOException @@ -227,6 +240,7 @@ dataOutputStream.writeUTF( this.updateContactUrl ); dataOutputStream.writeUTF( this.findPatientUrl ); dataOutputStream.writeUTF( this.uploadProgramStageUrl ); + dataOutputStream.writeUTF( this.enrollProgramUrl ); } public void deSerialize( DataInputStream dataInputStream ) @@ -245,6 +259,7 @@ this.updateContactUrl = dataInputStream.readUTF(); this.findPatientUrl = dataInputStream.readUTF(); this.uploadProgramStageUrl = dataInputStream.readUTF(); + this.enrollProgramUrl = dataInputStream.readUTF(); } @Override @@ -296,7 +311,7 @@ dataOutputStream.writeUTF( this.updateContactUrl ); dataOutputStream.writeUTF( this.findPatientUrl ); dataOutputStream.writeUTF( this.uploadProgramStageUrl ); - + dataOutputStream.writeUTF( this.enrollProgramUrl ); } } === 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-02-25 06:32:56 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java 2013-03-06 04:25:38 +0000 @@ -50,7 +50,9 @@ import org.hisp.dhis.api.mobile.model.Task; import org.hisp.dhis.api.mobile.model.comparator.ActivityComparator; import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patient.PatientAttributeService; import org.hisp.dhis.patient.PatientIdentifier; @@ -66,6 +68,7 @@ import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramInstance; import org.hisp.dhis.program.ProgramInstanceService; +import org.hisp.dhis.program.ProgramService; import org.hisp.dhis.program.ProgramStage; import org.hisp.dhis.program.ProgramStageDataElement; import org.hisp.dhis.program.ProgramStageInstance; @@ -77,11 +80,17 @@ import org.hisp.dhis.system.util.DateUtils; import org.joda.time.DateTime; import org.joda.time.Period; +import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.ISODateTimeFormat; import org.springframework.beans.factory.annotation.Required; public class ActivityReportingServiceImpl implements ActivityReportingService { + private static final String PROGRAM_STAGE_UPLOADED = "program_stage_uploaded"; + + private static final String PROGRAM_STAGE_SECTION_UPLOADED = "program_stage_section_uploaded"; + private ActivityComparator activityComparator = new ActivityComparator(); // ------------------------------------------------------------------------- @@ -109,8 +118,14 @@ private ProgramInstanceService programInstanceService; private RelationshipService relationshipService; - - private Beneficiary beneficiary; + + private DataElementService dataElementService; + + private PatientDataValueService patientDataValueService; + + private ProgramService programService; + + private OrganisationUnitService organisationUnitService; private org.hisp.dhis.mobile.service.ModelMapping modelMapping; @@ -442,7 +457,7 @@ } // get patient model for LWUIT - private org.hisp.dhis.api.mobile.model.LWUITmodel.Patient getPatientModel( Patient patient ) + private org.hisp.dhis.api.mobile.model.LWUITmodel.Patient getPatientModel(int orgUnitId, Patient patient ) { org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientModel = new org.hisp.dhis.api.mobile.model.LWUITmodel.Patient(); List patientAtts = new ArrayList(); @@ -545,25 +560,11 @@ mobileProgram.setName( each.getProgram().getName() ); mobileProgram.setCompleted( each.isCompleted() ); mobileProgram.setProgramStages( getMobileProgramStages( patient, each, each.getProgram() ) ); + mobileProgramList.add( mobileProgram ); } } - /*Set programs = patient.getPrograms(); - if ( programs.size() > 0 ) - { - for ( Program each : programs ) - { - - org.hisp.dhis.api.mobile.model.LWUITmodel.Program mobileProgram = new org.hisp.dhis.api.mobile.model.LWUITmodel.Program(); - mobileProgram.setVersion( each.getVersion() ); - mobileProgram.setId( listOfProgramInstance.get( 0 ).getId() ); - mobileProgram.setName( each.getName() ); - mobileProgram.setProgramStages( getMobileProgramStages( patient, each ) ); - mobileProgramList.add( mobileProgram ); - } - }*/ - patientModel.setPrograms( mobileProgramList ); // Set Relationship @@ -574,8 +575,6 @@ { org.hisp.dhis.api.mobile.model.LWUITmodel.Relationship relationshipMobile = new org.hisp.dhis.api.mobile.model.LWUITmodel.Relationship(); relationshipMobile.setId( eachRelationship.getId() ); - // relationshipMobile.setName( - // eachRelationship.getRelationshipType().getName() ); if ( eachRelationship.getPatientA().getId() == patient.getId() ) { relationshipMobile.setName( eachRelationship.getRelationshipType().getaIsToB() ); @@ -589,6 +588,23 @@ relationshipList.add( relationshipMobile ); } patientModel.setRelationships( relationshipList ); + + // Set available enrollment programs + List enrollmentProgramList = new ArrayList(); + enrollmentProgramList = generateEnrollmentProgramList( orgUnitId, patient ); + List enrollmentProgramListMobileList = new ArrayList(); + for ( Program enrollmentProgram : enrollmentProgramList ) + { + org.hisp.dhis.api.mobile.model.LWUITmodel.Program enrollmentProgramMobile = new org.hisp.dhis.api.mobile.model.LWUITmodel.Program(); + enrollmentProgramMobile.setId( enrollmentProgram.getId() ); + enrollmentProgramMobile.setName( enrollmentProgram.getName() ); + enrollmentProgramMobile.setCompleted( false ); + enrollmentProgramMobile.setVersion( enrollmentProgram.getVersion() ); + enrollmentProgramMobile.setProgramStages( null ); + enrollmentProgramListMobileList.add( enrollmentProgramMobile ); + } + patientModel.setEnrollmentPrograms( enrollmentProgramListMobileList ); + return patientModel; } @@ -799,13 +815,6 @@ { this.modelMapping = modelMapping; } - - // public void setActivityPlanService( - // org.hisp.dhis.activityplan.ActivityPlanService activityPlanService ) - // { - // this.activityPlanService = activityPlanService; - // } - public PatientMobileSetting getSetting() { @@ -827,11 +836,6 @@ this.groupByAttribute = groupByAttribute; } - public PatientIdentifierService getPatientIdentifierService() - { - return patientIdentifierService; - } - @Required public void setPatientIdentifierService( PatientIdentifierService patientIdentifierService ) { @@ -844,17 +848,13 @@ this.patientService = patientService; } - public void setBeneficiary( Beneficiary beneficiary ) - { - this.beneficiary = beneficiary; - } - @Required public void setProgramInstanceService( ProgramInstanceService programInstanceService ) { this.programInstanceService = programInstanceService; } + @Required public void setRelationshipService( RelationshipService relationshipService ) { this.relationshipService = relationshipService; @@ -866,8 +866,32 @@ this.programStageSectionService = programStageSectionService; } + @Required + public void setDataElementService( DataElementService dataElementService ) + { + this.dataElementService = dataElementService; + } + + @Required + public void setPatientDataValueService( PatientDataValueService patientDataValueService ) + { + this.patientDataValueService = patientDataValueService; + } + + @Required + public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) + { + this.organisationUnitService = organisationUnitService; + } + + @Required + public void setProgramService( ProgramService programService ) + { + this.programService = programService; + } + @Override - public org.hisp.dhis.api.mobile.model.LWUITmodel.Patient findPatient( String fullName ) + public org.hisp.dhis.api.mobile.model.LWUITmodel.Patient findPatient( String fullName, int orgUnitId ) throws NotAllowedException { int startIndex = fullName.indexOf( ' ' ); @@ -892,7 +916,7 @@ } } List patients = (List) this.patientService.getPatientByFullname( firstName + middleName - + lastName ); + + lastName, orgUnitId ); if ( patients.size() > 1 ) { @@ -904,17 +928,128 @@ } else { - org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patient = getPatientModel( patients.get( 0 ) ); + org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patient = getPatientModel( orgUnitId, patients.get( 0 ) ); return patient; } } @Override - public void saveProgramStage( org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage programStage ) - throws NotAllowedException - { - System.out.println("name: "+programStage.getName()); - + public String saveProgramStage( org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage programStage ) + throws NotAllowedException + { + ProgramStageInstance programStageInstance = programStageInstanceService.getProgramStageInstance( programStage.getId() ); + + List dataElements = programStage.getDataElements(); + + for ( int i = 0; i < dataElements.size(); i++ ) + { + DataElement dataElement = dataElementService.getDataElement( dataElements.get( i ).getId() ); + + PatientDataValue patientDataValue = new PatientDataValue( programStageInstance, dataElement, new Date(), dataElements.get( i ).getValue()); + + PatientDataValue previousPatientDataValue = patientDataValueService.getPatientDataValue( patientDataValue.getProgramStageInstance(), patientDataValue.getDataElement() ); + + if ( previousPatientDataValue == null ) + { + patientDataValueService.savePatientDataValue( patientDataValue ); + } + else + { + previousPatientDataValue.setValue( patientDataValue.getValue() ); + previousPatientDataValue.setTimestamp( new Date() ); + previousPatientDataValue.setProvidedElsewhere( patientDataValue.getProvidedElsewhere() ); + patientDataValueService.updatePatientDataValue( previousPatientDataValue ); + } + + } + + programStageInstance.setExecutionDate( new Date() ); + + if( programStageInstance.getProgramStage().getProgramStageDataElements().size() > dataElements.size() ) + { + programStageInstanceService.updateProgramStageInstance( programStageInstance ); + return PROGRAM_STAGE_SECTION_UPLOADED; + } + else + { + programStageInstance.setCompleted( true ); + programStageInstanceService.updateProgramStageInstance( programStageInstance ); + return PROGRAM_STAGE_UPLOADED; + } + } + + private List generateEnrollmentProgramList( int orgId, Patient patient ) + { + List programs = new ArrayList(); + for ( Program program : programService.getPrograms( organisationUnitService.getOrganisationUnit( orgId ) ) ) + + { + if ( (program.isSingleEvent() && program.isRegistration()) || !program.isSingleEvent() ) + { + //wrong here + if ( programInstanceService.getProgramInstances( patient, program ).size() == 0 ) + { + programs.add( program ); + } + } + } + return programs; + } + + @Override + public org.hisp.dhis.api.mobile.model.LWUITmodel.Patient enrollProgram( String enrollInfo, int orgUnitId ) + throws NotAllowedException + { + String[] enrollProgramInfos = enrollInfo.split( "-" ); + int patientId = Integer.parseInt( enrollProgramInfos[0] ); + int programId = Integer.parseInt( enrollProgramInfos[1] ); + + Patient patient = patientService.getPatient( patientId ); + Program program = programService.getProgram( programId ); + + DateTimeFormatter sdf = ISODateTimeFormat.yearMonthDay(); + ProgramInstance programInstance = new ProgramInstance(); + //programInstance.setEnrollmentDate( sdf.parseDateTime( enrollmentDate ).toDate() ); + //programInstance.setDateOfIncident( sdf.parseDateTime( incidentDate ).toDate() ); + programInstance.setEnrollmentDate( new Date() ); + programInstance.setDateOfIncident( new Date() ); + programInstance.setProgram( program ); + programInstance.setPatient( patient ); + programInstance.setCompleted( false ); + programInstanceService.addProgramInstance( programInstance ); + patient.getPrograms().add( program ); + patientService.updatePatient( patient ); + for ( ProgramStage programStage : program.getProgramStages() ) + { + if ( programStage.getAutoGenerateEvent() ) + { + ProgramStageInstance programStageInstance = new ProgramStageInstance(); + programStageInstance.setProgramInstance( programInstance ); + programStageInstance.setProgramStage( programStage ); + + //Date dateCreatedEvent = sdf.parseDateTime( incidentDate ).toDate(); + Date dateCreatedEvent = new Date(); + if ( program.getGeneratedByEnrollmentDate() ) + { + //dateCreatedEvent = sdf.parseDateTime( enrollmentDate ).toDate(); + } + Date dueDate = DateUtils + .getDateAfterAddition( dateCreatedEvent, programStage.getMinDaysFromStart() ); + + programStageInstance.setDueDate( dueDate ); + + if ( program.isSingleEvent() ) + { + programStageInstance.setExecutionDate( dueDate ); + } + + programStageInstanceService.addProgramStageInstance( programStageInstance ); + + } + + } + + return getPatientModel( orgUnitId, patient ); } } === modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-mobile/src/main/resources/META-INF/dhis/beans.xml 2013-02-01 07:09:23 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/resources/META-INF/dhis/beans.xml 2013-03-06 04:25:38 +0000 @@ -28,6 +28,10 @@ + + + + === modified file 'dhis-2/dhis-services/dhis-service-mobile/src/test/java/org/hisp/dhis/mobile/api/model/OrgUnitTest.java' --- dhis-2/dhis-services/dhis-service-mobile/src/test/java/org/hisp/dhis/mobile/api/model/OrgUnitTest.java 2013-02-25 06:32:56 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/test/java/org/hisp/dhis/mobile/api/model/OrgUnitTest.java 2013-03-06 04:25:38 +0000 @@ -60,6 +60,7 @@ unit.setUpdateContactUrl( "updateContactUrl" ); unit.setFindPatientUrl( "findPatientUrl" ); unit.setUploadProgramStageUrl( "uploadProgramStageUrl" ); + unit.setEnrollProgramUrl( "enrollProgramUrl" ); ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream( baos ); === modified file 'dhis-2/dhis-services/dhis-service-mobile/src/test/java/org/hisp/dhis/mobile/api/model/OrgUnitsTest.java' --- dhis-2/dhis-services/dhis-service-mobile/src/test/java/org/hisp/dhis/mobile/api/model/OrgUnitsTest.java 2013-02-25 06:32:56 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/test/java/org/hisp/dhis/mobile/api/model/OrgUnitsTest.java 2013-03-06 04:25:38 +0000 @@ -85,6 +85,7 @@ unit.setUpdateContactUrl( "updateContactUrl" ); unit.setFindPatientUrl( "findPatientUrl" ); unit.setUploadProgramStageUrl( "uploadProgramStageUrl" ); + unit.setEnrollProgramUrl( "enrollProgramUrl" ); return unit; } } === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java 2013-03-05 07:29:03 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java 2013-03-06 04:25:38 +0000 @@ -590,9 +590,28 @@ } @Override - public Collection getPatientByFullname( String fullName ) + public Collection getPatientByFullname( String fullName, int orgUnitId ) { - return patientStore.getByFullName( fullName ); + Collection patients = new HashSet(); + + patients = patientStore.getByFullName( fullName ); + + if ( orgUnitId != 0 ) + { + Set toRemoveList = new HashSet(); + + for ( Patient patient : patients ) + { + if ( patient.getOrganisationUnit().getId() != orgUnitId ) + { + toRemoveList.add( patient ); + } + } + + patients.removeAll( toRemoveList ); + } + + return patients; } } === modified file 'dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileClientController.java' --- dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileClientController.java 2013-02-25 06:32:56 +0000 +++ dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileClientController.java 2013-03-06 04:25:38 +0000 @@ -92,6 +92,7 @@ orgUnit.setUpdateContactUrl( getUrl( request, unit.getId(), "updateContactForMobile" ) ); orgUnit.setFindPatientUrl( getUrl( request, unit.getId(), "findPatient" ) ); orgUnit.setUploadProgramStageUrl( getUrl( request, unit.getId(), "uploadProgramStage" ) ); + orgUnit.setEnrollProgramUrl( getUrl( request, unit.getId(), "enrollProgram" ) ); // generate URL for download new version String full = UrlUtils.buildFullRequestUrl( request ); @@ -105,7 +106,14 @@ private static String getUrl( HttpServletRequest request, int id, String path ) { String url = UrlUtils.buildFullRequestUrl( request ); - url = url + "/orgUnits/" + id + "/" + path; + if( url.endsWith( "/" )) + { + url = url + "orgUnits/" + id + "/" + path; + } + else + { + url = url + "/orgUnits/" + id + "/" + path; + } return url; } } === 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-03-05 07:46:13 +0000 +++ dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileOrganisationUnitController.java 2013-03-06 04:25:38 +0000 @@ -281,7 +281,7 @@ public Patient findPatientByName( @PathVariable int id, @RequestHeader( "name" ) String fullName ) throws NotAllowedException { - return activityReportingService.findPatient( fullName ); + return activityReportingService.findPatient( fullName, id ); } @RequestMapping( method = RequestMethod.POST, value = "{clientVersion}/orgUnits/{id}/uploadProgramStage" ) @@ -289,8 +289,15 @@ public String saveProgramStage( @PathVariable int id, @RequestBody ProgramStage programStage ) throws NotAllowedException { - activityReportingService.saveProgramStage( programStage ); - return PROGRAM_STAGE_UPLOADED; + return activityReportingService.saveProgramStage( programStage ); + } + + @RequestMapping( method = RequestMethod.GET, value = "{clientVersion}/orgUnits/{id}/enrollProgram" ) + @ResponseBody + public Patient enrollProgram( @PathVariable int id, @RequestHeader( "enrollInfo" ) String enrollInfo ) + throws NotAllowedException + { + return activityReportingService.enrollProgram( enrollInfo, id ); } // Supportive methods === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/enrollment/programEnrollmentForm.vm' --- dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/enrollment/programEnrollmentForm.vm 2012-10-03 07:23:08 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/enrollment/programEnrollmentForm.vm 2013-03-06 04:25:38 +0000 @@ -4,6 +4,7 @@

+ #if( $validationMap.get( "enrollmentDate" ) )
$i18n.getString($validationMap.get( "enrollmentDate" ))