use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.UID in project dhis2-core by dhis2.
the class AbstractTrackedEntityInstanceService method deleteTrackedEntityInstance.
private ImportSummary deleteTrackedEntityInstance(String uid, TrackedEntityInstance dtoEntityInstance, ImportOptions importOptions) {
ImportSummary importSummary = new ImportSummary();
importOptions = updateImportOptions(importOptions);
boolean teiExists = teiService.trackedEntityInstanceExists(uid);
if (teiExists) {
org.hisp.dhis.trackedentity.TrackedEntityInstance daoEntityInstance = teiService.getTrackedEntityInstance(uid);
if (dtoEntityInstance != null) {
importSummary.setReference(uid);
importSummary.setEnrollments(handleEnrollments(dtoEntityInstance, daoEntityInstance, importOptions));
}
if (importOptions.getUser() != null) {
isAllowedToDelete(importOptions.getUser(), daoEntityInstance, importSummary);
if (importSummary.hasConflicts()) {
importSummary.setStatus(ImportStatus.ERROR);
importSummary.setReference(daoEntityInstance.getUid());
importSummary.incrementIgnored();
return importSummary;
}
}
teiService.deleteTrackedEntityInstance(daoEntityInstance);
importSummary.setStatus(ImportStatus.SUCCESS);
importSummary.setDescription("Deletion of tracked entity instance " + uid + " was successful");
return importSummary.incrementDeleted();
} else {
importSummary.setStatus(ImportStatus.SUCCESS);
importSummary.setDescription("Tracked entity instance " + uid + " cannot be deleted as it is not present in the system");
return importSummary.incrementIgnored();
}
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.UID in project dhis2-core by dhis2.
the class ProgramStageInstanceMapper method mapForInsert.
public ProgramStageInstance mapForInsert(Event event) {
ImportOptions importOptions = workContext.getImportOptions();
ProgramStageInstance psi = new ProgramStageInstance();
if (importOptions.getIdSchemes().getProgramStageInstanceIdScheme().equals(CODE)) {
psi.setCode(event.getEvent());
} else if (importOptions.getIdSchemes().getProgramStageIdScheme().equals(UID)) {
psi.setUid(event.getUid());
}
// Program Instance
psi.setProgramInstance(this.workContext.getProgramInstanceMap().get(event.getUid()));
// Program Stage
psi.setProgramStage(this.workContext.getProgramStage(importOptions.getIdSchemes().getProgramStageIdScheme(), event.getProgramStage()));
// Org Unit
psi.setOrganisationUnit(this.workContext.getOrganisationUnitMap().get(event.getUid()));
// Status
psi.setStatus(fromInt(event.getStatus().getValue()));
// Attribute Option Combo
psi.setAttributeOptionCombo(this.workContext.getCategoryOptionComboMap().get(event.getUid()));
// Geometry
psi.setGeometry(event.getGeometry());
// Notes
psi.setComments(convertNotes(event, this.workContext));
// Data Values
psi.setEventDataValues(workContext.getEventDataValueMap().get(event.getUid()));
Date dueDate = new Date();
if (event.getDueDate() != null) {
dueDate = parseDate(event.getDueDate());
}
psi.setDueDate(dueDate);
setCompletedDate(event, psi);
// Note that execution date can be null
setExecutionDate(event, psi);
if (psi.getProgramStage() != null && psi.getProgramStage().isEnableUserAssignment()) {
psi.setAssignedUser(this.workContext.getAssignedUserMap().get(event.getUid()));
}
// CREATED AT CLIENT + UPDATED AT CLIENT
psi.setCreatedAtClient(parseDate(event.getCreatedAtClient()));
psi.setLastUpdatedAtClient(parseDate(event.getLastUpdatedAtClient()));
psi.setStoredBy(event.getStoredBy());
psi.setCompletedBy(event.getCompletedBy());
psi.setCreatedByUserInfo(event.getCreatedByUserInfo());
psi.setLastUpdatedByUserInfo(event.getLastUpdatedByUserInfo());
return psi;
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.UID in project dhis2-core by dhis2.
the class AbstractRelationshipService method deleteRelationship.
private ImportSummary deleteRelationship(String uid, ImportOptions importOptions) {
ImportSummary importSummary = new ImportSummary();
importOptions = updateImportOptions(importOptions);
if (uid.isEmpty()) {
importSummary.setStatus(ImportStatus.WARNING);
importSummary.setDescription("Missing required property 'relationship'");
return importSummary.incrementIgnored();
}
org.hisp.dhis.relationship.Relationship daoRelationship = relationshipService.getRelationship(uid);
if (daoRelationship != null) {
importSummary.setReference(uid);
List<String> errors = trackerAccessManager.canWrite(importOptions.getUser(), daoRelationship);
if (!errors.isEmpty()) {
importSummary.setDescription(errors.toString());
importSummary.setStatus(ImportStatus.ERROR);
importSummary.getImportCount().incrementIgnored();
return importSummary;
}
relationshipService.deleteRelationship(daoRelationship);
importSummary.setStatus(ImportStatus.SUCCESS);
importSummary.setDescription("Deletion of relationship " + uid + " was successful");
return importSummary.incrementDeleted();
} else {
importSummary.setStatus(ImportStatus.WARNING);
importSummary.setDescription("Relationship " + uid + " cannot be deleted as it is not present in the system");
return importSummary.incrementIgnored();
}
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.UID in project dhis2-core by dhis2.
the class AbstractRelationshipService method includeRelationshipItem.
private org.hisp.dhis.dxf2.events.trackedentity.RelationshipItem includeRelationshipItem(RelationshipItem dao, boolean uidOnly) {
TrackedEntityInstanceParams teiParams = TrackedEntityInstanceParams.FALSE;
org.hisp.dhis.dxf2.events.trackedentity.RelationshipItem relationshipItem = new org.hisp.dhis.dxf2.events.trackedentity.RelationshipItem();
if (dao.getTrackedEntityInstance() != null) {
org.hisp.dhis.dxf2.events.trackedentity.TrackedEntityInstance tei = new org.hisp.dhis.dxf2.events.trackedentity.TrackedEntityInstance();
String uid = dao.getTrackedEntityInstance().getUid();
if (uidOnly) {
tei.clear();
tei.setTrackedEntityInstance(uid);
} else {
tei = trackedEntityInstanceService.getTrackedEntityInstance(dao.getTrackedEntityInstance(), teiParams);
}
relationshipItem.setTrackedEntityInstance(tei);
} else if (dao.getProgramInstance() != null) {
Enrollment enrollment = new Enrollment();
String uid = dao.getProgramInstance().getUid();
if (uidOnly) {
enrollment.clear();
enrollment.setEnrollment(uid);
} else {
enrollment = enrollmentService.getEnrollment(dao.getProgramInstance(), teiParams);
}
relationshipItem.setEnrollment(enrollment);
} else if (dao.getProgramStageInstance() != null) {
Event event = new Event();
String uid = dao.getProgramStageInstance().getUid();
if (uidOnly) {
event.clear();
event.setEvent(uid);
} else {
event = eventService.getEvent(dao.getProgramStageInstance());
event.setRelationships(null);
}
relationshipItem.setEvent(event);
}
return relationshipItem;
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.UID in project dhis2-core by dhis2.
the class DefaultCsvImportService method setOptionGroupsFromCsv.
/**
* Option group format:
* <p>
* <ul>
* <li>option group name</li>
* <li>option group uid</li>
* <li>option group code</li>
* <li>option group short name</li>
* <li>option set uid</li>
* <li>option uid</li>
* </ul>
*/
private void setOptionGroupsFromCsv(CsvReader reader, Metadata metadata) throws IOException {
ListMap<String, Option> nameOptionMap = new ListMap<>();
Map<String, OptionGroup> nameOptionGroupMap = new HashMap<>();
Map<String, OptionSet> mapOptionSet = new HashMap<>();
while (reader.readRecord()) {
String[] values = reader.getValues();
if (values != null && values.length > 0) {
OptionGroup optionGroup = new OptionGroup();
setIdentifiableObject(optionGroup, values);
optionGroup.setShortName(getSafe(values, 3, 50));
optionGroup.setAutoFields();
if (optionGroup.getName() == null || optionGroup.getShortName() == null) {
continue;
}
OptionSet optionSet = new OptionSet();
optionSet.setUid(getSafe(values, 4, 11));
if (optionSet.getUid() == null) {
continue;
}
OptionSet persistedOptionSet = optionSet.getUid() != null ? mapOptionSet.computeIfAbsent(optionSet.getUid(), key -> optionService.getOptionSet(optionSet.getUid())) : mapOptionSet.computeIfAbsent(optionSet.getCode(), key -> optionService.getOptionSetByCode(optionSet.getCode()));
if (persistedOptionSet == null) {
continue;
}
optionGroup.setOptionSet(optionSet);
Option option = new Option();
option.setUid(getSafe(values, 5, 11));
option.setCode(getSafe(values, 6, 50));
if (option.getCode() == null && option.getUid() == null) {
continue;
}
Optional<Option> isOptionExisted = persistedOptionSet.getOptions().stream().filter(persistedOption -> {
if (option.getUid() != null) {
return persistedOption.getUid().equals(option.getUid());
} else {
return persistedOption.getCode().equals(option.getCode());
}
}).findFirst();
if (!isOptionExisted.isPresent()) {
continue;
}
nameOptionGroupMap.put(optionGroup.getName(), optionGroup);
nameOptionMap.putValue(optionGroup.getName(), isOptionExisted.get());
}
}
// Read option groups from map and set in meta data
for (Entry<String, OptionGroup> optionGroupEntry : nameOptionGroupMap.entrySet()) {
optionGroupEntry.getValue().setMembers(new HashSet<>(nameOptionMap.get(optionGroupEntry.getKey())));
}
metadata.setOptionGroups(new ArrayList<>(nameOptionGroupMap.values()));
}
Aggregations