public boolean hasEventProgramIndicatorDimension() { return programIndicator != null && AnalyticsType.EVENT.equals( programIndicator.getAnalyticsType() ); }
public boolean hasEnrollmentProgramIndicatorDimension() { return programIndicator != null && AnalyticsType.ENROLLMENT.equals( programIndicator.getAnalyticsType() ); }
/** * Returns a set of data element and attribute identifiers part of the given * input expression. * * @param input the expression. * @return a set of UIDs. */ public static Set<String> getDataElementAndAttributeIdentifiers( String input, AnalyticsType analyticsType ) { if ( AnalyticsType.ENROLLMENT.equals( analyticsType ) ) { Set<String> allElementsAndAttributes = RegexUtils.getMatches( ATTRIBUTE_PATTERN, input, 1 ); Set<String> programStagesAndDataElements = RegexUtils.getMatches( PROGRAMSTAGE_DATAELEMENT_GROUP_PATTERN, input, 1 ); for ( String programStageAndDataElement : programStagesAndDataElements ) { allElementsAndAttributes.add( programStageAndDataElement.replace( '.', '_' ) ); } return allElementsAndAttributes; } else { return Sets.union( RegexUtils.getMatches( DATAELEMENT_PATTERN, input, 2 ), RegexUtils.getMatches( ATTRIBUTE_PATTERN, input, 1 ) ); } }
public String getProgramIndicatorColumnSelectSql( String programStageUid, String columnName, Date reportingStartDate, Date reportingEndDate, ProgramIndicator programIndicator ) { if ( programIndicator.getAnalyticsType().equals( AnalyticsType.ENROLLMENT ) ) { String eventTableName = "analytics_event_" + programIndicator.getProgram().getUid(); return "(select " + columnName + " from " + eventTableName + " where " + eventTableName + ".pi = " + ANALYTICS_TBL_ALIAS + ".pi and " + columnName + " is not null " + ( programIndicator.getEndEventBoundary() != null ? ("and " + getBoundaryCondition( programIndicator.getEndEventBoundary(), programIndicator, reportingStartDate, reportingEndDate ) + " ") : "" ) + ( programIndicator.getStartEventBoundary() != null ? ( "and " + getBoundaryCondition( programIndicator.getStartEventBoundary(), programIndicator, reportingStartDate, reportingEndDate ) + " ") : "" ) + "and ps = '" + programStageUid + "' " + "order by executiondate " + "desc limit 1 )"; } else { return columnName; } }