Skip to content

Commit 5f89986

Browse files
Merge pull request #13627 from SORMAS-Foundation/feature-13602-giardiasis-case-based-surveillance
Minor issue fixes
2 parents 4852720 + d8d397c commit 5f89986

File tree

7 files changed

+80
-6
lines changed

7 files changed

+80
-6
lines changed

sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import de.symeda.sormas.api.exposure.ModeOfTransmission;
3333
import de.symeda.sormas.api.feature.FeatureType;
3434
import de.symeda.sormas.api.i18n.Validations;
35+
import de.symeda.sormas.api.infrastructure.country.CountryReferenceDto;
3536
import de.symeda.sormas.api.utils.DataHelper;
3637
import de.symeda.sormas.api.utils.DependingOnFeatureType;
3738
import de.symeda.sormas.api.utils.Diseases;
@@ -65,17 +66,22 @@ public class EpiDataDto extends PseudonymizableDto {
6566
public static final String MODE_OF_TRANSMISSION_TYPE = "modeOfTransmissionType";
6667
public static final String INFECTION_SOURCE = "infectionSource";
6768
public static final String INFECTION_SOURCE_TEXT = "infectionSourceText";
69+
public static final String IMPORTED_CASE = "importedCase";
70+
public static final String COUNTRY = "country";
6871

6972
private YesNoUnknown exposureDetailsKnown;
7073
private YesNoUnknown activityAsCaseDetailsKnown;
7174
private YesNoUnknown contactWithSourceCaseKnown;
7275
private YesNoUnknown highTransmissionRiskArea;
7376
private YesNoUnknown largeOutbreaksArea;
7477
@Diseases({
75-
Disease.MEASLES,
76-
Disease.GIARDIASIS })
78+
Disease.MEASLES })
7779
private CaseImportedStatus caseImportedStatus;
7880

