Search in sources :

Example 6 with DataElementGroup

use of org.hisp.dhis.dataelement.DataElementGroup in project dhis2-core by dhis2.

the class DataQueryServiceDimensionItemKeywordTest method convertAnalyticsRequestWithDataElementGroup.

@Test
void convertAnalyticsRequestWithDataElementGroup() {
    when(dimensionService.getDataDimensionalItemObject(UID, DATA_ELEMENT_2.getUid())).thenReturn(DATA_ELEMENT_2);
    final String DATA_ELEMENT_GROUP_UID = "oehv9EO3vP7";
    when(dimensionService.getDataDimensionalItemObject(UID, "cYeuwXTCPkU")).thenReturn(new DataElement());
    DataElementGroup dataElementGroup = new DataElementGroup("dummy");
    dataElementGroup.setUid(DATA_ELEMENT_GROUP_UID);
    dataElementGroup.setCode("CODE_10");
    dataElementGroup.setMembers(Sets.newHashSet(new DataElement(), new DataElement()));
    when(idObjectManager.getObject(DataElementGroup.class, UID, DATA_ELEMENT_GROUP_UID)).thenReturn(dataElementGroup);
    when(idObjectManager.getObject(OrganisationUnit.class, UID, "goRUwCHPg1M")).thenReturn(new OrganisationUnit("aaa"));
    when(idObjectManager.getObject(OrganisationUnit.class, UID, "fdc6uOvgoji")).thenReturn(new OrganisationUnit("bbb"));
    rb.addOuFilter("goRUwCHPg1M;fdc6uOvgoji");
    rb.addDimension("DE_GROUP-" + DATA_ELEMENT_GROUP_UID + ";cYeuwXTCPkU;Jtf34kNZhz");
    rb.addPeDimension(PERIOD_DIMENSION);
    DataQueryRequest request = DataQueryRequest.newBuilder().filter(rb.getFilterParams()).dimension(rb.getDimensionParams()).build();
    DataQueryParams params = target.getFromRequest(request);
    DimensionalObject dimension = params.getDimension("dx");
    assertThat(dimension.getDimensionItemKeywords().getKeywords(), hasSize(1));
    DimensionItemKeywords.Keyword aggregation = dimension.getDimensionItemKeywords().getKeywords().get(0);
    assertThat(aggregation.getMetadataItem().getUid(), is(dataElementGroup.getUid()));
    assertThat(aggregation.getMetadataItem().getCode(), is(dataElementGroup.getCode()));
    assertThat(aggregation.getMetadataItem().getName(), is(dataElementGroup.getName()));
}
Also used : DataElement(org.hisp.dhis.dataelement.DataElement) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) DataQueryParams(org.hisp.dhis.analytics.DataQueryParams) DimensionItemKeywords(org.hisp.dhis.common.DimensionItemKeywords) DataElementGroup(org.hisp.dhis.dataelement.DataElementGroup) DataQueryRequest(org.hisp.dhis.common.DataQueryRequest) DimensionalObject(org.hisp.dhis.common.DimensionalObject) Test(org.junit.jupiter.api.Test)

Example 7 with DataElementGroup

use of org.hisp.dhis.dataelement.DataElementGroup in project dhis2-core by dhis2.

the class AnalyticsServiceMetadataTest method metadataContainsDataElementGroupMetadata.

