summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-12-04 12:08:32 +0100
committerGitHub2023-12-04 12:08:32 +0100
commit6e6db54a7bab3c9c8888f38d7c155b4eb5bd97b5 (patch)
treeaf0c61d8a5b3eebf2990245ad074cbad77e59a3d /src/main/java/DNPM/services/therapieplan/AbstractTherapieplanService.java
parente451b002372198c660cf5e733717da827f59fbfd (diff)
parent3e0a26485c125009146a913c876c31d0d25b2d9f (diff)
Merge pull request #64 from CCC-MF/issue_33
Issue #33: Methoden zum Auffinden von relevanten Follow-Up-Formularen
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);
+ }
+
+}