Search in sources :

Example 1 with VisitSummaryExportDetailsDto

use of de.symeda.sormas.api.visit.VisitSummaryExportDetailsDto in project SORMAS-Project by hzi-braunschweig.

the class ContactFacadeEjbTest method testGetVisitSummaryExportList.

@Test
public void testGetVisitSummaryExportList() {
    RDCFEntities rdcf = creator.createRDCFEntities("Region", "District", "Community", "Facility");
    UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
    String userUuid = user.getUuid();
    PersonDto cazePerson = creator.createPerson("Case", "Person");
    CaseDataDto caze = creator.createCase(user.toReference(), cazePerson.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
    PersonDto contactPerson = creator.createPerson("Contact", "Person");
    ContactDto contact = creator.createContact(user.toReference(), user.toReference(), contactPerson.toReference(), caze, new Date(), new Date(), null);
    // Create another contact that should have the same visits as the first one
    ContactDto contact2 = creator.createContact(user.toReference(), user.toReference(), contactPerson.toReference(), caze, new Date(), new Date(), null);
    VisitDto visit11 = creator.createVisit(caze.getDisease(), contactPerson.toReference(), new Date(), VisitStatus.COOPERATIVE, VisitOrigin.USER);
    visit11.getSymptoms().setAbdominalPain(SymptomState.YES);
    getVisitFacade().saveVisit(visit11);
    VisitDto visit12 = creator.createVisit(caze.getDisease(), contactPerson.toReference(), DateHelper.subtractDays(new Date(), 1), VisitStatus.COOPERATIVE, VisitOrigin.USER);
    visit12.getSymptoms().setChestPain(SymptomState.YES);
    getVisitFacade().saveVisit(visit12);
    PersonDto contactPersonWithoutFollowUp = creator.createPerson();
    creator.createContact(user.toReference(), contactPersonWithoutFollowUp.toReference());
    PersonDto contactPerson2 = creator.createPerson("Contact2", "Person2");
    ContactDto contact3 = creator.createContact(user.toReference(), user.toReference(), contactPerson2.toReference(), caze, new Date(), null, null);
    VisitDto visit21 = creator.createVisit(caze.getDisease(), contactPerson2.toReference(), new Date(), VisitStatus.COOPERATIVE, VisitOrigin.USER);
    visit21.getSymptoms().setBackache(SymptomState.YES);
    getVisitFacade().saveVisit(visit21);
    final List<VisitSummaryExportDto> results = getContactFacade().getVisitSummaryExportList(null, Collections.emptySet(), 0, 100, Language.EN);
    assertNotNull(results);
    assertEquals(3, results.size());
    final VisitSummaryExportDto exportDto1 = results.get(0);
    assertEquals("Contact", exportDto1.getFirstName());
    assertEquals("Person", exportDto1.getLastName());
    assertEquals(contact.getUuid(), exportDto1.getUuid());
    final List<VisitSummaryExportDetailsDto> visitDetails = exportDto1.getVisitDetails();
    assertNotNull(visitDetails);
    assertEquals(2, visitDetails.size());
    final VisitSummaryExportDetailsDto visitDetail11 = visitDetails.get(0);
    assertEquals(VisitStatus.COOPERATIVE, visitDetail11.getVisitStatus());
    assertNotNull(visitDetail11.getVisitDateTime());
    assertEquals(I18nProperties.getPrefixCaption(SymptomsDto.I18N_PREFIX, SymptomsDto.CHEST_PAIN), visitDetail11.getSymptoms());
    final VisitSummaryExportDetailsDto visitDetail12 = visitDetails.get(1);
    assertEquals(VisitStatus.COOPERATIVE, visitDetail12.getVisitStatus());
    assertNotNull(visitDetail12.getVisitDateTime());
    assertEquals(I18nProperties.getPrefixCaption(SymptomsDto.I18N_PREFIX, SymptomsDto.ABDOMINAL_PAIN), visitDetail12.getSymptoms());
    final VisitSummaryExportDto exportDto2 = results.get(1);
    assertEquals("Contact", exportDto2.getFirstName());
    assertEquals("Person", exportDto2.getLastName());
    assertEquals(contact2.getUuid(), exportDto2.getUuid());
    final List<VisitSummaryExportDetailsDto> visitDetails2 = exportDto1.getVisitDetails();
    assertNotNull(visitDetails2);
    assertEquals(2, visitDetails2.size());
    final VisitSummaryExportDetailsDto visitDetail21 = visitDetails2.get(0);
    assertEquals(VisitStatus.COOPERATIVE, visitDetail21.getVisitStatus());
    assertNotNull(visitDetail21.getVisitDateTime());
    assertEquals(I18nProperties.getPrefixCaption(SymptomsDto.I18N_PREFIX, SymptomsDto.CHEST_PAIN), visitDetail21.getSymptoms());
    final VisitSummaryExportDetailsDto visitDetail22 = visitDetails2.get(1);
    assertEquals(VisitStatus.COOPERATIVE, visitDetail22.getVisitStatus());
    assertNotNull(visitDetail22.getVisitDateTime());
    assertEquals(I18nProperties.getPrefixCaption(SymptomsDto.I18N_PREFIX, SymptomsDto.ABDOMINAL_PAIN), visitDetail22.getSymptoms());
    final VisitSummaryExportDto exportDto3 = results.get(2);
    assertEquals("Contact2", exportDto3.getFirstName());
    assertEquals("Person2", exportDto3.getLastName());
    assertEquals(contact3.getUuid(), exportDto3.getUuid());
    final List<VisitSummaryExportDetailsDto> visitDetails3 = exportDto3.getVisitDetails();
    assertNotNull(visitDetails3);
    assertEquals(1, visitDetails3.size());
    final VisitSummaryExportDetailsDto visitDetail31 = visitDetails3.get(0);
    assertEquals(VisitStatus.COOPERATIVE, visitDetail31.getVisitStatus());
    assertNotNull(visitDetail31.getVisitDateTime());
    assertEquals(I18nProperties.getPrefixCaption(SymptomsDto.I18N_PREFIX, SymptomsDto.BACKACHE), visitDetail31.getSymptoms());
}
Also used : RDCFEntities(de.symeda.sormas.backend.TestDataCreator.RDCFEntities) VisitSummaryExportDto(de.symeda.sormas.api.visit.VisitSummaryExportDto) CaseDataDto(de.symeda.sormas.api.caze.CaseDataDto) PersonDto(de.symeda.sormas.api.person.PersonDto) UserDto(de.symeda.sormas.api.user.UserDto) SimilarContactDto(de.symeda.sormas.api.contact.SimilarContactDto) MapContactDto(de.symeda.sormas.api.contact.MapContactDto) ContactDto(de.symeda.sormas.api.contact.ContactDto) VisitDto(de.symeda.sormas.api.visit.VisitDto) Matchers.isEmptyOrNullString(org.hamcrest.Matchers.isEmptyOrNullString) Date(java.util.Date) LocalDate(java.time.LocalDate) VisitSummaryExportDetailsDto(de.symeda.sormas.api.visit.VisitSummaryExportDetailsDto) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Example 2 with VisitSummaryExportDetailsDto

use of de.symeda.sormas.api.visit.VisitSummaryExportDetailsDto in project SORMAS-Project by hzi-braunschweig.

the class ContactFacadeEjb method getVisitSummaryExportList.

@Override
@RolesAllowed(UserRight._VISIT_EXPORT)
public List<VisitSummaryExportDto> getVisitSummaryExportList(ContactCriteria contactCriteria, Collection<String> selectedRows, int first, int max, Language userLanguage) {
    final CriteriaBuilder cb = em.getCriteriaBuilder();
    final CriteriaQuery<VisitSummaryExportDto> cq = cb.createQuery(VisitSummaryExportDto.class);
    final Root<Contact> contactRoot = cq.from(Contact.class);
    final ContactQueryContext contactQueryContext = new ContactQueryContext(cb, cq, contactRoot);
    final ContactJoins contactJoins = contactQueryContext.getJoins();
    final Join<Contact, Person> contactPerson = contactJoins.getPerson();
    cq.multiselect(contactRoot.get(Contact.UUID), contactRoot.get(Contact.ID), contactPerson.get(Person.FIRST_NAME), contactPerson.get(Person.LAST_NAME), cb.<Date>selectCase().when(cb.isNotNull(contactRoot.get(Contact.LAST_CONTACT_DATE)), contactRoot.get(Contact.LAST_CONTACT_DATE)).otherwise(contactRoot.get(Contact.REPORT_DATE_TIME)), contactRoot.get(Contact.FOLLOW_UP_UNTIL));
    Predicate filter = CriteriaBuilderHelper.and(cb, listCriteriaBuilder.buildContactFilter(contactCriteria, contactQueryContext), cb.isNotEmpty(contactRoot.get(Contact.VISITS)));
    filter = CriteriaBuilderHelper.andInValues(selectedRows, filter, cb, contactRoot.get(Contact.UUID));
    cq.where(filter);
    cq.orderBy(cb.asc(contactRoot.get(Contact.REPORT_DATE_TIME)));
    List<VisitSummaryExportDto> visitSummaries = QueryHelper.getResultList(em, cq, first, max);
    if (!visitSummaries.isEmpty()) {
        List<String> visitSummaryUuids = visitSummaries.stream().map(e -> e.getUuid()).collect(Collectors.toList());
        CriteriaQuery<VisitSummaryExportDetails> visitsCq = cb.createQuery(VisitSummaryExportDetails.class);
        Root<Contact> visitsCqRoot = visitsCq.from(Contact.class);
        ContactJoins joins = new ContactJoins(visitsCqRoot);
        visitsCq.where(CriteriaBuilderHelper.and(cb, contactRoot.get(AbstractDomainObject.UUID).in(visitSummaryUuids), cb.isNotEmpty(visitsCqRoot.get(Contact.VISITS))));
        visitsCq.multiselect(visitsCqRoot.get(AbstractDomainObject.ID), joins.getVisits().get(Visit.VISIT_DATE_TIME), joins.getVisits().get(Visit.VISIT_STATUS), joins.getVisitSymptoms(), jurisdictionSelector(new ContactQueryContext(cb, cq, visitsCqRoot)));
        visitsCq.orderBy(cb.asc(joins.getVisits().get(Visit.VISIT_DATE_TIME)));
        List<VisitSummaryExportDetails> visitSummaryDetails = em.createQuery(visitsCq).getResultList();
        Map<Long, VisitSummaryExportDto> visitSummaryMap = visitSummaries.stream().collect(Collectors.toMap(VisitSummaryExportDto::getContactId, Function.identity()));
        Pseudonymizer pseudonymizer = Pseudonymizer.getDefault(userService::hasRight, I18nProperties.getCaption(Captions.inaccessibleValue));
        visitSummaryDetails.forEach(v -> {
            SymptomsDto symptoms = SymptomsFacadeEjb.toDto(v.getSymptoms());
            pseudonymizer.pseudonymizeDto(SymptomsDto.class, symptoms, v.getInJurisdiction(), null);
            visitSummaryMap.get(v.getContactId()).getVisitDetails().add(new VisitSummaryExportDetailsDto(v.getVisitDateTime(), v.getVisitStatus(), SymptomsHelper.buildSymptomsHumanString(symptoms, true, userLanguage)));
        });
    }
    return visitSummaries;
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) FollowUpStatus(de.symeda.sormas.api.contact.FollowUpStatus) VisitService(de.symeda.sormas.backend.visit.VisitService) Arrays(java.util.Arrays) DtoHelper(de.symeda.sormas.backend.util.DtoHelper) RolesAllowed(javax.annotation.security.RolesAllowed) VisitStatus(de.symeda.sormas.api.visit.VisitStatus) Immunization(de.symeda.sormas.backend.immunization.entity.Immunization) CommunityFacadeEjb(de.symeda.sormas.backend.infrastructure.community.CommunityFacadeEjb) ExternalDataUpdateException(de.symeda.sormas.api.externaldata.ExternalDataUpdateException) MeansOfImmunization(de.symeda.sormas.api.immunization.MeansOfImmunization) DistrictService(de.symeda.sormas.backend.infrastructure.district.DistrictService) PersonDto(de.symeda.sormas.api.person.PersonDto) ContactEventSummaryDetails(de.symeda.sormas.backend.event.ContactEventSummaryDetails) Valid(javax.validation.Valid) AbstractCoreFacadeEjb(de.symeda.sormas.backend.common.AbstractCoreFacadeEjb) YesNoUnknown(de.symeda.sormas.api.utils.YesNoUnknown) Page(de.symeda.sormas.api.common.Page) FollowUpDto(de.symeda.sormas.api.followup.FollowUpDto) TransactionAttributeType(javax.ejb.TransactionAttributeType) Predicate(javax.persistence.criteria.Predicate) UserFacadeEjb(de.symeda.sormas.backend.user.UserFacadeEjb) Map(java.util.Map) CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) JoinType(javax.persistence.criteria.JoinType) BigInteger(java.math.BigInteger) DocumentRelatedEntityType(de.symeda.sormas.api.document.DocumentRelatedEntityType) Visit(de.symeda.sormas.backend.visit.Visit) EpiData(de.symeda.sormas.backend.epidata.EpiData) SormasToSormasOriginInfoFacadeEjb(de.symeda.sormas.backend.sormastosormas.origin.SormasToSormasOriginInfoFacadeEjb) CriteriaQuery(javax.persistence.criteria.CriteriaQuery) ContactExportDto(de.symeda.sormas.api.contact.ContactExportDto) CommunityService(de.symeda.sormas.backend.infrastructure.community.CommunityService) Resource(javax.annotation.Resource) Set(java.util.Set) SampleFacadeEjbLocal(de.symeda.sormas.backend.sample.SampleFacadeEjb.SampleFacadeEjbLocal) VaccinationService(de.symeda.sormas.backend.vaccination.VaccinationService) TaskPriority(de.symeda.sormas.api.task.TaskPriority) NotNull(javax.validation.constraints.NotNull) DashboardContactDto(de.symeda.sormas.api.dashboard.DashboardContactDto) UserService(de.symeda.sormas.backend.user.UserService) User(de.symeda.sormas.backend.user.User) EpiDataDto(de.symeda.sormas.api.epidata.EpiDataDto) ExternalDataDto(de.symeda.sormas.api.externaldata.ExternalDataDto) CaseFacadeEjbLocal(de.symeda.sormas.backend.caze.CaseFacadeEjb.CaseFacadeEjbLocal) JurisdictionHelper(de.symeda.sormas.backend.util.JurisdictionHelper) CoreEntityType(de.symeda.sormas.api.common.CoreEntityType) SimilarContactDto(de.symeda.sormas.api.contact.SimilarContactDto) SampleService(de.symeda.sormas.backend.sample.SampleService) RegionReferenceDto(de.symeda.sormas.api.infrastructure.region.RegionReferenceDto) Sample(de.symeda.sormas.backend.sample.Sample) ContactFacade(de.symeda.sormas.api.contact.ContactFacade) SampleCriteria(de.symeda.sormas.api.sample.SampleCriteria) Community(de.symeda.sormas.backend.infrastructure.community.Community) FollowUpPeriodDto(de.symeda.sormas.api.followup.FollowUpPeriodDto) QueryHelper(de.symeda.sormas.backend.util.QueryHelper) MapContactDto(de.symeda.sormas.api.contact.MapContactDto) LocalDateTime(java.time.LocalDateTime) PersonReferenceDto(de.symeda.sormas.api.person.PersonReferenceDto) Selection(javax.persistence.criteria.Selection) VisitFacadeEjbLocal(de.symeda.sormas.backend.visit.VisitFacadeEjb.VisitFacadeEjbLocal) ArrayList(java.util.ArrayList) CaseReferenceDto(de.symeda.sormas.api.caze.CaseReferenceDto) MergeContactIndexDto(de.symeda.sormas.api.contact.MergeContactIndexDto) Case(de.symeda.sormas.backend.caze.Case) EpiDataFacadeEjb(de.symeda.sormas.backend.epidata.EpiDataFacadeEjb) LocalBean(javax.ejb.LocalBean) ConfigFacadeEjbLocal(de.symeda.sormas.backend.common.ConfigFacadeEjb.ConfigFacadeEjbLocal) ExportHelper(de.symeda.sormas.backend.importexport.ExportHelper) EJB(javax.ejb.EJB) Root(javax.persistence.criteria.Root) ContactSimilarityCriteria(de.symeda.sormas.api.contact.ContactSimilarityCriteria) TaskCriteria(de.symeda.sormas.api.task.TaskCriteria) DataHelper(de.symeda.sormas.api.utils.DataHelper) Task(de.symeda.sormas.backend.task.Task) PersonFacadeEjb(de.symeda.sormas.backend.person.PersonFacadeEjb) DistrictReferenceDto(de.symeda.sormas.api.infrastructure.district.DistrictReferenceDto) ContactLogic(de.symeda.sormas.api.contact.ContactLogic) PersonService(de.symeda.sormas.backend.person.PersonService) SymptomsHelper(de.symeda.sormas.api.symptoms.SymptomsHelper) SortProperty(de.symeda.sormas.api.utils.SortProperty) Captions(de.symeda.sormas.api.i18n.Captions) TaskCreationException(de.symeda.sormas.backend.common.TaskCreationException) Exposure(de.symeda.sormas.backend.exposure.Exposure) DAYS(java.time.temporal.ChronoUnit.DAYS) ExposureDto(de.symeda.sormas.api.exposure.ExposureDto) Disease(de.symeda.sormas.api.Disease) VisitDto(de.symeda.sormas.api.visit.VisitDto) DeletionReason(de.symeda.sormas.api.common.DeletionReason) DateHelper8(de.symeda.sormas.backend.util.DateHelper8) FeatureTypeProperty(de.symeda.sormas.api.feature.FeatureTypeProperty) SymptomsFacadeEjb(de.symeda.sormas.backend.symptoms.SymptomsFacadeEjb) FeatureType(de.symeda.sormas.api.feature.FeatureType) VisitFacadeEjb(de.symeda.sormas.backend.visit.VisitFacadeEjb) ContactCriteria(de.symeda.sormas.api.contact.ContactCriteria) EventService(de.symeda.sormas.backend.event.EventService) ImmunizationEntityHelper(de.symeda.sormas.backend.immunization.ImmunizationEntityHelper) Join(javax.persistence.criteria.Join) AbstractDomainObject(de.symeda.sormas.backend.common.AbstractDomainObject) Date(java.util.Date) I18nProperties(de.symeda.sormas.api.i18n.I18nProperties) LoggerFactory(org.slf4j.LoggerFactory) ExposureType(de.symeda.sormas.api.exposure.ExposureType) ContactIndexDetailedDto(de.symeda.sormas.api.contact.ContactIndexDetailedDto) HealthConditionsMapper(de.symeda.sormas.backend.clinicalcourse.HealthConditionsMapper) AccessDeniedException(de.symeda.sormas.api.utils.AccessDeniedException) SormasToSormasContactFacadeEjbLocal(de.symeda.sormas.backend.sormastosormas.entities.contact.SormasToSormasContactFacadeEjb.SormasToSormasContactFacadeEjbLocal) Facility(de.symeda.sormas.backend.infrastructure.facility.Facility) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ContactIndexDto(de.symeda.sormas.api.contact.ContactIndexDto) Vaccination(de.symeda.sormas.backend.vaccination.Vaccination) ManagedScheduledExecutorService(javax.enterprise.concurrent.ManagedScheduledExecutorService) ContactFollowUpDto(de.symeda.sormas.api.contact.ContactFollowUpDto) Stateless(javax.ejb.Stateless) DocumentService(de.symeda.sormas.backend.document.DocumentService) CaseService(de.symeda.sormas.backend.caze.CaseService) DiseaseConfigurationFacadeEjbLocal(de.symeda.sormas.backend.disease.DiseaseConfigurationFacadeEjb.DiseaseConfigurationFacadeEjbLocal) Person(de.symeda.sormas.backend.person.Person) PermitAll(javax.annotation.security.PermitAll) Timestamp(java.sql.Timestamp) Collection(java.util.Collection) Region(de.symeda.sormas.backend.infrastructure.region.Region) District(de.symeda.sormas.backend.infrastructure.district.District) Pseudonymizer(de.symeda.sormas.backend.util.Pseudonymizer) Collectors(java.util.stream.Collectors) Language(de.symeda.sormas.api.Language) ContactClassification(de.symeda.sormas.api.contact.ContactClassification) SormasToSormasFacadeEjbLocal(de.symeda.sormas.backend.sormastosormas.SormasToSormasFacadeEjb.SormasToSormasFacadeEjbLocal) TaskType(de.symeda.sormas.api.task.TaskType) Objects(java.util.Objects) ExportConfigurationDto(de.symeda.sormas.api.importexport.ExportConfigurationDto) ShareTreeCriteria(de.symeda.sormas.api.sormastosormas.ShareTreeCriteria) List(java.util.List) Query(javax.persistence.Query) DistrictFacadeEjb(de.symeda.sormas.backend.infrastructure.district.DistrictFacadeEjb) EditPermissionType(de.symeda.sormas.api.EditPermissionType) ContactDto(de.symeda.sormas.api.contact.ContactDto) LocalDate(java.time.LocalDate) Order(javax.persistence.criteria.Order) Optional(java.util.Optional) EpiDataHelper(de.symeda.sormas.api.epidata.EpiDataHelper) Location(de.symeda.sormas.backend.location.Location) VisitSummaryExportDto(de.symeda.sormas.api.visit.VisitSummaryExportDto) FeatureConfigurationFacadeEjbLocal(de.symeda.sormas.backend.feature.FeatureConfigurationFacadeEjb.FeatureConfigurationFacadeEjbLocal) ValidationRuntimeException(de.symeda.sormas.api.utils.ValidationRuntimeException) VaccinationFacadeEjb(de.symeda.sormas.backend.vaccination.VaccinationFacadeEjb) TaskService(de.symeda.sormas.backend.task.TaskService) DateHelper(de.symeda.sormas.api.utils.DateHelper) CaseFacadeEjb(de.symeda.sormas.backend.caze.CaseFacadeEjb) Function(java.util.function.Function) VisitOrigin(de.symeda.sormas.api.VisitOrigin) ContactBulkEditData(de.symeda.sormas.api.contact.ContactBulkEditData) Inject(javax.inject.Inject) DeletionDetails(de.symeda.sormas.api.common.DeletionDetails) CollectionUtils(org.apache.commons.collections.CollectionUtils) TransactionAttribute(javax.ejb.TransactionAttribute) TaskStatus(de.symeda.sormas.api.task.TaskStatus) IterableHelper(de.symeda.sormas.backend.util.IterableHelper) Symptoms(de.symeda.sormas.backend.symptoms.Symptoms) Expression(javax.persistence.criteria.Expression) SymptomsDto(de.symeda.sormas.api.symptoms.SymptomsDto) CriteriaBuilderHelper(de.symeda.sormas.backend.common.CriteriaBuilderHelper) SormasToSormasOriginInfoFacadeEjbLocal(de.symeda.sormas.backend.sormastosormas.origin.SormasToSormasOriginInfoFacadeEjb.SormasToSormasOriginInfoFacadeEjbLocal) ModelConstants(de.symeda.sormas.backend.util.ModelConstants) LocationDto(de.symeda.sormas.api.location.LocationDto) TaskContext(de.symeda.sormas.api.task.TaskContext) ContactListEntryDto(de.symeda.sormas.api.contact.ContactListEntryDto) EpiDataFacadeEjbLocal(de.symeda.sormas.backend.epidata.EpiDataFacadeEjb.EpiDataFacadeEjbLocal) Logger(org.slf4j.Logger) CoreAndPersonDto(de.symeda.sormas.api.caze.CoreAndPersonDto) Validations(de.symeda.sormas.api.i18n.Validations) ContactStatus(de.symeda.sormas.api.contact.ContactStatus) Document(de.symeda.sormas.backend.document.Document) VisitLogic.getVisitResult(de.symeda.sormas.backend.visit.VisitLogic.getVisitResult) UserReference(de.symeda.sormas.backend.user.UserReference) RegionFacadeEjb(de.symeda.sormas.backend.infrastructure.region.RegionFacadeEjb) RegionService(de.symeda.sormas.backend.infrastructure.region.RegionService) TimeUnit(java.util.concurrent.TimeUnit) UserRight(de.symeda.sormas.api.user.UserRight) VisitSummaryExportDetailsDto(de.symeda.sormas.api.visit.VisitSummaryExportDetailsDto) VisitResultDto(de.symeda.sormas.api.visit.VisitResultDto) Country(de.symeda.sormas.backend.infrastructure.country.Country) ExternalJournalService(de.symeda.sormas.backend.externaljournal.ExternalJournalService) ContactReferenceDto(de.symeda.sormas.api.contact.ContactReferenceDto) ShareInfoHelper(de.symeda.sormas.backend.sormastosormas.share.shareinfo.ShareInfoHelper) Comparator(java.util.Comparator) Strings(de.symeda.sormas.api.i18n.Strings) Collections(java.util.Collections) SymptomsDto(de.symeda.sormas.api.symptoms.SymptomsDto) Pseudonymizer(de.symeda.sormas.backend.util.Pseudonymizer) VisitSummaryExportDetailsDto(de.symeda.sormas.api.visit.VisitSummaryExportDetailsDto) Predicate(javax.persistence.criteria.Predicate) VisitSummaryExportDto(de.symeda.sormas.api.visit.VisitSummaryExportDto) Person(de.symeda.sormas.backend.person.Person) RolesAllowed(javax.annotation.security.RolesAllowed)

