private void sendProgramNotification( ProgramStageInstance programStageInstance, ImportOptions importOptions ) { if ( !importOptions.isSkipNotifications() ) { if ( programStageInstance.isCompleted() ) { programNotificationPublisher.publishEvent( programStageInstance, ProgramNotificationEventType.PROGRAM_STAGE_COMPLETION ); } eventPublisher.publishEvent( new ProgramStageInstanceScheduledEvent( this, programStageInstance ) ); } }
@Override public boolean canAutoCompleteProgramInstanceStatus( ProgramInstance programInstance ) { Set<ProgramStageInstance> programStageInstances = new HashSet<>( programInstance.getProgramStageInstances() ); Set<ProgramStage> programStages = new HashSet<>(); for ( ProgramStageInstance programStageInstance : programStageInstances ) { if ( (!programStageInstance.isCompleted() && programStageInstance.getStatus() != EventStatus.SKIPPED) || programStageInstance.getProgramStage().getRepeatable() ) { return false; } programStages.add( programStageInstance.getProgramStage() ); } return programStages.size() == programInstance.getProgram().getProgramStages().size(); }
public ProgramStageInstance getActiveProgramStageInstance() { for ( ProgramStageInstance programStageInstance : programStageInstances ) { if ( programStageInstance.getProgramStage().getOpenAfterEnrollment() && !programStageInstance.isCompleted() && (programStageInstance.getStatus() != null && programStageInstance.getStatus() != EventStatus.SKIPPED) ) { return programStageInstance; } } for ( ProgramStageInstance programStageInstance : programStageInstances ) { if ( !programStageInstance.isCompleted() && (programStageInstance.getStatus() != null && programStageInstance.getStatus() != EventStatus.SKIPPED) ) { return programStageInstance; } } return null; }
if ( programStageInstance.isCompleted() )