Search in sources :

Example 6 with TrackedEntity

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());
}
Also used : TrackerImportParams(org.hisp.dhis.tracker.TrackerImportParams) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) Set(java.util.Set) TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) Test(org.junit.jupiter.api.Test) TrackerTest(org.hisp.dhis.tracker.TrackerTest)

Example 7 with TrackedEntity

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());
}
Also used : TrackerImportParams(org.hisp.dhis.tracker.TrackerImportParams) User(org.hisp.dhis.user.User) TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) ArrayList(java.util.ArrayList) TrackerPreheat(org.hisp.dhis.tracker.preheat.TrackerPreheat) ArrayList(java.util.ArrayList) List(java.util.List) TrackedEntityInstance(org.hisp.dhis.trackedentity.TrackedEntityInstance) Test(org.junit.jupiter.api.Test)

Example 8 with TrackedEntity

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());
}
Also used : TrackerImportParams(org.hisp.dhis.tracker.TrackerImportParams) TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) Enrollment(org.hisp.dhis.tracker.domain.Enrollment) TransactionalIntegrationTest(org.hisp.dhis.TransactionalIntegrationTest) Test(org.junit.jupiter.api.Test) Disabled(org.junit.jupiter.api.Disabled)

Example 9 with TrackedEntity

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;
}
Also used : Event(org.hisp.dhis.tracker.domain.Event) EnrollmentTrackerConverterService(org.hisp.dhis.tracker.converter.EnrollmentTrackerConverterService) TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) TrackedEntityInstance(org.hisp.dhis.trackedentity.TrackedEntityInstance) Set(java.util.Set) ProgramStageInstance(org.hisp.dhis.program.ProgramStageInstance) TrackerType(org.hisp.dhis.tracker.TrackerType) TrackerBundle(org.hisp.dhis.tracker.bundle.TrackerBundle) Relationship(org.hisp.dhis.tracker.domain.Relationship) TrackerObjectReport(org.hisp.dhis.tracker.report.TrackerObjectReport) Collectors(java.util.stream.Collectors) TrackedEntityInstanceService(org.hisp.dhis.trackedentity.TrackedEntityInstanceService) ProgramStageInstanceService(org.hisp.dhis.program.ProgramStageInstanceService) Enrollment(org.hisp.dhis.tracker.domain.Enrollment) List(java.util.List) Lists(com.google.common.collect.Lists) RelationshipService(org.hisp.dhis.relationship.RelationshipService) Service(org.springframework.stereotype.Service) EventTrackerConverterService(org.hisp.dhis.tracker.converter.EventTrackerConverterService) ProgramInstance(org.hisp.dhis.program.ProgramInstance) ProgramInstanceService(org.hisp.dhis.program.ProgramInstanceService) AllArgsConstructor(lombok.AllArgsConstructor) TrackerTypeReport(org.hisp.dhis.tracker.report.TrackerTypeReport) TrackerTypeReport(org.hisp.dhis.tracker.report.TrackerTypeReport) TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) ProgramInstance(org.hisp.dhis.program.ProgramInstance) TrackedEntityInstance(org.hisp.dhis.trackedentity.TrackedEntityInstance) TrackerObjectReport(org.hisp.dhis.tracker.report.TrackerObjectReport) Enrollment(org.hisp.dhis.tracker.domain.Enrollment) TrackerBundle(org.hisp.dhis.tracker.bundle.TrackerBundle)

Example 10 with TrackedEntity

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;
    }
}
Also used : TrackedEntityAttributeValueService(org.hisp.dhis.trackedentityattributevalue.TrackedEntityAttributeValueService) Attribute(org.hisp.dhis.tracker.domain.Attribute) Collectors.groupingBy(java.util.stream.Collectors.groupingBy) RequiredArgsConstructor(lombok.RequiredArgsConstructor) TrackedEntityAttributeValue(org.hisp.dhis.trackedentityattributevalue.TrackedEntityAttributeValue) Function(java.util.function.Function) TrackedEntityAttributeService(org.hisp.dhis.trackedentity.TrackedEntityAttributeService) Lists(com.google.common.collect.Lists) Collectors.toMap(java.util.stream.Collectors.toMap) Collectors.mapping(java.util.stream.Collectors.mapping) Map(java.util.Map) TrackerIdScheme(org.hisp.dhis.tracker.TrackerIdScheme) NonNull(lombok.NonNull) UniqueAttributeValue(org.hisp.dhis.tracker.preheat.UniqueAttributeValue) Collection(java.util.Collection) TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) TrackedEntityInstance(org.hisp.dhis.trackedentity.TrackedEntityInstance) Objects(java.util.Objects) TrackerImportParams(org.hisp.dhis.tracker.TrackerImportParams) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) Component(org.springframework.stereotype.Component) Stream(java.util.stream.Stream) TreeMap(java.util.TreeMap) Optional(java.util.Optional) TrackedEntityAttribute(org.hisp.dhis.trackedentity.TrackedEntityAttribute) TrackerPreheat(org.hisp.dhis.tracker.preheat.TrackerPreheat) TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) TrackedEntityInstance(org.hisp.dhis.trackedentity.TrackedEntityInstance)

Aggregations

TrackedEntity (org.hisp.dhis.tracker.domain.TrackedEntity)69 Test (org.junit.jupiter.api.Test)55 ValidationErrorReporter (org.hisp.dhis.tracker.report.ValidationErrorReporter)45 TrackedEntityType (org.hisp.dhis.trackedentity.TrackedEntityType)19 Enrollment (org.hisp.dhis.tracker.domain.Enrollment)18 DhisConvenienceTest (org.hisp.dhis.DhisConvenienceTest)17 TrackedEntityAttribute (org.hisp.dhis.trackedentity.TrackedEntityAttribute)17 Event (org.hisp.dhis.tracker.domain.Event)17 TrackerBundle (org.hisp.dhis.tracker.bundle.TrackerBundle)13 TrackerPreheat (org.hisp.dhis.tracker.preheat.TrackerPreheat)11 BeforeEach (org.junit.jupiter.api.BeforeEach)11 List (java.util.List)10 Attribute (org.hisp.dhis.tracker.domain.Attribute)10 Relationship (org.hisp.dhis.tracker.domain.Relationship)10 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)10 Assertions.assertFalse (org.junit.jupiter.api.Assertions.assertFalse)10 Assertions.assertTrue (org.junit.jupiter.api.Assertions.assertTrue)10 Mockito.when (org.mockito.Mockito.when)10 Optional (java.util.Optional)9 ExtendWith (org.junit.jupiter.api.extension.ExtendWith)9