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;
}
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());
}
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"));
}
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);
}
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;
}
Aggregations