Skip to content

Commit b173e4d

Browse files
committed
#13589 - Added update of person address when external message is processed
- Deprecated PhysiciansReport classes due to not being used anymore - Deprecated ExternalMessageController.processPhysiciansReport() due to not being used anymore
1 parent b715df4 commit b173e4d

File tree

8 files changed

+74
-0
lines changed

8 files changed

+74
-0
lines changed

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

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@
4646
import de.symeda.sormas.api.externalmessage.processing.labmessage.LabMessageProcessingHelper;
4747
import de.symeda.sormas.api.externalmessage.processing.labmessage.SampleAndPathogenTests;
4848
import de.symeda.sormas.api.feature.FeatureType;
49+
import de.symeda.sormas.api.infrastructure.country.CountryReferenceDto;
4950
import de.symeda.sormas.api.infrastructure.facility.FacilityDto;
5051
import de.symeda.sormas.api.infrastructure.facility.FacilityReferenceDto;
5152
import de.symeda.sormas.api.infrastructure.facility.FacilityType;
53+
import de.symeda.sormas.api.location.LocationDto;
5254
import de.symeda.sormas.api.person.PersonDto;
5355
import de.symeda.sormas.api.person.PersonReferenceDto;
5456
import de.symeda.sormas.api.sample.PathogenTestDto;
@@ -57,6 +59,7 @@
5759
import de.symeda.sormas.api.sample.SampleSimilarityCriteria;
5860
import de.symeda.sormas.api.user.UserDto;
5961
import de.symeda.sormas.api.user.UserRight;
62+
import de.symeda.sormas.api.utils.dataprocessing.EntitySelection;
6063
import de.symeda.sormas.api.utils.dataprocessing.HandlerCallback;
6164
import de.symeda.sormas.api.utils.dataprocessing.PickOrCreateEntryResult;
6265
import de.symeda.sormas.api.utils.dataprocessing.ProcessingResult;
@@ -979,6 +982,49 @@ protected abstract void markExternalMessageAsProcessed(
979982
ProcessingResult<ExternalMessageProcessingResult> result,
980983
SurveillanceReportDto surveillanceReport);
981984

