summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java')
-rw-r--r--src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java b/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java
index 6f38bdb..dfe9d22 100644
--- a/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java
+++ b/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java
@@ -1,8 +1,10 @@
package DNPM.analyzer;
+import DNPM.dto.Studie;
import DNPM.dto.Variant;
import DNPM.security.PermissionType;
import DNPM.security.PersonPoolBasedPermissionEvaluator;
+import DNPM.services.StudienService;
import DNPM.services.molekulargenetik.MolekulargenetikFormService;
import de.itc.onkostar.api.Disease;
import de.itc.onkostar.api.IOnkostarApi;
@@ -32,14 +34,18 @@ public class EinzelempfehlungAnalyzer implements IProcedureAnalyzer {
private final MolekulargenetikFormService molekulargenetikFormService;
+ private final StudienService studienService;
+
private final PersonPoolBasedPermissionEvaluator permissionEvaluator;
public EinzelempfehlungAnalyzer(
final IOnkostarApi onkostarApi,
+ final StudienService studienService,
final MolekulargenetikFormService molekulargenetikFormService,
final PersonPoolBasedPermissionEvaluator permissionEvaluator
) {
this.onkostarApi = onkostarApi;
+ this.studienService = studienService;
this.molekulargenetikFormService = molekulargenetikFormService;
this.permissionEvaluator = permissionEvaluator;
}
@@ -112,4 +118,32 @@ public class EinzelempfehlungAnalyzer implements IProcedureAnalyzer {
}
}
+ /**
+ * Übergibt alle Studien, deren (Kurz-)Beschreibung oder NCT-Nummer den übergebenen Eingabewert <code>q</code> enthält
+ *
+ * <p>Wurde der Eingabewert nicht angegeben oder ist leer, werden alle Studien übergeben.
+ *
+ * <p>Beispiel zur Nutzung in einem Formularscript
+ * <pre>
+ * executePluginMethod(
+ * 'TherapieplanAnalyzer',
+ * 'getStudien',
+ * { q: 'NCT-12' },
+ * (response) => console.log(response),
+ * false
+ * );
+ * </pre>
+ *
+ * @param input Map mit Eingabewerten
+ * @return Liste mit Studien
+ */
+ public List<Studie> getStudien(Map<String, Object> input) {
+ var query = AnalyzerUtils.getRequiredValue(input, "q", String.class);
+
+ if (query.isEmpty() || query.get().isBlank()) {
+ return studienService.findAll();
+ }
+ return studienService.findByQuery(query.get());
+ }
+
}