1
0
mirror of https://github.com/pcvolkmer/onkostar-plugin-dnpm.git synced 2025-07-03 01:32:55 +00:00

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.
This commit is contained in:
2023-03-22 12:04:10 +01:00
parent 3f3a23ccd2
commit a80295c4c8
10 changed files with 413 additions and 126 deletions

View File

@ -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<Map<String, String>> 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<Map<String, String>> 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";
}
}
}