diff options
| author | Paul-Christian Volkmer | 2023-07-12 14:52:09 +0200 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2023-07-27 09:24:11 +0200 |
| commit | 27476863809d4f2a0a704afd3a2a30f3feafdde4 (patch) | |
| tree | dede3d2ff8f7f62dd89770f69a9554e5ccabc208 /src/main/java/DNPM/analyzer | |
| parent | 9389acdf641016eaf9d9b217ce7d28866a1e9263 (diff) | |
Issue #29: Tests für das Einfügen in ECOG Verlauf
Diffstat (limited to 'src/main/java/DNPM/analyzer')
| -rw-r--r-- | src/main/java/DNPM/analyzer/SystemtherapieAnalyzer.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/main/java/DNPM/analyzer/SystemtherapieAnalyzer.java b/src/main/java/DNPM/analyzer/SystemtherapieAnalyzer.java index 78f2c84..cf7dea8 100644 --- a/src/main/java/DNPM/analyzer/SystemtherapieAnalyzer.java +++ b/src/main/java/DNPM/analyzer/SystemtherapieAnalyzer.java @@ -107,6 +107,10 @@ public class SystemtherapieAnalyzer implements IProcedureAnalyzer { } var ecogFromCompleted = systemtherapieService.ecogSatus(procedure.getPatient()); + if (ecogFromCompleted.isEmpty()) { + // Nothing to do + return; + } procedure.getPatient().getDiseases().stream() .flatMap(d -> onkostarApi.getProceduresForDiseaseByForm(d.getId(), "DNPM Klinik/Anamnese").stream()) @@ -114,8 +118,8 @@ public class SystemtherapieAnalyzer implements IProcedureAnalyzer { var ufEcog = p.getValue("ECOGVerlauf"); if (null != ufEcog && ufEcog.getValue() instanceof List) { var shouldSave = false; - var existingDates = ((List<Map<String, Object>>) ufEcog.getValue()).stream() - .map(v -> v.get("Datum").toString()) + var existingDates = ufEcog.<List<Map<String, String>>>getValue().stream() + .map(v -> v.get("Datum")) .collect(Collectors.toList()); for (var ecog : ecogFromCompleted) { var formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(ecog.getDate()); @@ -135,6 +139,20 @@ public class SystemtherapieAnalyzer implements IProcedureAnalyzer { logger.error("Cannot update ECOG for procedure '{}'", p.getId()); } } + } else { + p.setValue("ECOGVerlauf", new Item("ECOGVerlauf", List.of())); + for (var ecog : ecogFromCompleted) { + var newSubProcedure = new Procedure(onkostarApi); + newSubProcedure.setStartDate(ecog.getDate()); + newSubProcedure.setValue("Datum", new Item("Datum", ecog.getDate())); + newSubProcedure.setValue("ECOG", new Item("ECOG", ecog.getStatus())); + p.addSubProcedure("ECOGVerlauf", newSubProcedure); + } + try { + onkostarApi.saveProcedure(p, true); + } catch (Exception e) { + logger.error("Create update ECOG for procedure '{}'", p.getId()); + } } }); } |
