diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/Case.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/Case.java
index b8411b1aa58..562f2c29b5a 100644
--- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/Case.java
+++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/Case.java
@@ -563,6 +563,8 @@ public class Case extends PseudonymizableAdo {
private Region regionOfResidence;
@DatabaseField(foreign = true, foreignAutoRefresh = true)
private District districtOfResidence;
+ @Column(length = CHARACTER_LIMIT_DEFAULT)
+ private String investigationOfficerAddress;
public boolean isUnreferredPortHealthCase() {
return caseOrigin == CaseOrigin.POINT_OF_ENTRY && healthFacility == null;
@@ -2011,5 +2013,10 @@ public District getDistrictOfResidence() {
public void setDistrictOfResidence(District districtOfResidence) {
this.districtOfResidence = districtOfResidence;
}
+ public String getInvestigationOfficerAddress() {return investigationOfficerAddress;}
+
+ public void setInvestigationOfficerAddress(String investigationOfficerAddress) {
+ this.investigationOfficerAddress = investigationOfficerAddress;
+ }
}
diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/CaseDtoHelper.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/CaseDtoHelper.java
index 981c19a39e2..ab465180fd4 100644
--- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/CaseDtoHelper.java
+++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/CaseDtoHelper.java
@@ -312,6 +312,7 @@ public void fillInnerFromDto(Case target, CaseDataDto source) {
target.setOccupation(source.getOccupation());
target.setRegionOfResidence(DatabaseHelper.getRegionDao().getByReferenceDto(source.getRegionOfResidence()));
target.setDistrictOfResidence(DatabaseHelper.getDistrictDao().getByReferenceDto(source.getDistrictOfResidence()));
+ target.setInvestigationOfficerAddress(source.getInvestigationOfficerAddress());
if (source.getDisease() == Disease.MONKEYPOX) {
if (source.getHospitalization() != null) {
@@ -677,6 +678,7 @@ public void fillInnerFromAdo(CaseDataDto target, Case source) {
target.setNationality(source.getNationality());
target.setEthnicity(source.getEthnicity());
target.setOccupation(source.getOccupation());
+ target.setInvestigationOfficerAddress(source.getInvestigationOfficerAddress());
if (source.getRegionOfResidence() != null) {
Region regionOfResidence = DatabaseHelper.getRegionDao().queryForId(source.getRegionOfResidence().getId());
diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java
index e5f80104532..407d0c32669 100644
--- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java
+++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java
@@ -4305,6 +4305,7 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN nationality varchar(255);");
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN ethnicity varchar(255);");
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN occupation varchar(255);");
+ getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN investigationOfficerAddress varchar(255);");
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN regionOfResidence_id bigint REFERENCES region(id);");
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN districtOfResidence_id bigint REFERENCES district(id);");
diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/edit/CaseEditFragment.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/edit/CaseEditFragment.java
index 3e80f363e34..0f59eda427a 100644
--- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/edit/CaseEditFragment.java
+++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/edit/CaseEditFragment.java
@@ -742,6 +742,9 @@ public void onChange(ControlPropertyField field) {
if (record.getDisease() == Disease.YELLOW_FEVER){
handleYellowFever();
}
+ if (record.getDisease() == Disease.MONKEYPOX){
+ handleMpox();
+ }
}
private void fillConfirmedCaseClassificationCombo() {
@@ -929,6 +932,13 @@ private void handleYellowFever() {
}
+ private void handleMpox(){
+ getContentBinding().caseDataReportingOfficerName.setCaption("Name");
+ getContentBinding().caseDataReportingOfficerTitle.setCaption("Job Title");
+ getContentBinding().caseDataReportingOfficerEmail.setCaption("Email Address");
+ getContentBinding().caseDataReportingOfficerContactPhone.setCaption("Contact Number");
+ }
+
private void handleNNT() {
FragmentCaseEditLayoutBinding contentBinding = getContentBinding();
YesNoUnknown caseDataMotherHaveCard = contentBinding.caseDataMotherHaveCard != null ? (YesNoUnknown) contentBinding.caseDataMotherHaveCard.getValue() : null;
diff --git a/sormas-app/app/src/main/res/layout/fragment_case_edit_layout.xml b/sormas-app/app/src/main/res/layout/fragment_case_edit_layout.xml
index dd549080735..dbae993b99b 100644
--- a/sormas-app/app/src/main/res/layout/fragment_case_edit_layout.xml
+++ b/sormas-app/app/src/main/res/layout/fragment_case_edit_layout.xml
@@ -1328,6 +1328,190 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+