985+
986+
protected void doPersonUpdates(EntitySelection<PersonDto> personSelection) {
987+
// requested for #13589
988+
// TODO: we need to find a better way to handle this
989+
990+
if(personSelection.isNew()) {
991+
// no updates for new persons
992+
return;
993+
}
994+
995+
final PersonDto person = personSelection.getEntity();
996+
if(person == null) {
997+
return;
998+
}
999+
1000+
final LocationDto personAddress = person.getAddress();
1001+
1002+
if(personAddress != null) {
1003+
final String houseNumber = getExternalMessage().getPersonHouseNumber();
1004+
if(houseNumber != null ) {
1005+
personAddress.setHouseNumber(houseNumber);
1006+
}
1007+
final String street = getExternalMessage().getPersonStreet();
1008+
if(street != null) {
1009+
personAddress.setStreet(street);
1010+
}
1011+
final String city = getExternalMessage().getPersonCity();
1012+
if(city != null) {
1013+
personAddress.setCity(city);
1014+
}
1015+
final String postalCode = getExternalMessage().getPersonPostalCode();
1016+
if(postalCode != null) {
1017+
personAddress.setPostalCode(postalCode);
1018+
}
1019+
final CountryReferenceDto country = getExternalMessage().getPersonCountry();
1020+
if(country != null) {
1021+
personAddress.setCountry(country);
1022+
}
1023+
1024+
getExternalMessageProcessingFacade().updatePerson(person);
1025+
}
1026+
}
1027+
9821028
/**
9831029
* Retrieves the external message associated with the processing flow.
9841030
*

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ protected CompletionStage<ProcessingResult<ExternalMessageProcessingResult>> pic
151151

152152
return mapHandlerResult(callback, previousResult, personSelection -> {
153153
logger.debug("[MESSAGE PROCESSING] Continue processing with person: {}", personSelection);
154+
155+
// requested for #13589
156+
doPersonUpdates(personSelection);
157+
154158
return previousResult.withPerson(personSelection.getEntity(), personSelection.isNew());
155159
});
156160
}
@@ -171,6 +175,8 @@ protected <T> CompletionStage<ProcessingResult<ExternalMessageProcessingResult>>
171175

172176
protected abstract void handlePickOrCreatePerson(PersonDto person, HandlerCallback<EntitySelection<PersonDto>> callback);
173177

178+
protected abstract void doPersonUpdates(EntitySelection<PersonDto> personSelection);
179+
174180
private PersonDto buildPerson() {
175181

176182
final PersonDto personDto = PersonDto.build();

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,4 +246,15 @@ public CaseDataDto updateAndSetCaseNotifier(String caseUuid, NotifierDto notifie
246246
caseDto.setNotifier(notifierReferenceDto);
247247
return caseFacade.save(caseDto);
248248
}
249+
250+
public void updatePerson(PersonDto personDto) {
251+
if(personFacade == null) {
252+
return;
253+
}
254+
if(personDto == null) {
255+
return;
256+
}
257+
258+
personFacade.save(personDto);
259+
}
249260
}

sormas-ui/src/main/java/de/symeda/sormas/ui/externalmessage/ExternalMessageController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ public void processDoctorDeclarationMessage(String messageUuid) {
209209
});
210210
}
211211

212+
@Deprecated
212213
public void processPhysiciansReport(String uuid) {
213214
ExternalMessageDto physicianReport = FacadeProvider.getExternalMessageFacade().getByUuid(uuid);
214215
ExternalMessageProcessingFacade processingFacade = getExternalMessageProcessingFacade();

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@
3131
import de.symeda.sormas.api.person.PersonDto;
3232
import de.symeda.sormas.api.person.PersonReferenceDto;
3333
import de.symeda.sormas.api.user.UserDto;
34+
import de.symeda.sormas.api.utils.dataprocessing.EntitySelection;
3435
import de.symeda.sormas.api.utils.dataprocessing.HandlerCallback;
3536
import de.symeda.sormas.api.utils.dataprocessing.PickOrCreateEntryResult;
3637
import de.symeda.sormas.api.utils.dataprocessing.ProcessingResult;
3738
import de.symeda.sormas.api.utils.dataprocessing.ProcessingResultStatus;
3839

40+
@Deprecated
3941
public abstract class AbstractPhysiciansReportProcessingFlow extends AbstractProcessingFlow {
4042

4143
public AbstractPhysiciansReportProcessingFlow(UserDto user, ExternalMessageMapper mapper, ExternalMessageProcessingFacade processingFacade) {
@@ -136,4 +138,9 @@ protected void postBuildCase(CaseDataDto caseDto, ExternalMessageDto externalMes
136138
protected void postBuildPerson(PersonDto personDto, ExternalMessageDto externalMessageDto) {
137139
// No additional actions needed for physicians report
138140
}
141+
142+
@Override
143+
protected void doPersonUpdates(EntitySelection<PersonDto> personSelection) {
144+
// No additional actions needed for physicians report
145+
}
139146
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import de.symeda.sormas.ui.utils.DirtyCheckPopup;
4343
import de.symeda.sormas.ui.utils.ViewMode;
4444

45+
@Deprecated
4546
public class PhysiciansReportCaseEditComponent extends CommitDiscardWrapperComponent<VerticalLayout> {
4647

4748
private static final long serialVersionUID = 1452145334216485391L;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
import de.symeda.sormas.ui.utils.FieldAccessHelper;
6161
import de.symeda.sormas.ui.vaccination.VaccinationEditForm;
6262

63+
@Deprecated
6364
public class PhysiciansReportCaseImmunizationsComponent extends CommitDiscardWrapperComponent<VerticalLayout> {
6465

6566
private static final long serialVersionUID = -5128676869217088760L;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import de.symeda.sormas.ui.utils.VaadinUiUtil;
4242
import de.symeda.sormas.ui.utils.processing.EntrySelectionField;
4343

44+
@Deprecated
4445
public class PhysiciansReportProcessingFlow extends AbstractPhysiciansReportProcessingFlow {
4546

4647
public PhysiciansReportProcessingFlow(ExternalMessageMapper mapper, ExternalMessageProcessingFacade processingFacade) {

0 commit comments

Comments
 (0)