@Override public void deleteProgram( Program program ) { Iterator<ProgramStage> iterator = program.getProgramStages().iterator(); while ( iterator.hasNext() ) { ProgramStage programStage = iterator.next(); iterator.remove(); programStageService.deleteProgramStage( programStage ); } }
private void syncSharingForEventProgram( Program program ) { if ( ProgramType.WITH_REGISTRATION == program.getProgramType() || program.getProgramStages().isEmpty() ) { return; } ProgramStage programStage = program.getProgramStages().iterator().next(); AccessStringHelper.copySharing( program, programStage ); programStage.setUser( program.getUser() ); sessionFactory.getCurrentSession().update( programStage ); } }
private Program getProgram( IdScheme idScheme, String id ) { if ( id == null ) { return null; } Program program = programCache.get( id ); if ( program == null ) { program = manager.getObject( Program.class, idScheme, id ); if( program != null ) { programCache.put( id, program ); programStageCache.putAll( program.getProgramStages().stream().collect( Collectors.toMap( ProgramStage::getUid, ps -> ps ) ) ); for ( ProgramStage programStage : program.getProgramStages() ) { dataElementCache.putAll( programStage.getAllDataElements().stream().collect( Collectors.toMap( DataElement::getUid, de -> de ) ) ); } } } return program; }
@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(); }
programStageCache.putAll( program.getProgramStages().stream().collect( Collectors.toMap( ProgramStage::getUid, ps -> ps ) ) ); for ( ProgramStage programStage : program.getProgramStages() )
Set<ProgramStage> programStages = programStage.getProgram().getProgramStages();
private SetMap<Class<? extends IdentifiableObject>, IdentifiableObject> handleProgram( SetMap<Class<? extends IdentifiableObject>, IdentifiableObject> metadata, Program program ) { if ( program == null ) return metadata; metadata.putValue( Program.class, program ); handleAttributes( metadata, program ); handleCategoryCombo( metadata, program.getCategoryCombo() ); handleDataEntryForm( metadata, program.getDataEntryForm() ); handleTrackedEntityType( metadata, program.getTrackedEntityType() ); program.getNotificationTemplates().forEach( template -> handleNotificationTemplate( metadata, template ) ); program.getProgramStages().forEach( programStage -> handleProgramStage( metadata, programStage ) ); program.getProgramAttributes().forEach( programTrackedEntityAttribute -> handleProgramTrackedEntityAttribute( metadata, programTrackedEntityAttribute ) ); program.getProgramIndicators().forEach( programIndicator -> handleProgramIndicator( metadata, programIndicator ) ); List<ProgramRule> programRules = programRuleService.getProgramRule( program ); List<ProgramRuleVariable> programRuleVariables = programRuleVariableService.getProgramRuleVariable( program ); programRules.forEach( programRule -> handleProgramRule( metadata, programRule ) ); programRuleVariables.forEach( programRuleVariable -> handleProgramRuleVariable( metadata, programRuleVariable ) ); return metadata; }
program.getProgramStages().add( programStage );
for ( ProgramStage st : program.getProgramStages() )