summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/services/mtb/DefaultMtbService.java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-03-21 14:57:46 +0100
committerPaul-Christian Volkmer2023-03-21 14:57:46 +0100
commit47c7730c0c65cea8ae0f4c7a8153f9641f447045 (patch)
treee368b9ad1b93545a5db4fb31d78b4442082737d0 /src/main/java/DNPM/services/mtb/DefaultMtbService.java
parent7052becabfe131176d124d175d28b3a7bcee4ddc (diff)
Alternative Implementierung des Mappings Prozedur zu Protokollauszug
Diese Implementierung basiert auf der Zuordnung zum Formularnamen. Unbekannte Formulare werden zum leeren String gemappt.
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("");
}
}