Search in sources :

Example 6 with Event

use of org.hisp.dhis.dxf2.events.event.Event in project dhis2-core by dhis2.

the class RegistrationMultiEventsServiceTest method createEvent.

private Event createEvent(String program, String programStage, String orgUnit, String person, String dataElement) {
    Event event = new Event();
    event.setProgram(program);
    event.setProgramStage(programStage);
    event.setOrgUnit(orgUnit);
    event.setTrackedEntityInstance(person);
    event.setEventDate("2013-01-01");
    event.getDataValues().add(new DataValue(dataElement, "10"));
    return event;
}
Also used : DataValue(org.hisp.dhis.dxf2.events.event.DataValue) Event(org.hisp.dhis.dxf2.events.event.Event)

Example 7 with Event

use of org.hisp.dhis.dxf2.events.event.Event in project dhis2-core by dhis2.

the class RegistrationMultiEventsServiceTest method testSaveRepeatableStageWithEventIdShouldNotCreateAdditionalEvents.

@Test
@Category(IntegrationTest.class)
public void testSaveRepeatableStageWithEventIdShouldNotCreateAdditionalEvents() {
    Enrollment enrollment = createEnrollment(programA.getUid(), trackedEntityInstanceMaleA.getTrackedEntityInstance());
    ImportSummary importSummary = enrollmentService.addEnrollment(enrollment, null);
    assertEquals(ImportStatus.SUCCESS, importSummary.getStatus());
    Event event = createEvent(programA.getUid(), programStageA.getUid(), organisationUnitA.getUid(), trackedEntityInstanceMaleA.getTrackedEntityInstance(), dataElementA.getUid());
    importSummary = eventService.addEvent(event, null);
    assertEquals(ImportStatus.SUCCESS, importSummary.getStatus());
    event = createEvent(programA.getUid(), programStageB.getUid(), organisationUnitA.getUid(), trackedEntityInstanceMaleA.getTrackedEntityInstance(), dataElementB.getUid());
    importSummary = eventService.addEvent(event, null);
    assertEquals(ImportStatus.SUCCESS, importSummary.getStatus());
    sessionFactory.getCurrentSession().flush();
    EventSearchParams params = new EventSearchParams();
    params.setProgram(programA);
    params.setOrgUnit(organisationUnitA);
    params.setOrgUnitSelectionMode(OrganisationUnitSelectionMode.SELECTED);
    assertEquals(2, eventService.getEvents(params).getEvents().size());
    event = createEvent(programA.getUid(), programStageB.getUid(), organisationUnitA.getUid(), trackedEntityInstanceMaleA.getTrackedEntityInstance(), dataElementB.getUid());
    event.setEvent(importSummary.getReference());
    importSummary = eventService.addEvent(event, null);
    assertEquals(ImportStatus.SUCCESS, importSummary.getStatus());
    assertEquals(2, eventService.getEvents(params).getEvents().size());
    event = createEvent(programA.getUid(), programStageA.getUid(), organisationUnitA.getUid(), trackedEntityInstanceMaleA.getTrackedEntityInstance(), dataElementA.getUid());
    importSummary = eventService.addEvent(event, null);
    assertEquals(ImportStatus.ERROR, importSummary.getStatus());
    assertEquals(2, eventService.getEvents(params).getEvents().size());
}
Also used : ImportSummary(org.hisp.dhis.dxf2.importsummary.ImportSummary) EventSearchParams(org.hisp.dhis.dxf2.events.event.EventSearchParams) Enrollment(org.hisp.dhis.dxf2.events.enrollment.Enrollment) Event(org.hisp.dhis.dxf2.events.event.Event) Category(org.junit.experimental.categories.Category) IntegrationTest(org.hisp.dhis.IntegrationTest) Test(org.junit.Test) DhisSpringTest(org.hisp.dhis.DhisSpringTest)

Example 8 with Event

use of org.hisp.dhis.dxf2.events.event.Event in project dhis2-core by dhis2.

the class RegistrationMultiEventsServiceTest method testSaveWithoutEnrollmentShouldFail.

@Test
@Category(IntegrationTest.class)
public void testSaveWithoutEnrollmentShouldFail() {
    Event event = createEvent(programA.getUid(), programStageA.getUid(), organisationUnitA.getUid(), trackedEntityInstanceMaleA.getTrackedEntityInstance(), dataElementA.getUid());
    ImportSummary importSummary = eventService.addEvent(event, null);
    assertEquals(ImportStatus.ERROR, importSummary.getStatus());
    assertThat(importSummary.getDescription(), CoreMatchers.containsString("is not enrolled in program"));
}
Also used : ImportSummary(org.hisp.dhis.dxf2.importsummary.ImportSummary) Event(org.hisp.dhis.dxf2.events.event.Event) Category(org.junit.experimental.categories.Category) IntegrationTest(org.hisp.dhis.IntegrationTest) Test(org.junit.Test) DhisSpringTest(org.hisp.dhis.DhisSpringTest)

Example 9 with Event

use of org.hisp.dhis.dxf2.events.event.Event in project dhis2-core by dhis2.

the class DefaultCsvEventService method writeEvents.

