------------------------------------------------------------ revno: 12659 committer: Morten Olav Hansen <morte...@gmail.com> branch nick: dhis2 timestamp: Tue 2013-10-15 11:06:28 +0200 message: implemented support for updating enrollments modified: dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/EnrollmentServiceTest.java
-- lp:dhis2 https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk Your team DHIS 2 developers is subscribed to branch lp:dhis2. To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2013-10-15 07:47:05 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2013-10-15 09:06:28 +0000 @@ -36,7 +36,6 @@ import org.hisp.dhis.i18n.I18nManager; import org.hisp.dhis.i18n.I18nManagerException; import org.hisp.dhis.organisationunit.OrganisationUnit; -import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patient.PatientService; import org.hisp.dhis.program.Program; @@ -287,7 +286,59 @@ @Override public ImportSummary updateEnrollment( Enrollment enrollment ) { - return null; + if ( enrollment.getEnrollment() == null ) + { + ImportSummary importSummary = new ImportSummary( ImportStatus.ERROR, "No enrollment ID was supplied" ); + importSummary.getImportCount().incrementIgnored(); + + return importSummary; + } + + ProgramInstance programInstance = programInstanceService.getProgramInstance( enrollment.getEnrollment() ); + + if ( programInstance == null ) + { + ImportSummary importSummary = new ImportSummary( ImportStatus.ERROR, "Enrollment ID was not valid." ); + importSummary.getImportCount().incrementIgnored(); + + return importSummary; + } + + Patient patient = getPatient( enrollment.getPerson() ); + Program program = getProgram( enrollment.getProgram() ); + + programInstance.setProgram( program ); + programInstance.setPatient( patient ); + programInstance.setDateOfIncident( enrollment.getDateOfIncident() ); + programInstance.setEnrollmentDate( enrollment.getDateOfEnrollment() ); + + if ( programInstance.getStatus() != enrollment.getStatus().getValue() ) + { + if ( enrollment.getStatus().equals( EnrollmentStatus.CANCELLED ) ) + { + programInstanceService.cancelProgramInstanceStatus( programInstance ); + } + else if ( enrollment.getStatus().equals( EnrollmentStatus.COMPLETED ) ) + { + programInstanceService.completeProgramInstanceStatus( programInstance, getFormat() ); + } + else + { + ImportSummary importSummary = new ImportSummary( ImportStatus.ERROR, "Re-enrollment is not allowed, please create a new enrollment." ); + importSummary.getImportCount().incrementIgnored(); + + return importSummary; + } + } + + programInstanceService.updateProgramInstance( programInstance ); + + ImportSummary importSummary = new ImportSummary( ImportStatus.SUCCESS ); + importSummary.setReference( enrollment.getEnrollment() ); + importSummary.setDataValueCount( null ); + importSummary.getImportCount().incrementImported(); + + return importSummary; } // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/EnrollmentServiceTest.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/EnrollmentServiceTest.java 2013-09-23 08:43:52 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/EnrollmentServiceTest.java 2013-10-15 09:06:28 +0000 @@ -48,6 +48,7 @@ import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; +import java.util.Date; import java.util.HashSet; import java.util.List; @@ -201,6 +202,36 @@ } @Test + public void testUpdateEnrollment() + { + Enrollment enrollment = new Enrollment(); + enrollment.setPerson( maleA.getUid() ); + enrollment.setProgram( programA.getUid() ); + enrollment.setDateOfIncident( new Date() ); + enrollment.setDateOfEnrollment( new Date() ); + + ImportSummary importSummary = enrollmentService.saveEnrollment( enrollment ); + assertEquals( ImportStatus.SUCCESS, importSummary.getStatus() ); + + List<Enrollment> enrollments = enrollmentService.getEnrollments( maleA ).getEnrollments(); + + assertEquals( 1, enrollments.size() ); + enrollment = enrollments.get( 0 ); + + assertEquals( maleA.getUid(), enrollment.getPerson() ); + assertEquals( programA.getUid(), enrollment.getProgram() ); + + Date MARCH_20_81 = new Date( 81, 2, 20 ); + + enrollment.setDateOfEnrollment( MARCH_20_81 ); + enrollmentService.updateEnrollment( enrollment ); + + enrollments = enrollmentService.getEnrollments( maleA ).getEnrollments(); + assertEquals( 1, enrollments.size() ); + assertEquals( MARCH_20_81, enrollments.get( 0 ).getDateOfEnrollment() ); + } + + @Test public void testMultipleEnrollmentsShouldFail() { Enrollment enrollment = new Enrollment();
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp