private Set<ProgramNotificationTemplate> resolveTemplates( ProgramStageInstance programStageInstance, final NotificationTrigger trigger ) { return programStageInstance.getProgramStage().getNotificationTemplates().stream() .filter( t -> t.getNotificationTrigger() == trigger ) .collect( Collectors.toSet() ); }
@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 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 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() ); }
private Set<String> validatePresenceOfMandatoryDataElements(Event event, ProgramStageInstance programStageInstance, ImportSummary importSummary, boolean isSingleValueUpdate) { ValidationStrategy validationStrategy = programStageInstance.getProgramStage().getValidationStrategy(); Set<String> mandatoryDataElements = new HashSet<>( ); mandatoryDataElements = programStageInstance.getProgramStage().getProgramStageDataElements().stream() .filter( psde -> psde.isCompulsory() ) .map( psde -> psde.getDataElement().getUid() )
@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() ); }
private boolean hasDataWriteAccess( ProgramMessage message ) { IdentifiableObject object = null; boolean isAuthorized; if ( message.hasProgramInstance() ) { object = message.getProgramInstance().getProgram(); } else if( message.hasProgramStageInstance() ) { object = message.getProgramStageInstance().getProgramStage(); } if ( object != null ) { isAuthorized = aclService.canDataWrite( currentUserService.getCurrentUser(), object ); if ( !isAuthorized ) { log.error( String.format( "Sending message failed. User does not have write access for %s.", object.getName() ) ); return false; } } return true; }
ValidationStrategy validationStrategy = programStageInstance.getProgramStage().getValidationStrategy();
!psi.getProgramStage().getProgram().equals( constraint.getProgram() ) ) !psi.getProgramStage().equals( constraint.getProgramStage() ) )
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; }
ProgramStage programStage = programStageInstance.getProgramStage();
ProgramStage programStage = programStageInstance.getProgramStage();
@Override public ImportSummary deleteEvent( String uid ) { boolean existsEvent = programStageInstanceService.programStageInstanceExists( uid ); if ( existsEvent ) { ProgramStageInstance programStageInstance = programStageInstanceService.getProgramStageInstance( uid ); List<String> errors = trackerAccessManager.canWrite( currentUserService.getCurrentUser(), programStageInstance ); if ( !errors.isEmpty() ) { return new ImportSummary( ImportStatus.ERROR, errors.toString() ).incrementIgnored(); } programStageInstanceService.deleteProgramStageInstance( programStageInstance ); if ( programStageInstance.getProgramStage().getProgram().isRegistration() ) { entityInstanceService.updateTrackedEntityInstance( programStageInstance.getProgramInstance().getEntityInstance() ); } return new ImportSummary( ImportStatus.SUCCESS, "Deletion of event " + uid + " was successful" ).incrementDeleted(); } else { return new ImportSummary( ImportStatus.SUCCESS, "Event " + uid + " cannot be deleted as it is not present in the system" ).incrementIgnored(); } }
if ( programStageInstance.getProgramStage().getFeatureType().equals( FeatureType.NONE ) || !programStageInstance.getProgramStage().getFeatureType().value().equals( event.getGeometry().getGeometryType() ) ) ") does not conform to the feature type (" + programStageInstance.getProgramStage().getFeatureType().value() + ") specified for the program stage: " + programStageInstance.getProgramStage().getUid() );
event.setProgramStage( programStageInstance.getProgramStage().getUid() ); event.setAttributeOptionCombo( programStageInstance.getAttributeOptionCombo().getUid() ); event.setAttributeCategoryOptions( String.join( ";", programStageInstance.getAttributeOptionCombo()
programStage = programStageInstance.getProgramStage();