From ce068445e4861f1e91c685a5f1513a6c80f74bca Mon Sep 17 00:00:00 2001 From: Raul Bob Date: Mon, 9 Mar 2026 10:37:55 +0100 Subject: [PATCH 1/2] #13754 - Fixed NPE when date of diagnosis is not provided --- .../ui/caze/notifier/CaseNotifierSideViewController.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java index 5148faf5149..c44e170c9d6 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java @@ -344,12 +344,16 @@ private void openEditWindow(CaseDataDto caze, NotifierDto notifier, String title */ private void updateSurveillanceReportFromForm(SurveillanceReportDto surveillanceReport, CaseNotifierForm notifierForm) { // Update report date from notification date - final LocalDate notificationDate = notifierForm.getNotificationDate(); + final LocalDate notificationDate = notifierForm.getNotificationDate() == null ? LocalDate.now() : notifierForm.getNotificationDate(); surveillanceReport.setReportDate(Date.from(notificationDate.atStartOfDay(ZoneId.systemDefault()).toInstant())); // Update diagnosis date if provided final LocalDate diagnosticDate = notifierForm.getDiagnosticDate(); - surveillanceReport.setDateOfDiagnosis(Date.from(diagnosticDate.atStartOfDay(ZoneId.systemDefault()).toInstant())); + if(diagnosticDate != null) { + surveillanceReport.setDateOfDiagnosis(Date.from(diagnosticDate.atStartOfDay(ZoneId.systemDefault()).toInstant())); + } else { + surveillanceReport.setDateOfDiagnosis(null); + } // Update treatment based on selected option final TreatmentOption selectedOption = notifierForm.getSelectedTreatmentOption(); From 2e3bc5309b1f89e23d76a721812b5634161d4ad5 Mon Sep 17 00:00:00 2001 From: Raul Bob Date: Mon, 9 Mar 2026 17:13:59 +0100 Subject: [PATCH 2/2] Added hanlding for potential report date overwrite --- .../notifier/CaseNotifierSideViewController.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java index c44e170c9d6..acfd0b3fb06 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/notifier/CaseNotifierSideViewController.java @@ -343,13 +343,20 @@ private void openEditWindow(CaseDataDto caze, NotifierDto notifier, String title * the form containing the values */ private void updateSurveillanceReportFromForm(SurveillanceReportDto surveillanceReport, CaseNotifierForm notifierForm) { - // Update report date from notification date - final LocalDate notificationDate = notifierForm.getNotificationDate() == null ? LocalDate.now() : notifierForm.getNotificationDate(); - surveillanceReport.setReportDate(Date.from(notificationDate.atStartOfDay(ZoneId.systemDefault()).toInstant())); + + // Update report date from notification date if provided + if (notifierForm.getNotificationDate() != null) { + surveillanceReport.setReportDate(Date.from(notifierForm.getNotificationDate().atStartOfDay(ZoneId.systemDefault()).toInstant())); + } else { + // if no notification date is provided, use the current date as long as the report date is not set + if (surveillanceReport.getReportDate() == null) { + surveillanceReport.setReportDate(new Date()); + } + } // Update diagnosis date if provided final LocalDate diagnosticDate = notifierForm.getDiagnosticDate(); - if(diagnosticDate != null) { + if (diagnosticDate != null) { surveillanceReport.setDateOfDiagnosis(Date.from(diagnosticDate.atStartOfDay(ZoneId.systemDefault()).toInstant())); } else { surveillanceReport.setDateOfDiagnosis(null);