summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/services/mtb/DefaultMtbService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/DNPM/services/mtb/DefaultMtbService.java')
-rw-r--r--src/main/java/DNPM/services/mtb/DefaultMtbService.java46
1 files changed, 19 insertions, 27 deletions
diff --git a/src/main/java/DNPM/services/mtb/DefaultMtbService.java b/src/main/java/DNPM/services/mtb/DefaultMtbService.java
index bc9d540..9926a82 100644
--- a/src/main/java/DNPM/services/mtb/DefaultMtbService.java
+++ b/src/main/java/DNPM/services/mtb/DefaultMtbService.java
@@ -1,40 +1,32 @@
package DNPM.services.mtb;
-import DNPM.services.SettingsService;
import de.itc.onkostar.api.Procedure;
+import java.util.Comparator;
import java.util.List;
-
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+/**
+ * Standardimplementierung des MtbService
+ *
+ * @since 0.0.2
+ */
public class DefaultMtbService implements MtbService {
- private final SettingsService settingsService;
-
- public DefaultMtbService(final SettingsService settingsService) {
- this.settingsService = settingsService;
- }
-
@Override
public String getProtocol(List<Procedure> procedures) {
- ProcedureToProtocolMapper mapper = null;
- var sid = settingsService.getSID();
-
- if (sid.isPresent()) {
- switch (sid.get()) {
- case "2011":
- case "20119":
- mapper = new OsTumorkonferenzVarianteUkwToProtocolMapper();
- default:
- if (!settingsService.multipleMtbsInMtbEpisode()) {
- mapper = new OsTumorkonferenzToProtocolMapper();
- }
- }
- }
-
- if (null == mapper) {
- return "";
- }
+ return procedures.stream()
+ .sorted(Comparator.comparing(Procedure::getStartDate))
+ .map(procedure -> {
+ var mapper = MtbService.procedureToProtocolMapper(procedure);
+ return mapper.apply(procedure);
+ })
+ .filter(Optional::isPresent)
+ .map(Optional::get)
+ .distinct()
+ .collect(Collectors.joining("\n\n"));
- return mapper.apply(procedures).orElse("");
}
}