Search in sources :

Example 11 with ValueType

use of org.hisp.dhis.common.ValueType in project dhis2-core by dhis2.

the class GeoFeatureService method getCoordinates.

/**
 * Get the {@link GeoFeature} coordinate from {@link DimensionalItemObject}
 * <p>
 * The coordinate value is retrieved from {@link DimensionalItemObject}'s
 * geoJsonAttribute value.
 *
 * @param feature the {@link GeoFeature}
 * @param unit the {@link DimensionalItemObject} contains the coordinate
 *        values.
 * @param geoJsonAttribute The {@link Attribute} which has
 *        {@link ValueType#GEOJSON} and is assigned to
 *        {@link OrganisationUnit}.
 * @return the given {@link GeoFeature} with updated coordinate value and
 *         coordinate type.
 */
private void getCoordinates(GeoFeature feature, DimensionalItemObject unit, Attribute geoJsonAttribute) {
    if (geoJsonAttribute == null) {
        getCoordinates(feature, unit);
        return;
    }
    if (!unit.getClass().isAssignableFrom(OrganisationUnit.class)) {
        return;
    }
    OrganisationUnit organisationUnit = (OrganisationUnit) unit;
    Optional<AttributeValue> geoJsonAttributeValue = organisationUnit.getAttributeValues().stream().filter(attributeValue -> attributeValue.getAttribute().getUid().equals(geoJsonAttribute.getUid())).findFirst();
    if (!geoJsonAttributeValue.isPresent() || StringUtils.isBlank(geoJsonAttributeValue.get().getValue())) {
        getCoordinates(feature, unit);
        return;
    }
    try {
        GeoJsonObject geoJsonObject = new ObjectMapper().readValue(geoJsonAttributeValue.get().getValue(), GeoJsonObject.class);
        GeoFeature geoJsonFeature = geoJsonObject.accept(new GeoFeatureVisitor());
        if (geoJsonFeature == null) {
            return;
        }
        feature.setTy(geoJsonFeature.getTy());
        feature.setCo(geoJsonFeature.getCo());
    } catch (JsonProcessingException e) {
        log.error(String.format("Couldn't read GeoJson value from organisationUnit %s: ", organisationUnit), e);
        getCoordinates(feature, unit);
    }
}
Also used : Date(java.util.Date) ValueType(org.hisp.dhis.common.ValueType) ValidationUtils(org.hisp.dhis.system.util.ValidationUtils) GeoFeature(org.hisp.dhis.webapi.webdomain.GeoFeature) StringUtils(org.apache.commons.lang3.StringUtils) MultiPolygon(org.geojson.MultiPolygon) MultiLineString(org.geojson.MultiLineString) FeatureCollection(org.geojson.FeatureCollection) CoordinateObject(org.hisp.dhis.common.coordinate.CoordinateObject) Map(java.util.Map) OrganisationUnitGroupService(org.hisp.dhis.organisationunit.OrganisationUnitGroupService) ImmutableMap(com.google.common.collect.ImmutableMap) GeoJsonObject(org.geojson.GeoJsonObject) GeoJsonObjectVisitor(org.geojson.GeoJsonObjectVisitor) BaseIdentifiableObject(org.hisp.dhis.common.BaseIdentifiableObject) OrganisationUnitGroup(org.hisp.dhis.organisationunit.OrganisationUnitGroup) Set(java.util.Set) Collectors(java.util.stream.Collectors) List(java.util.List) Slf4j(lombok.extern.slf4j.Slf4j) Builder(lombok.Builder) AttributeService(org.hisp.dhis.attribute.AttributeService) DataQueryParams(org.hisp.dhis.analytics.DataQueryParams) DimensionalObject(org.hisp.dhis.common.DimensionalObject) Optional(java.util.Optional) DhisApiVersion(org.hisp.dhis.common.DhisApiVersion) 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) AttributeValue(org.hisp.dhis.attribute.AttributeValue) DimensionalItemObject(org.hisp.dhis.common.DimensionalItemObject) Getter(lombok.Getter) Feature(org.geojson.Feature) Attribute(org.hisp.dhis.attribute.Attribute) ArrayList(java.util.ArrayList) GeometryCollection(org.geojson.GeometryCollection) HashSet(java.util.HashSet) HttpServletRequest(javax.servlet.http.HttpServletRequest) Lists(com.google.common.collect.Lists) LineString(org.geojson.LineString) Service(org.springframework.stereotype.Service) DisplayProperty(org.hisp.dhis.common.DisplayProperty) DataQueryRequest(org.hisp.dhis.common.DataQueryRequest) Polygon(org.geojson.Polygon) DimensionalObjectUtils(org.hisp.dhis.common.DimensionalObjectUtils) ContextUtils(org.hisp.dhis.webapi.utils.ContextUtils) HttpServletResponse(javax.servlet.http.HttpServletResponse) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) AggregationType(org.hisp.dhis.analytics.AggregationType) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) OrganisationUnitGroupSet(org.hisp.dhis.organisationunit.OrganisationUnitGroupSet) MultiPoint(org.geojson.MultiPoint) DebugUtils(org.hisp.dhis.commons.util.DebugUtils) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) ObjectUtils(org.hisp.dhis.util.ObjectUtils) FeatureType(org.hisp.dhis.organisationunit.FeatureType) CurrentUserService(org.hisp.dhis.user.CurrentUserService) Point(org.geojson.Point) Comparator(java.util.Comparator) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) AttributeValue(org.hisp.dhis.attribute.AttributeValue) GeoJsonObject(org.geojson.GeoJsonObject) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) GeoFeature(org.hisp.dhis.webapi.webdomain.GeoFeature)

