diff options
| author | Paul-Christian Volkmer | 2023-05-08 16:23:52 +0200 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2023-05-09 13:36:43 +0200 |
| commit | 3afe109494e2b4a751874a027694c17f6cabc4cd (patch) | |
| tree | 06bf905547f0a2cdd3973e5b14928fb0a28a9cab /src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java | |
| parent | 06b5381e885cf5cf4cb008e22e7cb2dff88f40b5 (diff) | |
Issue #28: Initiale Implementierung zur Ermittlung der NGS-Befund-Varianten
Diffstat (limited to 'src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java')
| -rw-r--r-- | src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java b/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java new file mode 100644 index 0000000..101f28b --- /dev/null +++ b/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java @@ -0,0 +1,104 @@ +package DNPM.analyzer; + +import DNPM.dto.Variant; +import DNPM.security.DelegatingDataBasedPermissionEvaluator; +import DNPM.services.molekulargenetik.MolekulargenetikFormService; +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 de.itc.onkostar.api.analysis.IProcedureAnalyzer; +import de.itc.onkostar.api.analysis.OnkostarPluginType; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * Diese Klasse implementiert ein Plugin, welches Funktionen für DNPM UF Einzelempfehlung bereit stellt. + * + * @since 0.2.0 + */ +@Component +public class EinzelempfehlungAnalyzer implements IProcedureAnalyzer { + + private final IOnkostarApi onkostarApi; + + private final MolekulargenetikFormService molekulargenetikFormService; + + private final DelegatingDataBasedPermissionEvaluator permissionEvaluator; + + public EinzelempfehlungAnalyzer( + final IOnkostarApi onkostarApi, + final MolekulargenetikFormService molekulargenetikFormService, + final DelegatingDataBasedPermissionEvaluator permissionEvaluator + ) { + this.onkostarApi = onkostarApi; + this.molekulargenetikFormService = molekulargenetikFormService; + this.permissionEvaluator = permissionEvaluator; + } + + @Override + public OnkostarPluginType getType() { + return OnkostarPluginType.BACKEND_SERVICE; + } + + @Override + public String getVersion() { + return "0.1.0"; + } + + @Override + public String getName() { + return "DNPM Einzelempfehlung Backend Service"; + } + + @Override + public String getDescription() { + return "Stellt Funktionen zur Nutzung im Therapieplan-Unterformular für Einzelempfehlungen bereit"; + } + + /** + * @deprecated + */ + @Override + public boolean isRelevantForDeletedProcedure() { + return false; + } + + @Override + public boolean isRelevantForAnalyzer(Procedure procedure, Disease disease) { + return false; + } + + @Override + public boolean isSynchronous() { + return false; + } + + @Override + public AnalyzerRequirement getRequirement() { + return AnalyzerRequirement.PROCEDURE; + } + + @Override + public void analyze(Procedure procedure, Disease disease) { + // No op + } + + public List<Variant> getVariants(Map<String, Object> input) { + var procedureId = AnalyzerUtils.getRequiredId(input, "id"); + + if (procedureId.isEmpty()) { + return List.of(); + } + + var procedure = onkostarApi.getProcedure(procedureId.get()); + if (null == procedure) { + return List.of(); + } + + return molekulargenetikFormService.getVariants(procedure); + } + +} |
