From 47c7730c0c65cea8ae0f4c7a8153f9641f447045 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Tue, 21 Mar 2023 14:57:46 +0100 Subject: Alternative Implementierung des Mappings Prozedur zu Protokollauszug Diese Implementierung basiert auf der Zuordnung zum Formularnamen. Unbekannte Formulare werden zum leeren String gemappt. --- .../java/DNPM/services/mtb/DefaultMtbService.java | 46 +++++++++------------- 1 file changed, 19 insertions(+), 27 deletions(-) (limited to 'src/main/java/DNPM/services/mtb/DefaultMtbService.java') 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 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(""); } } -- cgit v1.2.3