Search in sources :

Example 1 with SormasToSormasOptionsDto

use of de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto in project SORMAS-Project by hzi-braunschweig.

the class SormasToSormasEventFacadeEjb method getOrCreateShareInfos.

@Override
protected List<SormasToSormasShareInfo> getOrCreateShareInfos(Event event, SormasToSormasOptionsDto options, User user, boolean forSync) {
    String organizationId = options.getOrganization().getId();
    SormasToSormasShareInfo eventShareInfo = event.getSormasToSormasShares().stream().filter(s -> s.getOrganizationId().equals(organizationId)).findFirst().orElseGet(() -> ShareInfoHelper.createShareInfo(organizationId, event, SormasToSormasShareInfo::setEvent, options));
    Stream<SormasToSormasShareInfo> eventParticipantShareInfos = Stream.empty();
    List<EventParticipant> eventParticipants = Collections.emptyList();
    if (options.isWithEventParticipants()) {
        eventParticipants = eventParticipantService.getAllActiveByEvent(event);
        eventParticipantShareInfos = eventParticipants.stream().map(ep -> ep.getSormasToSormasShares().stream().filter(share -> share.getOrganizationId().equals(organizationId)).findFirst().orElseGet(() -> {
            if (forSync) {
                // do not share new event participants on sync
                return ep.getSormasToSormasOriginInfo() != null && ep.getSormasToSormasOriginInfo().getOrganizationId().equals(organizationId) ? ShareInfoHelper.createShareInfo(organizationId, ep, SormasToSormasShareInfo::setEventParticipant, options) : null;
            } else {
                return ShareInfoHelper.createShareInfo(organizationId, ep, SormasToSormasShareInfo::setEventParticipant, options);
            }
        })).filter(Objects::nonNull);
    }
    Stream<SormasToSormasShareInfo> sampleShareInfos = Stream.empty();
    Stream<SormasToSormasShareInfo> immunizationShareInfos = Stream.empty();
    if (eventParticipants.size() > 0) {
        if (options.isWithSamples()) {
            List<String> eventParticipantUuids = eventParticipants.stream().map(EventParticipant::getUuid).collect(Collectors.toList());
            sampleShareInfos = sampleService.getByEventParticipantUuids(eventParticipantUuids).stream().map(s -> s.getSormasToSormasShares().stream().filter(share -> share.getOrganizationId().equals(organizationId)).findFirst().orElseGet(() -> ShareInfoHelper.createShareInfo(organizationId, s, SormasToSormasShareInfo::setSample, options)));
        }
        if (options.isWithImmunizations()) {
            immunizationShareInfos = getAssociatedImmunizations(eventParticipants).stream().map(i -> i.getSormasToSormasShares().stream().filter(share -> share.getOrganizationId().equals(organizationId)).findFirst().orElseGet(() -> ShareInfoHelper.createShareInfo(organizationId, i, SormasToSormasShareInfo::setImmunization, options)));
        }
    }
    return Stream.of(Stream.of(eventShareInfo), eventParticipantShareInfos, sampleShareInfos, immunizationShareInfos).flatMap(Function.identity()).collect(Collectors.toList());
}
Also used : EventService(de.symeda.sormas.backend.event.EventService) EventParticipant(de.symeda.sormas.backend.event.EventParticipant) ValidationErrors(de.symeda.sormas.api.sormastosormas.validation.ValidationErrors) SormasToSormasShareInfoService(de.symeda.sormas.backend.sormastosormas.share.shareinfo.SormasToSormasShareInfoService) RESOURCE_PATH(de.symeda.sormas.api.sormastosormas.SormasToSormasApiConstants.RESOURCE_PATH) SormasToSormasOptionsDto(de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto) ValidationErrorGroup(de.symeda.sormas.api.sormastosormas.validation.ValidationErrorGroup) AbstractSormasToSormasInterface(de.symeda.sormas.backend.sormastosormas.AbstractSormasToSormasInterface) Immunization(de.symeda.sormas.backend.immunization.entity.Immunization) Function(java.util.function.Function) EventParticipantService(de.symeda.sormas.backend.event.EventParticipantService) ArrayList(java.util.ArrayList) SormasToSormasEventFacade(de.symeda.sormas.api.sormastosormas.event.SormasToSormasEventFacade) ValidationErrorMessage(de.symeda.sormas.api.sormastosormas.validation.ValidationErrorMessage) EVENT_SYNC_ENDPOINT(de.symeda.sormas.api.sormastosormas.SormasToSormasApiConstants.EVENT_SYNC_ENDPOINT) LocalBean(javax.ejb.LocalBean) EJB(javax.ejb.EJB) Stateless(javax.ejb.Stateless) Validations(de.symeda.sormas.api.i18n.Validations) SormasToSormasEventDto(de.symeda.sormas.api.sormastosormas.event.SormasToSormasEventDto) ValidationHelper.buildEventValidationGroupName(de.symeda.sormas.backend.sormastosormas.ValidationHelper.buildEventValidationGroupName) SormasToSormasApiConstants(de.symeda.sormas.api.sormastosormas.SormasToSormasApiConstants) ShareRequestDataType(de.symeda.sormas.api.sormastosormas.sharerequest.ShareRequestDataType) BaseAdoService(de.symeda.sormas.backend.common.BaseAdoService) EventDto(de.symeda.sormas.api.event.EventDto) ImmunizationService(de.symeda.sormas.backend.immunization.ImmunizationService) Collectors(java.util.stream.Collectors) Captions(de.symeda.sormas.api.i18n.Captions) SormasToSormasException(de.symeda.sormas.api.sormastosormas.SormasToSormasException) Objects(java.util.Objects) Event(de.symeda.sormas.backend.event.Event) EVENT_ENDPOINT(de.symeda.sormas.api.sormastosormas.SormasToSormasApiConstants.EVENT_ENDPOINT) List(java.util.List) Stream(java.util.stream.Stream) User(de.symeda.sormas.backend.user.User) SormasToSormasShareInfo(de.symeda.sormas.backend.sormastosormas.share.shareinfo.SormasToSormasShareInfo) SampleService(de.symeda.sormas.backend.sample.SampleService) ShareInfoHelper(de.symeda.sormas.backend.sormastosormas.share.shareinfo.ShareInfoHelper) Strings(de.symeda.sormas.api.i18n.Strings) Collections(java.util.Collections) SormasToSormasShareInfo(de.symeda.sormas.backend.sormastosormas.share.shareinfo.SormasToSormasShareInfo) EventParticipant(de.symeda.sormas.backend.event.EventParticipant)

