From 9660764cc867c261a3d15ea92a3d7c924b128b47 Mon Sep 17 00:00:00 2001 From: Raul Bob Date: Tue, 25 Nov 2025 12:36:55 +0100 Subject: [PATCH 1/2] #13742 - Fixed missing disease in Sample/PathogenTest form - Sample/Pathogen forms were created with empty disease when chained from other forms - Added disease field to AbstractSampleForm allowing it to be accessed from other places - Modified `SampleController.addPathogenTestComponent` to use the disease from the sample form --- .../de/symeda/sormas/ui/samples/AbstractSampleForm.java | 8 ++++++++ .../sormas/ui/samples/humansample/SampleController.java | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/AbstractSampleForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/AbstractSampleForm.java index b72ccfb07a5..6c3d6b4df1e 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/AbstractSampleForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/AbstractSampleForm.java @@ -111,6 +111,8 @@ public abstract class AbstractSampleForm extends AbstractEditForm { fluidRowLocs(CaseDataDto.OTHER_DELETION_REASON); //@formatter:on + private Disease disease; + protected AbstractSampleForm(Class type, String propertyI18nPrefix, Disease disease, UiFieldAccessCheckers fieldAccessCheckers) { super( type, @@ -118,6 +120,7 @@ protected AbstractSampleForm(Class type, String propertyI18nPrefix, D true, FieldVisibilityCheckers.withDisease(disease).andWithCountry(FacadeProvider.getConfigFacade().getCountryLocale()), fieldAccessCheckers); + this.disease = disease; } protected void addCommonFields() { @@ -456,4 +459,9 @@ private void updateRequestedTestFields() { getContent().removeComponent(REQUESTED_ADDITIONAL_TESTS_READ_LOC); } } + + + public Disease getDisease() { + return disease; + } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/humansample/SampleController.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/humansample/SampleController.java index f0ae9aa5152..ea71679df59 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/humansample/SampleController.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/humansample/SampleController.java @@ -212,7 +212,9 @@ private CollapsiblePathogenTestForm addPathogenTestComponent( separator.setVisible(addSeparator); sampleComponent.addComponent(separator, sampleComponent.getComponentCount() - 1); - PathogenTestForm pathogenTestForm = new PathogenTestForm(sampleComponent.getWrappedComponent(), true, caseSampleCount, false, true, disease); // Valid because jurisdiction doesn't matter for entities that are about to be created + final Disease pathogenTestFormDisease = disease != null ? disease : sampleComponent.getWrappedComponent().getDisease(); + + PathogenTestForm pathogenTestForm = new PathogenTestForm(sampleComponent.getWrappedComponent(), true, caseSampleCount, false, true, pathogenTestFormDisease); // Valid because jurisdiction doesn't matter for entities that are about to be created // prefill fields if (pathogenTest != null) { pathogenTestForm.setValue(pathogenTest); From 748882b2a86b55a6118db0c946e51974af322e50 Mon Sep 17 00:00:00 2001 From: Raul Bob Date: Tue, 25 Nov 2025 20:09:11 +0100 Subject: [PATCH 2/2] Fixed potential inconsistency issue and formatted the file. --- .../sormas/ui/samples/humansample/SampleController.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/humansample/SampleController.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/humansample/SampleController.java index ea71679df59..3e4135575a5 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/humansample/SampleController.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/humansample/SampleController.java @@ -100,6 +100,7 @@ public class SampleController { private Disease disease; + public SampleController() { } @@ -214,7 +215,8 @@ private CollapsiblePathogenTestForm addPathogenTestComponent( final Disease pathogenTestFormDisease = disease != null ? disease : sampleComponent.getWrappedComponent().getDisease(); - PathogenTestForm pathogenTestForm = new PathogenTestForm(sampleComponent.getWrappedComponent(), true, caseSampleCount, false, true, pathogenTestFormDisease); // Valid because jurisdiction doesn't matter for entities that are about to be created + PathogenTestForm pathogenTestForm = + new PathogenTestForm(sampleComponent.getWrappedComponent(), true, caseSampleCount, false, true, pathogenTestFormDisease); // Valid because jurisdiction doesn't matter for entities that are about to be created // prefill fields if (pathogenTest != null) { pathogenTestForm.setValue(pathogenTest); @@ -230,8 +232,7 @@ private CollapsiblePathogenTestForm addPathogenTestComponent( pathogenTestResultField.setValue(PathogenTestResultType.PENDING); ComboBox testDiseaseField = pathogenTestForm.getField(PathogenTestDto.TESTED_DISEASE); // setting the disease field value is only necessary if the disease is not null - testDiseaseField.setValue(disease); - + testDiseaseField.setValue(pathogenTestFormDisease); } // setup field updates Field testLabField = pathogenTestForm.getField(PathogenTestDto.LAB);