Skip to content

Commit cc60f93

Browse files
authored
Merge pull request #13735 from SORMAS-Foundation/bugfixes-13713-13711-13704-13726
release bug fixes #13713, #13704, #13726
2 parents d7f73f6 + 6dffe66 commit cc60f93

File tree

3 files changed

+78
-48
lines changed

3 files changed

+78
-48
lines changed

sormas-api/src/main/java/de/symeda/sormas/api/therapy/DrugSusceptibilityDto.java

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ public class DrugSusceptibilityDto extends PseudonymizableDto {
6868
public static final String ERYTHROMYCIN_MIC = "erythromycinMic";
6969
public static final String ERYTHROMYCIN_SUSCEPTIBILITY = "erythromycinSusceptibility";
7070

71-
7271
@Diseases(value = {
7372
Disease.TUBERCULOSIS })
7473
@ApplicableToPathogenTests(value = {
@@ -100,12 +99,14 @@ public class DrugSusceptibilityDto extends PseudonymizableDto {
10099
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
101100
private DrugSusceptibilityType capreomycinSusceptibility;
102101
@Diseases(value = {
103-
Disease.TUBERCULOSIS, Disease.INVASIVE_MENINGOCOCCAL_INFECTION })
102+
Disease.TUBERCULOSIS,
103+
Disease.INVASIVE_MENINGOCOCCAL_INFECTION })
104104
@ApplicableToPathogenTests(value = {
105105
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
106106
private Float ciprofloxacinMic;
107107
@Diseases(value = {
108-
Disease.TUBERCULOSIS, Disease.INVASIVE_MENINGOCOCCAL_INFECTION })
108+
Disease.TUBERCULOSIS,
109+
Disease.INVASIVE_MENINGOCOCCAL_INFECTION })
109110
@ApplicableToPathogenTests(value = {
110111
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
111112
private DrugSusceptibilityType ciprofloxacinSusceptibility;
@@ -142,14 +143,12 @@ public class DrugSusceptibilityDto extends PseudonymizableDto {
142143
@Diseases(value = {
143144
Disease.TUBERCULOSIS })
144145
@ApplicableToPathogenTests(value = {
145-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY,
146-
PathogenTestType.PCR_RT_PCR })
146+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
147147
private Float isoniazidMic;
148148
@Diseases(value = {
149149
Disease.TUBERCULOSIS })
150150
@ApplicableToPathogenTests(value = {
151-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY,
152-
PathogenTestType.PCR_RT_PCR })
151+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
153152
private DrugSusceptibilityType isoniazidSusceptibility;
154153
@Diseases(value = {
155154
Disease.TUBERCULOSIS })
@@ -192,16 +191,16 @@ public class DrugSusceptibilityDto extends PseudonymizableDto {
192191
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
193192
private DrugSusceptibilityType ofloxacinSusceptibility;
194193
@Diseases(value = {
195-
Disease.TUBERCULOSIS, Disease.INVASIVE_MENINGOCOCCAL_INFECTION })
194+
Disease.TUBERCULOSIS,
195+
Disease.INVASIVE_MENINGOCOCCAL_INFECTION })
196196
@ApplicableToPathogenTests(value = {
197-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY,
198-
PathogenTestType.PCR_RT_PCR })
197+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
199198
private Float rifampicinMic;
200199
@Diseases(value = {
201-
Disease.TUBERCULOSIS, Disease.INVASIVE_MENINGOCOCCAL_INFECTION })
200+
Disease.TUBERCULOSIS,
201+
Disease.INVASIVE_MENINGOCOCCAL_INFECTION })
202202
@ApplicableToPathogenTests(value = {
203-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY,
204-
PathogenTestType.PCR_RT_PCR })
203+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
205204
private DrugSusceptibilityType rifampicinSusceptibility;
206205
@Diseases(value = {
207206
Disease.TUBERCULOSIS })
@@ -215,36 +214,40 @@ public class DrugSusceptibilityDto extends PseudonymizableDto {
215214
private DrugSusceptibilityType streptomycinSusceptibility;
216215

217216
@Diseases(value = {
218-
Disease.INVASIVE_MENINGOCOCCAL_INFECTION, Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
217+
Disease.INVASIVE_MENINGOCOCCAL_INFECTION,
218+
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
219219
@ApplicableToPathogenTests(value = {
220-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
220+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
221221
private Float ceftriaxoneMic;
222222
@Diseases(value = {
223-
Disease.INVASIVE_MENINGOCOCCAL_INFECTION, Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
223+
Disease.INVASIVE_MENINGOCOCCAL_INFECTION,
224+
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
224225
@ApplicableToPathogenTests(value = {
225-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
226+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
226227
private DrugSusceptibilityType ceftriaxoneSusceptibility;
227228

228229
@Diseases(value = {
229-
Disease.INVASIVE_MENINGOCOCCAL_INFECTION, Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
230+
Disease.INVASIVE_MENINGOCOCCAL_INFECTION,
231+
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
230232
@ApplicableToPathogenTests(value = {
231-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
233+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
232234
private Float penicillinMic;
233235
@Diseases(value = {
234-
Disease.INVASIVE_MENINGOCOCCAL_INFECTION, Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
236+
Disease.INVASIVE_MENINGOCOCCAL_INFECTION,
237+
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
235238
@ApplicableToPathogenTests(value = {
236-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
239+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
237240
private DrugSusceptibilityType penicillinSusceptibility;
238241

239242
@Diseases(value = {
240-
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
243+
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
241244
@ApplicableToPathogenTests(value = {
242-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
245+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
243246
private Float erythromycinMic;
244247
@Diseases(value = {
245-
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
248+
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION })
246249
@ApplicableToPathogenTests(value = {
247-
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
250+
PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY })
248251
private DrugSusceptibilityType erythromycinSusceptibility;
249252

250253
public static DrugSusceptibilityDto build() {

sormas-ui/src/main/java/de/symeda/sormas/ui/clinicalcourse/HealthConditionsForm.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,12 @@
5858
import de.symeda.sormas.api.i18n.Descriptions;
5959
import de.symeda.sormas.api.i18n.I18nProperties;
6060
import de.symeda.sormas.api.i18n.Strings;
61+
import de.symeda.sormas.api.user.UserRight;
6162
import de.symeda.sormas.api.utils.DateHelper;
6263
import de.symeda.sormas.api.utils.YesNoUnknown;
6364
import de.symeda.sormas.api.utils.fieldaccess.UiFieldAccessCheckers;
6465
import de.symeda.sormas.api.utils.fieldvisibility.FieldVisibilityCheckers;
66+
import de.symeda.sormas.ui.UiUtil;
6567
import de.symeda.sormas.ui.utils.AbstractEditForm;
6668
import de.symeda.sormas.ui.utils.CssStyles;
6769
import de.symeda.sormas.ui.utils.FieldHelper;
@@ -210,12 +212,11 @@ protected void addFields() {
210212
initializeVisibilitiesAndAllowedVisibilities();
211213
initializeAccessAndAllowedAccesses();
212214

213-
if (Disease.TUBERCULOSIS.equals(disease)) {
215+
if (UiUtil.permitted(UserRight.SEE_SENSITIVE_DATA_IN_JURISDICTION, UserRight.SEE_SENSITIVE_DATA_OUTSIDE_JURISDICTION)) {
214216
Field<?> other = getField(OTHER_CONDITIONS);
215217
if (other != null) {
216218
other.setReadOnly(false);
217219
other.setEnabled(true);
218-
219220
if (other instanceof AbstractTextField) {
220221
((AbstractTextField) other).setInputPrompt("");
221222
}

sormas-ui/src/main/java/de/symeda/sormas/ui/samples/PathogenTestForm.java

Lines changed: 47 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -210,13 +210,19 @@ public PathogenTestForm(boolean create, int caseSampleCount, boolean isPseudonym
210210
setWidth(900, Unit.PIXELS);
211211
}
212212

213-
private static void setCqValueVisibility(TextField cqValueField, PathogenTestType testType, PathogenTestResultType testResultType) {
214-
if (((testType == PathogenTestType.PCR_RT_PCR && testResultType == PathogenTestResultType.POSITIVE))
215-
|| testType == PathogenTestType.CQ_VALUE_DETECTION) {
216-
cqValueField.setVisible(true);
217-
} else {
218-
cqValueField.setVisible(false);
219-
cqValueField.clear();
213+
private static void setCqValueVisibility(
214+
ComboBox diseaseField,
215+
TextField cqValueField,
216+
PathogenTestType testType,
217+
PathogenTestResultType testResultType) {
218+
if (!List.of(Disease.TUBERCULOSIS).contains((Disease) diseaseField.getValue())) {
219+
if (((testType == PathogenTestType.PCR_RT_PCR && testResultType == PathogenTestResultType.POSITIVE))
220+
|| testType == PathogenTestType.CQ_VALUE_DETECTION) {
221+
cqValueField.setVisible(true);
222+
} else {
223+
cqValueField.setVisible(false);
224+
cqValueField.clear();
225+
}
220226
}
221227
}
222228

@@ -260,6 +266,16 @@ private void updateDrugSusceptibilityFieldSpecifications(PathogenTestType testTy
260266
testResultField.setReadOnly(false);
261267
testResultField.setValue(null);
262268
}
269+
} else if (List.of(Disease.INVASIVE_MENINGOCOCCAL_INFECTION).contains(disease)) {
270+
if (Arrays.asList(PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY).contains(testType)) {
271+
if (wasReadOnly) {
272+
testResultField.setReadOnly(false);
273+
}
274+
testResultField.setValue(PathogenTestResultType.NOT_APPLICABLE);
275+
if (wasReadOnly) {
276+
testResultField.setReadOnly(true);
277+
}
278+
}
263279
}
264280

265281
if (List.of(PathogenTestType.ANTIBIOTIC_SUSCEPTIBILITY).contains(testType)) {
@@ -496,9 +512,6 @@ protected void addFields() {
496512
}
497513
};
498514
FieldHelper.setVisibleWhen(getFieldGroup(), PathogenTestDto.RIFAMPICIN_RESISTANT, tuberculosisPcrDependencies, true);
499-
//FieldHelper.setRequiredWhen(getFieldGroup(), PathogenTestDto.RIFAMPICIN_RESISTANT, tuberculosisPcrDependencies);
500-
FieldHelper.setVisibleWhen(getFieldGroup(), PathogenTestDto.ISONIAZID_RESISTANT, tuberculosisPcrDependencies, true);
501-
//FieldHelper.setRequiredWhen(getFieldGroup(), PathogenTestDto.ISONIAZID_RESISTANT, tuberculosisPcrDependencies);
502515

503516
//tuberculosis-microscopy test specification
504517
Map<Object, List<Object>> tuberculosisMicroscopyDependencies = new HashMap<>() {
@@ -1185,17 +1198,30 @@ protected void addFields() {
11851198
fourFoldIncrease.setVisible(false);
11861199
fourFoldIncrease.setEnabled(false);
11871200
}
1201+
11881202
updateDrugSusceptibilityFieldSpecifications(testType, (Disease) diseaseField.getValue());
11891203

1190-
setVisibleClear(
1191-
PathogenTestType.PCR_RT_PCR == testType,
1192-
PathogenTestDto.CQ_VALUE,
1193-
PathogenTestDto.CT_VALUE_E,
1194-
PathogenTestDto.CT_VALUE_N,
1195-
PathogenTestDto.CT_VALUE_RDRP,
1196-
PathogenTestDto.CT_VALUE_S,
1197-
PathogenTestDto.CT_VALUE_ORF_1,
1198-
PathogenTestDto.CT_VALUE_RDRP_S);
1204+
if (!List.of(Disease.TUBERCULOSIS).contains((Disease) diseaseField.getValue())) {
1205+
setVisibleClear(
1206+
PathogenTestType.PCR_RT_PCR == testType,
1207+
PathogenTestDto.CQ_VALUE,
1208+
PathogenTestDto.CT_VALUE_E,
1209+
PathogenTestDto.CT_VALUE_N,
1210+
PathogenTestDto.CT_VALUE_RDRP,
1211+
PathogenTestDto.CT_VALUE_S,
1212+
PathogenTestDto.CT_VALUE_ORF_1,
1213+
PathogenTestDto.CT_VALUE_RDRP_S);
1214+
} else {
1215+
setVisibleClear(
1216+
false,
1217+
PathogenTestDto.CQ_VALUE,
1218+
PathogenTestDto.CT_VALUE_E,
1219+
PathogenTestDto.CT_VALUE_N,
1220+
PathogenTestDto.CT_VALUE_RDRP,
1221+
PathogenTestDto.CT_VALUE_S,
1222+
PathogenTestDto.CT_VALUE_ORF_1,
1223+
PathogenTestDto.CT_VALUE_RDRP_S);
1224+
}
11991225
// Show tube IGRA fields only for IGRA tests and Luxembourg
12001226
setVisibleClear(
12011227
PathogenTestType.IGRA == testType && FacadeProvider.getConfigFacade().isConfiguredCountry(CountryHelper.COUNTRY_CODE_LUXEMBOURG),
@@ -1244,12 +1270,12 @@ protected void addFields() {
12441270

12451271
testTypeField.addValueChangeListener(e -> {
12461272
PathogenTestType testType = (PathogenTestType) e.getProperty().getValue();
1247-
setCqValueVisibility(cqValueField, testType, (PathogenTestResultType) testResultField.getValue());
1273+
setCqValueVisibility(diseaseField, cqValueField, testType, (PathogenTestResultType) testResultField.getValue());
12481274
});
12491275

12501276
testResultField.addValueChangeListener(e -> {
12511277
PathogenTestResultType testResult = (PathogenTestResultType) e.getProperty().getValue();
1252-
setCqValueVisibility(cqValueField, (PathogenTestType) testTypeField.getValue(), testResult);
1278+
setCqValueVisibility(diseaseField, cqValueField, (PathogenTestType) testTypeField.getValue(), testResult);
12531279
});
12541280

12551281
if (SamplePurpose.INTERNAL.equals(getSamplePurpose())) { // this only works for already saved samples

0 commit comments

Comments
 (0)