=== 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-09-09 12:57:33 +0000 +++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java 2013-09-09 17:13:07 +0000 @@ -954,7 +954,7 @@ mobileProgramList.add( getMobileProgram( patient, each ) ); } } - + patientModel.setPrograms( mobileProgramList ); /* * List mobileProgramIDList = new ArrayList(); for ( @@ -1060,75 +1060,78 @@ private List getMobileProgramStages( Patient patient, ProgramInstance programInstance ) { - List mobileProgramStages = new ArrayList(); for ( ProgramStage eachProgramStage : programInstance.getProgram().getProgramStages() ) { ProgramStageInstance programStageInstance = programStageInstanceService.getProgramStageInstance( programInstance, eachProgramStage ); - org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage mobileProgramStage = new org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage(); - List mobileSections = new ArrayList(); - mobileProgramStage.setId( programStageInstance.getId() ); - mobileProgramStage.setName( eachProgramStage.getName() ); - - // get report date - if ( programStageInstance.getExecutionDate() != null ) - { - mobileProgramStage.setReportDate( PeriodUtil.dateToString( programStageInstance.getExecutionDate() ) ); - } - else - { - mobileProgramStage.setReportDate( "" ); - } - - if ( programStageInstance.getProgramStage().getReportDateDescription() == null ) - { - mobileProgramStage.setReportDateDescription( "Report Date" ); - } - else - { - mobileProgramStage.setReportDateDescription( programStageInstance.getProgramStage() - .getReportDateDescription() ); - } - - // is repeatable - mobileProgramStage.setRepeatable( eachProgramStage.getIrregular() ); - - // is completed - mobileProgramStage.setCompleted( checkIfProgramStageCompleted( patient, programInstance.getProgram(), - eachProgramStage ) ); - - // is single event - mobileProgramStage.setSingleEvent( programInstance.getProgram().isSingleEvent() ); - - // Set all data elements - mobileProgramStage.setDataElements( getDataElementsForMobile( eachProgramStage, programStageInstance ) ); - - // Set all program sections - if ( eachProgramStage.getProgramStageSections().size() > 0 ) - { - for ( ProgramStageSection eachSection : eachProgramStage.getProgramStageSections() ) - { - org.hisp.dhis.api.mobile.model.LWUITmodel.Section mobileSection = new org.hisp.dhis.api.mobile.model.LWUITmodel.Section(); - mobileSection.setId( eachSection.getId() ); - mobileSection.setName( eachSection.getName() ); - - // Set all data elements' id, then we could have full from - // data element list of program stage - List dataElementIds = new ArrayList(); - for ( ProgramStageDataElement eachPogramStageDataElement : eachSection - .getProgramStageDataElements() ) + + //only for Mujhu database, because there is null program stage instance. This condition should be removed in the future + if( programStageInstance != null ) + { + org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage mobileProgramStage = new org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage(); + List mobileSections = new ArrayList(); + mobileProgramStage.setId( programStageInstance.getId() ); + mobileProgramStage.setName( eachProgramStage.getName() ); + + // get report date + if ( programStageInstance.getExecutionDate() != null ) + { + mobileProgramStage.setReportDate( PeriodUtil.dateToString( programStageInstance.getExecutionDate() ) ); + } + else + { + mobileProgramStage.setReportDate( "" ); + } + + if ( programStageInstance.getProgramStage().getReportDateDescription() == null ) + { + mobileProgramStage.setReportDateDescription( "Report Date" ); + } + else + { + mobileProgramStage.setReportDateDescription( programStageInstance.getProgramStage() + .getReportDateDescription() ); + } + + // is repeatable + mobileProgramStage.setRepeatable( eachProgramStage.getIrregular() ); + + // is completed + mobileProgramStage.setCompleted( checkIfProgramStageCompleted( patient, programInstance.getProgram(), + eachProgramStage ) ); + + // is single event + mobileProgramStage.setSingleEvent( programInstance.getProgram().isSingleEvent() ); + + // Set all data elements + mobileProgramStage.setDataElements( getDataElementsForMobile( eachProgramStage, programStageInstance ) ); + + // Set all program sections + if ( eachProgramStage.getProgramStageSections().size() > 0 ) + { + for ( ProgramStageSection eachSection : eachProgramStage.getProgramStageSections() ) { - dataElementIds.add( eachPogramStageDataElement.getDataElement().getId() ); + org.hisp.dhis.api.mobile.model.LWUITmodel.Section mobileSection = new org.hisp.dhis.api.mobile.model.LWUITmodel.Section(); + mobileSection.setId( eachSection.getId() ); + mobileSection.setName( eachSection.getName() ); + + // Set all data elements' id, then we could have full from + // data element list of program stage + List dataElementIds = new ArrayList(); + for ( ProgramStageDataElement eachPogramStageDataElement : eachSection + .getProgramStageDataElements() ) + { + dataElementIds.add( eachPogramStageDataElement.getDataElement().getId() ); + } + mobileSection.setDataElementIds( dataElementIds ); + mobileSections.add( mobileSection ); } - mobileSection.setDataElementIds( dataElementIds ); - mobileSections.add( mobileSection ); } + mobileProgramStage.setSections( mobileSections ); + + mobileProgramStages.add( mobileProgramStage ); } - mobileProgramStage.setSections( mobileSections ); - - mobileProgramStages.add( mobileProgramStage ); - } return mobileProgramStages; }