diff options
Diffstat (limited to 'src/main/java/DNPM/services/mtb/DefaultMtbService.java')
| -rw-r--r-- | src/main/java/DNPM/services/mtb/DefaultMtbService.java | 46 |
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(""); } } |