Aggregations

ContactDto (de.symeda.sormas.api.contact.ContactDto)2 MapContactDto (de.symeda.sormas.api.contact.MapContactDto)2 SimilarContactDto (de.symeda.sormas.api.contact.SimilarContactDto)2 Disease (de.symeda.sormas.api.Disease)1 EditPermissionType (de.symeda.sormas.api.EditPermissionType)1 Language (de.symeda.sormas.api.Language)1 VisitOrigin (de.symeda.sormas.api.VisitOrigin)1 CaseDataDto (de.symeda.sormas.api.caze.CaseDataDto)1 CaseReferenceDto (de.symeda.sormas.api.caze.CaseReferenceDto)1 CoreAndPersonDto (de.symeda.sormas.api.caze.CoreAndPersonDto)1 CoreEntityType (de.symeda.sormas.api.common.CoreEntityType)1 DeletionDetails (de.symeda.sormas.api.common.DeletionDetails)1 DeletionReason (de.symeda.sormas.api.common.DeletionReason)1 Page (de.symeda.sormas.api.common.Page)1 ContactBulkEditData (de.symeda.sormas.api.contact.ContactBulkEditData)1 ContactClassification (de.symeda.sormas.api.contact.ContactClassification)1 ContactCriteria (de.symeda.sormas.api.contact.ContactCriteria)1 ContactExportDto (de.symeda.sormas.api.contact.ContactExportDto)1 ContactFacade (de.symeda.sormas.api.contact.ContactFacade)1 ContactFollowUpDto (de.symeda.sormas.api.contact.ContactFollowUpDto)1