@SuppressWarnings("unchecked")
@Test
void metadataContainsDataElementGroupMetadata() {
    List<DimensionalItemObject> periods = new ArrayList<>();
    periods.add(new MonthlyPeriodType().createPeriod(new DateTime(2014, 4, 1, 0, 0).toDate()));
    DataElementGroup dataElementGroup = new DataElementGroup("ANC");
    dataElementGroup.setCode("COD_1000");
    dataElementGroup.setUid("wjP19dkFeIk");
    DataQueryParams params = DataQueryParams.newBuilder().withDimensions(Lists.newArrayList(new BaseDimensionalObject("pe", DimensionType.PERIOD, periods), new BaseDimensionalObject("dx", DimensionType.DATA_X, DISPLAY_NAME_DATA_X, "display name", ImmutableList.of(createDataElement('A', new CategoryCombo()), createDataElement('B', new CategoryCombo())), new DimensionItemKeywords(Collections.singletonList(dataElementGroup))))).withFilters(Collections.singletonList(new BaseDimensionalObject("ou", DimensionType.ORGANISATION_UNIT, null, DISPLAY_NAME_ORGUNIT, ImmutableList.of(new OrganisationUnit("aaa", "aaa", "OU_1", null, null, "c1"))))).withIgnoreLimit(true).withSkipData(true).build();
    initMock(params);
    Grid grid = target.getAggregatedDataValueGrid(params);
    Map<String, Object> items = (Map<String, Object>) grid.getMetaData().get("items");
    assertThat(items.get(dataElementGroup.getUid()), allOf(hasProperty("name", is(dataElementGroup.getName())), hasProperty("uid", is(dataElementGroup.getUid())), hasProperty("code", is(dataElementGroup.getCode()))));
}
Also used : OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) BaseDimensionalObject(org.hisp.dhis.common.BaseDimensionalObject) DimensionItemKeywords(org.hisp.dhis.common.DimensionItemKeywords) Grid(org.hisp.dhis.common.Grid) ArrayList(java.util.ArrayList) Lists.newArrayList(com.google.common.collect.Lists.newArrayList) DateTime(org.joda.time.DateTime) DataQueryParams(org.hisp.dhis.analytics.DataQueryParams) DimensionalItemObject(org.hisp.dhis.common.DimensionalItemObject) MonthlyPeriodType(org.hisp.dhis.period.MonthlyPeriodType) CategoryCombo(org.hisp.dhis.category.CategoryCombo) DataElementGroup(org.hisp.dhis.dataelement.DataElementGroup) DimensionalItemObject(org.hisp.dhis.common.DimensionalItemObject) BaseNameableObject(org.hisp.dhis.common.BaseNameableObject) BaseDimensionalObject(org.hisp.dhis.common.BaseDimensionalObject) HashMap(java.util.HashMap) Map(java.util.Map) Test(org.junit.jupiter.api.Test)

Example 8 with DataElementGroup

use of org.hisp.dhis.dataelement.DataElementGroup in project dhis2-core by dhis2.

the class DataQueryServiceDimensionItemKeywordTest method convertAnalyticsRequestWithDataElementGroupAndIndicatorGroup.

@Test
void convertAnalyticsRequestWithDataElementGroupAndIndicatorGroup() {
    final String DATA_ELEMENT_GROUP_UID = "oehv9EO3vP7";
    final String INDICATOR_GROUP_UID = "iezv4GO4vD9";
    when(dimensionService.getDataDimensionalItemObject(UID, "cYeuwXTCPkU")).thenReturn(new DataElement());
    DataElementGroup dataElementGroup = new DataElementGroup("dummyDG");
    dataElementGroup.setUid(DATA_ELEMENT_GROUP_UID);
    dataElementGroup.setCode("CODE_10");
    dataElementGroup.setMembers(Sets.newHashSet(new DataElement(), new DataElement()));
    IndicatorGroup indicatorGroup = new IndicatorGroup("dummyIG");
    indicatorGroup.setUid(INDICATOR_GROUP_UID);
    indicatorGroup.setCode("CODE_10");
    indicatorGroup.setMembers(Sets.newHashSet(new Indicator(), new Indicator()));
    when(idObjectManager.getObject(DataElementGroup.class, UID, DATA_ELEMENT_GROUP_UID)).thenReturn(dataElementGroup);
    when(idObjectManager.getObject(IndicatorGroup.class, UID, INDICATOR_GROUP_UID)).thenReturn(indicatorGroup);
    when(idObjectManager.getObject(OrganisationUnit.class, UID, "goRUwCHPg1M")).thenReturn(new OrganisationUnit("aaa"));
    when(idObjectManager.getObject(OrganisationUnit.class, UID, "fdc6uOvgoji")).thenReturn(new OrganisationUnit("bbb"));
    rb.addOuFilter("goRUwCHPg1M;fdc6uOvgoji");
    rb.addDimension("DE_GROUP-" + DATA_ELEMENT_GROUP_UID + ";cYeuwXTCPkU;Jtf34kNZhz;IN_GROUP-" + INDICATOR_GROUP_UID);
    rb.addPeDimension(PERIOD_DIMENSION);
    DataQueryRequest request = DataQueryRequest.newBuilder().filter(rb.getFilterParams()).dimension(rb.getDimensionParams()).build();
    DataQueryParams params = target.getFromRequest(request);
    DimensionalObject dimension = params.getDimension("dx");
    DimensionItemKeywords keywords = dimension.getDimensionItemKeywords();
    assertEquals(2, keywords.getKeywords().size());
    assertNotNull(keywords.getKeyword(dataElementGroup.getUid()));
    assertEquals("dummyDG", keywords.getKeyword(dataElementGroup.getUid()).getMetadataItem().getName());
    assertEquals("CODE_10", keywords.getKeyword(dataElementGroup.getUid()).getMetadataItem().getCode());
    assertNotNull(keywords.getKeyword(indicatorGroup.getUid()));
    assertEquals("dummyIG", keywords.getKeyword(indicatorGroup.getUid()).getMetadataItem().getName());
    assertEquals("CODE_10", keywords.getKeyword(indicatorGroup.getUid()).getMetadataItem().getCode());
}
Also used : DataElement(org.hisp.dhis.dataelement.DataElement) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) DataQueryParams(org.hisp.dhis.analytics.DataQueryParams) IndicatorGroup(org.hisp.dhis.indicator.IndicatorGroup) DimensionItemKeywords(org.hisp.dhis.common.DimensionItemKeywords) DataElementGroup(org.hisp.dhis.dataelement.DataElementGroup) DataQueryRequest(org.hisp.dhis.common.DataQueryRequest) Indicator(org.hisp.dhis.indicator.Indicator) DimensionalObject(org.hisp.dhis.common.DimensionalObject) Test(org.junit.jupiter.api.Test)

