summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java')
-rw-r--r--src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java42
1 files changed, 42 insertions, 0 deletions
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<Procedure> 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<Procedure> findReferencedFollowUpsForSubform(int procedureId) {
+ var procedure = this.onkostarApi.getProcedure(procedureId);
+ if (null == procedure || !"DNPM UF Einzelempfehlung".equals(procedure.getFormName())) {
+ return List.of();
+ }
+ return findReferencedFollowUpsForSubform(procedure);
+ }
+
+}