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

Commit 2676f34

Browse files
lgallgal
authored andcommitted
SORMAS-Foundation#3210 sormas to sormas transfer samples android
1 parent 94c23fc commit 2676f34

5 files changed

Lines changed: 50 additions & 2 deletions

File tree

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
137137
public static final String DATABASE_NAME = "sormas.db";
138138
// any time you make changes to your database objects, you may have to increase the database version
139139

140-
public static final int DATABASE_VERSION = 237;
140+
public static final int DATABASE_VERSION = 238;
141141

142142
private static DatabaseHelper instance = null;
143143

@@ -1705,6 +1705,12 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
17051705
currentVersion = 236;
17061706
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD COLUMN returningTraveler varchar(255);");
17071707

1708+
case 237:
1709+
currentVersion = 237;
1710+
getDao(Sample.class)
1711+
.executeRaw("ALTER TABLE samples ADD COLUMN sormasToSormasOriginInfo_id bigint REFERENCES sormasToSormasOriginInfo(id);");
1712+
getDao(Sample.class).executeRaw("ALTER TABLE samples ADD COLUMN ownershipHandedOver boolean;");
1713+
17081714
// ATTENTION: break should only be done after last version
17091715
break;
17101716
default:

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/contact/ContactDtoHelper.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,10 @@ public void fillInnerFromAdo(ContactDto target, Contact source) {
275275
target.setHealthConditions(null);
276276
}
277277

278+
if (source.getSormasToSormasOriginInfo() != null) {
279+
target.setSormasToSormasOriginInfo(sormasToSormasOriginInfoDtoHelper.adoToDto(source.getSormasToSormasOriginInfo()));
280+
}
281+
278282
target.setEndOfQuarantineReason(source.getEndOfQuarantineReason());
279283
target.setEndOfQuarantineReasonDetails(source.getEndOfQuarantineReasonDetails());
280284

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sample/Sample.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import de.symeda.sormas.app.backend.contact.Contact;
4747
import de.symeda.sormas.app.backend.event.EventParticipant;
4848
import de.symeda.sormas.app.backend.facility.Facility;
49+
import de.symeda.sormas.app.backend.sormastosormas.SormasToSormasOriginInfo;
4950
import de.symeda.sormas.app.backend.user.User;
5051
import de.symeda.sormas.app.util.DateFormatHelper;
5152

@@ -170,6 +171,11 @@ public class Sample extends PseudonymizableAdo {
170171
@Column(length = COLUMN_LENGTH_DEFAULT)
171172
private String requestedOtherAdditionalTests;
172173

174+
@DatabaseField(foreign = true, foreignAutoRefresh = true)
175+
private SormasToSormasOriginInfo sormasToSormasOriginInfo;
176+
@DatabaseField
177+
private boolean ownershipHandedOver;
178+
173179
public Case getAssociatedCase() {
174180
return associatedCase;
175181
}
@@ -509,4 +515,20 @@ public Float getReportLatLonAccuracy() {
509515
public void setReportLatLonAccuracy(Float reportLatLonAccuracy) {
510516
this.reportLatLonAccuracy = reportLatLonAccuracy;
511517
}
518+
519+
public SormasToSormasOriginInfo getSormasToSormasOriginInfo() {
520+
return sormasToSormasOriginInfo;
521+
}
522+
523+
public void setSormasToSormasOriginInfo(SormasToSormasOriginInfo sormasToSormasOriginInfo) {
524+
this.sormasToSormasOriginInfo = sormasToSormasOriginInfo;
525+
}
526+
527+
public boolean isOwnershipHandedOver() {
528+
return ownershipHandedOver;
529+
}
530+
531+
public void setOwnershipHandedOver(boolean ownershipHandedOver) {
532+
this.ownershipHandedOver = ownershipHandedOver;
533+
}
512534
}

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sample/SampleDtoHelper.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import de.symeda.sormas.app.backend.common.DatabaseHelper;
2727
import de.symeda.sormas.app.backend.facility.Facility;
2828
import de.symeda.sormas.app.backend.facility.FacilityDtoHelper;
29+
import de.symeda.sormas.app.backend.sormastosormas.SormasToSormasOriginInfoDtoHelper;
2930
import de.symeda.sormas.app.backend.user.User;
3031
import de.symeda.sormas.app.backend.user.UserDtoHelper;
3132
import de.symeda.sormas.app.rest.NoConnectionException;
@@ -34,6 +35,8 @@
3435

3536
public class SampleDtoHelper extends AdoDtoHelper<Sample, SampleDto> {
3637

38+
private SormasToSormasOriginInfoDtoHelper sormasToSormasOriginInfoDtoHelper = new SormasToSormasOriginInfoDtoHelper();
39+
3740
@Override
3841
protected Class<Sample> getAdoClass() {
3942
return Sample.class;
@@ -102,6 +105,10 @@ public void fillInnerFromDto(Sample target, SampleDto source) {
102105
target.setReportLon(source.getReportLon());
103106
target.setReportLatLonAccuracy(source.getReportLatLonAccuracy());
104107

108+
target.setSormasToSormasOriginInfo(
109+
sormasToSormasOriginInfoDtoHelper.fillOrCreateFromDto(target.getSormasToSormasOriginInfo(), source.getSormasToSormasOriginInfo()));
110+
target.setOwnershipHandedOver(source.isOwnershipHandedOver());
111+
105112
target.setPseudonymized(source.isPseudonymized());
106113
}
107114

@@ -163,6 +170,10 @@ public void fillInnerFromAdo(SampleDto target, Sample source) {
163170
target.setReportLon(source.getReportLon());
164171
target.setReportLatLonAccuracy(source.getReportLatLonAccuracy());
165172

173+
if (source.getSormasToSormasOriginInfo() != null) {
174+
target.setSormasToSormasOriginInfo(sormasToSormasOriginInfoDtoHelper.adoToDto(source.getSormasToSormasOriginInfo()));
175+
}
176+
166177
target.setPseudonymized(source.isPseudonymized());
167178
}
168179

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sample/SampleEditAuthorization.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ public class SampleEditAuthorization {
1111
public static boolean isSampleEditAllowed(Sample sample) {
1212
User user = ConfigProvider.getUser();
1313

14-
return SampleJurisdictionHelper.isInJurisdictionOrOwned(
14+
if (sample.getSormasToSormasOriginInfo() != null) {
15+
return sample.getSormasToSormasOriginInfo().isOwnershipHandedOver();
16+
}
17+
18+
return !sample.isOwnershipHandedOver()
19+
&& SampleJurisdictionHelper.isInJurisdictionOrOwned(
1520
UserRole.getJurisdictionLevel(user.getUserRoles()),
1621
JurisdictionHelper.createUserJurisdiction(user),
1722
JurisdictionHelper.createSampleJurisdictionDto(sample));

0 commit comments

Comments
 (0)