use of org.hisp.dhis.program.ProgramTrackedEntityAttribute in project dhis2-core by dhis2.
the class DhisConvenienceTest method createProgramTrackedEntityAttribute.
public static ProgramTrackedEntityAttribute createProgramTrackedEntityAttribute(char uniqueChar) {
ProgramTrackedEntityAttribute attribute = new ProgramTrackedEntityAttribute();
attribute.setAutoFields();
attribute.setName("Attribute" + uniqueChar);
return attribute;
}
use of org.hisp.dhis.program.ProgramTrackedEntityAttribute in project dhis2-core by dhis2.
the class ObjectBundleServiceProgramTest method testCreateSimpleProgramReg.
@Test
public void testCreateSimpleProgramReg() throws IOException {
Map<Class<? extends IdentifiableObject>, List<IdentifiableObject>> metadata = renderService.fromMetadata(new ClassPathResource("dxf2/program_reg1.json").getInputStream(), RenderFormat.JSON);
ObjectBundleParams params = new ObjectBundleParams();
params.setObjectBundleMode(ObjectBundleMode.COMMIT);
params.setImportStrategy(ImportStrategy.CREATE);
params.setObjects(metadata);
ObjectBundle bundle = objectBundleService.create(params);
ObjectBundleValidationReport validate = objectBundleValidationService.validate(bundle);
assertTrue(validate.getErrorReports().isEmpty());
objectBundleService.commit(bundle);
List<OrganisationUnit> organisationUnits = manager.getAll(OrganisationUnit.class);
List<DataElement> dataElements = manager.getAll(DataElement.class);
List<UserAuthorityGroup> userRoles = manager.getAll(UserAuthorityGroup.class);
List<User> users = manager.getAll(User.class);
List<Program> programs = manager.getAll(Program.class);
List<ProgramStage> programStages = manager.getAll(ProgramStage.class);
List<ProgramStageDataElement> programStageDataElements = manager.getAll(ProgramStageDataElement.class);
List<ProgramTrackedEntityAttribute> programTrackedEntityAttributes = manager.getAll(ProgramTrackedEntityAttribute.class);
assertFalse(organisationUnits.isEmpty());
assertFalse(dataElements.isEmpty());
assertFalse(users.isEmpty());
assertFalse(userRoles.isEmpty());
assertEquals(1, programs.size());
assertEquals(2, programStages.size());
assertEquals(4, programStageDataElements.size());
assertEquals(2, programTrackedEntityAttributes.size());
}
use of org.hisp.dhis.program.ProgramTrackedEntityAttribute in project dhis2-core by dhis2.
the class ShowUpdateProgramFormAction method execute.
// -------------------------------------------------------------------------
// Action implementation
// -------------------------------------------------------------------------
@Override
public String execute() throws Exception {
program = programService.getProgram(id);
attributeValues = AttributeUtils.getAttributeValueMap(program.getAttributeValues());
availableAttributes = trackedEntityAttributeService.getAllTrackedEntityAttributes();
for (ProgramTrackedEntityAttribute programTrackedEntityAttribute : program.getProgramAttributes()) {
availableAttributes.remove(programTrackedEntityAttribute.getAttribute());
}
Collections.sort(availableAttributes);
programs = programService.getAllPrograms();
programs.removeAll(programService.getPrograms(ProgramType.WITHOUT_REGISTRATION));
programs.remove(program);
Collections.sort(programs);
userGroups = userGroupService.getAllUserGroups();
relationshipTypes = relationshipTypeService.getAllRelationshipTypes();
Collections.sort(relationshipTypes);
trackedEntities = trackedEntityService.getAllTrackedEntity();
Collections.sort(trackedEntities);
attributes = attributeService.getAttributes(Program.class);
categoryCombos = new ArrayList<>(categoryService.getAttributeCategoryCombos());
workflows = new ArrayList<>(dataApprovalService.getAllWorkflows());
Collections.sort(workflows);
periodTypes = periodService.getAllPeriodTypes();
return SUCCESS;
}
use of org.hisp.dhis.program.ProgramTrackedEntityAttribute in project dhis2-core by dhis2.
the class AbstractWebApiTest method createTestObject.
@SuppressWarnings("unchecked")
protected T createTestObject(Class<?> clazz, char uniqueName, Object... params) {
if (DataElementGroup.class.isAssignableFrom(clazz)) {
return (T) createDataElementGroup(uniqueName);
} else if (DataElementCategoryCombo.class.isAssignableFrom(clazz)) {
return (T) createCategoryCombo(uniqueName, Arrays.copyOf(params, params.length, DataElementCategory[].class));
} else if (DataElementCategoryOption.class.isAssignableFrom(clazz)) {
return (T) createCategoryOption(uniqueName);
} else if (DataElement.class.isAssignableFrom(clazz)) {
return (T) createDataElement(uniqueName);
} else if (DataElementCategory.class.isAssignableFrom(clazz)) {
return (T) createDataElementCategory(uniqueName, Arrays.copyOf(params, params.length, DataElementCategoryOption[].class));
} else if (Program.class.isAssignableFrom(clazz)) {
OrganisationUnit organisationUnitA = createOrganisationUnit(uniqueName);
manager.save(organisationUnitA);
return (T) createProgram(uniqueName, new HashSet<>(), organisationUnitA);
} else if (DataElementOperand.class.isAssignableFrom(clazz)) {
DataElement deA = createDataElement(uniqueName);
manager.save(deA);
DataElementCategoryCombo cc = createCategoryCombo(uniqueName);
DataElementCategoryOption co = createCategoryOption(uniqueName);
manager.save(cc);
manager.save(co);
DataElementCategoryOptionCombo coc = createCategoryOptionCombo(cc, co);
manager.save(coc);
return (T) new DataElementOperand(deA, coc);
} else if (DataElementGroupSet.class.isAssignableFrom(clazz)) {
return (T) createDataElementGroupSet(uniqueName);
} else if (DataElementCategoryOptionCombo.class.isAssignableFrom(clazz)) {
DataElementCategoryCombo cc = createCategoryCombo(uniqueName);
DataElementCategoryOption co = createCategoryOption(uniqueName);
manager.save(cc);
manager.save(co);
return (T) createCategoryOptionCombo(cc, co);
} else if (CategoryOptionGroup.class.isAssignableFrom(clazz)) {
DataElementCategoryOption co = createCategoryOption(uniqueName);
manager.save(co);
return (T) createCategoryOptionGroup(uniqueName, co);
} else if (CategoryOptionGroupSet.class.isAssignableFrom(clazz)) {
return (T) createCategoryOptionGroupSet(uniqueName);
} else if (EventChart.class.isAssignableFrom(clazz)) {
Program prA = createProgram(uniqueName);
manager.save(prA);
EventChart ecA = new EventChart("evc" + uniqueName);
ecA.setProgram(prA);
ecA.setType(ChartType.COLUMN);
return (T) ecA;
} else if (EventReport.class.isAssignableFrom(clazz)) {
Program prA = createProgram(uniqueName);
manager.save(prA);
EventReport erA = new EventReport("er" + uniqueName);
erA.setProgram(prA);
return (T) erA;
} else if (ProgramDataElementDimensionItem.class.isAssignableFrom(clazz)) {
Program prA = createProgram(uniqueName);
manager.save(prA);
DataElement deA = createDataElement(uniqueName);
manager.save(deA);
return (T) new ProgramDataElementDimensionItem(prA, deA);
} else if (ProgramIndicator.class.isAssignableFrom(clazz)) {
Program program = (Program) createTestObject(Program.class, uniqueName);
manager.save(program);
Constant constantA = createConstant(uniqueName, 7.0);
manager.save(constantA);
String expressionA = "( " + KEY_PROGRAM_VARIABLE + "{" + ProgramIndicator.VAR_ENROLLMENT_DATE + "} - " + KEY_PROGRAM_VARIABLE + "{" + ProgramIndicator.VAR_INCIDENT_DATE + "} ) / " + ProgramIndicator.KEY_CONSTANT + "{" + constantA.getUid() + "}";
return (T) createProgramIndicator(uniqueName, program, expressionA, null);
} else if (Indicator.class.isAssignableFrom(clazz)) {
IndicatorType indicatorType = createIndicatorType(uniqueName);
manager.save(indicatorType);
return (T) createIndicator(uniqueName, indicatorType);
} else if (IndicatorGroup.class.isAssignableFrom(clazz)) {
return (T) createIndicatorGroup(uniqueName);
} else if (IndicatorGroupSet.class.isAssignableFrom(clazz)) {
return (T) createIndicatorGroupSet(uniqueName);
} else if (IndicatorType.class.isAssignableFrom(clazz)) {
return (T) createIndicatorType(uniqueName);
} else if (Legend.class.isAssignableFrom(clazz)) {
return (T) createLegend(uniqueName, 0d, 10d);
} else if (LegendSet.class.isAssignableFrom(clazz)) {
return (T) createLegendSet(uniqueName);
} else if (OrganisationUnit.class.isAssignableFrom(clazz)) {
return (T) createOrganisationUnit(uniqueName);
} else if (OrganisationUnitGroup.class.isAssignableFrom(clazz)) {
return (T) createOrganisationUnitGroup(uniqueName);
} else if (OrganisationUnitGroupSet.class.isAssignableFrom(clazz)) {
return (T) createOrganisationUnitGroupSet(uniqueName);
} else if (OrganisationUnitLevel.class.isAssignableFrom(clazz)) {
return (T) new OrganisationUnitLevel(uniqueName, "OrgLevel" + uniqueName);
} else if (Color.class.isAssignableFrom(clazz)) {
Color color = new Color("#ff3200");
color.setName("Color" + uniqueName);
return (T) color;
} else if (ColorSet.class.isAssignableFrom(clazz)) {
ColorSet colorSet = new ColorSet();
colorSet.setName("ColorSet" + uniqueName);
return (T) colorSet;
} else if (org.hisp.dhis.mapping.Map.class.isAssignableFrom(clazz)) {
org.hisp.dhis.mapping.Map map = new org.hisp.dhis.mapping.Map();
map.setName("Map" + uniqueName);
map.setDisplayName("DisplayName" + uniqueName);
map.setLatitude(952175.62553525);
map.setLongitude(-1378543.6774686);
return (T) map;
} else if (ExternalMapLayer.class.isAssignableFrom(clazz)) {
ExternalMapLayer externalMapLayer = new ExternalMapLayer("ExternalMapLayer" + uniqueName);
externalMapLayer.setMapService(MapService.WMS);
externalMapLayer.setUrl("testUrl");
externalMapLayer.setImageFormat(ImageFormat.JPG);
externalMapLayer.setMapLayerPosition(MapLayerPosition.BASEMAP);
return (T) externalMapLayer;
} else if (OptionGroup.class.isAssignableFrom(clazz)) {
OptionGroup optionGroup = new OptionGroup("OptionGroup" + uniqueName);
optionGroup.setShortName("Group" + uniqueName);
return (T) optionGroup;
} else if (OptionGroupSet.class.isAssignableFrom(clazz)) {
return (T) new OptionGroupSet("OptionGroupSet" + uniqueName);
} else if (Option.class.isAssignableFrom(clazz)) {
return (T) new Option("Option" + uniqueName, "code" + uniqueName);
} else if (OptionSet.class.isAssignableFrom(clazz)) {
return (T) new OptionSet("OptionSet" + uniqueName, ValueType.TEXT);
} else if (ProgramTrackedEntityAttributeGroup.class.isAssignableFrom(clazz)) {
ProgramTrackedEntityAttributeGroup group = createProgramTrackedEntityAttributeGroup(uniqueName);
ProgramTrackedEntityAttribute attr = createProgramTrackedEntityAttribute(uniqueName);
group.addAttribute(attr);
return (T) group;
} else if (ProgramTrackedEntityAttribute.class.isAssignableFrom(clazz)) {
return (T) createProgramTrackedEntityAttribute(uniqueName);
} else if (ProgramDataElementDimensionItem.class.isAssignableFrom(clazz)) {
return (T) createProgramDataElement(uniqueName);
}
return null;
}
use of org.hisp.dhis.program.ProgramTrackedEntityAttribute in project dhis2-core by dhis2.
the class AbstractEnrollmentService method checkAttributes.
private List<ImportConflict> checkAttributes(Enrollment enrollment, ImportOptions importOptions) {
List<ImportConflict> importConflicts = new ArrayList<>();
Program program = getProgram(importOptions.getIdSchemes(), enrollment.getProgram());
org.hisp.dhis.trackedentity.TrackedEntityInstance trackedEntityInstance = teiService.getTrackedEntityInstance(enrollment.getTrackedEntityInstance());
Map<TrackedEntityAttribute, Boolean> mandatoryMap = Maps.newHashMap();
Map<String, String> attributeValueMap = Maps.newHashMap();
for (ProgramTrackedEntityAttribute programTrackedEntityAttribute : program.getProgramAttributes()) {
mandatoryMap.put(programTrackedEntityAttribute.getAttribute(), programTrackedEntityAttribute.isMandatory());
}
// ignore attributes which do not belong to this program
trackedEntityInstance.getTrackedEntityAttributeValues().stream().filter(value -> mandatoryMap.containsKey(value.getAttribute())).forEach(value -> attributeValueMap.put(value.getAttribute().getUid(), value.getValue()));
for (Attribute attribute : enrollment.getAttributes()) {
attributeValueMap.put(attribute.getAttribute(), attribute.getValue());
importConflicts.addAll(validateAttributeType(attribute, importOptions));
}
TrackedEntityInstance instance = trackedEntityInstanceService.getTrackedEntityInstance(enrollment.getTrackedEntityInstance());
for (TrackedEntityAttribute trackedEntityAttribute : mandatoryMap.keySet()) {
Boolean mandatory = mandatoryMap.get(trackedEntityAttribute);
if (mandatory && !attributeValueMap.containsKey(trackedEntityAttribute.getUid())) {
importConflicts.add(new ImportConflict("Attribute.attribute", "Missing mandatory attribute " + trackedEntityAttribute.getUid()));
continue;
}
if (trackedEntityAttribute.isUnique()) {
OrganisationUnit organisationUnit = manager.get(OrganisationUnit.class, instance.getOrgUnit());
importConflicts.addAll(checkScope(trackedEntityInstance, trackedEntityAttribute, attributeValueMap.get(trackedEntityAttribute.getUid()), organisationUnit, program));
}
attributeValueMap.remove(trackedEntityAttribute.getUid());
}
if (!attributeValueMap.isEmpty()) {
importConflicts.add(new ImportConflict("Attribute.attribute", "Only program attributes is allowed for enrollment " + attributeValueMap));
}
return importConflicts;
}
Aggregations