Example 12 with ValueType

use of org.hisp.dhis.common.ValueType in project dhis2-core by dhis2.

the class AttributeValidationHook method validateAttrValueType.

protected void validateAttrValueType(ValidationErrorReporter errorReporter, TrackerDto dto, Attribute attr, TrackedEntityAttribute teAttr) {
    checkNotNull(attr, ATTRIBUTE_CANT_BE_NULL);
    checkNotNull(teAttr, TRACKED_ENTITY_ATTRIBUTE_CANT_BE_NULL);
    ValueType valueType = teAttr.getValueType();
    TrackerImportValidationContext context = errorReporter.getValidationContext();
    String error;
    if (valueType.equals(ValueType.ORGANISATION_UNIT)) {
        error = context.getOrganisationUnit(attr.getValue()) == null ? " Value " + attr.getValue() + " is not a valid org unit value" : null;
    } else if (valueType.equals(ValueType.USERNAME)) {
        error = context.usernameExists(attr.getValue()) ? null : " Value " + attr.getValue() + " is not a valid username value";
    } else {
        // org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:945)
        try {
            error = teAttrService.validateValueType(teAttr, attr.getValue());
        } catch (Exception e) {
            error = e.getMessage();
        }
    }
    if (error != null) {
        TrackerBundle bundle = context.getBundle();
        TrackerErrorReport err = TrackerErrorReport.builder().uid(dto.getUid()).trackerType(dto.getTrackerType()).errorCode(TrackerErrorCode.E1007).addArg(valueType.toString()).addArg(error).build(bundle);
        errorReporter.addError(err);
    }
}
Also used : ValueType(org.hisp.dhis.common.ValueType) TrackerImportValidationContext(org.hisp.dhis.tracker.validation.TrackerImportValidationContext) TrackerBundle(org.hisp.dhis.tracker.bundle.TrackerBundle) TrackerErrorReport(org.hisp.dhis.tracker.report.TrackerErrorReport)

Example 13 with ValueType

use of org.hisp.dhis.common.ValueType in project dhis2-core by dhis2.

the class ProgramNotificationTemplateObjectBundleHook method resolveTemplateRecipients.

private void resolveTemplateRecipients(ProgramNotificationTemplate pnt, ProgramNotificationRecipient pnr) {
    Function<ProgramNotificationTemplate, ValueType> resolver = RECIPIENT_RESOLVER.get(pnr);
    ValueType valueType = null;
    if (resolver != null && pnt.getRecipientProgramAttribute() != null) {
        valueType = resolver.apply(pnt);
    }
    pnt.setDeliveryChannels(CHANNEL_MAPPER.getOrDefault(valueType, Sets.newHashSet()));
}
Also used : ValueType(org.hisp.dhis.common.ValueType) ProgramNotificationTemplate(org.hisp.dhis.program.notification.ProgramNotificationTemplate)

Example 14 with ValueType

use of org.hisp.dhis.common.ValueType in project dhis2-core by dhis2.

the class JdbcEnrollmentAnalyticsTableManager method getDimensionColumns.

