|
86 | 86 | import de.symeda.sormas.api.utils.Diseases.DiseasesConfiguration; |
87 | 87 | import de.symeda.sormas.api.utils.ExtendedReduced; |
88 | 88 | import de.symeda.sormas.api.utils.YesNoUnknown; |
| 89 | +import de.symeda.sormas.api.utils.fieldaccess.UiFieldAccessCheckers; |
89 | 90 | import de.symeda.sormas.api.utils.fieldvisibility.FieldVisibilityCheckers; |
| 91 | +import de.symeda.sormas.api.utils.fieldvisibility.checkers.CountryFieldVisibilityChecker; |
90 | 92 | import de.symeda.sormas.ui.ControllerProvider; |
91 | 93 | import de.symeda.sormas.ui.UiUtil; |
92 | 94 | import de.symeda.sormas.ui.clinicalcourse.HealthConditionsForm; |
@@ -465,8 +467,10 @@ protected void addFields() { |
465 | 467 | ComboBox vaccinationStatusCB = addField(ContactDto.VACCINATION_STATUS); |
466 | 468 | DateField vaccinationDose1DateDF = addField(ContactDto.VACCINATION_DOSE_ONE_DATE); |
467 | 469 | DateField vaccinationDose2DateDF = addField(ContactDto.VACCINATION_DOSE_TWO_DATE); |
468 | | - FieldHelper.setVisibleWhen(vaccinationStatusCB, Arrays.asList(vaccinationDose1DateDF), Arrays.asList(VaccinationStatus.VACCINATED_ONE_DOSE), true); |
469 | | - FieldHelper.setVisibleWhen(vaccinationStatusCB, Arrays.asList(vaccinationDose2DateDF), Arrays.asList(VaccinationStatus.VACCINATED_TWO_DOSE), true); |
| 470 | + FieldHelper |
| 471 | + .setVisibleWhen(vaccinationStatusCB, Arrays.asList(vaccinationDose1DateDF), Arrays.asList(VaccinationStatus.VACCINATED_ONE_DOSE), true); |
| 472 | + FieldHelper |
| 473 | + .setVisibleWhen(vaccinationStatusCB, Arrays.asList(vaccinationDose2DateDF), Arrays.asList(VaccinationStatus.VACCINATED_TWO_DOSE), true); |
470 | 474 | addField(ContactDto.VACCINATION_PROPOSED, CheckBox.class); |
471 | 475 | addField(ContactDto.IMMUNE_GLOBULIN_PROPOSED, CheckBox.class); |
472 | 476 | addField(ContactDto.RETURNING_TRAVELER, NullableOptionGroup.class); |
@@ -534,7 +538,13 @@ protected void addFields() { |
534 | 538 |
|
535 | 539 | cbDisease.addValueChangeListener(e -> updateDiseaseConfiguration((Disease) e.getProperty().getValue())); |
536 | 540 |
|
537 | | - HealthConditionsForm clinicalCourseForm = addField(ContactDto.HEALTH_CONDITIONS, HealthConditionsForm.class); |
| 541 | + HealthConditionsForm clinicalCourseForm = addField( |
| 542 | + ContactDto.HEALTH_CONDITIONS, |
| 543 | + new HealthConditionsForm( |
| 544 | + disease, |
| 545 | + FieldVisibilityCheckers.withDisease(disease) |
| 546 | + .add(new CountryFieldVisibilityChecker(FacadeProvider.getConfigFacade().getCountryLocale())), |
| 547 | + UiFieldAccessCheckers.getDefault(true, FacadeProvider.getConfigFacade().getCountryLocale()))); |
538 | 548 | clinicalCourseForm.setCaption(null); |
539 | 549 |
|
540 | 550 | Label generalCommentLabel = new Label(I18nProperties.getPrefixCaption(ContactDto.I18N_PREFIX, ContactDto.ADDITIONAL_DETAILS)); |
@@ -743,11 +753,8 @@ public String getFormattedHtmlMessage() { |
743 | 753 | ContactDto.PRESCRIBED_DRUG, |
744 | 754 | Collections.singletonList(Drug.OTHER), |
745 | 755 | true); |
746 | | - FieldHelper.setRequiredWhen( |
747 | | - getFieldGroup(), |
748 | | - ContactDto.PRESCRIBED_DRUG, |
749 | | - Arrays.asList(ContactDto.PRESCRIBED_DRUG_TEXT), |
750 | | - Arrays.asList(Drug.OTHER)); |
| 756 | + FieldHelper |
| 757 | + .setRequiredWhen(getFieldGroup(), ContactDto.PRESCRIBED_DRUG, Arrays.asList(ContactDto.PRESCRIBED_DRUG_TEXT), Arrays.asList(Drug.OTHER)); |
751 | 758 | } |
752 | 759 |
|
753 | 760 | private void updateContactOfficers() { |
@@ -893,17 +900,17 @@ private void updateDiseaseConfiguration(Disease disease) { |
893 | 900 |
|
894 | 901 | // For LUX measles cases do not require the follow-up details. For other countries works as it is |
895 | 902 | FieldHelper.setMultipleVisible( |
896 | | - getFieldGroup(), |
897 | | - Arrays.asList( |
898 | | - ContactDto.FOLLOW_UP_STATUS, |
899 | | - ContactDto.FOLLOW_UP_STATUS_CHANGE_DATE, |
900 | | - ContactDto.FOLLOW_UP_STATUS_CHANGE_USER, |
901 | | - ContactDto.FOLLOW_UP_COMMENT, |
902 | | - ContactDto.FOLLOW_UP_UNTIL, |
903 | | - ContactDto.CONTACT_OFFICER, |
904 | | - ContactDto.OVERWRITE_FOLLOW_UP_UNTIL), |
905 | | - field -> !isLuxMeasles(disease), |
906 | | - field -> false); |
| 903 | + getFieldGroup(), |
| 904 | + Arrays.asList( |
| 905 | + ContactDto.FOLLOW_UP_STATUS, |
| 906 | + ContactDto.FOLLOW_UP_STATUS_CHANGE_DATE, |
| 907 | + ContactDto.FOLLOW_UP_STATUS_CHANGE_USER, |
| 908 | + ContactDto.FOLLOW_UP_COMMENT, |
| 909 | + ContactDto.FOLLOW_UP_UNTIL, |
| 910 | + ContactDto.CONTACT_OFFICER, |
| 911 | + ContactDto.OVERWRITE_FOLLOW_UP_UNTIL), |
| 912 | + field -> !isLuxMeasles(disease), |
| 913 | + field -> false); |
907 | 914 |
|
908 | 915 | FieldHelper.updateEnumData( |
909 | 916 | contactProximity, |
|
0 commit comments