Example 2 with SormasToSormasOptionsDto

use of de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto in project SORMAS-Project by hzi-braunschweig.

the class AbstractSormasToSormasInterface method syncEntityToOrigin.

private void syncEntityToOrigin(ADO entity, SormasToSormasOriginInfo originInfo, ShareTreeCriteria criteria) throws SormasToSormasException {
    User currentUser = userService.getCurrentUser();
    SormasToSormasOptionsDto options = dataBuilderHelper.createOptionsFromOriginInfoDto(originInfo);
    options.setHandOverOwnership(false);
    ShareRequestInfo shareRequestInfo = createShareRequestInfoForEntities(DataHelper.createUuid(), ShareRequestStatus.ACCEPTED, options, Collections.singletonList(entity), currentUser, true);
    SormasToSormasDto shareData = shareDataBuilder.buildShareData(shareRequestInfo.getShares(), dataBuilderHelper.createSormasToSormasOriginInfo(currentUser, options), shareRequestInfo);
    sormasToSormasRestClient.post(originInfo.getOrganizationId(), syncEndpoint, new SyncDataDto(shareData, criteria), null);
    // remove existing shares from the request info
    shareRequestInfo.setShares(shareRequestInfo.getShares().stream().filter(s -> s.getId() == null).collect(Collectors.toList()));
    if (!shareRequestInfo.getShares().isEmpty()) {
        shareRequestInfoService.ensurePersisted(shareRequestInfo);
    }
}
Also used : User(de.symeda.sormas.backend.user.User) SormasToSormasDto(de.symeda.sormas.api.sormastosormas.SormasToSormasDto) ShareRequestInfo(de.symeda.sormas.backend.sormastosormas.share.shareinfo.ShareRequestInfo) SormasToSormasOptionsDto(de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto) SyncDataDto(de.symeda.sormas.backend.sormastosormas.entities.SyncDataDto)