Example 9 with DataElementGroup

use of org.hisp.dhis.dataelement.DataElementGroup in project dhis2-core by dhis2.

the class DefaultDataQueryService method getDimension.

// TODO Optimize so that org unit levels + boundary are used in query
// instead of fetching all org units one by one.
@Override
public DimensionalObject getDimension(String dimension, List<String> items, Date relativePeriodDate, List<OrganisationUnit> userOrgUnits, I18nFormat format, boolean allowNull, boolean allowAllPeriodItems, IdScheme inputIdScheme) {
    final boolean allItems = items.isEmpty();
    User user = currentUserService.getCurrentUser();
    if (DATA_X_DIM_ID.equals(dimension)) {
        List<DimensionalItemObject> dataDimensionItems = new ArrayList<>();
        DimensionItemKeywords dimensionalKeywords = new DimensionItemKeywords();
        for (String uid : items) {
            if (// DATA ELEMENT GROUP
            uid.startsWith(KEY_DE_GROUP)) {
                String groupUid = DimensionalObjectUtils.getUidFromGroupParam(uid);
                DataElementGroup group = idObjectManager.getObject(DataElementGroup.class, inputIdScheme, groupUid);
                if (group != null) {
                    dataDimensionItems.addAll(group.getMembers());
                    dimensionalKeywords.addKeyword(group);
                }
            } else if (// INDICATOR GROUP
            uid.startsWith(KEY_IN_GROUP)) {
                String groupUid = DimensionalObjectUtils.getUidFromGroupParam(uid);
                IndicatorGroup group = idObjectManager.getObject(IndicatorGroup.class, inputIdScheme, groupUid);
                if (group != null) {
                    dataDimensionItems.addAll(group.getMembers());
                    dimensionalKeywords.addKeyword(group);
                }
            } else {
                DimensionalItemObject dimItemObject = dimensionService.getDataDimensionalItemObject(inputIdScheme, uid);
                if (dimItemObject != null) {
                    dataDimensionItems.add(dimItemObject);
                }
            }
        }
        if (dataDimensionItems.isEmpty()) {
            throwIllegalQueryEx(ErrorCode.E7124, DimensionalObject.DATA_X_DIM_ID);
        }
        return new BaseDimensionalObject(dimension, DimensionType.DATA_X, null, DISPLAY_NAME_DATA_X, dataDimensionItems, dimensionalKeywords);
    } else if (CATEGORYOPTIONCOMBO_DIM_ID.equals(dimension)) {
        return new BaseDimensionalObject(dimension, DimensionType.CATEGORY_OPTION_COMBO, null, DISPLAY_NAME_CATEGORYOPTIONCOMBO, getCategoryOptionComboList(items, inputIdScheme));
    } else if (ATTRIBUTEOPTIONCOMBO_DIM_ID.equals(dimension)) {
        return new BaseDimensionalObject(dimension, DimensionType.ATTRIBUTE_OPTION_COMBO, null, DISPLAY_NAME_ATTRIBUTEOPTIONCOMBO, getCategoryOptionComboList(items, inputIdScheme));
    } else if (PERIOD_DIM_ID.equals(dimension)) {
        Calendar calendar = PeriodType.getCalendar();
        I18n i18n = i18nManager.getI18n();
        List<Period> periods = new ArrayList<>();
        DimensionItemKeywords dimensionalKeywords = new DimensionItemKeywords();
        AnalyticsFinancialYearStartKey financialYearStart = systemSettingManager.getSystemSetting(SettingKey.ANALYTICS_FINANCIAL_YEAR_START, AnalyticsFinancialYearStartKey.class);
        boolean containsRelativePeriods = false;
        for (String isoPeriod : items) {
            // Contains isoPeriod and timeField
            IsoPeriodHolder isoPeriodHolder = IsoPeriodHolder.of(isoPeriod);
            if (RelativePeriodEnum.contains(isoPeriodHolder.getIsoPeriod())) {
                containsRelativePeriods = true;
                RelativePeriodEnum relativePeriod = RelativePeriodEnum.valueOf(isoPeriodHolder.getIsoPeriod());
                dimensionalKeywords.addKeyword(isoPeriodHolder.getIsoPeriod(), i18n.getString(isoPeriodHolder.getIsoPeriod()));
                List<Period> relativePeriods = RelativePeriods.getRelativePeriodsFromEnum(relativePeriod, relativePeriodDate, format, true, financialYearStart);
                // If custom time filter is specified, set it in periods
                if (isoPeriodHolder.hasDateField()) {
                    relativePeriods.forEach(period -> period.setDateField(isoPeriodHolder.getDateField()));
                }
                periods.addAll(relativePeriods);
            } else {
                Period period = PeriodType.getPeriodFromIsoString(isoPeriodHolder.getIsoPeriod());
                if (period != null) {
                    if (isoPeriodHolder.hasDateField()) {
                        period.setDescription(isoPeriodHolder.getIsoPeriod());
                        period.setDateField(isoPeriodHolder.getDateField());
                    }
                    dimensionalKeywords.addKeyword(isoPeriodHolder.getIsoPeriod(), format != null ? i18n.getString(format.formatPeriod(period)) : isoPeriodHolder.getIsoPeriod());
                    periods.add(period);
                } else {
                    tryParseDateRange(isoPeriodHolder).ifPresent(periods::add);
                }
            }
        }
        // Remove duplicates
        periods = periods.stream().distinct().collect(Collectors.toList());
        if (containsRelativePeriods) {
            periods.sort(new AscendingPeriodComparator());
        }
        for (Period period : periods) {
            String name = format != null ? format.formatPeriod(period) : null;
            if (!period.getPeriodType().getName().contains(WeeklyPeriodType.NAME)) {
                period.setShortName(name);
            }
            period.setName(name);
            if (!calendar.isIso8601()) {
                period.setUid(getLocalPeriodIdentifier(period, calendar));
            }
        }
        return new BaseDimensionalObject(dimension, DimensionType.PERIOD, null, DISPLAY_NAME_PERIOD, asList(periods), dimensionalKeywords);
    } else if (ORGUNIT_DIM_ID.equals(dimension)) {
        List<DimensionalItemObject> ous = new ArrayList<>();
        List<Integer> levels = new ArrayList<>();
        List<OrganisationUnitGroup> groups = new ArrayList<>();
        for (String ou : items) {
            if (KEY_USER_ORGUNIT.equals(ou) && userOrgUnits != null && !userOrgUnits.isEmpty()) {
                ous.addAll(userOrgUnits);
            } else if (KEY_USER_ORGUNIT_CHILDREN.equals(ou) && userOrgUnits != null && !userOrgUnits.isEmpty()) {
                ous.addAll(OrganisationUnit.getSortedChildren(userOrgUnits));
            } else if (KEY_USER_ORGUNIT_GRANDCHILDREN.equals(ou) && userOrgUnits != null && !userOrgUnits.isEmpty()) {
                ous.addAll(OrganisationUnit.getSortedGrandChildren(userOrgUnits));
            } else if (ou != null && ou.startsWith(KEY_LEVEL)) {
                String level = DimensionalObjectUtils.getValueFromKeywordParam(ou);
                Integer orgUnitLevel = organisationUnitService.getOrganisationUnitLevelByLevelOrUid(level);
                if (orgUnitLevel != null) {
                    levels.add(orgUnitLevel);
                }
            } else if (ou != null && ou.startsWith(KEY_ORGUNIT_GROUP)) {
                String uid = DimensionalObjectUtils.getUidFromGroupParam(ou);
                OrganisationUnitGroup group = idObjectManager.getObject(OrganisationUnitGroup.class, inputIdScheme, uid);
                if (group != null) {
                    groups.add(group);
                }
            } else if (!inputIdScheme.is(IdentifiableProperty.UID) || CodeGenerator.isValidUid(ou)) {
                OrganisationUnit unit = idObjectManager.getObject(OrganisationUnit.class, inputIdScheme, ou);
                if (unit != null) {
                    ous.add(unit);
                }
            }
        }
        // Remove duplicates
        ous = ous.stream().distinct().collect(Collectors.toList());
        List<DimensionalItemObject> orgUnits = new ArrayList<>();
        List<OrganisationUnit> ousList = asTypedList(ous);
        DimensionItemKeywords dimensionalKeywords = new DimensionItemKeywords();
        if (!levels.isEmpty()) {
            orgUnits.addAll(sort(organisationUnitService.getOrganisationUnitsAtLevels(levels, ousList)));
            dimensionalKeywords.addKeywords(levels.stream().map(level -> organisationUnitService.getOrganisationUnitLevelByLevel(level)).filter(Objects::nonNull).collect(Collectors.toList()));
        }
        if (!groups.isEmpty()) {
            orgUnits.addAll(sort(organisationUnitService.getOrganisationUnits(groups, ousList)));
            dimensionalKeywords.addKeywords(groups.stream().map(group -> new BaseNameableObject(group.getUid(), group.getCode(), group.getName())).collect(Collectors.toList()));
        }
        if (levels.isEmpty() && groups.isEmpty()) {
            orgUnits.addAll(ous);
        }
        if (!dimensionalKeywords.isEmpty()) {
            dimensionalKeywords.addKeywords(ousList);
        }
        if (orgUnits.isEmpty()) {
            throwIllegalQueryEx(ErrorCode.E7124, DimensionalObject.ORGUNIT_DIM_ID);
        }
        // Remove duplicates
        orgUnits = orgUnits.stream().distinct().collect(Collectors.toList());
        return new BaseDimensionalObject(dimension, DimensionType.ORGANISATION_UNIT, null, DISPLAY_NAME_ORGUNIT, orgUnits, dimensionalKeywords);
    } else if (ORGUNIT_GROUP_DIM_ID.equals(dimension)) {
        List<DimensionalItemObject> ougs = new ArrayList<>();
        for (String uid : items) {
            OrganisationUnitGroup organisationUnitGroup = idObjectManager.getObject(OrganisationUnitGroup.class, inputIdScheme, uid);
            if (organisationUnitGroup != null) {
                ougs.add(organisationUnitGroup);
            }
        }
        return new BaseDimensionalObject(dimension, DimensionType.ORGANISATION_UNIT_GROUP, null, DISPLAY_NAME_ORGUNIT_GROUP, ougs);
    } else if (LONGITUDE_DIM_ID.contains(dimension)) {
        return new BaseDimensionalObject(dimension, DimensionType.STATIC, null, DISPLAY_NAME_LONGITUDE, new ArrayList<>());
    } else if (LATITUDE_DIM_ID.contains(dimension)) {
        return new BaseDimensionalObject(dimension, DimensionType.STATIC, null, DISPLAY_NAME_LATITUDE, new ArrayList<>());
    } else {
        DimensionalObject dimObject = idObjectManager.get(DataQueryParams.DYNAMIC_DIM_CLASSES, inputIdScheme, dimension);
        if (dimObject != null && dimObject.isDataDimension()) {
            Class<?> dimClass = HibernateProxyUtils.getRealClass(dimObject);
            Class<? extends DimensionalItemObject> itemClass = DimensionalObject.DIMENSION_CLASS_ITEM_CLASS_MAP.get(dimClass);
            List<DimensionalItemObject> dimItems = !allItems ? asList(idObjectManager.getOrdered(itemClass, inputIdScheme, items)) : getCanReadItems(user, dimObject);
            return new BaseDimensionalObject(dimObject.getDimension(), dimObject.getDimensionType(), null, dimObject.getName(), dimItems, allItems);
        }
    }
    if (allowNull) {
        return null;
    }
    throw new IllegalQueryException(new ErrorMessage(ErrorCode.E7125, dimension));
}
Also used : KEY_USER_ORGUNIT_CHILDREN(org.hisp.dhis.organisationunit.OrganisationUnit.KEY_USER_ORGUNIT_CHILDREN) KEY_IN_GROUP(org.hisp.dhis.analytics.DataQueryParams.KEY_IN_GROUP) DISPLAY_NAME_LONGITUDE(org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_LONGITUDE) DataQueryParams.getMeasureCriteriaFromParam(org.hisp.dhis.analytics.DataQueryParams.getMeasureCriteriaFromParam) Date(java.util.Date) DimensionService(org.hisp.dhis.common.DimensionService) OrganisationUnitService(org.hisp.dhis.organisationunit.OrganisationUnitService) AnalyticsFinancialYearStartKey(org.hisp.dhis.analytics.AnalyticsFinancialYearStartKey) ErrorMessage(org.hisp.dhis.feedback.ErrorMessage) AnalyticsSecurityManager(org.hisp.dhis.analytics.AnalyticsSecurityManager) Calendar(org.hisp.dhis.calendar.Calendar) I18nFormat(org.hisp.dhis.i18n.I18nFormat) IdentifiableProperty(org.hisp.dhis.common.IdentifiableProperty) ISO_FORMAT(org.hisp.dhis.period.DailyPeriodType.ISO_FORMAT) KEY_USER_ORGUNIT(org.hisp.dhis.organisationunit.OrganisationUnit.KEY_USER_ORGUNIT) DimensionItemKeywords(org.hisp.dhis.common.DimensionItemKeywords) IndicatorGroup(org.hisp.dhis.indicator.IndicatorGroup) AscendingPeriodComparator(org.hisp.dhis.period.comparator.AscendingPeriodComparator) Period(org.hisp.dhis.period.Period) KEY_USER_ORGUNIT_GRANDCHILDREN(org.hisp.dhis.organisationunit.OrganisationUnit.KEY_USER_ORGUNIT_GRANDCHILDREN) OrganisationUnitGroup(org.hisp.dhis.organisationunit.OrganisationUnitGroup) PERIOD_DIM_ID(org.hisp.dhis.common.DimensionalObject.PERIOD_DIM_ID) Collection(java.util.Collection) LONGITUDE_DIM_ID(org.hisp.dhis.common.DimensionalObject.LONGITUDE_DIM_ID) FORMAT_DATE(org.hisp.dhis.i18n.I18nFormat.FORMAT_DATE) DISPLAY_NAME_PERIOD(org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_PERIOD) Set(java.util.Set) AnalyticsUtils.throwIllegalQueryEx(org.hisp.dhis.analytics.util.AnalyticsUtils.throwIllegalQueryEx) DimensionType(org.hisp.dhis.common.DimensionType) Collectors(java.util.stream.Collectors) ZoneId(java.time.ZoneId) Objects(java.util.Objects) RelativePeriodEnum(org.hisp.dhis.period.RelativePeriodEnum) List(java.util.List) Stream(java.util.stream.Stream) CategoryOptionCombo(org.hisp.dhis.category.CategoryOptionCombo) DataQueryParams(org.hisp.dhis.analytics.DataQueryParams) DimensionalObject(org.hisp.dhis.common.DimensionalObject) LocalDate(java.time.LocalDate) AclService(org.hisp.dhis.security.acl.AclService) DISPLAY_NAME_LATITUDE(org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_LATITUDE) ATTRIBUTEOPTIONCOMBO_DIM_ID(org.hisp.dhis.common.DimensionalObject.ATTRIBUTEOPTIONCOMBO_DIM_ID) Optional(java.util.Optional) RelativePeriods(org.hisp.dhis.period.RelativePeriods) DimensionalObjectUtils.asTypedList(org.hisp.dhis.common.DimensionalObjectUtils.asTypedList) DISPLAY_NAME_DATA_X(org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_DATA_X) ListUtils.sort(org.hisp.dhis.commons.collection.ListUtils.sort) AnalyticalObject(org.hisp.dhis.common.AnalyticalObject) ORGUNIT_DIM_ID(org.hisp.dhis.common.DimensionalObject.ORGUNIT_DIM_ID) ORGUNIT_GROUP_DIM_ID(org.hisp.dhis.common.DimensionalObject.ORGUNIT_GROUP_DIM_ID) DataQueryService(org.hisp.dhis.analytics.DataQueryService) DimensionalItemObject(org.hisp.dhis.common.DimensionalItemObject) DimensionalObjectUtils.asList(org.hisp.dhis.common.DimensionalObjectUtils.asList) DISPLAY_NAME_ORGUNIT_GROUP(org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_ORGUNIT_GROUP) IllegalQueryException(org.hisp.dhis.common.IllegalQueryException) I18n(org.hisp.dhis.i18n.I18n) ArrayList(java.util.ArrayList) LATITUDE_DIM_ID(org.hisp.dhis.common.DimensionalObject.LATITUDE_DIM_ID) BaseNameableObject(org.hisp.dhis.common.BaseNameableObject) KEY_LEVEL(org.hisp.dhis.organisationunit.OrganisationUnit.KEY_LEVEL) IdentifiableObjectManager(org.hisp.dhis.common.IdentifiableObjectManager) Service(org.springframework.stereotype.Service) AnalyticsAggregationType(org.hisp.dhis.analytics.AnalyticsAggregationType) DATA_X_DIM_ID(org.hisp.dhis.common.DimensionalObject.DATA_X_DIM_ID) PERIOD_FREE_RANGE_SEPARATOR(org.hisp.dhis.common.DimensionalObject.PERIOD_FREE_RANGE_SEPARATOR) DimensionalObjectUtils.getDimensionalItemIds(org.hisp.dhis.common.DimensionalObjectUtils.getDimensionalItemIds) DataQueryRequest(org.hisp.dhis.common.DataQueryRequest) User(org.hisp.dhis.user.User) ErrorCode(org.hisp.dhis.feedback.ErrorCode) I18nManager(org.hisp.dhis.i18n.I18nManager) WeeklyPeriodType(org.hisp.dhis.period.WeeklyPeriodType) SystemSettingManager(org.hisp.dhis.setting.SystemSettingManager) DimensionalObjectUtils(org.hisp.dhis.common.DimensionalObjectUtils) HibernateProxyUtils(org.hisp.dhis.hibernate.HibernateProxyUtils) DISPLAY_NAME_CATEGORYOPTIONCOMBO(org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_CATEGORYOPTIONCOMBO) IdentifiableObjectUtils.getLocalPeriodIdentifier(org.hisp.dhis.common.IdentifiableObjectUtils.getLocalPeriodIdentifier) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) DISPLAY_NAME_ORGUNIT(org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_ORGUNIT) BaseDimensionalObject(org.hisp.dhis.common.BaseDimensionalObject) OutputFormat(org.hisp.dhis.analytics.OutputFormat) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) ObjectUtils(org.hisp.dhis.util.ObjectUtils) DailyPeriodType(org.hisp.dhis.period.DailyPeriodType) CurrentUserService(org.hisp.dhis.user.CurrentUserService) DateTimeFormatter(java.time.format.DateTimeFormatter) PeriodType(org.hisp.dhis.period.PeriodType) CodeGenerator(org.hisp.dhis.common.CodeGenerator) KEY_ORGUNIT_GROUP(org.hisp.dhis.organisationunit.OrganisationUnit.KEY_ORGUNIT_GROUP) SettingKey(org.hisp.dhis.setting.SettingKey) DISPLAY_NAME_ATTRIBUTEOPTIONCOMBO(org.hisp.dhis.analytics.DataQueryParams.DISPLAY_NAME_ATTRIBUTEOPTIONCOMBO) DataElementGroup(org.hisp.dhis.dataelement.DataElementGroup) IdScheme(org.hisp.dhis.common.IdScheme) KEY_DE_GROUP(org.hisp.dhis.analytics.DataQueryParams.KEY_DE_GROUP) CATEGORYOPTIONCOMBO_DIM_ID(org.hisp.dhis.common.DimensionalObject.CATEGORYOPTIONCOMBO_DIM_ID) Assert(org.springframework.util.Assert) User(org.hisp.dhis.user.User) IndicatorGroup(org.hisp.dhis.indicator.IndicatorGroup) AnalyticsFinancialYearStartKey(org.hisp.dhis.analytics.AnalyticsFinancialYearStartKey) BaseDimensionalObject(org.hisp.dhis.common.BaseDimensionalObject) DimensionItemKeywords(org.hisp.dhis.common.DimensionItemKeywords) ArrayList(java.util.ArrayList) DimensionalObject(org.hisp.dhis.common.DimensionalObject) BaseDimensionalObject(org.hisp.dhis.common.BaseDimensionalObject) DimensionalItemObject(org.hisp.dhis.common.DimensionalItemObject) RelativePeriodEnum(org.hisp.dhis.period.RelativePeriodEnum) DataElementGroup(org.hisp.dhis.dataelement.DataElementGroup) List(java.util.List) DimensionalObjectUtils.asTypedList(org.hisp.dhis.common.DimensionalObjectUtils.asTypedList) DimensionalObjectUtils.asList(org.hisp.dhis.common.DimensionalObjectUtils.asList) ArrayList(java.util.ArrayList) I18n(org.hisp.dhis.i18n.I18n) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) Calendar(org.hisp.dhis.calendar.Calendar) Period(org.hisp.dhis.period.Period) IllegalQueryException(org.hisp.dhis.common.IllegalQueryException) AscendingPeriodComparator(org.hisp.dhis.period.comparator.AscendingPeriodComparator) OrganisationUnitGroup(org.hisp.dhis.organisationunit.OrganisationUnitGroup) Objects(java.util.Objects) ErrorMessage(org.hisp.dhis.feedback.ErrorMessage) BaseNameableObject(org.hisp.dhis.common.BaseNameableObject)

