Skip to content

Commit 4fdea77

Browse files
Merge pull request #13151 from SORMAS-Foundation/feature-13147_phone_number_validation_for_e-sante
#13147 - Phone Number Validation for E-Santé Reports – Remove and Sto…
2 parents e393b45 + 2452c70 commit 4fdea77

File tree

7 files changed

+65
-35
lines changed

7 files changed

+65
-35
lines changed

sormas-api/src/main/java/de/symeda/sormas/api/externalmessage/ExternalMessageDto.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@ public class ExternalMessageDto extends SormasToSormasShareableDto {
158158

159159
private boolean automaticProcessingPossible;
160160

161+
@Size(max = FieldConstraints.CHARACTER_LIMIT_TEXT, message = Validations.textTooLong)
162+
private String personAdditionalDetails;
163+
161164
public ExternalMessageType getType() {
162165
return type;
163166
}
@@ -507,4 +510,12 @@ public boolean isAutomaticProcessingPossible() {
507510
public void setAutomaticProcessingPossible(boolean automaticProcessingPossible) {
508511
this.automaticProcessingPossible = automaticProcessingPossible;
509512
}
513+
514+
public String getPersonAdditionalDetails() {
515+
return personAdditionalDetails;
516+
}
517+
518+
public void setPersonAdditionalDetails(String personAdditionalDetails) {
519+
this.personAdditionalDetails = personAdditionalDetails;
520+
}
510521
}

sormas-api/src/main/java/de/symeda/sormas/api/externalmessage/processing/ExternalMessageMapper.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,6 @@
1515

1616
package de.symeda.sormas.api.externalmessage.processing;
1717

18-
import java.util.ArrayList;
19-
import java.util.Date;
20-
import java.util.List;
21-
import java.util.function.Consumer;
22-
import java.util.function.Function;
23-
import java.util.stream.Collectors;
24-
import java.util.stream.Stream;
25-
26-
import org.apache.commons.lang3.StringUtils;
27-
import org.apache.commons.lang3.tuple.ImmutableTriple;
28-
2918
import de.symeda.sormas.api.CountryHelper;
3019
import de.symeda.sormas.api.customizableenum.CustomEnumNotFoundException;
3120
import de.symeda.sormas.api.disease.DiseaseVariant;
@@ -45,6 +34,16 @@
4534
import de.symeda.sormas.api.sample.SampleDto;
4635
import de.symeda.sormas.api.utils.DataHelper;
4736
import de.symeda.sormas.api.utils.DateHelper;
37+
import org.apache.commons.lang3.StringUtils;
38+
import org.apache.commons.lang3.tuple.ImmutableTriple;
39+
40+
import java.util.ArrayList;
41+
import java.util.Date;
42+
import java.util.List;
43+
import java.util.function.Consumer;
44+
import java.util.function.Function;
45+
import java.util.stream.Collectors;
46+
import java.util.stream.Stream;
4847

4948
public final class ExternalMessageMapper {
5049

@@ -83,7 +82,12 @@ public List<String[]> mapToPerson(PersonDto person) {
8382
person::setNationalHealthId,
8483
person.getNationalHealthId(),
8584
externalMessage.getPersonNationalHealthId(),
86-
PersonDto.NATIONAL_HEALTH_ID)));
85+
PersonDto.NATIONAL_HEALTH_ID),
86+
Mapping.of(
87+
person::setAdditionalDetails,
88+
person.getAdditionalDetails(),
89+
externalMessage.getPersonAdditionalDetails(),
90+
PersonDto.ADDITIONAL_DETAILS)));
8791