81+
@Diseases({
82+
Disease.GIARDIASIS })
83+
private YesNoUnknown importedCase;
84+
7985
@HideForCountriesExcept(countries = {
8086
CountryHelper.COUNTRY_CODE_LUXEMBOURG })
8187
@Diseases({
@@ -124,6 +130,10 @@ public class EpiDataDto extends PseudonymizableDto {
124130
Disease.CRYPTOSPORIDIOSIS })
125131
private String infectionSourceText;
126132

133+
@Diseases({
134+
Disease.GIARDIASIS })
135+
private CountryReferenceDto country;
136+
127137
@Valid
128138
private List<ExposureDto> exposures = new ArrayList<>();
129139

@@ -267,6 +277,22 @@ public void setModeOfTransmissionType(String modeOfTransmissionType) {
267277
this.modeOfTransmissionType = modeOfTransmissionType;
268278
}
269279

280+
public YesNoUnknown getImportedCase() {
281+
return importedCase;
282+
}
283+
284+
public void setImportedCase(YesNoUnknown importedCase) {
285+
this.importedCase = importedCase;
286+
}
287+
288+
public CountryReferenceDto getCountry() {
289+
return country;
290+
}
291+
292+
public void setCountry(CountryReferenceDto country) {
293+
this.country = country;
294+
}
295+
270296
@Override
271297
public EpiDataDto clone() throws CloneNotSupportedException {
272298
EpiDataDto clone = (EpiDataDto) super.clone();

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1566,9 +1566,11 @@ public interface Captions {
15661566
String EpiData_clusterType = "EpiData.clusterType";
15671567
String EpiData_clusterTypeText = "EpiData.clusterTypeText";
15681568
String EpiData_contactWithSourceCaseKnown = "EpiData.contactWithSourceCaseKnown";
1569+
String EpiData_country = "EpiData.country";
15691570
String EpiData_exposureDetailsKnown = "EpiData.exposureDetailsKnown";
15701571
String EpiData_exposures = "EpiData.exposures";
15711572
String EpiData_highTransmissionRiskArea = "EpiData.highTransmissionRiskArea";
1573+
String EpiData_importedCase = "EpiData.importedCase";
15721574
String EpiData_infectionSource = "EpiData.infectionSource";
15731575
String EpiData_infectionSourceText = "EpiData.infectionSourceText";
15741576
String EpiData_largeOutbreaksArea = "EpiData.largeOutbreaksArea";

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,6 +1153,8 @@ EpiData.modeOfTransmission=Mode of transmission
11531153
EpiData.modeOfTransmissionType= Specify mode of transmission
11541154
EpiData.infectionSource= Suspected vehicle or source of infection
11551155
EpiData.infectionSourceText= Specify source of infection
1156+
EpiData.importedCase= Imported Case
1157+
EpiData.country= Country of contamination
11561158
#Therapy
11571159
Therapy.directlyObservedTreatment = Directly observed treatment
11581160
Therapy.mdrXdrTuberculosis = MDR/XDR tuberculosis

sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiData.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import javax.persistence.Entity;
2727
import javax.persistence.EnumType;
2828
import javax.persistence.Enumerated;
29+
import javax.persistence.FetchType;
30+
import javax.persistence.ManyToOne;
2931
import javax.persistence.OneToMany;
3032

3133
import de.symeda.sormas.api.epidata.CaseImportedStatus;
@@ -37,6 +39,7 @@
3739
import de.symeda.sormas.backend.common.AbstractDomainObject;
3840
import de.symeda.sormas.backend.common.NotExposedToApi;
3941
import de.symeda.sormas.backend.exposure.Exposure;
42+
import de.symeda.sormas.backend.infrastructure.country.Country;
4043

4144
@Entity
4245
public class EpiData extends AbstractDomainObject {
@@ -56,6 +59,7 @@ public class EpiData extends AbstractDomainObject {
5659
private YesNoUnknown largeOutbreaksArea;
5760
private YesNoUnknown areaInfectedAnimals;
5861

62+
private YesNoUnknown importedCase;
5963
private CaseImportedStatus caseImportedStatus;
6064
private ClusterType clusterType;
6165
private String clusterTypeText;
@@ -67,6 +71,8 @@ public class EpiData extends AbstractDomainObject {
6771
private ModeOfTransmission modeOfTransmission;
6872
private String modeOfTransmissionType;
6973

74+
private Country country;
75+
7076
private List<Exposure> exposures = new ArrayList<>();
7177
private List<ActivityAsCase> activitiesAsCase = new ArrayList<>();
7278
@NotExposedToApi
@@ -223,4 +229,22 @@ public String getInfectionSourceText() {
223229
public void setInfectionSourceText(String infectionSourceText) {
224230
this.infectionSourceText = infectionSourceText;
225231
}
232+
233+
@Enumerated(EnumType.STRING)
234+
public YesNoUnknown getImportedCase() {
235+
return importedCase;
236+
}
237+
238+
public void setImportedCase(YesNoUnknown importedCase) {
239+
this.importedCase = importedCase;
240+
}
241+
242+
@ManyToOne(fetch = FetchType.LAZY)
243+
public Country getCountry() {
244+
return country;
245+
}
246+
247+
public void setCountry(Country country) {
248+
this.country = country;
249+
}
226250
}

sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiDataFacadeEjb.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
import de.symeda.sormas.backend.contact.ContactService;
4040
import de.symeda.sormas.backend.exposure.Exposure;
4141
import de.symeda.sormas.backend.exposure.ExposureService;
42+
import de.symeda.sormas.backend.infrastructure.country.CountryFacadeEjb;
43+
import de.symeda.sormas.backend.infrastructure.country.CountryService;
4244
import de.symeda.sormas.backend.location.LocationFacadeEjb;
4345
import de.symeda.sormas.backend.location.LocationFacadeEjb.LocationFacadeEjbLocal;
4446
import de.symeda.sormas.backend.user.UserFacadeEjb;
@@ -58,6 +60,8 @@ public class EpiDataFacadeEjb implements EpiDataFacade {
5860
private ContactService contactService;
5961
@EJB
6062
private UserService userService;
63+
@EJB
64+
private CountryService countryService;
6165

6266
public EpiData fillOrBuildEntity(EpiDataDto source, EpiData target, boolean checkChangeDate) {
6367
if (source == null) {
@@ -108,6 +112,8 @@ public EpiData fillOrBuildEntity(EpiDataDto source, EpiData target, boolean chec
108112
target.setModeOfTransmissionType(source.getModeOfTransmissionType());
109113
target.setInfectionSource(source.getInfectionSource());
110114
target.setInfectionSourceText(source.getInfectionSourceText());
115+
target.setCountry(countryService.getByReferenceDto(source.getCountry()));
116+
target.setImportedCase(source.getImportedCase());
111117

112118
return target;
113119
}
@@ -272,7 +278,8 @@ public static EpiDataDto toDto(EpiData epiData) {
272278
target.setModeOfTransmissionType(source.getModeOfTransmissionType());
273279
target.setInfectionSource(source.getInfectionSource());
274280
target.setInfectionSourceText(source.getInfectionSourceText());
275-
281+
target.setCountry(CountryFacadeEjb.toReferenceDto(source.getCountry()));
282+
target.setImportedCase(source.getImportedCase());
276283
return target;
277284
}
278285

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14665,6 +14665,7 @@ alter table symptoms add column if not exists symptomCurrentStatus varchar(255);
1466514665
alter table symptoms add column if not exists durationOfSymptoms integer;
1466614666
alter table symptoms add column if not exists overnightStayRequired varchar(255);
1466714667
alter table symptoms add column if not exists bloating varchar(255);
14668+
ALTER TABLE symptoms ALTER COLUMN weightlossamount TYPE float4 USING weightlossamount::float4;
1466814669
alter table exposures add column if not exists travelAccommodation varchar(255);
1466914670
alter table exposures add column if not exists travelAccommodationType varchar(255);
1467014671
alter table exposures add column if not exists swimmingLocation varchar(255);
@@ -14677,11 +14678,12 @@ alter table exposures add column if not exists rawfoodcontact varchar(255);
1467714678
alter table exposures add column if not exists rawfoodcontacttext varchar(255);
1467814679
alter table exposures add column if not exists symptomaticindividualtext varchar(255);
1467914680
ALTER TABLE hospitalization ADD COLUMN IF NOT EXISTS durationOfHospitalization integer;
14680-
1468114681
alter table epidata add column if not exists modeOfTransmission varchar(255);
1468214682
alter table epidata add column if not exists modeOfTransmissionType varchar(255);
1468314683
alter table epidata add column if not exists infectionSource varchar(255);
1468414684
alter table epidata add column if not exists infectionSourcetext varchar(255);
14685+
alter table epidata add column if not exists importedCase varchar(255);
14686+
alter table epidata add column if not exists country_id bigint;
1468514687
ALTER TABLE person ADD COLUMN IF NOT EXISTS workplace varchar(255);
1468614688
ALTER TABLE person ADD COLUMN IF NOT EXISTS workplacetext varchar(255);
1468714689

@@ -14693,6 +14695,7 @@ alter table symptoms_history add column if not exists symptomCurrentStatus varch
1469314695
alter table symptoms_history add column if not exists durationOfSymptoms integer;
1469414696
alter table symptoms_history add column if not exists overnightStayRequired varchar(255);
1469514697
alter table symptoms_history add column if not exists bloating varchar(255);
14698+
ALTER TABLE symptoms_history ALTER COLUMN weightlossamount TYPE float4 USING weightlossamount::float4;
1469614699
alter table exposures_history add column if not exists travelAccommodation varchar(255);
1469714700
alter table exposures_history add column if not exists travelAccommodationType varchar(255);
1469814701
alter table exposures_history add column if not exists swimmingLocation varchar(255);
@@ -14705,6 +14708,8 @@ alter table epidata_history add column if not exists modeOfTransmission varchar(
1470514708
alter table epidata_history add column if not exists modeOfTransmissionType varchar(255);
1470614709
alter table epidata_history add column if not exists infectionSource varchar(255);
1470714710
alter table epidata_history add column if not exists infectionSourcetext varchar(255);
14711+
alter table epidata_history add column if not exists importedCase varchar(255);
14712+
alter table epidata_history add column if not exists country_id bigint;
1470814713
alter table exposures_history add column if not exists rawfoodcontact varchar(255);
1470914714
alter table exposures_history add column if not exists rawfoodcontacttext varchar(255);
1471014715
alter table exposures_history add column if not exists symptomaticindividualtext varchar(255);

sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.apache.commons.collections4.CollectionUtils;
3535

3636
import com.vaadin.shared.ui.ContentMode;
37+
import com.vaadin.v7.ui.ComboBox;
3738
import com.vaadin.v7.ui.Field;
3839
import com.vaadin.v7.ui.TextField;
3940

@@ -50,6 +51,7 @@
5051
import de.symeda.sormas.api.exposure.ModeOfTransmission;
5152
import de.symeda.sormas.api.i18n.I18nProperties;
5253
import de.symeda.sormas.api.i18n.Strings;
54+
import de.symeda.sormas.api.infrastructure.country.CountryReferenceDto;
5355
import de.symeda.sormas.api.utils.YesNoUnknown;
5456
import de.symeda.sormas.api.utils.fieldaccess.UiFieldAccessCheckers;
5557
import de.symeda.sormas.api.utils.fieldvisibility.FieldVisibilityCheckers;
@@ -80,6 +82,7 @@ public class EpiDataForm extends AbstractEditForm<EpiDataDto> {
8082
loc(EpiDataDto.EXPOSURES) +
8183
loc(LOC_CONCLUSION_HEADING) +
8284
fluidRowLocs(6,EpiDataDto.CASE_IMPORTED_STATUS,6,"") +
85+
fluidRowLocs(6, EpiDataDto.IMPORTED_CASE, 6, EpiDataDto.COUNTRY)+
8386
fluidRowLocs(EpiDataDto.MODE_OF_TRANSMISSION, EpiDataDto.MODE_OF_TRANSMISSION_TYPE) +
8487
fluidRowLocs(EpiDataDto.INFECTION_SOURCE, EpiDataDto.INFECTION_SOURCE_TEXT) +
8588
loc(LOC_ACTIVITY_AS_CASE_INVESTIGATION_HEADING) +
@@ -169,11 +172,15 @@ protected void addFields() {
169172
addField(EpiDataDto.MODE_OF_TRANSMISSION_TYPE);
170173
addField(EpiDataDto.INFECTION_SOURCE);
171174
addField(EpiDataDto.INFECTION_SOURCE_TEXT);
175+
addField(EpiDataDto.IMPORTED_CASE, NullableOptionGroup.class);
176+
List<CountryReferenceDto> countries = FacadeProvider.getCountryFacade().getAllActiveAsReference();
177+
ComboBox country = addInfrastructureField(EpiDataDto.COUNTRY);
178+
country.addItems(countries);
172179

173-
TextField clustorTypeTF = addField(EpiDataDto.CLUSTER_TYPE_TEXT);
180+
TextField clusterTypeTF = addField(EpiDataDto.CLUSTER_TYPE_TEXT);
174181
FieldHelper
175182
.setVisibleWhen(getFieldGroup(), EpiDataDto.CLUSTER_TYPE, EpiDataDto.CLUSTER_RELATED, Collections.singletonList(Boolean.TRUE), true);
176-
FieldHelper.setVisibleWhen(getField(EpiDataDto.CLUSTER_TYPE), Arrays.asList(clustorTypeTF), Arrays.asList(ClusterType.OTHER), true);
183+
FieldHelper.setVisibleWhen(getField(EpiDataDto.CLUSTER_TYPE), Arrays.asList(clusterTypeTF), Arrays.asList(ClusterType.OTHER), true);
177184
FieldHelper.setVisibleWhen(
178185
getFieldGroup(),
179186
EpiDataDto.EXPOSURES,
@@ -183,6 +190,7 @@ protected void addFields() {
183190
FieldHelper
184191
.setVisibleWhen(getFieldGroup(), EpiDataDto.MODE_OF_TRANSMISSION_TYPE, EpiDataDto.MODE_OF_TRANSMISSION, ModeOfTransmission.OTHER, true);
185192
FieldHelper.setVisibleWhen(getFieldGroup(), EpiDataDto.INFECTION_SOURCE_TEXT, EpiDataDto.INFECTION_SOURCE, InfectionSource.OTHER, true);
193+
FieldHelper.setVisibleWhen(getFieldGroup(), EpiDataDto.COUNTRY, EpiDataDto.IMPORTED_CASE, YesNoUnknown.YES, true);
186194
initializeVisibilitiesAndAllowedVisibilities();
187195
initializeAccessAndAllowedAccesses();
188196

0 commit comments

Comments
 (0)