Example 10 with DataElementGroup

use of org.hisp.dhis.dataelement.DataElementGroup in project dhis2-core by dhis2.

the class ResourceTableServiceTest method setUpTest.

@Override
public void setUpTest() {
    PeriodType pt = new MonthlyPeriodType();
    DataElement deA = createDataElement('A');
    DataElement deB = createDataElement('B');
    idObjectManager.save(deA);
    idObjectManager.save(deB);
    DataElementGroup degA = createDataElementGroup('A');
    DataElementGroup degB = createDataElementGroup('B');
    DataElementGroup degC = createDataElementGroup('C');
    DataElementGroup degD = createDataElementGroup('D');
    degA.addDataElement(deA);
    degB.addDataElement(deB);
    idObjectManager.save(degA);
    idObjectManager.save(degB);
    idObjectManager.save(degC);
    idObjectManager.save(degD);
    DataElementGroupSet degsA = createDataElementGroupSet('A');
    DataElementGroupSet degsB = createDataElementGroupSet('B');
    degsB.setName("Data \"Element\" Group Set \"B\"");
    degsA.addDataElementGroup(degA);
    degsA.addDataElementGroup(degB);
    degsB.addDataElementGroup(degC);
    degsB.addDataElementGroup(degD);
    idObjectManager.save(degsA);
    idObjectManager.save(degsB);
    OrganisationUnit ouA = createOrganisationUnit('A');
    OrganisationUnit ouB = createOrganisationUnit('B');
    OrganisationUnit ouC = createOrganisationUnit('C');
    ouB.setParent(ouA);
    ouC.setParent(ouA);
    ouA.getChildren().add(ouB);
    ouA.getChildren().add(ouC);
    idObjectManager.save(ouA);
    idObjectManager.save(ouB);
    idObjectManager.save(ouC);
    DataSet dsA = createDataSet('A', pt);
    DataSet dsB = createDataSet('B', pt);
    dsA.addDataSetElement(deA);
    dsB.addDataSetElement(deA);
    dsA.addOrganisationUnit(ouA);
    dsB.addOrganisationUnit(ouA);
    dataSetService.addDataSet(dsA);
    dataSetService.addDataSet(dsB);
}
Also used : MonthlyPeriodType(org.hisp.dhis.period.MonthlyPeriodType) PeriodType(org.hisp.dhis.period.PeriodType) DataElement(org.hisp.dhis.dataelement.DataElement) DataElementGroupSet(org.hisp.dhis.dataelement.DataElementGroupSet) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) MonthlyPeriodType(org.hisp.dhis.period.MonthlyPeriodType) DataSet(org.hisp.dhis.dataset.DataSet) DataElementGroup(org.hisp.dhis.dataelement.DataElementGroup)

