Search in sources :

Example 66 with TrackedEntity

use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.

the class TrackerTrackedEntitiesExportController method getInstances.

@GetMapping(produces = APPLICATION_JSON_VALUE)
PagingWrapper<TrackedEntity> getInstances(TrackerTrackedEntityCriteria criteria) {
    List<String> fields = contextService.getFieldsFromRequestOrAll();
    TrackedEntityInstanceQueryParams queryParams = criteriaMapper.map(criteria);
    Collection<TrackedEntity> trackedEntityInstances = TRACKED_ENTITY_MAPPER.fromCollection(trackedEntityInstanceService.getTrackedEntityInstances(queryParams, trackedEntityInstanceSupportService.getTrackedEntityInstanceParams(fields), false, false));
    PagingWrapper<TrackedEntity> trackedEntityInstancePagingWrapper = new PagingWrapper<>();
    if (criteria.isPagingRequest()) {
        Long count = criteria.isTotalPages() ? (long) trackedEntityInstanceService.getTrackedEntityInstanceCount(queryParams, true, true) : null;
        trackedEntityInstancePagingWrapper = trackedEntityInstancePagingWrapper.withPager(PagingWrapper.Pager.builder().page(queryParams.getPageWithDefault()).total(count).pageSize(queryParams.getPageSizeWithDefault()).build());
    }
    return trackedEntityInstancePagingWrapper.withInstances(trackedEntityInstances);
}
Also used : PagingWrapper(org.hisp.dhis.webapi.controller.event.webrequest.PagingWrapper) TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) TrackedEntityInstanceQueryParams(org.hisp.dhis.trackedentity.TrackedEntityInstanceQueryParams) GetMapping(org.springframework.web.bind.annotation.GetMapping)

Example 67 with TrackedEntity

use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.

the class TrackerBundleParamsConverterTest method verifyUidIsAssignedWhenMissing.

@Test
void verifyUidIsAssignedWhenMissing() throws IOException {
    List<Relationship> relationships1 = createRelationships(2, null);
    List<Relationship> relationships2 = createRelationships(2, "rel2");
    List<Event> events1 = createEvent(3, null, null);
    List<Event> events2 = createEvent(7, null, null);
    List<Enrollment> enrollments = new ArrayList<>();
    Enrollment enrollment1 = createEnrollment(null, null, events1);
    Enrollment enrollment2 = createEnrollment(null, null, events2);
    enrollment1.setRelationships(relationships1);
    enrollment2.setRelationships(relationships2);
    enrollments.add(enrollment1);
    enrollments.add(enrollment2);
    TrackedEntity trackedEntity = createTrackedEntity(null, enrollments);
    trackedEntity.setRelationships(relationships1);
    TrackerBundleParams build = TrackerBundleParams.builder().trackedEntities(Collections.singletonList(trackedEntity)).build();
    String jsonPayload = toJson(build);
    TrackerBundleParams b2 = this.objectMapper.readValue(jsonPayload, TrackerBundleParams.class);
    // TEI has uid
    assertThat(b2.getTrackedEntities().get(0).getTrackedEntity(), is(notNullValue()));
    // Also check parent uid is set
    assertThat(b2.getEnrollments().get(0).getTrackedEntity(), is(b2.getTrackedEntities().get(0).getTrackedEntity()));
    assertThat(b2.getEnrollments().get(0).getEnrollment(), is(notNullValue()));
    // Also check parent uid is set
    assertThat(b2.getEnrollments().get(1).getTrackedEntity(), is(b2.getTrackedEntities().get(0).getTrackedEntity()));
    assertThat(b2.getEnrollments().get(1).getEnrollment(), is(notNullValue()));
    assertThat(b2.getEvents().get(0).getEvent(), is(notNullValue()));
    assertThat(b2.getEvents().get(1).getEvent(), is(notNullValue()));
    assertThat(b2.getRelationships(), hasSize(4));
    b2.getRelationships().stream().forEach(r -> assertThat(r.getRelationship(), is(notNullValue())));
}
Also used : TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) Relationship(org.hisp.dhis.tracker.domain.Relationship) ArrayList(java.util.ArrayList) Event(org.hisp.dhis.tracker.domain.Event) Enrollment(org.hisp.dhis.tracker.domain.Enrollment) Test(org.junit.jupiter.api.Test)

Example 68 with TrackedEntity

use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.

the class TrackerBundleParamsConverterTest method verifyNestedTeiStructureHasNestedDataClearedAfterFlattening.

@Test
void verifyNestedTeiStructureHasNestedDataClearedAfterFlattening() throws IOException {
    List<Relationship> relationships1 = createRelationships(2, "rel1");
    List<Relationship> relationships2 = createRelationships(2, "rel2");
    List<Event> events1 = createEvent(3, "ev1", "enr1");
    List<Event> events2 = createEvent(7, "ev2", "enr2");
    List<Enrollment> enrollments = new ArrayList<>();
    Enrollment enrollment1 = createEnrollment("enr1", "teiABC", events1);
    Enrollment enrollment2 = createEnrollment("enr2", "teiABC", events2);
    enrollment1.setRelationships(relationships2);
    enrollment2.setRelationships(relationships1);
    enrollments.add(enrollment1);
    enrollments.add(enrollment2);
    TrackedEntity trackedEntity = createTrackedEntity("teiABC", enrollments);
    trackedEntity.setRelationships(relationships1);
    TrackerBundleParams build = TrackerBundleParams.builder().trackedEntities(Collections.singletonList(trackedEntity)).build();
    String jsonPayload = toJson(build);
    TrackerBundleParams b2 = this.objectMapper.readValue(jsonPayload, TrackerBundleParams.class);
    assertThat(b2.getTrackedEntities().get(0).getEnrollments(), hasSize(0));
    assertThat(b2.getTrackedEntities().get(0).getRelationships(), hasSize(0));
    assertThat(b2.getEnrollments().get(0).getEvents(), hasSize(0));
    assertThat(b2.getEnrollments().get(0).getRelationships(), hasSize(0));
    assertThat(b2.getEvents().get(0).getRelationships(), hasSize(0));
}
Also used : TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity) Relationship(org.hisp.dhis.tracker.domain.Relationship) ArrayList(java.util.ArrayList) Event(org.hisp.dhis.tracker.domain.Event) Enrollment(org.hisp.dhis.tracker.domain.Enrollment) Test(org.junit.jupiter.api.Test)

Example 69 with TrackedEntity

use of org.hisp.dhis.tracker.domain.TrackedEntity in project dhis2-core by dhis2.

the class TrackerBundleParamsConverterTest method createTrackedEntity.

private TrackedEntity createTrackedEntity(String uid, List<Enrollment> enrollments) {
    TrackedEntity trackedEntity = rnd.nextObject(TrackedEntity.class);
    trackedEntity.setGeometry(null);
    trackedEntity.setTrackedEntity(uid);
    trackedEntity.setEnrollments(enrollments);
    return trackedEntity;
}
Also used : TrackedEntity(org.hisp.dhis.tracker.domain.TrackedEntity)

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