use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class AbstractRelationshipService method prepareCaches.
private void prepareCaches(List<Relationship> relationships, User user) {
Map<RelationshipEntity, List<String>> relationshipEntities = new HashMap<>();
Map<String, List<Relationship>> relationshipTypeMap = relationships.stream().collect(Collectors.groupingBy(Relationship::getRelationshipType));
// Find all the RelationshipTypes first, so we know what the uids refer
// to
Query query = Query.from(schemaService.getDynamicSchema(RelationshipType.class));
query.setUser(user);
query.add(Restrictions.in("id", relationshipTypeMap.keySet()));
queryService.query(query).forEach(rt -> relationshipTypeCache.put(rt.getUid(), (RelationshipType) rt));
// Group all uids into their respective RelationshipEntities
relationshipTypeCache.values().forEach(relationshipType -> {
List<String> fromUids = relationshipTypeMap.get(relationshipType.getUid()).stream().map((r) -> getUidOfRelationshipItem(r.getFrom())).collect(Collectors.toList());
List<String> toUids = relationshipTypeMap.get(relationshipType.getUid()).stream().map((r) -> getUidOfRelationshipItem(r.getTo())).collect(Collectors.toList());
// Merge existing results with newly found ones.
relationshipEntities.merge(relationshipType.getFromConstraint().getRelationshipEntity(), fromUids, (old, _new) -> ListUtils.union(old, _new));
relationshipEntities.merge(relationshipType.getToConstraint().getRelationshipEntity(), toUids, (old, _new) -> ListUtils.union(old, _new));
});
// Find and put all Relationship members in their respective cache
if (relationshipEntities.get(TRACKED_ENTITY_INSTANCE) != null) {
teiDaoService.getTrackedEntityInstancesByUid(relationshipEntities.get(TRACKED_ENTITY_INSTANCE), user).forEach(tei -> trackedEntityInstanceCache.put(tei.getUid(), tei));
}
if (relationshipEntities.get(PROGRAM_INSTANCE) != null) {
Query piQuery = Query.from(schemaService.getDynamicSchema(ProgramInstance.class));
piQuery.setUser(user);
piQuery.add(Restrictions.in("id", relationshipEntities.get(PROGRAM_INSTANCE)));
queryService.query(piQuery).forEach(pi -> programInstanceCache.put(pi.getUid(), (ProgramInstance) pi));
}
if (relationshipEntities.get(PROGRAM_STAGE_INSTANCE) != null) {
Query psiQuery = Query.from(schemaService.getDynamicSchema(ProgramStageInstance.class));
psiQuery.setUser(user);
psiQuery.add(Restrictions.in("id", relationshipEntities.get(PROGRAM_STAGE_INSTANCE)));
queryService.query(psiQuery).forEach(psi -> programStageInstanceCache.put(psi.getUid(), (ProgramStageInstance) psi));
}
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class EnrollmentRowCallbackHandler method getEnrollment.
private Enrollment getEnrollment(ResultSet rs) throws SQLException {
Enrollment enrollment = new Enrollment();
enrollment.setEnrollment(rs.getString(getColumnName(UID)));
MapperGeoUtils.resolveGeometry(rs.getBytes(getColumnName(GEOMETRY))).ifPresent(enrollment::setGeometry);
enrollment.setTrackedEntityType(rs.getString(getColumnName(TEI_TYPE_UID)));
enrollment.setTrackedEntityInstance(rs.getString(getColumnName(TEI_UID)));
enrollment.setOrgUnit(rs.getString(getColumnName(ORGUNIT_UID)));
enrollment.setOrgUnitName(rs.getString(getColumnName(ORGUNIT_NAME)));
enrollment.setCreated(DateUtils.getIso8601NoTz(rs.getTimestamp(getColumnName(CREATED))));
enrollment.setCreatedAtClient(DateUtils.getIso8601NoTz(rs.getTimestamp(getColumnName(CREATEDCLIENT))));
setUserInfoSnapshot(rs, getColumnName(CREATED_BY), enrollment::setCreatedByUserInfo);
enrollment.setLastUpdated(DateUtils.getIso8601NoTz(rs.getTimestamp(getColumnName(UPDATED))));
enrollment.setLastUpdatedAtClient(DateUtils.getIso8601NoTz(rs.getTimestamp(getColumnName(UPDATEDCLIENT))));
setUserInfoSnapshot(rs, getColumnName(LAST_UPDATED_BY), enrollment::setLastUpdatedByUserInfo);
enrollment.setProgram(rs.getString(getColumnName(PROGRAM_UID)));
enrollment.setStatus(EnrollmentStatus.fromStatusString(rs.getString(getColumnName(STATUS))));
enrollment.setEnrollmentDate(rs.getTimestamp(getColumnName(ENROLLMENTDATE)));
enrollment.setIncidentDate(rs.getTimestamp(getColumnName(INCIDENTDATE)));
final boolean followup = rs.getBoolean(getColumnName(FOLLOWUP));
enrollment.setFollowup(rs.wasNull() ? null : followup);
enrollment.setCompletedDate(rs.getTimestamp(getColumnName(COMPLETED)));
enrollment.setCompletedBy(rs.getString(getColumnName(COMPLETEDBY)));
enrollment.setStoredBy(rs.getString(getColumnName(STOREDBY)));
enrollment.setDeleted(rs.getBoolean(getColumnName(DELETED)));
enrollment.setId(rs.getLong(getColumnName(ID)));
return enrollment;
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class MetadataImportParams method toObjectBundleParams.
public ObjectBundleParams toObjectBundleParams() {
ObjectBundleParams params = new ObjectBundleParams();
params.setUser(user);
params.setUserOverrideMode(userOverrideMode);
params.setOverrideUser(overrideUser);
params.setSkipSharing(skipSharing);
params.setSkipTranslation(skipTranslation);
params.setSkipValidation(skipValidation);
params.setJobId(id);
params.setImportStrategy(importStrategy);
params.setAtomicMode(atomicMode);
params.setObjects(objects);
params.setPreheatIdentifier(identifier);
params.setPreheatMode(preheatMode);
params.setObjectBundleMode(importMode);
params.setMergeMode(mergeMode);
params.setFlushMode(flushMode);
params.setImportReportMode(importReportMode);
params.setMetadataSyncImport(metadataSyncImport);
return params;
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class ProgramStageInstanceBasicCheckTest method failOnDeletedProgramStageInstance.
@Test
void failOnDeletedProgramStageInstance() {
Map<String, ProgramStageInstance> programStageInstanceMap = new HashMap<>();
ProgramStageInstance psi = new ProgramStageInstance();
psi.setDeleted(true);
programStageInstanceMap.put(event.getEvent(), psi);
when(workContext.getProgramStageInstanceMap()).thenReturn(programStageInstanceMap);
ImportSummary summary = rule.check(new ImmutableEvent(event), workContext);
assertHasError(summary, event, "Event ID " + event.getEvent() + " was already used and/or deleted. This event can not be modified.");
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class ProgramStageInstanceBasicCheckTest method failOnMissingProgramStageInstance.
@Test
void failOnMissingProgramStageInstance() {
when(workContext.getProgramStageInstanceMap()).thenReturn(new HashMap<>());
ImportSummary summary = rule.check(new ImmutableEvent(event), workContext);
assertHasError(summary, event, "Event ID " + event.getEvent() + " doesn't point to valid event");
}
Aggregations