Aggregations

DataElementGroup (org.hisp.dhis.dataelement.DataElementGroup)55 DataElement (org.hisp.dhis.dataelement.DataElement)31 Test (org.junit.jupiter.api.Test)29 TransactionalIntegrationTest (org.hisp.dhis.TransactionalIntegrationTest)17 ArrayList (java.util.ArrayList)15 User (org.hisp.dhis.user.User)15 DataSet (org.hisp.dhis.dataset.DataSet)9 List (java.util.List)8 IdentifiableObject (org.hisp.dhis.common.IdentifiableObject)8 Set (java.util.Set)7 DhisSpringTest (org.hisp.dhis.DhisSpringTest)7 DataQueryParams (org.hisp.dhis.analytics.DataQueryParams)6 DimensionalItemObject (org.hisp.dhis.common.DimensionalItemObject)6 DataElementGroupSet (org.hisp.dhis.dataelement.DataElementGroupSet)6 DimensionalObject (org.hisp.dhis.common.DimensionalObject)5 LegendSet (org.hisp.dhis.legend.LegendSet)5 OptionSet (org.hisp.dhis.option.OptionSet)5 OrganisationUnit (org.hisp.dhis.organisationunit.OrganisationUnit)5 PeriodType (org.hisp.dhis.period.PeriodType)5 DimensionItemKeywords (org.hisp.dhis.common.DimensionItemKeywords)4