use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackerPreheatServiceTest method testCollectIdentifiersAttributeValues.
@Test
void testCollectIdentifiersAttributeValues() {
TrackerImportParams params = TrackerImportParams.builder().identifiers(TrackerIdentifierParams.builder().idScheme(TrackerIdentifier.builder().idScheme(TrackerIdScheme.ATTRIBUTE).value("ATTR1234567").build()).build()).trackedEntities(Lists.newArrayList(TrackedEntity.builder().trackedEntity("TEI12345678").orgUnit("OU123456789").build())).build();
assertFalse(params.getTrackedEntities().isEmpty());
assertTrue(params.getEnrollments().isEmpty());
assertTrue(params.getEvents().isEmpty());
Map<Class<?>, Set<String>> collectedMap = identifierCollector.collect(params, Maps.newHashMap());
assertTrue(collectedMap.containsKey(TrackedEntity.class));
Set<String> trackedEntities = collectedMap.get(TrackedEntity.class);
assertTrue(collectedMap.containsKey(OrganisationUnit.class));
Set<String> organisationUnits = collectedMap.get(OrganisationUnit.class);
assertTrue(organisationUnits.contains("OU123456789"));
assertEquals(1, organisationUnits.size());
assertTrue(trackedEntities.contains("TEI12345678"));
assertEquals(1, trackedEntities.size());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackerEntityInstanceStrategyTest method verifyStrategyIgnoresPersistedTei.
@Test
void verifyStrategyIgnoresPersistedTei() {
// Create preheat params
final List<TrackedEntity> trackedEntities = rnd.objects(TrackedEntity.class, 2).collect(Collectors.toList());
final TrackerImportParams params = TrackerImportParams.builder().trackedEntities(trackedEntities).build();
// Preheat
User user = new User();
TrackerPreheat preheat = new TrackerPreheat();
preheat.setUser(user);
final List<String> rootUids = trackedEntities.stream().map(TrackedEntity::getTrackedEntity).collect(Collectors.toList());
// Add uid of non-root tei
rootUids.add("noroottei");
List<List<String>> uids = new ArrayList<>();
uids.add(rootUids);
when(trackedEntityInstanceStore.getIncludingDeleted(rootUids)).thenReturn(Lists.newArrayList(new TrackedEntityInstance() {
{
setUid(trackedEntities.get(0).getTrackedEntity());
}
}));
// when
strategy.add(params, uids, preheat);
preheat.createReferenceTree();
assertFalse(preheat.getReference(trackedEntities.get(0).getTrackedEntity()).isPresent());
assertTrue(preheat.getReference(trackedEntities.get(1).getTrackedEntity()).isPresent());
assertFalse(preheat.getReference("noroottei").isPresent());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class TrackerPreheatServiceIntegration method testPreheatWithDifferentIdSchemes.
@Test
@Disabled
void testPreheatWithDifferentIdSchemes() {
TrackedEntity teA = TrackedEntity.builder().orgUnit("OUA").trackedEntityType(TET_UID).build();
Enrollment enrollmentA = Enrollment.builder().orgUnit("OUA").program("PROGRAM1").trackedEntity(TE_UID).build();
TrackerImportParams trackerPreheatParams = TrackerImportParams.builder().trackedEntities(Lists.newArrayList(teA)).enrollments(Lists.newArrayList(enrollmentA)).identifiers(TrackerIdentifierParams.builder().idScheme(TrackerIdentifier.UID).orgUnitIdScheme(TrackerIdentifier.CODE).programIdScheme(TrackerIdentifier.builder().idScheme(TrackerIdScheme.ATTRIBUTE).value(ATTRIBUTE_UID).build()).build()).build();
TrackerPreheat preheat = trackerPreheatService.preheat(trackerPreheatParams);
assertNotNull(preheat);
assertNotNull(preheat.getMap());
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class DefaultTrackerObjectsDeletionService method deleteTrackedEntityInstances.
@Override
public TrackerTypeReport deleteTrackedEntityInstances(TrackerBundle bundle) {
TrackerTypeReport typeReport = new TrackerTypeReport(TrackerType.TRACKED_ENTITY);
List<TrackedEntity> trackedEntities = bundle.getTrackedEntities();
for (int idx = 0; idx < trackedEntities.size(); idx++) {
String uid = trackedEntities.get(idx).getTrackedEntity();
TrackerObjectReport objectReport = new TrackerObjectReport(TrackerType.TRACKED_ENTITY, uid, idx);
org.hisp.dhis.trackedentity.TrackedEntityInstance daoEntityInstance = teiService.getTrackedEntityInstance(uid);
Set<ProgramInstance> programInstances = daoEntityInstance.getProgramInstances();
List<Enrollment> enrollments = enrollmentTrackerConverterService.to(Lists.newArrayList(programInstances.stream().filter(pi -> !pi.isDeleted()).collect(Collectors.toList())));
TrackerBundle trackerBundle = TrackerBundle.builder().enrollments(enrollments).user(bundle.getUser()).build();
deleteEnrollments(trackerBundle);
teiService.deleteTrackedEntityInstance(daoEntityInstance);
typeReport.getStats().incDeleted();
typeReport.addObjectReport(objectReport);
}
return typeReport;
}
use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.
the class UniqueAttributesSupplier method getEntityForEnrollment.
private TrackedEntity getEntityForEnrollment(TrackerImportParams params, TrackerPreheat preheat, String teiUid) {
TrackedEntityInstance trackedEntity = preheat.getTrackedEntity(TrackerIdScheme.UID, teiUid);
// Get tei from Preheat
Optional<TrackedEntity> optionalTei = params.getTrackedEntities().stream().filter(tei -> Objects.equals(tei.getTrackedEntity(), teiUid)).findAny();
if (optionalTei.isPresent()) {
return optionalTei.get();
} else if (// Otherwise build it from Payload
trackedEntity != null) {
TrackedEntity tei = new TrackedEntity();
tei.setTrackedEntity(teiUid);
tei.setOrgUnit(trackedEntity.getOrganisationUnit().getUid());
return tei;
} else // TEI is not present. but we do not fail here.
// A validation error will be thrown in validation phase
{
TrackedEntity tei = new TrackedEntity();
tei.setTrackedEntity(teiUid);
return tei;
}
}
Aggregations