1
0
mirror of https://github.com/pcvolkmer/onkostar-plugin-dnpm.git synced 2025-07-03 09:42:54 +00:00

Verwende Factory, damit OS-API nicht beim Starten Einstellungen abrufen muss

Beim Start kann OS ggf nicht auf die Einstellungen zurückgreifen, da die
Datenbankverbindung noch nicht fertig initialisiert ist.

Aus diesem Grund muss die konkrete Implementierung des TherapieplanService zur Laufzeit
nach dem vollständigen Start von OS ermittelt werden.
This commit is contained in:
2023-03-17 11:16:28 +01:00
parent ed4b56113a
commit 610bc34bd2
6 changed files with 122 additions and 64 deletions

View File

@ -2,7 +2,7 @@ package DNPM.analyzer;
import DNPM.services.Studie;
import DNPM.services.StudienService;
import DNPM.services.TherapieplanService;
import DNPM.services.TherapieplanServiceFactory;
import de.itc.onkostar.api.Disease;
import de.itc.onkostar.api.Procedure;
import de.itc.onkostar.api.analysis.AnalyseTriggerEvent;
@ -25,14 +25,14 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
private final StudienService studienService;
private final TherapieplanService therapieplanService;
private final TherapieplanServiceFactory therapieplanServiceFactory;
public TherapieplanAnalyzer(
final StudienService studienService,
final TherapieplanService therapieplanService
final TherapieplanServiceFactory therapieplanServiceFactory
) {
this.studienService = studienService;
this.therapieplanService = therapieplanService;
this.therapieplanServiceFactory = therapieplanServiceFactory;
}
@Override
@ -89,7 +89,7 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
@Override
public void analyze(Procedure procedure, Disease disease) {
therapieplanService.updateRequiredMtbEntries(procedure);
therapieplanServiceFactory.currentUsableinstance().updateRequiredMtbEntries(procedure);
}
@ -108,6 +108,7 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
* false
* );
* </pre>
*
* @param input Map mit Eingabewerten
*/
public List<Studie> getStudien(Map<String, Object> input) {

View File

@ -28,15 +28,8 @@ public class PluginConfiguration {
}
@Bean
public TherapieplanService therapieplanService(final IOnkostarApi onkostarApi, final FormService formService) {
if (
null != onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode")
&& onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode").equals("true")
) {
return new MultipleMtbTherapieplanService();
}
return new DefaultTherapieplanService(onkostarApi, formService);
public TherapieplanServiceFactory therapieplanServiceFactory(final IOnkostarApi onkostarApi, final FormService formService) {
return new TherapieplanServiceFactory(onkostarApi, formService);
}
}

View File

@ -0,0 +1,27 @@
package DNPM.services;
import de.itc.onkostar.api.IOnkostarApi;
public class TherapieplanServiceFactory {
private final IOnkostarApi onkostarApi;
private final FormService formService;
public TherapieplanServiceFactory(IOnkostarApi onkostarApi, FormService formService) {
this.onkostarApi = onkostarApi;
this.formService = formService;
}
public TherapieplanService currentUsableinstance() {
if (
null != onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode")
&& onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode").equals("true")
) {
return new MultipleMtbTherapieplanService();
}
return new DefaultTherapieplanService(onkostarApi, formService);
}
}