summaryrefslogtreecommitdiff
path: root/src/main/java/dev
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/dev')
-rw-r--r--src/main/java/dev/dnpm/oshelper/analyzer/AtcCodesHelper.java104
-rw-r--r--src/main/java/dev/dnpm/oshelper/analyzer/IPluginPart.java2
-rw-r--r--src/main/java/dev/dnpm/oshelper/atc/services/CsvAgentCodeService.java2
-rw-r--r--src/main/java/dev/dnpm/oshelper/atc/services/OnkostarAgentCodeService.java2
-rw-r--r--src/main/java/dev/dnpm/oshelper/config/PluginConfiguration.java15
5 files changed, 120 insertions, 5 deletions
diff --git a/src/main/java/dev/dnpm/oshelper/analyzer/AtcCodesHelper.java b/src/main/java/dev/dnpm/oshelper/analyzer/AtcCodesHelper.java
new file mode 100644
index 0000000..43929be
--- /dev/null
+++ b/src/main/java/dev/dnpm/oshelper/analyzer/AtcCodesHelper.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of onkostar-plugin-dnpm
+ *
+ * Copyright (c) 2025 the original author or authors.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package dev.dnpm.oshelper.analyzer;
+
+import de.itc.onkostar.api.Disease;
+import de.itc.onkostar.api.Procedure;
+import de.itc.onkostar.api.analysis.AnalyzerRequirement;
+import dev.dnpm.oshelper.atc.AgentCode;
+import dev.dnpm.oshelper.atc.services.AgentCodeService;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Component
+public class AtcCodesHelper extends BackendService {
+
+ private final List<AgentCodeService> agentCodeServices;
+
+ public AtcCodesHelper(List<AgentCodeService> agentCodeServices) {
+ this.agentCodeServices = agentCodeServices;
+ }
+
+ /**
+ * @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;
+ }
+
+ /**
+ * Return list with ATC codes and agents.
+ * Usage in script:
+ *
+ * <pre>
+ * executePluginMethod(
+ * 'AtcCodesHelper',
+ * 'query',
+ * { q: '', size: 10 },
+ * function (result) {console.log(result);},
+ * false
+ * );
+ * </pre>
+ *
+ * @param input The data Map
+ * @return The result list filtered by input
+ */
+ public List<AgentCode> query(final Map<String, Object> input) {
+ String query = "";
+ if (null != input.get("q")) {
+ query = input.get("q").toString();
+ }
+
+ int size = Integer.parseInt(input.get("size").toString());
+ if (size == 0) {
+ size = 10;
+ }
+ var result = new ArrayList<AgentCode>();
+ for (var agentCodeService : this.agentCodeServices) {
+ result.addAll(agentCodeService.findAgentCodes(query, size));
+ }
+ return result.stream().distinct().sorted().collect(Collectors.toList());
+ }
+}
diff --git a/src/main/java/dev/dnpm/oshelper/analyzer/IPluginPart.java b/src/main/java/dev/dnpm/oshelper/analyzer/IPluginPart.java
index 21cbf53..119f2ac 100644
--- a/src/main/java/dev/dnpm/oshelper/analyzer/IPluginPart.java
+++ b/src/main/java/dev/dnpm/oshelper/analyzer/IPluginPart.java
@@ -29,7 +29,7 @@ import de.itc.onkostar.api.analysis.IProcedureAnalyzer;
public interface IPluginPart extends IProcedureAnalyzer {
default String getVersion() {
- return "0.4.0";
+ return "2.0.0";
}
default String getName() {
diff --git a/src/main/java/dev/dnpm/oshelper/atc/services/CsvAgentCodeService.java b/src/main/java/dev/dnpm/oshelper/atc/services/CsvAgentCodeService.java
index ebca932..4ffd1f2 100644
--- a/src/main/java/dev/dnpm/oshelper/atc/services/CsvAgentCodeService.java
+++ b/src/main/java/dev/dnpm/oshelper/atc/services/CsvAgentCodeService.java
@@ -45,7 +45,6 @@ import java.util.stream.Collectors;
* @author Paul-Christian Volkmer
* @since 2.0.0
*/
-@Service
public class CsvAgentCodeService implements AgentCodeService {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -105,6 +104,7 @@ public class CsvAgentCodeService implements AgentCodeService {
} catch (IOException | FileParsingException e) {
logger.warn("Error reading information from ATC codes");
}
+ logger.info("Found {} ATC codes", result.size());
return result;
}
diff --git a/src/main/java/dev/dnpm/oshelper/atc/services/OnkostarAgentCodeService.java b/src/main/java/dev/dnpm/oshelper/atc/services/OnkostarAgentCodeService.java
index 62f12b7..024ce79 100644
--- a/src/main/java/dev/dnpm/oshelper/atc/services/OnkostarAgentCodeService.java
+++ b/src/main/java/dev/dnpm/oshelper/atc/services/OnkostarAgentCodeService.java
@@ -28,7 +28,6 @@ import dev.dnpm.oshelper.atc.AgentCode;
import dev.dnpm.oshelper.atc.AtcCode;
import dev.dnpm.oshelper.atc.UnregisteredCode;
import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.stereotype.Service;
import javax.sql.DataSource;
import java.util.List;
@@ -39,7 +38,6 @@ import java.util.List;
* @author Paul-Christian Volkmer
* @since 2.0.0
*/
-@Service
public class OnkostarAgentCodeService implements AgentCodeService {
private final JdbcTemplate jdbcTemplate;
diff --git a/src/main/java/dev/dnpm/oshelper/config/PluginConfiguration.java b/src/main/java/dev/dnpm/oshelper/config/PluginConfiguration.java
index ebf11c3..92bd4c3 100644
--- a/src/main/java/dev/dnpm/oshelper/config/PluginConfiguration.java
+++ b/src/main/java/dev/dnpm/oshelper/config/PluginConfiguration.java
@@ -24,6 +24,9 @@
package dev.dnpm.oshelper.config;
+import dev.dnpm.oshelper.atc.services.AgentCodeService;
+import dev.dnpm.oshelper.atc.services.CsvAgentCodeService;
+import dev.dnpm.oshelper.atc.services.OnkostarAgentCodeService;
import dev.dnpm.oshelper.database.SettingsRepository;
import dev.dnpm.oshelper.services.*;
import dev.dnpm.oshelper.services.consent.ConsentManagerServiceFactory;
@@ -51,7 +54,7 @@ import javax.sql.DataSource;
*/
@Configuration
@ComponentScan(basePackages = {"dev.dnpm.oshelper.analyzer", "dev.dnpm.oshelper.security"})
-@EnableJpaRepositories(basePackages = "dev.dnpm.database")
+@EnableJpaRepositories(basePackages = "dev.dnpm.oshelper.database")
public class PluginConfiguration {
@Bean
@@ -109,4 +112,14 @@ public class PluginConfiguration {
return new OsMolekulargenetikFormService();
}
+ @Bean
+ public AgentCodeService csvAgentCodeService() {
+ return new CsvAgentCodeService();
+ }
+
+ @Bean
+ public AgentCodeService onkostarAgentCodeService (final DataSource dataSource) {
+ return new OnkostarAgentCodeService(dataSource);
+ }
+
}