Example 3 with SormasToSormasOptionsDto

use of de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto in project SORMAS-Project by hzi-braunschweig.

the class ShareDataBuilderHelper method createOptionsFromOriginInfoDto.

public SormasToSormasOptionsDto createOptionsFromOriginInfoDto(SormasToSormasOriginInfo originInfo) {
    SormasToSormasOptionsDto options = new SormasToSormasOptionsDto();
    options.setOrganization(new SormasServerDescriptor(originInfo.getOrganizationId()));
    options.setHandOverOwnership(originInfo.isOwnershipHandedOver());
    options.setWithAssociatedContacts(originInfo.isWithAssociatedContacts());
    options.setWithSamples(originInfo.isWithSamples());
    options.setWithEventParticipants(originInfo.isWithEventParticipants());
    options.setComment(originInfo.getComment());
    return options;
}
Also used : SormasServerDescriptor(de.symeda.sormas.api.sormastosormas.SormasServerDescriptor) SormasToSormasOptionsDto(de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto)

Example 4 with SormasToSormasOptionsDto

use of de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto in project SORMAS-Project by hzi-braunschweig.

the class SormasToSormasContactFacadeEjbTest method testShareContact.

@Test
public void testShareContact() throws SormasToSormasException {
    useSurveillanceOfficerLogin(rdcf);
    PersonDto person = creator.createPerson();
    UserReferenceDto officer = creator.createUser(rdcf, UserRole.SURVEILLANCE_OFFICER).toReference();
    ContactDto contact = creator.createContact(officer, officer, person.toReference(), null, new Date(), null, null, rdcf, dto -> dto.setResultingCaseUser(officer));
    SormasToSormasOptionsDto options = new SormasToSormasOptionsDto();
    options.setOrganization(new SormasServerDescriptor(SECOND_SERVER_ID));
    options.setComment("Test comment");
    Mockito.when(MockProducer.getSormasToSormasClient().post(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any(), ArgumentMatchers.any())).thenAnswer(invocation -> {
        assertThat(invocation.getArgument(0, String.class), is(SECOND_SERVER_ID));
        assertThat(invocation.getArgument(1, String.class), is("/sormasToSormas/contacts"));
        SormasToSormasDto postBody = invocation.getArgument(2, SormasToSormasDto.class);
        assertThat(postBody.getContacts().size(), is(1));
        SormasToSormasContactDto sharedContact = postBody.getContacts().get(0);
        assertThat(sharedContact.getPerson().getFirstName(), is(person.getFirstName()));
        assertThat(sharedContact.getPerson().getLastName(), is(person.getLastName()));
        assertThat(sharedContact.getEntity().getUuid(), is(contact.getUuid()));
        // users should be cleaned up
        assertThat(sharedContact.getEntity().getReportingUser(), is(nullValue()));
        assertThat(sharedContact.getEntity().getContactOfficer(), is(nullValue()));
        assertThat(sharedContact.getEntity().getResultingCaseUser(), is(nullValue()));
        // share information
        assertThat(postBody.getOriginInfo().getOrganizationId(), is(DEFAULT_SERVER_ID));
        assertThat(postBody.getOriginInfo().getSenderName(), is("Surv Off"));
        assertThat(postBody.getOriginInfo().getComment(), is("Test comment"));
        return Response.noContent().build();
    });
    getSormasToSormasContactFacade().share(Collections.singletonList(contact.getUuid()), options);
    List<SormasToSormasShareInfoDto> shareInfoList = getSormasToSormasShareInfoFacade().getIndexList(new SormasToSormasShareInfoCriteria().contact(contact.toReference()), 0, 100);
    assertThat(shareInfoList.size(), is(1));
    assertThat(shareInfoList.get(0).getTargetDescriptor().getId(), is(SECOND_SERVER_ID));
    assertThat(shareInfoList.get(0).getSender().getCaption(), is("Surv OFF - Surveillance Officer"));
    assertThat(shareInfoList.get(0).getComment(), is("Test comment"));
}
Also used : UserReferenceDto(de.symeda.sormas.api.user.UserReferenceDto) SormasToSormasShareInfoDto(de.symeda.sormas.api.sormastosormas.shareinfo.SormasToSormasShareInfoDto) SormasServerDescriptor(de.symeda.sormas.api.sormastosormas.SormasServerDescriptor) SormasToSormasDto(de.symeda.sormas.api.sormastosormas.SormasToSormasDto) PersonDto(de.symeda.sormas.api.person.PersonDto) ContactDto(de.symeda.sormas.api.contact.ContactDto) SormasToSormasContactDto(de.symeda.sormas.api.sormastosormas.contact.SormasToSormasContactDto) SormasToSormasOptionsDto(de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto) SormasToSormasShareInfoCriteria(de.symeda.sormas.api.sormastosormas.shareinfo.SormasToSormasShareInfoCriteria) SormasToSormasContactDto(de.symeda.sormas.api.sormastosormas.contact.SormasToSormasContactDto) Date(java.util.Date) SormasToSormasTest(de.symeda.sormas.backend.sormastosormas.SormasToSormasTest) Test(org.junit.Test)

