diff options
Diffstat (limited to 'src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java')
| -rw-r--r-- | src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java | 34 |
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()); + } + } |
