summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/DNPM/analyzer/SystemtherapieAnalyzer.java22
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());
+ }
}
});
}