1
0
mirror of https://github.com/pcvolkmer/onkostar-plugin-dnpm.git synced 2025-07-04 18:12:55 +00:00

Issue #29: Tests für das Einfügen in ECOG Verlauf

This commit is contained in:
2023-07-12 14:52:09 +02:00
parent 9389acdf64
commit 2747686380
2 changed files with 115 additions and 2 deletions

View File

@ -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());
}
}
});
}