Example 5 with SormasToSormasOptionsDto

use of de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto in project SORMAS-Project by hzi-braunschweig.

the class SormasToSormasEventFacadeEjbTest method testShareEventWithSamples.

@Test
public void testShareEventWithSamples() throws SormasToSormasException {
    UserDto user = creator.createUser(rdcf, UserRole.NATIONAL_USER);
    useSurveillanceOfficerLogin(rdcf);
    EventDto event = creator.createEvent(EventStatus.SCREENING, EventInvestigationStatus.ONGOING, "Test event title", "Test description", user.toReference(), (e) -> {
        e.getEventLocation().setRegion(rdcf.region);
        e.getEventLocation().setDistrict(rdcf.district);
    });
    EventParticipantDto eventParticipant = creator.createEventParticipant(event.toReference(), creator.createPerson("John", "Doe", p -> p.setBirthName("Test birth name")), "Involved", user.toReference(), (ep) -> {
        ep.setRegion(rdcf.region);
        ep.setDistrict(rdcf.district);
        ep.setVaccinationStatus(VaccinationStatus.VACCINATED);
    }, null);
    SampleDto sample = creator.createSample(eventParticipant.toReference(), new Date(), new Date(), user.toReference(), SampleMaterial.BLOOD, rdcf.facility);
    creator.createPathogenTest(sample.toReference(), PathogenTestType.CULTURE, Disease.CORONAVIRUS, new Date(), rdcf.facility, user.toReference(), PathogenTestResultType.INDETERMINATE, "Test result", true, null);
    creator.createAdditionalTest(sample.toReference());
    SormasToSormasOptionsDto options = new SormasToSormasOptionsDto();
    options.setOrganization(new SormasServerDescriptor(SECOND_SERVER_ID));
    options.setWithEventParticipants(true);
    options.setWithSamples(true);
    options.setComment("Test comment");
    Mockito.when(MockProducer.getSormasToSormasClient().post(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any(), ArgumentMatchers.any())).thenAnswer(invocation -> {
        assertThat(invocation.getArgument(0, String.class), is(SECOND_SERVER_ID));
        assertThat(invocation.getArgument(1, String.class), is("/sormasToSormas/events"));
        SormasToSormasDto postBody = invocation.getArgument(2, SormasToSormasDto.class);
        assertThat(postBody.getEvents().size(), is(1));
        List<SormasToSormasEventParticipantDto> eventParticipants = postBody.getEventParticipants();
        assertThat(eventParticipants, hasSize(1));
        List<SormasToSormasSampleDto> samples = postBody.getSamples();
        assertThat(samples, hasSize(1));
        assertThat(samples.get(0).getPathogenTests(), hasSize(1));
        assertThat(samples.get(0).getAdditionalTests(), hasSize(1));
        return Response.noContent().build();
    });
    getSormasToSormasEventFacade().share(Collections.singletonList(event.getUuid()), options);
    List<SormasToSormasShareInfoDto> shareInfoList = getSormasToSormasShareInfoFacade().getIndexList(new SormasToSormasShareInfoCriteria().event(event.toReference()), 0, 100);
    assertThat(shareInfoList.size(), is(1));
    assertThat(shareInfoList.get(0).getTargetDescriptor().getId(), is(SECOND_SERVER_ID));
    assertThat(shareInfoList.get(0).getSender().getCaption(), is("Surv OFF - Surveillance Officer"));
    assertThat(shareInfoList.get(0).getComment(), is("Test comment"));
}
Also used : Arrays(java.util.Arrays) ArgumentMatchers(org.mockito.ArgumentMatchers) SormasToSormasOriginInfoDto(de.symeda.sormas.api.sormastosormas.SormasToSormasOriginInfoDto) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) Date(java.util.Date) SormasToSormasSampleDto(de.symeda.sormas.api.sormastosormas.sample.SormasToSormasSampleDto) SormasToSormasOptionsDto(de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto) EventParticipantDto(de.symeda.sormas.api.event.EventParticipantDto) PersonDto(de.symeda.sormas.api.person.PersonDto) SormasToSormasEventParticipantDto(de.symeda.sormas.api.sormastosormas.event.SormasToSormasEventParticipantDto) Matchers.nullValue(org.hamcrest.Matchers.nullValue) EventInvestigationStatus(de.symeda.sormas.api.event.EventInvestigationStatus) UserRole(de.symeda.sormas.api.user.UserRole) EventParticipantReferenceDto(de.symeda.sormas.api.event.EventParticipantReferenceDto) VaccinationStatus(de.symeda.sormas.api.caze.VaccinationStatus) SormasToSormasTest(de.symeda.sormas.backend.sormastosormas.SormasToSormasTest) SormasToSormasShareInfoCriteria(de.symeda.sormas.api.sormastosormas.shareinfo.SormasToSormasShareInfoCriteria) Matchers.notNullValue(org.hamcrest.Matchers.notNullValue) FacilityType(de.symeda.sormas.api.infrastructure.facility.FacilityType) EventDto(de.symeda.sormas.api.event.EventDto) RiskLevel(de.symeda.sormas.api.event.RiskLevel) SormasToSormasException(de.symeda.sormas.api.sormastosormas.SormasToSormasException) ShareTreeCriteria(de.symeda.sormas.api.sormastosormas.ShareTreeCriteria) List(java.util.List) User(de.symeda.sormas.backend.user.User) Response(javax.ws.rs.core.Response) PathogenTestResultType(de.symeda.sormas.api.sample.PathogenTestResultType) SormasToSormasDto(de.symeda.sormas.api.sormastosormas.SormasToSormasDto) Matchers.is(org.hamcrest.Matchers.is) ShareRequestInfo(de.symeda.sormas.backend.sormastosormas.share.shareinfo.ShareRequestInfo) MockitoJUnitRunner(org.mockito.junit.MockitoJUnitRunner) SamplePurpose(de.symeda.sormas.api.sample.SamplePurpose) SormasServerDescriptor(de.symeda.sormas.api.sormastosormas.SormasServerDescriptor) MockProducer(de.symeda.sormas.backend.MockProducer) FacilityDto(de.symeda.sormas.api.infrastructure.facility.FacilityDto) SormasToSormasValidationException(de.symeda.sormas.api.sormastosormas.validation.SormasToSormasValidationException) SormasToSormasShareInfoDto(de.symeda.sormas.api.sormastosormas.shareinfo.SormasToSormasShareInfoDto) RunWith(org.junit.runner.RunWith) AdditionalTestDto(de.symeda.sormas.api.sample.AdditionalTestDto) TestDataCreator(de.symeda.sormas.backend.TestDataCreator) EventStatus(de.symeda.sormas.api.event.EventStatus) PathogenTestType(de.symeda.sormas.api.sample.PathogenTestType) SormasToSormasEncryptedDataDto(de.symeda.sormas.api.sormastosormas.SormasToSormasEncryptedDataDto) Calendar(java.util.Calendar) Matchers.hasSize(org.hamcrest.Matchers.hasSize) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) PathogenTestDto(de.symeda.sormas.api.sample.PathogenTestDto) DataHelper(de.symeda.sormas.api.utils.DataHelper) SormasToSormasEventDto(de.symeda.sormas.api.sormastosormas.event.SormasToSormasEventDto) SormasToSormasShareRequestDto(de.symeda.sormas.api.sormastosormas.sharerequest.SormasToSormasShareRequestDto) UserDto(de.symeda.sormas.api.user.UserDto) Test(org.junit.Test) ShareRequestStatus(de.symeda.sormas.api.sormastosormas.sharerequest.ShareRequestStatus) FacilityReferenceDto(de.symeda.sormas.api.infrastructure.facility.FacilityReferenceDto) SampleMaterial(de.symeda.sormas.api.sample.SampleMaterial) UserReferenceDto(de.symeda.sormas.api.user.UserReferenceDto) Mockito(org.mockito.Mockito) Disease(de.symeda.sormas.api.Disease) SampleDto(de.symeda.sormas.api.sample.SampleDto) EventReferenceDto(de.symeda.sormas.api.event.EventReferenceDto) EventSourceType(de.symeda.sormas.api.event.EventSourceType) Collections(java.util.Collections) SormasToSormasShareInfoDto(de.symeda.sormas.api.sormastosormas.shareinfo.SormasToSormasShareInfoDto) SormasToSormasDto(de.symeda.sormas.api.sormastosormas.SormasToSormasDto) UserDto(de.symeda.sormas.api.user.UserDto) EventDto(de.symeda.sormas.api.event.EventDto) SormasToSormasEventDto(de.symeda.sormas.api.sormastosormas.event.SormasToSormasEventDto) EventParticipantDto(de.symeda.sormas.api.event.EventParticipantDto) SormasToSormasEventParticipantDto(de.symeda.sormas.api.sormastosormas.event.SormasToSormasEventParticipantDto) SormasToSormasSampleDto(de.symeda.sormas.api.sormastosormas.sample.SormasToSormasSampleDto) SormasToSormasShareInfoCriteria(de.symeda.sormas.api.sormastosormas.shareinfo.SormasToSormasShareInfoCriteria) Date(java.util.Date) SormasServerDescriptor(de.symeda.sormas.api.sormastosormas.SormasServerDescriptor) SormasToSormasOptionsDto(de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto) SormasToSormasEventParticipantDto(de.symeda.sormas.api.sormastosormas.event.SormasToSormasEventParticipantDto) SormasToSormasSampleDto(de.symeda.sormas.api.sormastosormas.sample.SormasToSormasSampleDto) SampleDto(de.symeda.sormas.api.sample.SampleDto) SormasToSormasTest(de.symeda.sormas.backend.sormastosormas.SormasToSormasTest) Test(org.junit.Test)

