@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() ); }
private ProgramStageInstance createProgramStageInstance( Event event, ProgramStage programStage, ProgramInstance programInstance, OrganisationUnit organisationUnit, Date dueDate, Date executionDate, int status, String completedBy, String storeBy, String programStageInstanceIdentifier, CategoryOptionCombo aoc, ImportOptions importOptions ) { ProgramStageInstance programStageInstance = new ProgramStageInstance(); if ( importOptions.getIdSchemes().getProgramStageInstanceIdScheme().equals( IdScheme.UID ) ) { programStageInstance .setUid( CodeGenerator.isValidUid( programStageInstanceIdentifier ) ? programStageInstanceIdentifier : CodeGenerator.generateUid() ); } else if ( importOptions.getIdSchemes().getProgramStageInstanceIdScheme().equals( IdScheme.CODE ) ) { programStageInstance.setUid( CodeGenerator.generateUid() ); programStageInstance.setCode( programStageInstanceIdentifier ); } programStageInstance.setStoredBy( storeBy ); updateProgramStageInstance( event, programStage, programInstance, organisationUnit, dueDate, executionDate, status, completedBy, programStageInstance, aoc, importOptions ); return programStageInstance; }
Date todayDate = today.getTime(); programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstance.setCompletedDate( todayDate ); programStageInstance.setCompletedDate( completedDate ); if ( StringUtils.isEmpty( programStageInstance.getCompletedBy() ) ) programStageInstance.setCompletedBy( currentUserService.getCurrentUsername() ); if ( programStageInstance.getProgramInstance().getProgram().isRegistration() ) .canAutoCompleteProgramInstanceStatus( programStageInstance.getProgramInstance() ); programInstanceService.completeProgramInstanceStatus( programStageInstance.getProgramInstance() );
@Override public int compare( ProgramStageInstance programStageInstance1, ProgramStageInstance programStageInstance2 ) { Date d1 = (programStageInstance1.getExecutionDate() != null) ? programStageInstance1.getExecutionDate() : programStageInstance1.getDueDate(); Date d2 = (programStageInstance2.getExecutionDate() != null) ? programStageInstance2.getExecutionDate() : programStageInstance2.getDueDate(); if ( d1.before( d2 ) ) { return -1; } else if ( d1.after( d2 ) ) { return 1; } return 0; } }
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; }
event.setEvent( programStageInstance.getUid() ); if ( programStageInstance.getProgramInstance().getEntityInstance() != null ) event.setTrackedEntityInstance( programStageInstance.getProgramInstance().getEntityInstance().getUid() ); event.setFollowup( programStageInstance.getProgramInstance().getFollowup() ); event.setEnrollmentStatus( EnrollmentStatus.fromProgramStatus( programStageInstance.getProgramInstance().getStatus() ) ); event.setStatus( programStageInstance.getStatus() ); event.setEventDate( DateUtils.getIso8601NoTz( programStageInstance.getExecutionDate() ) ); event.setDueDate( DateUtils.getIso8601NoTz( programStageInstance.getDueDate() ) ); event.setStoredBy( programStageInstance.getStoredBy() ); event.setCompletedBy( programStageInstance.getCompletedBy() ); event.setCompletedDate( DateUtils.getIso8601NoTz( programStageInstance.getCompletedDate() ) ); event.setCreated( DateUtils.getIso8601NoTz( programStageInstance.getCreated() ) ); event.setCreatedAtClient( DateUtils.getIso8601NoTz( programStageInstance.getCreatedAtClient() ) ); event.setLastUpdated( DateUtils.getIso8601NoTz( programStageInstance.getLastUpdated() ) ); event.setLastUpdatedAtClient( DateUtils.getIso8601NoTz( programStageInstance.getLastUpdatedAtClient() ) ); event.setGeometry( programStageInstance.getGeometry() ); event.setDeleted( programStageInstance.isDeleted() ); OrganisationUnit ou = programStageInstance.getOrganisationUnit(); Program program = programStageInstance.getProgramInstance().getProgram(); event.setEnrollment( programStageInstance.getProgramInstance().getUid() ); event.setProgramStage( programStageInstance.getProgramStage().getUid() ); event.setAttributeOptionCombo( programStageInstance.getAttributeOptionCombo().getUid() ); event.setAttributeCategoryOptions( String.join( ";", programStageInstance.getAttributeOptionCombo()
ImportOptions importOptions ) programStageInstance.setProgramInstance( programInstance ); programStageInstance.setProgramStage( programStage ); programStageInstance.setDueDate( dueDate ); programStageInstance.setExecutionDate( executionDate ); programStageInstance.setOrganisationUnit( organisationUnit ); programStageInstance.setAttributeOptionCombo( aoc ); programStageInstance.setGeometry( event.getGeometry() ); programStageInstance.setStatus( EventStatus.fromInt( status ) ); if ( programStageInstance.isCompleted() ) programStageInstance.setCompletedBy( completedBy ); programStageInstance.setCompletedDate( completedDate ); if ( programStageInstance.getId() == 0 ) programStageInstance.setAutoFields(); programStageInstanceService.addProgramStageInstance( programStageInstance );
organisationUnit = programStageInstance.getOrganisationUnit(); programStageInstance.setExecutionDate( executionDate ); programStageInstance.setStoredBy( storedBy ); if ( event.getStatus() != programStageInstance.getStatus() && programStageInstance.getStatus() == EventStatus.COMPLETED ) programStageInstance.setStatus( EventStatus.ACTIVE ); programStageInstance.setCompletedBy( null ); programStageInstance.setCompletedDate( null ); else if ( programStageInstance.getStatus() != event.getStatus() && event.getStatus() == EventStatus.COMPLETED ) programStageInstance.setCompletedBy( completedBy ); programStageInstance.setCompletedDate( completedDate ); programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstance.setStatus( EventStatus.SKIPPED ); programStageInstance.setStatus( EventStatus.SCHEDULE ); programStageInstance.setDueDate( dueDate ); programStageInstance.setOrganisationUnit( organisationUnit ); programStageInstance.setGeometry( event.getGeometry() ); programStageInstance.setAttributeOptionCombo( aoc );
ProgramStageInstance programStageInstance = new ProgramStageInstance(); programStageInstance.setOrganisationUnit( ous.iterator().next() ); programStageInstance.setProgramStage( smsCommand.getProgramStage() ); programStageInstance.setProgramInstance( programInstance ); programStageInstance.setExecutionDate( sms.getSentDate() ); programStageInstance.setDueDate( sms.getSentDate() ); programStageInstance .setAttributeOptionCombo( dataElementCategoryService.getDefaultCategoryOptionCombo() ); programStageInstance.setCompletedBy( "DHIS 2" );
programStageInstance = new ProgramStageInstance(); programStageInstance.setProgramInstance( programInstance ); programStageInstance.setProgramStage( programStage ); programStageInstance.setOrganisationUnit( organisationUnit ); programStageInstance.setDueDate( dueDate ); programStageInstance.setStatus( EventStatus.SCHEDULE ); programStageInstance.setExecutionDate( dueDate ); programStageInstance.setStatus( EventStatus.ACTIVE );
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; }
ProgramStage programStage = programStageInstance.getProgramStage(); if ( !ownershipAccessManager.hasAccess( user, programStageInstance.getProgramInstance().getEntityInstance(), program ) ) OrganisationUnit ou = programStageInstance.getOrganisationUnit(); if ( ou != null ) errors.addAll( canRead( user, programStageInstance.getAttributeOptionCombo() ) );
if ( programStageInstance != null && ( programStageInstance.isDeleted() || importOptions.getImportStrategy().isCreate() ) ) programStage = programStageInstance.getProgramStage(); new ProgramStageInstance( programInstance, programStage ).setOrganisationUnit( organisationUnit ).setStatus( event.getStatus() ) );
if ( programStageInstance.getExecutionDate() == null ) if ( programStageInstance.getDueDate().before( currentDate ) ) programStageInstance.setStatus( EventStatus.SKIPPED ); programStageInstanceStore.update( programStageInstance );
programStageInstance.setStatus( EventStatus.COMPLETED ); programStageInstance.setStatus( EventStatus.VISITED ); organisationUnit = programStageInstance.getOrganisationUnit(); programStageInstance.setOrganisationUnit( organisationUnit ); programStageInstance.setExecutionDate( executionDate ); programStageInstanceService.updateProgramStageInstance( programStageInstance );
|| programStageInstance != null && programStageInstance.getStatus() == EventStatus.COMPLETED ) referenceDate = programStageInstance.getCompletedDate(); if ( programStageInstance.getExecutionDate() == null ) Period period = periodType.createPeriod( programStageInstance.getExecutionDate() );
@Override public String toString() { return "TrackedEntityDataValue{" + "dataElement=" + dataElement + ", programStageInstance=" + programStageInstance.getUid() + ", created=" + created + ", lastUpdated=" + lastUpdated + ", value='" + value + '\'' + ", providedElsewhere=" + providedElsewhere + ", storedBy='" + storedBy + '\'' + '}'; } }
@Override public void implement( RuleEffect ruleEffect, ProgramStageInstance programStageInstance ) { ProgramInstance programInstance = programStageInstance.getProgramInstance(); assignValue( ruleEffect, programInstance ); }
private Set<ProgramNotificationTemplate> resolveTemplates( ProgramStageInstance programStageInstance, final NotificationTrigger trigger ) { return programStageInstance.getProgramStage().getNotificationTemplates().stream() .filter( t -> t.getNotificationTrigger() == trigger ) .collect( Collectors.toSet() ); }
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() ) programStageInstance.getDataValues().stream() .filter( dv -> !StringUtils.isEmpty( dv.getValue() )) .map( dv -> dv.getDataElement().getUid() )