summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-03-17 11:16:28 +0100
committerPaul-Christian Volkmer2023-03-17 11:16:28 +0100
commit610bc34bd2c70566c0af7f1856c4ab1dcf0029d2 (patch)
tree9b0714a52a22271499f03bd5a65f3e39749e9501 /src/main
parented4b56113ac1d05800efa707f80434102e0c6534 (diff)
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.
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java11
-rw-r--r--src/main/java/DNPM/config/PluginConfiguration.java11
-rw-r--r--src/main/java/DNPM/services/TherapieplanServiceFactory.java27
3 files changed, 35 insertions, 14 deletions
diff --git a/src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java b/src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java
index 29441cf..fe2f0d7 100644
--- a/src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java
+++ b/src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java
@@ -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) {
diff --git a/src/main/java/DNPM/config/PluginConfiguration.java b/src/main/java/DNPM/config/PluginConfiguration.java
index d417132..36b1875 100644
--- a/src/main/java/DNPM/config/PluginConfiguration.java
+++ b/src/main/java/DNPM/config/PluginConfiguration.java
@@ -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);
}
}
diff --git a/src/main/java/DNPM/services/TherapieplanServiceFactory.java b/src/main/java/DNPM/services/TherapieplanServiceFactory.java
new file mode 100644
index 0000000..a6e869c
--- /dev/null
+++ b/src/main/java/DNPM/services/TherapieplanServiceFactory.java
@@ -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);
+ }
+
+}