8892
if (person.getBirthdateYYYY() != null) {
8993
DataHelper.Pair<Integer, ApproximateAgeType> ageAndAgeType = ApproximateAgeType.ApproximateAgeHelper

sormas-api/src/main/java/de/symeda/sormas/api/externalmessage/processing/labmessage/AbstractLabMessageProcessingFlow.java

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,15 @@
1515

1616
package de.symeda.sormas.api.externalmessage.processing.labmessage;
1717

18-
import java.util.Collections;
19-
import java.util.Date;
20-
import java.util.List;
21-
import java.util.concurrent.CompletableFuture;
22-
import java.util.concurrent.CompletionStage;
23-
import java.util.function.BiFunction;
24-
import java.util.function.Consumer;
25-
import java.util.stream.Collectors;
26-
27-
import org.slf4j.Logger;
28-
import org.slf4j.LoggerFactory;
29-
3018
import de.symeda.sormas.api.Disease;
19+
import de.symeda.sormas.api.FacadeProvider;
3120
import de.symeda.sormas.api.caze.CaseDataDto;
3221
import de.symeda.sormas.api.caze.CaseSelectionDto;
3322
import de.symeda.sormas.api.caze.surveillancereport.ReportingType;
3423
import de.symeda.sormas.api.caze.surveillancereport.SurveillanceReportDto;
3524
import de.symeda.sormas.api.contact.ContactDto;
3625
import de.symeda.sormas.api.contact.SimilarContactDto;
37-
import de.symeda.sormas.api.event.EventCriteria;
38-
import de.symeda.sormas.api.event.EventDto;
39-
import de.symeda.sormas.api.event.EventIndexDto;
40-
import de.symeda.sormas.api.event.EventParticipantCriteria;
41-
import de.symeda.sormas.api.event.EventParticipantDto;
42-
import de.symeda.sormas.api.event.EventParticipantReferenceDto;
43-
import de.symeda.sormas.api.event.SimilarEventParticipantDto;
26+
import de.symeda.sormas.api.event.*;
4427
import de.symeda.sormas.api.externalmessage.ExternalMessageDto;
4528
import de.symeda.sormas.api.externalmessage.ExternalMessageStatus;
4629
import de.symeda.sormas.api.externalmessage.ExternalMessageType;
@@ -66,6 +49,17 @@
6649
import de.symeda.sormas.api.utils.dataprocessing.ProcessingResult;
6750
import de.symeda.sormas.api.utils.dataprocessing.ProcessingResultStatus;
6851
import de.symeda.sormas.api.utils.dataprocessing.flow.FlowThen;
52+
import org.slf4j.Logger;
53+
import org.slf4j.LoggerFactory;
54+
55+
import java.util.Collections;
56+
import java.util.Date;
57+
import java.util.List;
58+
import java.util.concurrent.CompletableFuture;
59+
import java.util.concurrent.CompletionStage;
60+
import java.util.function.BiFunction;
61+
import java.util.function.Consumer;
62+
import java.util.stream.Collectors;
6963

7064
/**
7165
* Abstract class defining the flow of processing a lab message allowing to choose between multiple options like create or select a

sormas-backend/src/main/java/de/symeda/sormas/backend/externalmessage/ExternalMessage.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package de.symeda.sormas.backend.externalmessage;
22

33
import static de.symeda.sormas.api.utils.FieldConstraints.CHARACTER_LIMIT_DEFAULT;
4+
import static de.symeda.sormas.api.utils.FieldConstraints.CHARACTER_LIMIT_TEXT;
45

56
import java.util.Date;
67
import java.util.List;
@@ -123,6 +124,7 @@ public class ExternalMessage extends AbstractDomainObject {
123124
private List<SampleReport> sampleReports;
124125
private SurveillanceReport surveillanceReport;
125126
private String tsv;
127+
private String personAdditionalDetails;
126128

127129
@Enumerated(EnumType.STRING)
128130
public ExternalMessageType getType() {
@@ -449,4 +451,13 @@ public String getTsv() {
449451
public void setTsv(String tsv) {
450452
this.tsv = tsv;
451453
}
454+
455+
@Column(length = CHARACTER_LIMIT_TEXT)
456+
public String getPersonAdditionalDetails() {
457+
return personAdditionalDetails;
458+
}
459+
460+
public void setPersonAdditionalDetails(String personAdditionalDetails) {
461+
this.personAdditionalDetails = personAdditionalDetails;
462+
}
452463
}

sormas-backend/src/main/java/de/symeda/sormas/backend/externalmessage/ExternalMessageFacadeEjb.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ ExternalMessage fillOrBuildEntity(@NotNull ExternalMessageDto source, ExternalMe
175175
target.setReporterName(source.getReporterName());
176176
target.setReporterPostalCode(source.getReporterPostalCode());
177177
target.setReportMessageId(source.getReportMessageId());
178+
target.setPersonAdditionalDetails(source.getPersonAdditionalDetails());
178179

179180
target.setReportId(source.getReportId());
180181
if (source.getAssignee() != null) {
@@ -354,6 +355,7 @@ public ExternalMessageDto toDto(ExternalMessage source) {
354355
target.setReporterPostalCode(source.getReporterPostalCode());
355356
target.setStatus(source.getStatus());
356357
target.setReportMessageId(source.getReportMessageId());
358+
target.setPersonAdditionalDetails(source.getPersonAdditionalDetails());
357359

358360
target.setReportId(source.getReportId());
359361
if (source.getSampleReports() != null) {

sormas-backend/src/main/resources/sql/sormas_schema.sql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13249,4 +13249,12 @@ ALTER TABLE users_history ADD COLUMN externalid text;
1324913249

1325013250
INSERT INTO schema_version (version_number, comment) VALUES (550, '#13080 Keycloak username modification is not synced by sormas');
1325113251

13252+
-- 2024-09-23 #13147 Phone Number Validation for E-Santé Reports – Remove and Store Non-Numeric Text
13253+
ALTER TABLE externalmessage
13254+
ADD COLUMN personadditionaldetails text;
13255+
13256+
ALTER TABLE externalmessage_history
13257+
ADD COLUMN personadditionaldetails text;
13258+
13259+
INSERT INTO schema_version (version_number, comment) VALUES (551, '#13147 Phone Number Validation for E-Santé Reports – Remove and Store Non-Numeric Text');
1325213260
-- *** Insert new sql commands BEFORE this line. Remember to always consider _history tables. ***

sormas-ui/src/main/java/de/symeda/sormas/ui/externalmessage/physiciansreport/AbstractPhysiciansReportProcessingFlow.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@
1515

1616
package de.symeda.sormas.ui.externalmessage.physiciansreport;
1717

18-
import java.util.List;
19-
import java.util.concurrent.CompletableFuture;
20-
import java.util.concurrent.CompletionStage;
21-
2218
import de.symeda.sormas.api.FacadeProvider;
2319
import de.symeda.sormas.api.caze.CaseDataDto;
2420
import de.symeda.sormas.api.caze.CaseSelectionDto;
@@ -36,6 +32,10 @@
3632
import de.symeda.sormas.api.utils.dataprocessing.ProcessingResult;
3733
import de.symeda.sormas.api.utils.dataprocessing.ProcessingResultStatus;
3834

35+
import java.util.List;
36+
import java.util.concurrent.CompletableFuture;
37+
import java.util.concurrent.CompletionStage;
38+
3939
public abstract class AbstractPhysiciansReportProcessingFlow extends AbstractProcessingFlow {
4040

4141
public AbstractPhysiciansReportProcessingFlow(UserDto user, ExternalMessageMapper mapper, ExternalMessageProcessingFacade processingFacade) {

0 commit comments

Comments
 (0)