@Override
protected List<AnalyticsTableColumn> getDimensionColumns(AnalyticsTable table) {
    final String dbl = statementBuilder.getDoubleColumnType();
    final String numericClause = " and value " + statementBuilder.getRegexpMatch() + " '" + NUMERIC_LENIENT_REGEXP + "'";
    final String dateClause = " and value " + statementBuilder.getRegexpMatch() + " '" + DATE_REGEXP + "'";
    List<AnalyticsTableColumn> columns = new ArrayList<>();
    List<OrganisationUnitLevel> levels = organisationUnitService.getFilledOrganisationUnitLevels();
    List<OrganisationUnitGroupSet> orgUnitGroupSets = idObjectManager.getDataDimensionsNoAcl(OrganisationUnitGroupSet.class);
    for (OrganisationUnitLevel level : levels) {
        String column = quote(PREFIX_ORGUNITLEVEL + level.getLevel());
        columns.add(new AnalyticsTableColumn(column, "character(11)", "ous." + column, level.getCreated()));
    }
    for (OrganisationUnitGroupSet groupSet : orgUnitGroupSets) {
        columns.add(new AnalyticsTableColumn(quote(groupSet.getUid()), "character(11)", "ougs." + quote(groupSet.getUid()), groupSet.getCreated()));
    }
    for (PeriodType periodType : PeriodType.getAvailablePeriodTypes()) {
        String column = quote(periodType.getName().toLowerCase());
        columns.add(new AnalyticsTableColumn(column, "character varying(15)", "dps." + column));
    }
    for (ProgramStage programStage : table.getProgram().getProgramStages()) {
        for (ProgramStageDataElement programStageDataElement : programStage.getProgramStageDataElements()) {
            DataElement dataElement = programStageDataElement.getDataElement();
            ValueType valueType = dataElement.getValueType();
            String dataType = getColumnType(valueType);
            String dataClause = dataElement.isNumericType() ? numericClause : dataElement.getValueType().isDate() ? dateClause : "";
            String select = getSelectClause(valueType);
            boolean skipIndex = NO_INDEX_VAL_TYPES.contains(dataElement.getValueType()) && !dataElement.hasOptionSet();
            String sql = "(select " + select + " from trackedentitydatavalue tedv " + "inner join programstageinstance psi on psi.programstageinstanceid = tedv.programstageinstanceid " + "where psi.executiondate is not null " + "and psi.deleted is false " + "and psi.programinstanceid=pi.programinstanceid " + dataClause + " " + "and tedv.dataelementid=" + dataElement.getId() + " " + "and psi.programstageid=" + programStage.getId() + " " + "order by psi.executiondate desc " + "limit 1) as " + quote(programStage.getUid() + DB_SEPARATOR_ID + dataElement.getUid());
            columns.add(new AnalyticsTableColumn(quote(programStage.getUid() + DB_SEPARATOR_ID + dataElement.getUid()), dataType, sql, skipIndex));
        }
    }
    for (TrackedEntityAttribute attribute : table.getProgram().getNonConfidentialTrackedEntityAttributes()) {
        String dataType = getColumnType(attribute.getValueType());
        String dataClause = attribute.isNumericType() ? numericClause : attribute.isDateType() ? dateClause : "";
        String select = getSelectClause(attribute.getValueType());
        boolean skipIndex = NO_INDEX_VAL_TYPES.contains(attribute.getValueType()) && !attribute.hasOptionSet();
        String sql = "(select " + select + " from trackedentityattributevalue " + "where trackedentityinstanceid=pi.trackedentityinstanceid " + "and trackedentityattributeid=" + attribute.getId() + dataClause + ") as " + quote(attribute.getUid());
        columns.add(new AnalyticsTableColumn(quote(attribute.getUid()), dataType, sql, skipIndex));
    }
    AnalyticsTableColumn pi = new AnalyticsTableColumn(quote("pi"), "character(11) not null", "pi.uid");
    AnalyticsTableColumn erd = new AnalyticsTableColumn(quote("enrollmentdate"), "timestamp", "pi.enrollmentdate");
    AnalyticsTableColumn id = new AnalyticsTableColumn(quote("incidentdate"), "timestamp", "pi.incidentdate");
    final String executionDateSql = "(select psi.executionDate from programstageinstance psi " + "where psi.programinstanceid=pi.programinstanceid " + "and psi.executiondate is not null " + "and psi.deleted is false " + "order by psi.executiondate desc " + "limit 1) as " + quote("executiondate");
    AnalyticsTableColumn ed = new AnalyticsTableColumn(quote("executiondate"), "timestamp", executionDateSql);
    final String dueDateSql = "(select psi.duedate from programstageinstance psi " + "where psi.programinstanceid = pi.programinstanceid " + "and psi.duedate is not null " + "and psi.deleted is false " + "order by psi.duedate desc " + "limit 1) as " + quote("duedate");
    AnalyticsTableColumn dd = new AnalyticsTableColumn(quote("duedate"), "timestamp", dueDateSql);
    AnalyticsTableColumn cd = new AnalyticsTableColumn(quote("completeddate"), "timestamp", "case status when 'COMPLETED' then enddate end");
    AnalyticsTableColumn es = new AnalyticsTableColumn(quote("enrollmentstatus"), "character(50)", "pi.status");
    AnalyticsTableColumn longitude = new AnalyticsTableColumn(quote("longitude"), dbl, "pi.longitude");
    AnalyticsTableColumn latitude = new AnalyticsTableColumn(quote("latitude"), dbl, "pi.latitude");
    AnalyticsTableColumn ou = new AnalyticsTableColumn(quote("ou"), "character(11) not null", "ou.uid");
    AnalyticsTableColumn oun = new AnalyticsTableColumn(quote("ouname"), "character varying(230) not null", "ou.name");
    AnalyticsTableColumn ouc = new AnalyticsTableColumn(quote("oucode"), "character varying(50)", "ou.code");
    columns.addAll(Lists.newArrayList(pi, erd, id, ed, es, dd, cd, longitude, latitude, ou, oun, ouc));
    if (databaseInfo.isSpatialSupport()) {
        String alias = "(select ST_SetSRID(ST_MakePoint(pi.longitude, pi.latitude), 4326)) as geom";
        columns.add(new AnalyticsTableColumn(quote("geom"), "geometry(Point, 4326)", alias, false, "gist"));
    }
    if (table.hasProgram() && table.getProgram().isRegistration()) {
        columns.add(new AnalyticsTableColumn(quote("tei"), "character(11)", "tei.uid"));
    }
    return filterDimensionColumns(columns);
}
Also used : PeriodType(org.hisp.dhis.period.PeriodType) ValueType(org.hisp.dhis.common.ValueType) TrackedEntityAttribute(org.hisp.dhis.trackedentity.TrackedEntityAttribute) UniqueArrayList(org.hisp.dhis.commons.collection.UniqueArrayList) AnalyticsTableColumn(org.hisp.dhis.analytics.AnalyticsTableColumn) ProgramStageDataElement(org.hisp.dhis.program.ProgramStageDataElement) ProgramStageDataElement(org.hisp.dhis.program.ProgramStageDataElement) DataElement(org.hisp.dhis.dataelement.DataElement) OrganisationUnitLevel(org.hisp.dhis.organisationunit.OrganisationUnitLevel) ProgramStage(org.hisp.dhis.program.ProgramStage) OrganisationUnitGroupSet(org.hisp.dhis.organisationunit.OrganisationUnitGroupSet)

