Skip to content

Commit

Permalink
#6024 Alphabetical sorting should not consider capitalization (#12879)
Browse files Browse the repository at this point in the history
* #6024 Alphabetical sorting should not consider capitalization

* #6024 Alphabetical sorting should not consider capitalization - cleanup case followup sorting

---------

Co-authored-by: Levente Gal <[email protected]>
  • Loading branch information
leventegal-she and Levente Gal authored Jan 12, 2024
1 parent fb835dc commit 05e4a22
Show file tree
Hide file tree
Showing 65 changed files with 1,628 additions and 782 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public class CaseFollowUpDto extends FollowUpDto {
private Boolean isInJurisdiction;

//@formatter:off
public CaseFollowUpDto(String uuid, Date changeDate, String personFirstName, String personLastName,
public CaseFollowUpDto(String uuid, String personFirstName, String personLastName,
Date reportDate, Date symptomsOnsetDate, Date followUpUntil, SymptomJournalStatus symptomJournalStatus,
Disease disease,
boolean isInJurisdiction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,15 @@ public CaseIndexDetailedDto(long id, String uuid, String epidNumber, String exte
YesNoUnknown reInfection, String city, String street, String houseNumber, String additionalInformation, String postalCode, String phone,
String reportingUserUuid, String reportingUserFirstName, String reportingUserLastName, Date symptomOnsetDate,
String responsibleRegion, String responsibleCommunity,
int visitCount, long eventCount, Date latestSampleDateTime, long sampleCount, Date latestChangedDate) {
int visitCount, long eventCount, Date latestSampleDateTime, long sampleCount) {
super(id, uuid, epidNumber, externalID, externalToken, internalToken, personUuid, personFirstName, personLastName,
disease, diseaseVariant, diseaseDetails, caseClassification, investigationStatus,
presentCondition, reportDate, creationDate,
regionUuid, districtUuid, healthFacilityUuid,
healthFacilityName, healthFacilityDetails, pointOfEntryUuid, pointOfEntryName, pointOfEntryDetails, surveillanceOfficerUuid, outcome,
age, ageType, birthdateDD, birthdateMM, birthdateYYYY, sex,
quarantineTo, completeness, followUpStatus, followUpUntil, symptomJournalStatus, vaccinationStatus, changeDate, facilityId,
responsibleRegionUuid, responsibleDistrictUuid, responsibleDistrictName, deletionReason, otherDeleteReason, isInJurisdiction, visitCount, latestChangedDate);
responsibleRegionUuid, responsibleDistrictUuid, responsibleDistrictName, deletionReason, otherDeleteReason, isInJurisdiction, visitCount);
//@formatter:on

this.reInfection = reInfection;
Expand All @@ -114,38 +114,6 @@ public CaseIndexDetailedDto(long id, String uuid, String epidNumber, String exte
this.responsibleCommunity = responsibleCommunity;
}

//@formatter:off
public CaseIndexDetailedDto(
long id, String uuid, String epidNumber, String externalID, String externalToken, String internalToken,
String personUuid, String personFirstName, String personLastName,
Disease disease, DiseaseVariant diseaseVariant, String diseaseDetails,
CaseClassification caseClassification, InvestigationStatus investigationStatus, PresentCondition presentCondition,
Date reportDate, Date creationDate,
String regionUuid, String districtUuid,
String healthFacilityUuid, String healthFacilityName, String healthFacilityDetails,
String pointOfEntryUuid, String pointOfEntryName, String pointOfEntryDetails, String surveillanceOfficerUuid,
CaseOutcome outcome, Integer age, ApproximateAgeType ageType, Integer birthdateDD, Integer birthdateMM, Integer birthdateYYYY,
Sex sex, Date quarantineTo, Float completeness, FollowUpStatus followUpStatus, Date followUpUntil,
SymptomJournalStatus symptomJournalStatus, VaccinationStatus vaccinationStatus, Date changeDate, Long facilityId,
String responsibleRegionUuid, String responsibleDistrictUuid, String responsibleDistrictName, DeletionReason deletionReason, String otherDeleteReason, boolean isInJurisdiction,
//detailed fields
YesNoUnknown reInfection, String city, String street, String houseNumber, String additionalInformation,
String postalCode, String phone, String reportingUserUuid, String reportingUserFirstName, String reportingUserLastName,
Date symptomOnsetDate, String responsibleRegion, String responsibleCommunity, int visitCount,
Date latestSampleDateTime, long sampleCount, Date latestChangedDate) {
this(id, uuid, epidNumber, externalID, externalToken, internalToken, personUuid, personFirstName, personLastName,
disease, diseaseVariant, diseaseDetails, caseClassification, investigationStatus, presentCondition,
reportDate, creationDate, regionUuid, districtUuid, healthFacilityUuid, healthFacilityName,
healthFacilityDetails, pointOfEntryUuid, pointOfEntryName, pointOfEntryDetails, surveillanceOfficerUuid,
outcome, age, ageType, birthdateDD, birthdateMM, birthdateYYYY, sex, quarantineTo, completeness,
followUpStatus, followUpUntil, symptomJournalStatus, vaccinationStatus, changeDate, facilityId,
responsibleRegionUuid, responsibleDistrictUuid, responsibleDistrictName, deletionReason, otherDeleteReason, isInJurisdiction, reInfection,
city, street, houseNumber, additionalInformation, postalCode, phone, reportingUserUuid,
reportingUserFirstName, reportingUserLastName, symptomOnsetDate, responsibleRegion, responsibleCommunity,
visitCount, 0, latestSampleDateTime, sampleCount, latestChangedDate);
//@formatter:on
}

public YesNoUnknown getReInfection() {
return reInfection;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,29 +135,6 @@ public class CaseIndexDto extends PseudonymizableIndexDto implements MergeableIn

private Boolean isInJurisdiction;

//@formatter:off
public CaseIndexDto(long id, String uuid, String epidNumber, String externalID, String externalToken, String internalToken, String personUuid, String personFirstName, String personLastName, Disease disease,
DiseaseVariant diseaseVariant, String diseaseDetails, CaseClassification caseClassification, InvestigationStatus investigationStatus,
PresentCondition presentCondition, Date reportDate, Date creationDate, String regionUuid,
String districtUuid, String healthFacilityUuid, String healthFacilityName, String healthFacilityDetails,
String pointOfEntryUuid, String pointOfEntryName, String pointOfEntryDetails, String surveillanceOfficerUuid, CaseOutcome outcome,
Integer age, ApproximateAgeType ageType, Integer birthdateDD, Integer birthdateMM, Integer birthdateYYYY, Sex sex, Date quarantineTo,
Float completeness, FollowUpStatus followUpStatus, Date followUpUntil, SymptomJournalStatus symptomJournalStatus, VaccinationStatus vaccinationStatus, Date changeDate, Long facilityId,
// responsible jurisdiction
String responsibleRegionUuid, String responsibleDistrictUuid, String responsibleDistrictName, DeletionReason deletionReason, String otherDeletionReason, boolean isInJurisdiction) {
this(id, uuid, epidNumber, externalID, externalToken, internalToken, personUuid, personFirstName, personLastName, disease,
diseaseVariant, diseaseDetails, caseClassification, investigationStatus,
presentCondition, reportDate, creationDate, regionUuid,
districtUuid, healthFacilityUuid, healthFacilityName, healthFacilityDetails,
pointOfEntryUuid, pointOfEntryName, pointOfEntryDetails, surveillanceOfficerUuid, outcome,
age, ageType, birthdateDD, birthdateMM, birthdateYYYY, sex, quarantineTo,
completeness, followUpStatus, followUpUntil, symptomJournalStatus, vaccinationStatus, changeDate, facilityId,
responsibleRegionUuid, responsibleDistrictUuid, responsibleDistrictName, deletionReason, otherDeletionReason, isInJurisdiction,
null, null
);
}
//@formatter:on

//@formatter:off
public CaseIndexDto(long id, String uuid, String epidNumber, String externalID, String externalToken, String internalToken, String personUuid, String personFirstName, String personLastName, Disease disease,
DiseaseVariant diseaseVariant, String diseaseDetails, CaseClassification caseClassification, InvestigationStatus investigationStatus,
Expand All @@ -170,8 +147,7 @@ public CaseIndexDto(long id, String uuid, String epidNumber, String externalID,
// responsible jurisdiction
String responsibleRegionUuid, String responsibleDistrictUuid, String responsibleDistrictName, DeletionReason deletionReason, String otherDeletionReason, boolean isInJurisdiction,
// others
Integer visitCount,
Date latestChangedDate // unused, only here for TypedQuery mapping
Integer visitCount
) {
//@formatter:on

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package de.symeda.sormas.api.caze;

import java.util.Date;
import java.util.Objects;

import de.symeda.sormas.api.Disease;
import de.symeda.sormas.api.common.DeletionReason;
Expand Down Expand Up @@ -79,7 +78,6 @@ public CaseMergeIndexDto(
deletionReason,
otherDeletionReason,
isInJurisdiction,
null,
null
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,16 +73,15 @@ public ContactIndexDetailedDto(String uuid, String personUuid, String personFirs
String externalID, String externalToken, String internalToken, DeletionReason deletionReason, String otherDeleteReason, boolean isInJurisdiction, boolean isCaseInJurisdiction,
Sex sex, Integer approximateAge, ApproximateAgeType approximateAgeType,
String city, String street, String houseNumber, String additionalInformation, String postalCode, String phone,
String reportingUserFirstName, String reportingUserLastName, ContactRelation relationToCase, int visitCount,
Date latestChangedDate // unused, only here for TypedQuery mapping
String reportingUserFirstName, String reportingUserLastName, ContactRelation relationToCase, int visitCount
) {
//@formatter:on

//@formatter:off
super(uuid, personUuid, personFirstName, personLastName, cazeUuid, disease, diseaseDetails, caseFirstName, caseLastName,
regionName, districtName, lastContactDate, contactCategory, contactProximity, contactClassification, contactStatus,
completeness, followUpStatus, followUpUntil, symptomJournalStatus, vaccinationStatus, contactOfficerUuid, reportingUserUuid, reportDateTime, caseClassification,
caseRegionName, caseDistrictName, changeDate, externalID, externalToken, internalToken, deletionReason, otherDeleteReason,isInJurisdiction, isCaseInJurisdiction , visitCount, latestChangedDate);
caseRegionName, caseDistrictName, changeDate, externalID, externalToken, internalToken, deletionReason, otherDeleteReason,isInJurisdiction, isCaseInJurisdiction , visitCount);

//@formatter:on

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,7 @@ public ContactIndexDto(String uuid, String personUuid, String personFirstName, S
CaseClassification caseClassification, String caseRegionName, String caseDistrictName,
Date changeDate, // XXX: unused, only here for TypedQuery mapping
String externalID, String externalToken, String internalToken, DeletionReason deletionReason, String otherDeletionReason, boolean isInJurisdiction, boolean isCaseInJurisdiction,
int visitCount,
Date latestChangedDate // unused, only here for TypedQuery mapping
int visitCount
) {
//@formatter:on

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
*/
package de.symeda.sormas.api.event;

import java.util.Date;

import de.symeda.sormas.api.uuid.AbstractUuidDto;

public class EventGroupIndexDto extends AbstractUuidDto {
Expand All @@ -27,16 +25,12 @@ public class EventGroupIndexDto extends AbstractUuidDto {
public static final String UUID = "uuid";
public static final String NAME = "name";
public static final String EVENT_COUNT = "eventCount";
public static final String CHANGED_DATE = "changeDate";

private String name;
private Long eventCount;
private Date changeDate;

public EventGroupIndexDto(String uuid, String name, Date changeDate, Long eventCount) {
public EventGroupIndexDto(String uuid, String name, Long eventCount) {
super(uuid);
this.name = name;
this.changeDate = changeDate;
this.eventCount = eventCount;
}

Expand All @@ -48,14 +42,6 @@ public void setName(String name) {
this.name = name;
}

public Date getChangeDate() {
return changeDate;
}

public void setChangeDate(Date changeDate) {
this.changeDate = changeDate;
}

public Long getEventCount() {
return eventCount;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,6 @@ public EventIndexDto(
String responsibleUserFirstName,
String responsibleUserLastName,
boolean isInJurisdictionOrOwned,
Date changeDate,
EventIdentificationSource eventIdentificationSource,
DeletionReason deletionReason,
String otherDeletionReason) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import de.symeda.sormas.api.caze.VaccinationStatus;
import de.symeda.sormas.api.common.DeletionReason;
import de.symeda.sormas.api.person.ApproximateAgeType;
import de.symeda.sormas.api.person.Sex;
import de.symeda.sormas.api.sample.PathogenTestResultType;
import de.symeda.sormas.api.utils.PersonalData;
Expand Down Expand Up @@ -64,12 +63,10 @@ public EventParticipantIndexDto(
String lastName,
Sex sex,
Integer approximateAge,
ApproximateAgeType approximateAgeType,
String involvementDescription,
PathogenTestResultType pathogenTestResult,
Date sampleDateTime,
VaccinationStatus vaccinationStatus,
String reportingUserUuid,
DeletionReason deletionReason,
String otherDeletionReason,
boolean isInJurisdiction,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ public List<EventActionIndexDto> getEventActionIndexList(EventCriteria criteria,
List<EventActionIndexDto> actions = new ArrayList<>();
IterableHelper.executeBatched(indexListIds, ModelConstants.PARAMETER_LIMIT, batchedIds -> {
final CriteriaBuilder cb = em.getCriteriaBuilder();
final CriteriaQuery<Object[]> cq = cb.createQuery(Object[].class);
final CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
final Root<Action> action = cq.from(getElementClass());
final ActionQueryContext queryContext = new ActionQueryContext(cb, cq, action);
final ActionJoins actionJoins = queryContext.getJoins();
Expand Down Expand Up @@ -360,11 +360,7 @@ public List<EventActionIndexDto> getEventActionIndexList(EventCriteria criteria,
cq.orderBy(getOrderList(sortProperties, queryContext));
cq.distinct(true);

//noinspection unchecked
actions.addAll(
createQuery(cq, first, max).unwrap(org.hibernate.query.Query.class)
.setResultTransformer(new EventActionIndexDtoReasultTransformer())
.getResultList());
actions.addAll(QueryHelper.getResultList(em, cq, new EventActionIndexDtoReasultTransformer(), first, max));
});

return actions;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,13 @@ public List<CampaignIndexDto> getIndexList(CampaignCriteria campaignCriteria, In
Expression<?> expression;
switch (sortProperty.propertyName) {
case CampaignIndexDto.UUID:
case CampaignIndexDto.NAME:
case CampaignIndexDto.START_DATE:
case CampaignIndexDto.END_DATE:
expression = campaign.get(sortProperty.propertyName);
break;
case CampaignIndexDto.NAME:
expression = cb.lower(campaign.get(sortProperty.propertyName));
break;
default:
throw new IllegalArgumentException(sortProperty.propertyName);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -313,19 +313,19 @@ public List<CampaignFormDataIndexDto> getIndexList(
expression = root.get(sortProperty.propertyName);
break;
case CampaignFormDataIndexDto.CAMPAIGN:
expression = campaignJoin.get(Campaign.NAME);
expression = cb.lower(campaignJoin.get(Campaign.NAME));
break;
case CampaignFormDataIndexDto.FORM:
expression = campaignFormMetaJoin.get(CampaignFormMeta.FORM_NAME);
expression = cb.lower(campaignFormMetaJoin.get(CampaignFormMeta.FORM_NAME));
break;
case CampaignFormDataIndexDto.REGION:
expression = regionJoin.get(Region.NAME);
expression = cb.lower(regionJoin.get(Region.NAME));
break;
case CampaignFormDataIndexDto.DISTRICT:
expression = districtJoin.get(District.NAME);
expression = cb.lower(districtJoin.get(District.NAME));
break;
case CampaignFormDataIndexDto.COMMUNITY:
expression = communityJoin.get(Community.NAME);
expression = cb.lower(communityJoin.get(Community.NAME));
break;
default:
throw new IllegalArgumentException(sortProperty.propertyName);
Expand Down
Loading

0 comments on commit 05e4a22

Please sign in to comment.