Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 7abce9c

Browse files
Merge pull request SORMAS-Foundation#3478 from hzi-braunschweig/3388_sormas-to-sormas-send-back
3388 sormas to sormas send back
2 parents e070a2c + 7b51ac8 commit 7abce9c

37 files changed

Lines changed: 2482 additions & 947 deletions

sormas-api/src/main/java/de/symeda/sormas/api/i18n/Captions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1375,6 +1375,7 @@ public interface Captions {
13751375
String SormasToSormasOptions_pseudonymizeSensitiveData = "SormasToSormasOptions.pseudonymizeSensitiveData";
13761376
String SormasToSormasOptions_withAssociatedContacts = "SormasToSormasOptions.withAssociatedContacts";
13771377
String SormasToSormasOptions_withSamples = "SormasToSormasOptions.withSamples";
1378+
String sormasToSormasReturn = "sormasToSormasReturn";
13781379
String sormasToSormasSentFrom = "sormasToSormasSentFrom";
13791380
String sormasToSormasShare = "sormasToSormasShare";
13801381
String sormasToSormasSharedBy = "sormasToSormasSharedBy";

sormas-api/src/main/java/de/symeda/sormas/api/i18n/Validations.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ public interface Validations {
9999
String sormasToSormasContactCaseNotExists = "sormasToSormasContactCaseNotExists";
100100
String sormasToSormasContactExists = "sormasToSormasContactExists";
101101
String sormasToSormasOrganizationIdMissing = "sormasToSormasOrganizationIdMissing";
102+
String sormasToSormasReturnCaseNotExists = "sormasToSormasReturnCaseNotExists";
103+
String sormasToSormasReturnContactNotExists = "sormasToSormasReturnContactNotExists";
102104
String sormasToSormasSampleExists = "sormasToSormasSampleExists";
103105
String sormasToSormasSenderNameMissing = "sormasToSormasSenderNameMissing";
104106
String sormasToSormasShareInfoMissing = "sormasToSormasShareInfoMissing";

sormas-api/src/main/java/de/symeda/sormas/api/sormastosormas/SormasToSormasFacade.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ public interface SormasToSormasFacade {
3030

3131
void shareContacts(List<String> contactUuids, SormasToSormasOptionsDto options) throws SormasToSormasException;
3232

33+
void returnCase(String caseUuid, SormasToSormasOptionsDto options) throws SormasToSormasException;
34+
35+
void returnContact(String contactUuid, SormasToSormasOptionsDto options) throws SormasToSormasException;
36+
37+
void saveReturnedCase(SormasToSormasEncryptedDataDto sharedCase) throws SormasToSormasException, SormasToSormasValidationException;
38+
39+
void saveReturnedContact(SormasToSormasEncryptedDataDto sharedContact) throws SormasToSormasException, SormasToSormasValidationException;
40+
3341
List<ServerAccessDataReferenceDto> getAvailableOrganizations();
3442

3543
ServerAccessDataReferenceDto getOrganizationRef(String id);
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* SORMAS® - Surveillance Outbreak Response Management & Analysis System
3+
* Copyright © 2016-2020 Helmholtz-Zentrum für Infektionsforschung GmbH (HZI)
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation, either version 3 of the License, or
7+
* (at your option) any later version.
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
* You should have received a copy of the GNU General Public License
13+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
14+
*/
15+
16+
package de.symeda.sormas.api.sormastosormas;
17+
18+
import javax.ejb.Remote;
19+
20+
@Remote
21+
public interface SormasToSormasOriginInfoFacade {
22+
}

sormas-api/src/main/resources/captions.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1939,6 +1939,7 @@ sormasToSormasDialogTitle=Share with health department
19391939
sormasToSormasErrorDialogTitle=Error while sharing with another health department
19401940
sormasToSormasListTitle=Share
19411941
sormasToSormasShare=Share
1942+
sormasToSormasReturn=Return
19421943
sormasToSormasCaseNotShared=This case is not shared
19431944
sormasToSormasContactNotShared=This contact is not shared
19441945
sormasToSormasSharedWith=Shared with

sormas-api/src/main/resources/validations.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ sormasToSormasShareInfoMissing = Sender information is missing
126126
sormasToSormasOrganizationIdMissing = Sender organization is is missing
127127
sormasToSormasSenderNameMissing = Sender name is missing
128128
sormasToSormasSampleExists = This sample already exists
129+
sormasToSormasReturnCaseNotExists = Case does not exist
130+
sormasToSormasReturnContactNotExists = Contact does not exist
129131
validPhoneNumber = %s must be a valid phone number
130132
validEmailAddress = %s must be a valid email address
131133
externalJournalPersonValidationBirthdate = Invalid birthdate.

sormas-backend/src/main/java/de/symeda/sormas/backend/caze/CaseFacadeEjb.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,8 @@
228228
import de.symeda.sormas.backend.sample.SampleFacadeEjb;
229229
import de.symeda.sormas.backend.sample.SampleFacadeEjb.SampleFacadeEjbLocal;
230230
import de.symeda.sormas.backend.sample.SampleService;
231-
import de.symeda.sormas.backend.sormastosormas.SormasToSormasFacadeEjb;
232-
import de.symeda.sormas.backend.sormastosormas.SormasToSormasFacadeEjb.SormasToSormasFacadeEjbLocal;
231+
import de.symeda.sormas.backend.sormastosormas.SormasToSormasOriginInfoFacadeEjb;
232+
import de.symeda.sormas.backend.sormastosormas.SormasToSormasOriginInfoFacadeEjb.SormasToSormasOriginInfoFacadeEjbLocal;
233233
import de.symeda.sormas.backend.sormastosormas.SormasToSormasShareInfo;
234234
import de.symeda.sormas.backend.symptoms.Symptoms;
235235
import de.symeda.sormas.backend.symptoms.SymptomsFacadeEjb;
@@ -362,7 +362,7 @@ public class CaseFacadeEjb implements CaseFacade {
362362
@EJB
363363
private CaseJurisdictionChecker caseJurisdictionChecker;
364364
@EJB
365-
private SormasToSormasFacadeEjbLocal sormasToSormasFacade;
365+
private SormasToSormasOriginInfoFacadeEjbLocal originInfoFacade;
366366

367367
@Override
368368
public List<CaseDataDto> getAllActiveCasesAfter(Date date) {
@@ -2097,7 +2097,7 @@ public Case fillOrBuildEntity(@NotNull CaseDataDto source, Case target) {
20972097
target.setTrimester(source.getTrimester());
20982098
target.setFacilityType(source.getFacilityType());
20992099
if (source.getSormasToSormasOriginInfo() != null) {
2100-
target.setSormasToSormasOriginInfo(sormasToSormasFacade.fromSormasToSormasOriginInfoDto(source.getSormasToSormasOriginInfo()));
2100+
target.setSormasToSormasOriginInfo(originInfoFacade.toDto(source.getSormasToSormasOriginInfo()));
21012101
}
21022102

21032103
// TODO this makes sure follow-up is not overriden from the mobile app side. remove once that is implemented
@@ -2361,7 +2361,7 @@ public static CaseDataDto toDto(Case source) {
23612361
target.setEndOfIsolationReason(source.getEndOfIsolationReason());
23622362
target.setEndOfIsolationReasonDetails(source.getEndOfIsolationReasonDetails());
23632363

2364-
target.setSormasToSormasOriginInfo(SormasToSormasFacadeEjb.toSormasToSormasOriginInfoDto(source.getSormasToSormasOriginInfo()));
2364+
target.setSormasToSormasOriginInfo(SormasToSormasOriginInfoFacadeEjb.toDto(source.getSormasToSormasOriginInfo()));
23652365
target.setOwnershipHandedOver(source.getSormasToSormasShares().stream().anyMatch(SormasToSormasShareInfo::isOwnershipHandedOver));
23662366

23672367
return target;

sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@
146146
import de.symeda.sormas.backend.region.Region;
147147
import de.symeda.sormas.backend.region.RegionFacadeEjb;
148148
import de.symeda.sormas.backend.region.RegionService;
149-
import de.symeda.sormas.backend.sormastosormas.SormasToSormasFacadeEjb;
150-
import de.symeda.sormas.backend.sormastosormas.SormasToSormasFacadeEjb.SormasToSormasFacadeEjbLocal;
149+
import de.symeda.sormas.backend.sormastosormas.SormasToSormasOriginInfoFacadeEjb;
150+
import de.symeda.sormas.backend.sormastosormas.SormasToSormasOriginInfoFacadeEjb.SormasToSormasOriginInfoFacadeEjbLocal;
151151
import de.symeda.sormas.backend.sormastosormas.SormasToSormasShareInfo;
152152
import de.symeda.sormas.backend.symptoms.Symptoms;
153153
import de.symeda.sormas.backend.symptoms.SymptomsFacadeEjb;
@@ -205,7 +205,7 @@ public class ContactFacadeEjb implements ContactFacade {
205205
@EJB
206206
private ClinicalCourseFacadeEjb.ClinicalCourseFacadeEjbLocal clinicalCourseFacade;
207207
@EJB
208-
private SormasToSormasFacadeEjbLocal sormasToSormasFacade;
208+
private SormasToSormasOriginInfoFacadeEjbLocal originInfoFacade;
209209
@EJB
210210
private FeatureConfigurationFacadeEjbLocal featureConfigurationFacade;
211211
@EJB
@@ -1096,7 +1096,7 @@ public Contact fromDto(@NotNull ContactDto source) {
10961096
target.setEndOfQuarantineReasonDetails(source.getEndOfQuarantineReasonDetails());
10971097

10981098
if (source.getSormasToSormasOriginInfo() != null) {
1099-
target.setSormasToSormasOriginInfo(sormasToSormasFacade.fromSormasToSormasOriginInfoDto(source.getSormasToSormasOriginInfo()));
1099+
target.setSormasToSormasOriginInfo(originInfoFacade.toDto(source.getSormasToSormasOriginInfo()));
11001100
}
11011101

11021102
return target;
@@ -1331,7 +1331,7 @@ public static ContactDto toDto(Contact source) {
13311331
target.setEndOfQuarantineReason(source.getEndOfQuarantineReason());
13321332
target.setEndOfQuarantineReasonDetails(source.getEndOfQuarantineReasonDetails());
13331333

1334-
target.setSormasToSormasOriginInfo(SormasToSormasFacadeEjb.toSormasToSormasOriginInfoDto(source.getSormasToSormasOriginInfo()));
1334+
target.setSormasToSormasOriginInfo(SormasToSormasOriginInfoFacadeEjb.toDto(source.getSormasToSormasOriginInfo()));
13351335
target.setOwnershipHandedOver(source.getSormasToSormasShares().stream().anyMatch(SormasToSormasShareInfo::isOwnershipHandedOver));
13361336

13371337
return target;

sormas-backend/src/main/java/de/symeda/sormas/backend/sample/SampleFacadeEjb.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@
102102
import de.symeda.sormas.backend.region.Region;
103103
import de.symeda.sormas.backend.sample.AdditionalTestFacadeEjb.AdditionalTestFacadeEjbLocal;
104104
import de.symeda.sormas.backend.sample.PathogenTestFacadeEjb.PathogenTestFacadeEjbLocal;
105-
import de.symeda.sormas.backend.sormastosormas.SormasToSormasFacadeEjb;
106-
import de.symeda.sormas.backend.sormastosormas.SormasToSormasFacadeEjb.SormasToSormasFacadeEjbLocal;
105+
import de.symeda.sormas.backend.sormastosormas.SormasToSormasOriginInfoFacadeEjb;
106+
import de.symeda.sormas.backend.sormastosormas.SormasToSormasOriginInfoFacadeEjb.SormasToSormasOriginInfoFacadeEjbLocal;
107107
import de.symeda.sormas.backend.sormastosormas.SormasToSormasShareInfo;
108108
import de.symeda.sormas.backend.sormastosormas.SormasToSormasShareInfoService;
109109
import de.symeda.sormas.backend.user.User;
@@ -169,7 +169,7 @@ public class SampleFacadeEjb implements SampleFacade {
169169
@EJB
170170
private EventJurisdictionChecker eventJurisdictionChecker;
171171
@EJB
172-
private SormasToSormasFacadeEjbLocal sormasToSormasFacade;
172+
private SormasToSormasOriginInfoFacadeEjbLocal originInfoFacade;
173173
@EJB
174174
private SormasToSormasShareInfoService sormasToSormasShareInfoService;
175175

@@ -789,7 +789,7 @@ public Sample fromDto(@NotNull SampleDto source) {
789789
target.setReportLatLonAccuracy(source.getReportLatLonAccuracy());
790790

791791
if (source.getSormasToSormasOriginInfo() != null) {
792-
target.setSormasToSormasOriginInfo(sormasToSormasFacade.fromSormasToSormasOriginInfoDto(source.getSormasToSormasOriginInfo()));
792+
target.setSormasToSormasOriginInfo(originInfoFacade.toDto(source.getSormasToSormasOriginInfo()));
793793
}
794794

795795
return target;
@@ -918,7 +918,7 @@ public static SampleDto toDto(Sample source) {
918918
target.setReportLon(source.getReportLon());
919919
target.setReportLatLonAccuracy(source.getReportLatLonAccuracy());
920920

921-
target.setSormasToSormasOriginInfo(SormasToSormasFacadeEjb.toSormasToSormasOriginInfoDto(source.getSormasToSormasOriginInfo()));
921+
target.setSormasToSormasOriginInfo(SormasToSormasOriginInfoFacadeEjb.toDto(source.getSormasToSormasOriginInfo()));
922922
target.setOwnershipHandedOver(source.getSormasToSormasShares().stream().anyMatch(SormasToSormasShareInfo::isOwnershipHandedOver));
923923

924924
return target;
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/*
2+
* SORMAS® - Surveillance Outbreak Response Management & Analysis System
3+
* Copyright © 2016-2020 Helmholtz-Zentrum für Infektionsforschung GmbH (HZI)
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation, either version 3 of the License, or
7+
* (at your option) any later version.
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
* You should have received a copy of the GNU General Public License
13+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
14+
*/
15+
16+
package de.symeda.sormas.backend.sormastosormas;
17+
18+
import java.io.Serializable;
19+
import java.util.List;
20+
21+
import de.symeda.sormas.api.caze.CaseDataDto;
22+
import de.symeda.sormas.api.person.PersonDto;
23+
import de.symeda.sormas.api.sormastosormas.SormasToSormasCaseDto;
24+
import de.symeda.sormas.api.sormastosormas.SormasToSormasOriginInfoDto;
25+
import de.symeda.sormas.api.sormastosormas.SormasToSormasSampleDto;
26+
27+
public class ProcessedCaseData implements Serializable {
28+
29+
private static final long serialVersionUID = -437052876440284140L;
30+
31+
private final PersonDto person;
32+
private final CaseDataDto caze;
33+
private final List<SormasToSormasCaseDto.AssociatedContactDto> associatedContacts;
34+
private final List<SormasToSormasSampleDto> samples;
35+
private final SormasToSormasOriginInfoDto originInfo;
36+
37+
public ProcessedCaseData(
38+
PersonDto person,
39+
CaseDataDto caze,
40+
List<SormasToSormasCaseDto.AssociatedContactDto> associatedContacts,
41+
List<SormasToSormasSampleDto> samples,
42+
SormasToSormasOriginInfoDto originInfo) {
43+
this.person = person;
44+
this.caze = caze;
45+
this.associatedContacts = associatedContacts;
46+
this.samples = samples;
47+
this.originInfo = originInfo;
48+
}
49+
50+
public PersonDto getPerson() {
51+
return person;
52+
}
53+
54+
public CaseDataDto getCaze() {
55+
return caze;
56+
}
57+
58+
public List<SormasToSormasCaseDto.AssociatedContactDto> getAssociatedContacts() {
59+
return associatedContacts;
60+
}
61+
62+
public List<SormasToSormasSampleDto> getSamples() {
63+
return samples;
64+
}
65+
66+
public SormasToSormasOriginInfoDto getOriginInfo() {
67+
return originInfo;
68+
}
69+
}

0 commit comments

Comments
 (0)