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; }
public boolean hasActiveProgramStageInstance( ProgramStage programStage ) { for ( ProgramStageInstance programStageInstance : programStageInstances ) { if ( !programStageInstance.isDeleted() && programStageInstance.getProgramStage().getUid().equalsIgnoreCase( programStage.getUid() ) && programStageInstance.getStatus() == EventStatus.ACTIVE ) { return true; } } return false; }
public boolean hasProgramStageInstance( ProgramStage programStage ) { for ( ProgramStageInstance programStageInstance : programStageInstances ) { if ( !programStageInstance.isDeleted() && programStageInstance.getProgramStage().getUid().equalsIgnoreCase( programStage.getUid() ) && programStageInstance.getStatus() != EventStatus.SKIPPED ) { return true; } } return false; }
@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(); }
@Override public List<RuleEvent> toMappedRuleEvents ( Set<ProgramStageInstance> programStageInstances, ProgramStageInstance psiToEvaluate ) { return programStageInstances.stream().filter( Objects::nonNull ) .filter( psi -> !psi.getUid().equals( psiToEvaluate.getUid() ) ) .map( ps -> RuleEvent.create( ps.getUid(), ps.getProgramStage().getUid(), RuleEvent.Status.valueOf( ps.getStatus().toString() ), ps.getExecutionDate() != null ? ps.getExecutionDate() :ps.getDueDate(), ps.getDueDate(), ps.getOrganisationUnit() != null ? ps.getOrganisationUnit().getUid() : "", ps.getDataValues().stream().filter( Objects::nonNull ) .map( dv -> RuleDataValue.create( ps.getExecutionDate() != null ? ps.getExecutionDate() :ps.getDueDate(), dv.getProgramStageInstance().getProgramStage().getUid(), dv.getDataElement().getUid(), getTrackedEntityDataValue( dv ) ) ) .collect( Collectors.toList() ), ps.getProgramStage().getName() ) ).collect( Collectors.toList() ); }
@Override public List<RuleEvent> toMappedRuleEvents( Set<ProgramStageInstance> programStageInstances ) { return programStageInstances.stream().filter( Objects::nonNull ) .map( ps -> RuleEvent.create( ps.getUid(), ps.getProgramStage().getUid(), RuleEvent.Status.valueOf( ps.getStatus().toString() ), ps.getExecutionDate() != null ? ps.getExecutionDate() : ps.getDueDate(), ps.getDueDate(), ps.getOrganisationUnit() != null ? ps.getOrganisationUnit().getUid() : "", ps.getDataValues().stream().filter( Objects::nonNull ) .map( dv -> RuleDataValue.create( ps.getExecutionDate() != null ? ps.getExecutionDate() :ps.getDueDate(), dv.getProgramStageInstance().getProgramStage().getUid(), dv.getDataElement().getUid(), getTrackedEntityDataValue( dv ) ) ) .collect( Collectors.toList() ), ps.getProgramStage().getName() ) ).collect( Collectors.toList() ); }
@Override public RuleEvent toMappedRuleEvent( ProgramStageInstance psi ) { if ( psi == null ) { return null; } return RuleEvent.create( psi.getUid(), psi.getProgramStage().getUid(), RuleEvent.Status.valueOf( psi.getStatus().toString() ), psi.getExecutionDate() != null ? psi.getExecutionDate() : psi.getDueDate(), psi.getDueDate(), psi.getOrganisationUnit() != null ? psi.getOrganisationUnit().getUid() : "", psi.getDataValues().stream().filter( Objects::nonNull ) .map( dv -> RuleDataValue.create( psi.getExecutionDate() != null ? psi.getExecutionDate() :psi.getDueDate(), dv.getProgramStageInstance().getProgramStage().getUid(), dv.getDataElement().getUid(), getTrackedEntityDataValue( dv ) ) ) .collect( Collectors.toList() ), psi.getProgramStage().getName() ); }
|| programStageInstance != null && programStageInstance.getStatus() == EventStatus.COMPLETED )
event.setStatus( programStageInstance.getStatus() ); event.setEventDate( DateUtils.getIso8601NoTz( programStageInstance.getExecutionDate() ) ); event.setDueDate( DateUtils.getIso8601NoTz( programStageInstance.getDueDate() ) );