@@ -381,16 +381,63 @@ private FlowThen<ExternalMessageProcessingResult> doSinglePickOrCreateSampleFlow
381381
382382 }
383383
384+ /**
385+ * Retrieves similar cases based on the selected person and lab message.
386+ * This method will call getSimilarCases(PersonReferenceDto selectedPerson, Disease disease) with the disease of the external message by
387+ * default.
388+ *
389+ * @param selectedPerson
390+ * @param externalMessage
391+ * @return
392+ */
393+ protected List <CaseSelectionDto > getSimilarCases (PersonReferenceDto selectedPerson , ExternalMessageDto externalMessage ) {
394+ return getSimilarCases (selectedPerson , externalMessage .getDisease ());
395+ }
396+
397+ protected List <CaseSelectionDto > getSimilarCases (PersonReferenceDto selectedPerson , Disease disease ) {
398+ return getExternalMessageProcessingFacade ().getSimilarCases (selectedPerson , disease );
399+ }
400+
401+ /**
402+ * Retrieves similar contacts based on the selected person and lab message.
403+ * This method will call getSimilarContacts(PersonReferenceDto selectedPerson, Disease disease) with the disease of the external message
404+ * by default.
405+ *
406+ * @param selectedPerson
407+ * @param externalMessage
408+ * @return
409+ */
410+ protected List <SimilarContactDto > getSimilarContacts (PersonReferenceDto selectedPerson , ExternalMessageDto externalMessage ) {
411+ return getSimilarContacts (selectedPerson , externalMessage .getDisease ());
412+ }
413+
414+ protected List <SimilarContactDto > getSimilarContacts (PersonReferenceDto selectedPerson , Disease disease ) {
415+ return getExternalMessageProcessingFacade ().getSimilarContacts (selectedPerson , disease );
416+ }
417+
418+ /**
419+ * Retrieves similar event participants based on the selected person and lab message.
420+ * This method will call getSimilarEventParticipants(PersonReferenceDto selectedPerson, Disease disease) with the disease of the
421+ * external message by default.
422+ *
423+ * @param selectedPerson
424+ * @param externalMessage
425+ * @return
426+ */
427+ protected List <SimilarEventParticipantDto > getSimilarEventParticipants (PersonReferenceDto selectedPerson , ExternalMessageDto externalMessage ) {
428+ return getSimilarEventParticipants (selectedPerson , externalMessage .getDisease ());
429+ }
430+
384431 /**
385432 * Retrieves similar event participants based on the selected person and lab message.
386433 *
387434 * @param selectedPerson
388435 * The selected person reference.
389- * @param labMessage
436+ * @param externalMessage
390437 * The external lab message.
391438 * @return A list of similar event participants.
392439 */
393- protected List <SimilarEventParticipantDto > getSimilarEventParticipants (PersonReferenceDto selectedPerson , ExternalMessageDto labMessage ) {
440+ protected List <SimilarEventParticipantDto > getSimilarEventParticipants (PersonReferenceDto selectedPerson , Disease disease ) {
394441
395442 if (getExternalMessageProcessingFacade ().isFeatureDisabled (FeatureType .EVENT_SURVEILLANCE )
396443 || !getExternalMessageProcessingFacade ().hasAllUserRights (UserRight .EVENTPARTICIPANT_CREATE , UserRight .EVENTPARTICIPANT_EDIT )) {
@@ -399,7 +446,7 @@ protected List<SimilarEventParticipantDto> getSimilarEventParticipants(PersonRef
399446
400447 EventParticipantCriteria eventParticipantCriteria = new EventParticipantCriteria ();
401448 eventParticipantCriteria .setPerson (selectedPerson );
402- eventParticipantCriteria .setDisease (labMessage . getDisease () );
449+ eventParticipantCriteria .setDisease (disease );
403450
404451 return getExternalMessageProcessingFacade ().getMatchingEventParticipants (eventParticipantCriteria );
405452 }
@@ -436,8 +483,9 @@ protected CompletionStage<ProcessingResult<PickOrCreateEntryResult>> pickOrCreat
436483 ExternalMessageDto externalMessage ) {
437484
438485 PersonReferenceDto personRef = previousResult .getPerson ().toReference ();
439- List <CaseSelectionDto > similarCases = getExternalMessageProcessingFacade ().getSimilarCases (personRef , externalMessage .getDisease ());
440- List <SimilarContactDto > similarContacts = getExternalMessageProcessingFacade ().getSimilarContacts (personRef , externalMessage .getDisease ());
486+
487+ List <CaseSelectionDto > similarCases = getSimilarCases (personRef , externalMessage );
488+ List <SimilarContactDto > similarContacts = getSimilarContacts (personRef , externalMessage );
441489 List <SimilarEventParticipantDto > similarEventParticipants = getSimilarEventParticipants (personRef , externalMessage );
442490
443491 HandlerCallback <PickOrCreateEntryResult > callback = new HandlerCallback <>();
@@ -982,42 +1030,41 @@ protected abstract void markExternalMessageAsProcessed(
9821030 ProcessingResult <ExternalMessageProcessingResult > result ,
9831031 SurveillanceReportDto surveillanceReport );
9841032
985-
9861033 protected void doPersonUpdates (EntitySelection <PersonDto > personSelection ) {
9871034 // requested for #13589
9881035 // TODO: we need to find a better way to handle this
9891036
990- if (personSelection .isNew ()) {
1037+ if (personSelection .isNew ()) {
9911038 // no updates for new persons
9921039 return ;
9931040 }
9941041
9951042 final PersonDto person = personSelection .getEntity ();
996- if (person == null ) {
1043+ if (person == null ) {
9971044 return ;
9981045 }
9991046
10001047 final LocationDto personAddress = person .getAddress ();
10011048
1002- if (personAddress != null ) {
1049+ if (personAddress != null ) {
10031050 final String houseNumber = getExternalMessage ().getPersonHouseNumber ();
1004- if (houseNumber != null ) {
1051+ if (houseNumber != null ) {
10051052 personAddress .setHouseNumber (houseNumber );
10061053 }
10071054 final String street = getExternalMessage ().getPersonStreet ();
1008- if (street != null ) {
1055+ if (street != null ) {
10091056 personAddress .setStreet (street );
10101057 }
10111058 final String city = getExternalMessage ().getPersonCity ();
1012- if (city != null ) {
1059+ if (city != null ) {
10131060 personAddress .setCity (city );
10141061 }
10151062 final String postalCode = getExternalMessage ().getPersonPostalCode ();
1016- if (postalCode != null ) {
1063+ if (postalCode != null ) {
10171064 personAddress .setPostalCode (postalCode );
10181065 }
10191066 final CountryReferenceDto country = getExternalMessage ().getPersonCountry ();
1020- if (country != null ) {
1067+ if (country != null ) {
10211068 personAddress .setCountry (country );
10221069 }
10231070
0 commit comments