@Override
public void writeEvents(OutputStream outputStream, Events events, boolean withHeader) throws IOException {
    ObjectWriter writer = CSV_MAPPER.writer(CSV_SCHEMA.withUseHeader(withHeader));
    List<CsvEventDataValue> dataValues = new ArrayList<>();
    for (Event event : events.getEvents()) {
        CsvEventDataValue templateDataValue = new CsvEventDataValue();
        templateDataValue.setEvent(event.getEvent());
        templateDataValue.setStatus(event.getStatus() != null ? event.getStatus().name() : null);
        templateDataValue.setProgram(event.getProgram());
        templateDataValue.setProgramStage(event.getProgramStage());
        templateDataValue.setEnrollment(event.getEnrollment());
        templateDataValue.setOrgUnit(event.getOrgUnit());
        templateDataValue.setEventDate(event.getEventDate());
        templateDataValue.setDueDate(event.getDueDate());
        templateDataValue.setStoredBy(event.getStoredBy());
        if (event.getCoordinate() != null) {
            templateDataValue.setLatitude(event.getCoordinate().getLatitude());
            templateDataValue.setLongitude(event.getCoordinate().getLongitude());
        }
        for (DataValue value : event.getDataValues()) {
            CsvEventDataValue dataValue = new CsvEventDataValue(templateDataValue);
            dataValue.setDataElement(value.getDataElement());
            dataValue.setValue(value.getValue());
            dataValue.setProvidedElsewhere(value.getProvidedElsewhere());
            if (value.getStoredBy() != null) {
                dataValue.setStoredBy(value.getStoredBy());
            }
            dataValues.add(dataValue);
        }
    }
    writer.writeValue(outputStream, dataValues);
}
Also used : DataValue(org.hisp.dhis.dxf2.events.event.DataValue) ArrayList(java.util.ArrayList) ObjectWriter(com.fasterxml.jackson.databind.ObjectWriter) Event(org.hisp.dhis.dxf2.events.event.Event)

Example 10 with Event

use of org.hisp.dhis.dxf2.events.event.Event in project dhis2-core by dhis2.

the class DefaultCsvEventService method readEvents.

@Override
public Events readEvents(InputStream inputStream, boolean skipFirst) throws IOException {
    Events events = new Events();
    ObjectReader reader = CSV_MAPPER.readerFor(CsvEventDataValue.class).with(CSV_SCHEMA.withSkipFirstDataRow(skipFirst));
    MappingIterator<CsvEventDataValue> iterator = reader.readValues(inputStream);
    Event event = new Event();
    event.setEvent("not_valid");
    while (iterator.hasNext()) {
        CsvEventDataValue dataValue = iterator.next();
        if (!event.getEvent().equals(dataValue.getEvent())) {
            event = new Event();
            event.setEvent(dataValue.getEvent());
            event.setStatus(StringUtils.isEmpty(dataValue.getStatus()) ? EventStatus.ACTIVE : Enum.valueOf(EventStatus.class, dataValue.getStatus()));
            event.setProgram(dataValue.getProgram());
            event.setProgramStage(dataValue.getProgramStage());
            event.setEnrollment(dataValue.getEnrollment());
            event.setOrgUnit(dataValue.getOrgUnit());
            event.setEventDate(dataValue.getEventDate());
            event.setDueDate(dataValue.getDueDate());
            if (dataValue.getLongitude() != null && dataValue.getLatitude() != null) {
                event.setCoordinate(new Coordinate(dataValue.getLongitude(), dataValue.getLatitude()));
            }
            events.getEvents().add(event);
        }
        DataValue value = new DataValue(dataValue.getDataElement(), dataValue.getValue());
        value.setStoredBy(dataValue.getStoredBy());
        value.setProvidedElsewhere(dataValue.getProvidedElsewhere());
        event.getDataValues().add(value);
    }
    return events;
}
Also used : Events(org.hisp.dhis.dxf2.events.event.Events) Coordinate(org.hisp.dhis.dxf2.events.event.Coordinate) DataValue(org.hisp.dhis.dxf2.events.event.DataValue) Event(org.hisp.dhis.dxf2.events.event.Event) ObjectReader(com.fasterxml.jackson.databind.ObjectReader)

Aggregations

Event (org.hisp.dhis.dxf2.events.event.Event)30 ImportSummary (org.hisp.dhis.dxf2.importsummary.ImportSummary)24 WebMessageException (org.hisp.dhis.dxf2.webmessage.WebMessageException)15 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)15 DhisSpringTest (org.hisp.dhis.DhisSpringTest)12 Test (org.junit.Test)12 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)12 InputStream (java.io.InputStream)9 DataValue (org.hisp.dhis.dxf2.events.event.DataValue)9 EventSearchParams (org.hisp.dhis.dxf2.events.event.EventSearchParams)9 ImportSummaries (org.hisp.dhis.dxf2.importsummary.ImportSummaries)9 Date (java.util.Date)8 ImportOptions (org.hisp.dhis.dxf2.common.ImportOptions)7 Events (org.hisp.dhis.dxf2.events.event.Events)7 OrganisationUnit (org.hisp.dhis.organisationunit.OrganisationUnit)7 IOException (java.io.IOException)5 DataElement (org.hisp.dhis.dataelement.DataElement)5 DataElementCategoryOptionCombo (org.hisp.dhis.dataelement.DataElementCategoryOptionCombo)5 Program (org.hisp.dhis.program.Program)5 ProgramStageInstance (org.hisp.dhis.program.ProgramStageInstance)5