Example 15 with ValueType

use of org.hisp.dhis.common.ValueType in project dhis2-core by dhis2.

the class DefaultProgramDataEntryService method prepareDataEntryFormForEntry.

// -------------------------------------------------------------------------
// Implementation methods
// -------------------------------------------------------------------------
@Override
public String prepareDataEntryFormForEntry(String htmlCode, Collection<TrackedEntityDataValue> dataValues, I18n i18n, ProgramStage programStage, ProgramStageInstance programStageInstance, OrganisationUnit organisationUnit) {
    Map<String, Collection<TrackedEntityDataValue>> mapDataValue = new HashMap<>();
    // ---------------------------------------------------------------------
    // Inline Javascript to add to HTML before outputting
    // ---------------------------------------------------------------------
    final String jQueryCalendar = "<script>$DATAPICKER-METHOD(\"$PROGRAMSTAGEID-$DATAELEMENTID-val\", false, false);</script>";
    StringBuffer sb = new StringBuffer();
    // ---------------------------------------------------------------------
    // Pattern to match data elements in the HTML code
    // ---------------------------------------------------------------------
    Matcher dataElementMatcher = INPUT_PATTERN.matcher(htmlCode);
    int tabindex = 0;
    // ---------------------------------------------------------------------
    // Iterate through all matching data element fields
    // ---------------------------------------------------------------------
    Map<String, ProgramStageDataElement> programStageDataElementMap = getProgramStageDataElementMap(programStage);
    while (dataElementMatcher.find()) {
        // -----------------------------------------------------------------
        // Get HTML input field code
        // -----------------------------------------------------------------
        String compulsory = "null";
        boolean allowProvidedElsewhere = false;
        String dateMethod = "datePickerValid";
        String inputHTML = dataElementMatcher.group(1);
        Matcher identifierMatcher = IDENTIFIER_PATTERN_FIELD.matcher(inputHTML);
        if (identifierMatcher.find() && identifierMatcher.groupCount() > 0) {
            // -------------------------------------------------------------
            // Get data element ID of data element
            // -------------------------------------------------------------
            String programStageUid = identifierMatcher.group(1);
            String dataElementUid = identifierMatcher.group(2);
            DataElement dataElement = null;
            ProgramStageDataElement programStageDataElement = null;
            String programStageName = programStage.getDisplayName();
            if (!programStageUid.equals(programStage.getUid())) {
                dataElement = dataElementService.getDataElement(dataElementUid);
                ProgramStage otherProgramStage = programStageService.getProgramStage(programStageUid);
                programStageName = otherProgramStage != null ? otherProgramStage.getDisplayName() : "N/A";
            } else {
                programStageDataElement = programStageDataElementMap.get(dataElementUid);
                dataElement = programStageDataElement.getDataElement();
                if (dataElement == null) {
                    return i18n.getString("some_data_element_not_exist");
                }
                compulsory = BooleanUtils.toStringTrueFalse(programStageDataElement.isCompulsory());
                allowProvidedElsewhere = programStageDataElement.getAllowProvidedElsewhere();
                if (programStageDataElement.getAllowFutureDate()) {
                    dateMethod = "datePicker";
                }
            }
            if (dataElement == null) {
                continue;
            }
            // -------------------------------------------------------------
            // Find existing value of data element in data set
            // -------------------------------------------------------------
            TrackedEntityDataValue entityInstanceDataValue = null;
            String dataElementValue = EMPTY;
            if (!programStageUid.equals(programStage.getUid())) {
                Collection<TrackedEntityDataValue> entityInstanceDataValues = mapDataValue.get(programStageUid);
                if (entityInstanceDataValues == null && programStageInstance != null) {
                    ProgramStage otherProgramStage = programStageService.getProgramStage(programStageUid);
                    ProgramStageInstance otherProgramStageInstance = programStageInstanceService.getProgramStageInstance(programStageInstance.getProgramInstance(), otherProgramStage);
                    entityInstanceDataValues = dataValueService.getTrackedEntityDataValues(otherProgramStageInstance);
                    mapDataValue.put(programStageUid, entityInstanceDataValues);
                }
                entityInstanceDataValue = getValue(entityInstanceDataValues, dataElementUid);
                dataElementValue = entityInstanceDataValue != null ? entityInstanceDataValue.getValue() : dataElementValue;
            } else {
                entityInstanceDataValue = getValue(dataValues, dataElementUid);
                dataElementValue = entityInstanceDataValue != null ? entityInstanceDataValue.getValue() : dataElementValue;
            }
            if (inputHTML.contains("title=\"\"")) {
                inputHTML = inputHTML.replace("title=\"\"", "title=\"[ " + dataElement.getUid() + " - " + dataElement.getName() + " - " + dataElement.getValueType() + " ]\" ");
            } else {
                inputHTML += "title=\"[ " + dataElement.getUid() + " - " + dataElement.getName() + " - " + dataElement.getValueType() + " ]\" ";
            }
            // -------------------------------------------------------------
            // Set field for dataElement
            // -------------------------------------------------------------
            tabindex++;
            ValueType valueType = dataElement.getValueType();
            if (dataElement.getOptionSet() != null && dataElement.getOptionSet().getOptions().size() < 7) {
                if (programStageDataElement != null && programStageDataElement.getRenderOptionsAsRadio()) {
                    String idField = programStageUid + "-" + dataElementUid + "-val";
                    inputHTML = populateCustomDataEntryForOptionSet(dataElement, idField, entityInstanceDataValue, i18n);
                }
            } else if (valueType.isText() || valueType.isNumeric() || ValueType.USERNAME == valueType) {
                inputHTML = populateCustomDataEntryForTextBox(dataElement, inputHTML, dataElementValue);
            } else if (ValueType.DATE == valueType || ValueType.DATETIME == valueType) {
                inputHTML = populateCustomDataEntryForDate(inputHTML, dataElementValue);
            } else if (ValueType.TRUE_ONLY == valueType) {
                inputHTML = populateCustomDataEntryForTrueOnly(dataElement, inputHTML, dataElementValue);
            } else if (ValueType.BOOLEAN == valueType) {
                inputHTML = populateCustomDataEntryForBoolean(dataElement, inputHTML, dataElementValue, i18n);
            }
            // -----------------------------------------------------------
            // Check if this dataElement is from another programStage then
            // disable
            // If programStagsInstance is completed then disabled it
            // -----------------------------------------------------------
            String disabled = "";
            if (!programStageUid.equals(programStage.getUid())) {
                disabled = "disabled=\"\"";
            } else {
                if (ValueType.DATE == valueType || ValueType.DATETIME == valueType) {
                    inputHTML += jQueryCalendar;
                }
                if (allowProvidedElsewhere) {
                    // Add ProvidedByOtherFacility checkbox
                    inputHTML = addProvidedElsewherCheckbox(inputHTML, entityInstanceDataValue, programStage);
                }
            }
            // -----------------------------------------------------------
            //
            // -----------------------------------------------------------
            inputHTML = inputHTML.replace("$DATAELEMENTID", String.valueOf(dataElementUid));
            inputHTML = inputHTML.replace("$VALUE", dataElementValue);
            inputHTML = inputHTML.replace("$PROGRAMSTAGEID", String.valueOf(programStageUid));
            inputHTML = inputHTML.replace("$PROGRAMSTAGENAME", programStageName);
            inputHTML = inputHTML.replace("$DATAELEMENTNAME", dataElement.getFormNameFallback());
            inputHTML = inputHTML.replace("$DATAELEMENTTYPE", dataElement.getValueType().toString());
            inputHTML = inputHTML.replace("$DISABLED", disabled);
            inputHTML = inputHTML.replace("$COMPULSORY", compulsory);
            inputHTML = inputHTML.replace("$SAVEMODE", "false");
            inputHTML = inputHTML.replace("$TABINDEX", tabindex + "");
            inputHTML = inputHTML.replace("$DATAPICKER-METHOD", dateMethod);
            inputHTML = inputHTML.replaceAll("\\$", "\\\\\\$");
            dataElementMatcher.appendReplacement(sb, inputHTML);
        }
    }
    dataElementMatcher.appendTail(sb);
    return populateI18nStrings(sb.toString(), i18n);
}
Also used : HashMap(java.util.HashMap) Matcher(java.util.regex.Matcher) ValueType(org.hisp.dhis.common.ValueType) TrackedEntityDataValue(org.hisp.dhis.trackedentitydatavalue.TrackedEntityDataValue) DataElement(org.hisp.dhis.dataelement.DataElement) Collection(java.util.Collection)

Aggregations

ValueType (org.hisp.dhis.common.ValueType)20 DataElement (org.hisp.dhis.dataelement.DataElement)10 OrganisationUnit (org.hisp.dhis.organisationunit.OrganisationUnit)5 Date (java.util.Date)4 QueryItem (org.hisp.dhis.common.QueryItem)4 Matcher (java.util.regex.Matcher)3 Collectors (java.util.stream.Collectors)3 DimensionalItemObject (org.hisp.dhis.common.DimensionalItemObject)3 OrganisationUnitGroupSet (org.hisp.dhis.organisationunit.OrganisationUnitGroupSet)3 PeriodType (org.hisp.dhis.period.PeriodType)3 Preconditions.checkNotNull (com.google.common.base.Preconditions.checkNotNull)2 Lists (com.google.common.collect.Lists)2 ArrayList (java.util.ArrayList)2 Collection (java.util.Collection)2 HashMap (java.util.HashMap)2 List (java.util.List)2 Map (java.util.Map)2 HttpServletRequest (javax.servlet.http.HttpServletRequest)2 StringUtils (org.apache.commons.lang3.StringUtils)2 BaseIdentifiableObject (org.hisp.dhis.common.BaseIdentifiableObject)2