summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/analyzer/ConsentManager.java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-08-29 09:30:45 +0200
committerGitHub2023-08-29 09:30:45 +0200
commit6d29ba1687fcca18cab1f88bb32ff3232ceb09c9 (patch)
treef1e5817273b9429bed12c361a1c085f6968a3742 /src/main/java/DNPM/analyzer/ConsentManager.java
parentecab43e684a73acfce0b63006b2743869f5de786 (diff)
parentb8e795d22e846ff4fb024682b5ecced2538971e7 (diff)
Merge pull request #43 from CCC-MF/issue_42
Issue #42: Vereinheitlichung der Analyzer-Klassen des Plugins
Diffstat (limited to 'src/main/java/DNPM/analyzer/ConsentManager.java')
-rw-r--r--src/main/java/DNPM/analyzer/ConsentManager.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/main/java/DNPM/analyzer/ConsentManager.java b/src/main/java/DNPM/analyzer/ConsentManager.java
new file mode 100644
index 0000000..6051bc0
--- /dev/null
+++ b/src/main/java/DNPM/analyzer/ConsentManager.java
@@ -0,0 +1,63 @@
+package DNPM.analyzer;
+
+import DNPM.services.consent.ConsentManagerServiceFactory;
+import de.itc.onkostar.api.Disease;
+import de.itc.onkostar.api.IOnkostarApi;
+import de.itc.onkostar.api.Procedure;
+import de.itc.onkostar.api.analysis.AnalyzerRequirement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ConsentManager extends Analyzer {
+
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+ private final IOnkostarApi onkostarApi;
+
+ private final ConsentManagerServiceFactory consentManagerServiceFactory;
+
+ public ConsentManager(
+ final IOnkostarApi onkostarApi,
+ final ConsentManagerServiceFactory consentManagerServiceFactory
+ ) {
+ this.onkostarApi = onkostarApi;
+ this.consentManagerServiceFactory = consentManagerServiceFactory;
+ }
+
+ @Override
+ public String getDescription() {
+ return "Aktualisiert Consent Daten in verknüpften Formularen";
+ }
+
+ @Override
+ public AnalyzerRequirement getRequirement() {
+ return AnalyzerRequirement.PROCEDURE;
+ }
+
+ @Override
+ public boolean isRelevantForAnalyzer(Procedure prozedur, Disease erkrankung) {
+ return prozedur.getFormName().equals(onkostarApi.getGlobalSetting("consentform"));
+ }
+
+ @Override
+ public boolean isRelevantForDeletedProcedure() {
+ // TODO is relevant for deleted procedure = true
+ return false;
+ }
+
+ @Override
+ public boolean isSynchronous() {
+ return true;
+ }
+
+ @Override
+ public void analyze(Procedure prozedur, Disease erkrankung) {
+ var consentManagerService = consentManagerServiceFactory.currentUsableInstance();
+ if (! consentManagerService.canApply(prozedur)) {
+ logger.error("Fehler im ConsentManagement: Kann Prozedur mit Formularnamen '{}' nicht anwenden", prozedur.getFormName());
+ return;
+ }
+ consentManagerService.applyConsent(prozedur);
+ }
+
+}