1
0
mirror of https://github.com/pcvolkmer/onkostar-plugin-dnpm.git synced 2025-07-03 01:32:55 +00:00

Issue #29: Methoden zum Anlegen und Aktualisieren des Ecog-Verlaufs extrahiert

This commit is contained in:
2023-08-28 11:51:46 +02:00
parent 2747686380
commit cf9a68f6cd

View File

@ -117,13 +117,21 @@ public class SystemtherapieAnalyzer implements IProcedureAnalyzer {
.forEach(p -> { .forEach(p -> {
var ufEcog = p.getValue("ECOGVerlauf"); var ufEcog = p.getValue("ECOGVerlauf");
if (null != ufEcog && ufEcog.getValue() instanceof List) { if (null != ufEcog && ufEcog.getValue() instanceof List) {
updateExistingEcogVerlauf(p, ecogFromCompleted, ufEcog);
} else {
newEcogverlauf(p, ecogFromCompleted);
}
});
}
private void updateExistingEcogVerlauf(Procedure p, List<SystemtherapieService.EcogStatusWithDate> ecogFromCompleted, Item ufEcog) {
var shouldSave = false; var shouldSave = false;
var existingDates = ufEcog.<List<Map<String, String>>>getValue().stream() var existingDates = ufEcog.<List<Map<String, String>>>getValue().stream()
.map(v -> v.get("Datum")) .map(v -> v.get("Datum"))
.collect(Collectors.toList()); .collect(Collectors.toList());
for (var ecog : ecogFromCompleted) { for (var ecog : ecogFromCompleted) {
var formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(ecog.getDate()); var formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(ecog.getDate());
if (! existingDates.contains(formattedDate)) { if (!existingDates.contains(formattedDate)) {
var newSubProcedure = new Procedure(onkostarApi); var newSubProcedure = new Procedure(onkostarApi);
newSubProcedure.setStartDate(ecog.getDate()); newSubProcedure.setStartDate(ecog.getDate());
newSubProcedure.setValue("Datum", new Item("Datum", ecog.getDate())); newSubProcedure.setValue("Datum", new Item("Datum", ecog.getDate()));
@ -139,7 +147,9 @@ public class SystemtherapieAnalyzer implements IProcedureAnalyzer {
logger.error("Cannot update ECOG for procedure '{}'", p.getId()); logger.error("Cannot update ECOG for procedure '{}'", p.getId());
} }
} }
} else { }
private void newEcogverlauf(Procedure p, List<SystemtherapieService.EcogStatusWithDate> ecogFromCompleted) {
p.setValue("ECOGVerlauf", new Item("ECOGVerlauf", List.of())); p.setValue("ECOGVerlauf", new Item("ECOGVerlauf", List.of()));
for (var ecog : ecogFromCompleted) { for (var ecog : ecogFromCompleted) {
var newSubProcedure = new Procedure(onkostarApi); var newSubProcedure = new Procedure(onkostarApi);
@ -154,7 +164,5 @@ public class SystemtherapieAnalyzer implements IProcedureAnalyzer {
logger.error("Create update ECOG for procedure '{}'", p.getId()); logger.error("Create update ECOG for procedure '{}'", p.getId());
} }
} }
});
}
} }