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

Commit 943f8b7

Browse files
author
barnabartha
committed
SORMAS-Foundation#3152 - do not show symptom group if no symptom within it is visible + fix app compiling
1 parent 8e64da4 commit 943f8b7

2 files changed

Lines changed: 34 additions & 26 deletions

File tree

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/SymptomsDtoHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public void fillInnerFromDto(Symptoms target, SymptomsDto source) {
104104
target.setSymptomsComments(source.getSymptomsComments());
105105
target.setTemperature(source.getTemperature());
106106
target.setTemperatureSource(source.getTemperatureSource());
107-
target.setThrobocytopenia(source.getThrobocytopenia());
107+
target.setThrobocytopenia(source.getThrombocytopenia());
108108
target.setUnexplainedBleeding(source.getUnexplainedBleeding());
109109
target.setVomiting(source.getVomiting());
110110
target.setBackache(source.getBackache());
@@ -290,7 +290,7 @@ public void fillInnerFromAdo(SymptomsDto target, Symptoms source) {
290290
target.setSymptomsComments(source.getSymptomsComments());
291291
target.setTemperature(source.getTemperature());
292292
target.setTemperatureSource(source.getTemperatureSource());
293-
target.setThrobocytopenia(source.getThrobocytopenia());
293+
target.setThrombocytopenia(source.getThrobocytopenia());
294294
target.setUnexplainedBleeding(source.getUnexplainedBleeding());
295295
target.setVomiting(source.getVomiting());
296296
target.setBackache(source.getBackache());

sormas-ui/src/main/java/de/symeda/sormas/ui/symptoms/SymptomsForm.java

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@
3434
import java.util.ArrayList;
3535
import java.util.Arrays;
3636
import java.util.Comparator;
37+
import java.util.HashMap;
3738
import java.util.List;
39+
import java.util.Map;
40+
import java.util.Optional;
3841
import java.util.Set;
3942
import java.util.function.Predicate;
4043
import java.util.stream.Collectors;
@@ -45,6 +48,7 @@
4548
import com.vaadin.shared.ui.MarginInfo;
4649
import com.vaadin.ui.Alignment;
4750
import com.vaadin.ui.Button;
51+
import com.vaadin.ui.Component;
4852
import com.vaadin.ui.HorizontalLayout;
4953
import com.vaadin.ui.Image;
5054
import com.vaadin.ui.Label;
@@ -113,6 +117,8 @@ public class SymptomsForm extends AbstractEditForm<SymptomsDto> {
113117
private static final String SYMPTOMS_HINT_LOC = "symptomsHintLoc";
114118
private static final String COMPLICATIONS_HEADING = "complicationsHeading";
115119

120+
private static Map<String, List<String>> symptomGroupMap = new HashMap();
121+
116122
//@formatter:off
117123
private static final String HTML_LAYOUT =
118124
loc(CLINICAL_MEASUREMENTS_HEADING_LOC) +
@@ -124,22 +130,14 @@ public class SymptomsForm extends AbstractEditForm<SymptomsDto> {
124130
//XXX #1620 fluidColumnLoc?
125131
fluidColumn(8, 0, loc(SYMPTOMS_HINT_LOC))) +
126132
fluidRow(fluidColumn(8,4, locCss(CssStyles.ALIGN_RIGHT,BUTTONS_LOC)))+
127-
loc(GENERAL_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
128-
createSymptomGroupLayout(SymptomGroup.GENERAL) +
129-
loc(RESPIRATORY_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
130-
createSymptomGroupLayout(SymptomGroup.RESPIRATORY) +
131-
loc(CARDIOVASCULAR_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
132-
createSymptomGroupLayout(SymptomGroup.CARDIOVASCULAR) +
133-
loc(GASTROINTESTINAL_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
134-
createSymptomGroupLayout(SymptomGroup.GASTROINTESTINAL) +
135-
loc(URINARY_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
136-
createSymptomGroupLayout(SymptomGroup.URINARY) +
137-
loc(NERVOUS_SYSTEM_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
138-
createSymptomGroupLayout(SymptomGroup.NERVOUS_SYSTEM) +
139-
loc(SKIN_SIGNS_AND_SYMPTOMS_HEADING_LOC ) +
140-
createSymptomGroupLayout(SymptomGroup.SKIN) +
141-
loc(OTHER_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
142-
createSymptomGroupLayout(SymptomGroup.OTHER) +
133+
createSymptomGroupLayout(SymptomGroup.GENERAL, GENERAL_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
134+
createSymptomGroupLayout(SymptomGroup.RESPIRATORY, RESPIRATORY_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
135+
createSymptomGroupLayout(SymptomGroup.CARDIOVASCULAR, CARDIOVASCULAR_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
136+
createSymptomGroupLayout(SymptomGroup.GASTROINTESTINAL, GASTROINTESTINAL_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
137+
createSymptomGroupLayout(SymptomGroup.URINARY, URINARY_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
138+
createSymptomGroupLayout(SymptomGroup.NERVOUS_SYSTEM, NERVOUS_SYSTEM_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
139+
createSymptomGroupLayout(SymptomGroup.SKIN, SKIN_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
140+
createSymptomGroupLayout(SymptomGroup.OTHER, OTHER_SIGNS_AND_SYMPTOMS_HEADING_LOC) +
143141
locsCss(VSPACE_3, PATIENT_ILL_LOCATION, SYMPTOMS_COMMENTS) +
144142
fluidRowLocsCss(VSPACE_3, ONSET_SYMPTOM, ONSET_DATE) +
145143
loc(COMPLICATIONS_HEADING) +
@@ -155,7 +153,7 @@ public class SymptomsForm extends AbstractEditForm<SymptomsDto> {
155153
);
156154
//@formatter:on
157155

158-
private static String createSymptomGroupLayout(SymptomGroup symptomGroup) {
156+
private static String createSymptomGroupLayout(SymptomGroup symptomGroup, String loc) {
159157

160158
final Predicate<java.lang.reflect.Field> groupSymptoms =
161159
field -> field.isAnnotationPresent(SymptomGrouping.class) && field.getAnnotation(SymptomGrouping.class).value() == symptomGroup;
@@ -165,12 +163,13 @@ private static String createSymptomGroupLayout(SymptomGroup symptomGroup) {
165163
.sorted(Comparator.comparing(fieldName -> I18nProperties.getPrefixCaption(I18N_PREFIX, fieldName)))
166164
.collect(Collectors.toList());
167165

168-
return fluidRow(
166+
symptomGroupMap.put(loc, symptomLocations);
167+
168+
return loc(loc) + fluidRow(
169169
fluidColumn(6, -1, locsCss(VSPACE_3, new ArrayList<>(symptomLocations.subList(0, symptomLocations.size() / 2)))),
170170
fluidColumn(6, 0, locsCss(VSPACE_3, new ArrayList<>(symptomLocations.subList(symptomLocations.size() / 2, symptomLocations.size())))));
171171
}
172172

173-
174173
private final CaseDataDto caze;
175174
private final Disease disease;
176175
private final PersonDto person;
@@ -718,6 +717,14 @@ protected void addFields() {
718717
getFieldGroup().getField(PATIENT_ILL_LOCATION).setVisible(false);
719718
}
720719

720+
symptomGroupMap.forEach((location, strings) -> {
721+
final Component groupLabel = getContent().getComponent(location);
722+
final Optional<String> groupHasVisibleSymptom = strings.stream().filter(s -> getFieldGroup().getField(s).isVisible()).findAny();
723+
if (!groupHasVisibleSymptom.isPresent()) {
724+
groupLabel.setVisible(false);
725+
}
726+
});
727+
721728
if (isEditableAllowed(OTHER_HEMORRHAGIC_SYMPTOMS_TEXT)) {
722729
FieldHelper.setRequiredWhen(
723730
getFieldGroup(),
@@ -788,11 +795,12 @@ protected void addFields() {
788795
getContent().addComponent(buttonsLayout, BUTTONS_LOC);
789796
}
790797

791-
private Label createLabel(String text, String h4, String generalSignsAndSymptomsHeadingLoc) {
792-
final Label generalSymptomsHeadingLabel = new Label(text);
793-
generalSymptomsHeadingLabel.addStyleName(h4);
794-
getContent().addComponent(generalSymptomsHeadingLabel, generalSignsAndSymptomsHeadingLoc);
795-
return generalSymptomsHeadingLabel;
798+
private Label createLabel(String text, String h4, String location) {
799+
final Label label = new Label(text);
800+
label.setId(text);
801+
label.addStyleName(h4);
802+
getContent().addComponent(label, location);
803+
return label;
796804
}
797805

798806
@Override

0 commit comments

Comments
 (0)