Aggregations

SormasToSormasOptionsDto (de.symeda.sormas.api.sormastosormas.SormasToSormasOptionsDto)24 SormasServerDescriptor (de.symeda.sormas.api.sormastosormas.SormasServerDescriptor)18 SormasToSormasTest (de.symeda.sormas.backend.sormastosormas.SormasToSormasTest)16 Test (org.junit.Test)16 PersonDto (de.symeda.sormas.api.person.PersonDto)14 UserReferenceDto (de.symeda.sormas.api.user.UserReferenceDto)14 SormasToSormasDto (de.symeda.sormas.api.sormastosormas.SormasToSormasDto)11 CaseDataDto (de.symeda.sormas.api.caze.CaseDataDto)10 SormasToSormasShareInfoCriteria (de.symeda.sormas.api.sormastosormas.shareinfo.SormasToSormasShareInfoCriteria)10 SormasToSormasShareInfoDto (de.symeda.sormas.api.sormastosormas.shareinfo.SormasToSormasShareInfoDto)10 Date (java.util.Date)8 ContactDto (de.symeda.sormas.api.contact.ContactDto)7 SormasToSormasContactDto (de.symeda.sormas.api.sormastosormas.contact.SormasToSormasContactDto)7 User (de.symeda.sormas.backend.user.User)7 SormasToSormasException (de.symeda.sormas.api.sormastosormas.SormasToSormasException)6 Collections (java.util.Collections)6 List (java.util.List)6 SampleDto (de.symeda.sormas.api.sample.SampleDto)5 SormasToSormasSampleDto (de.symeda.sormas.api.sormastosormas.sample.SormasToSormasSampleDto)5 SormasToSormasOriginInfoDto (de.symeda.sormas.api.sormastosormas.SormasToSormasOriginInfoDto)4