From a80295c4c884d779bf4d2578e737579ead0ebe71 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 22 Mar 2023 12:04:10 +0100 Subject: Extraktion des Mappings Prozedur zu Prozedurwerten und Auswahl des Mappers Aktuell sind nur die beiden Formulare * OS.Systemische Therapie * OS.Systemische Therapie.VarianteUKW bekannt. Beide lassen sich über den extrahierten Mapper in eine Map mit Prozedurwerten mappen. --- .../DefaultSystemtherapieService.java | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/main/java/DNPM/services/systemtherapie/DefaultSystemtherapieService.java (limited to 'src/main/java/DNPM/services/systemtherapie/DefaultSystemtherapieService.java') diff --git a/src/main/java/DNPM/services/systemtherapie/DefaultSystemtherapieService.java b/src/main/java/DNPM/services/systemtherapie/DefaultSystemtherapieService.java new file mode 100644 index 0000000..9fb3149 --- /dev/null +++ b/src/main/java/DNPM/services/systemtherapie/DefaultSystemtherapieService.java @@ -0,0 +1,73 @@ +package DNPM.services.systemtherapie; + +import DNPM.services.SettingsService; +import de.itc.onkostar.api.IOnkostarApi; +import de.itc.onkostar.api.Procedure; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Standardimplementierung des Systemtherapieservices + * + * @since 0.2.0 + */ +public class DefaultSystemtherapieService implements SystemtherapieService { + + private static final Logger logger = LoggerFactory.getLogger(DefaultSystemtherapieService.class); + + private final IOnkostarApi onkostarApi; + + private final SettingsService settingsService; + + public DefaultSystemtherapieService(final IOnkostarApi onkostarApi, final SettingsService settingsService) { + this.onkostarApi = onkostarApi; + this.settingsService = settingsService; + } + + /** + * Ermittelt eine Zusammenfassung der systemischen Therapien für eine Erkrankung + * + * @param diseaseId Die ID der Erkrankung + * @return Zusammenfassung der systemischen Therapien + */ + @Override + public List> getSystemischeTherapienFromDiagnose(int diseaseId) { + var sid = this.settingsService.getSID(); + if (sid.isEmpty()) { + logger.error("Kann SID nicht ermitteln um Formularnamen zu erhalten. Gebe 'null' zurück."); + return null; + } + List> result = new ArrayList<>(); + for (Procedure prozedur : onkostarApi.getProceduresForDiseaseByForm(diseaseId, selectFormNameBySID(sid.get()))) { + prozedurToProzedurwerteMapper(prozedur).apply(prozedur).ifPresent(result::add); + } + return result; + } + + /** + * Übergibt aktuell immer den Mapper für das Formular "OS.Systemische Therapie", + * da beide bekannte Varianten damit gemappt werden können. + * + * @param procedure Die Prozedur für die ein Mapper erstellt werden soll + * @return Der Mapper für die Prozedur + */ + @Override + public ProzedurToProzedurwerteMapper prozedurToProzedurwerteMapper(Procedure procedure) { + return new OsSystemischeTherapieToProzedurwerteMapper(); + } + + @Override + public String selectFormNameBySID(String sid) { + switch (sid) { + case "2011": + case "20119": + return "OS.Systemische Therapie.VarianteUKW"; + default: + return "OS.Systemische Therapie"; + } + } +} -- cgit v1.2.3