From 3e0a26485c125009146a913c876c31d0d25b2d9f Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Mon, 4 Dec 2023 12:03:30 +0100 Subject: Issue #33: Methoden zum Auffinden von relevanten Follow-Up-Formularen --- .../therapieplan/AbstractTherapieplanService.java | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java (limited to 'src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java') diff --git a/src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java b/src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java new file mode 100644 index 0000000..021e30b --- /dev/null +++ b/src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java @@ -0,0 +1,42 @@ +package DNPM.services.therapieplan; + +import DNPM.services.FormService; +import de.itc.onkostar.api.IOnkostarApi; +import de.itc.onkostar.api.Procedure; + +import java.util.List; +import java.util.stream.Collectors; + +public abstract class AbstractTherapieplanService implements TherapieplanService { + + protected final IOnkostarApi onkostarApi; + + protected final FormService formService; + + public AbstractTherapieplanService(final IOnkostarApi onkostarApi, final FormService formService) { + this.onkostarApi = onkostarApi; + this.formService = formService; + } + + @Override + public List findReferencedFollowUpsForSubform(Procedure procedure) { + if (null == procedure || !"DNPM UF Einzelempfehlung".equals(procedure.getFormName())) { + return List.of(); + } + + return procedure.getDiseaseIds().stream() + .flatMap(diseaseId -> onkostarApi.getProceduresForDiseaseByForm(diseaseId, "DNPM FollowUp").stream()) + .filter(p -> p.getValue("LinkTherapieempfehlung").getInt() == procedure.getId()) + .collect(Collectors.toList()); + } + + @Override + public List findReferencedFollowUpsForSubform(int procedureId) { + var procedure = this.onkostarApi.getProcedure(procedureId); + if (null == procedure || !"DNPM UF Einzelempfehlung".equals(procedure.getFormName())) { + return List.of(); + } + return findReferencedFollowUpsForSubform(procedure); + } + +} -- cgit v1.2.3