summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-08-29 06:34:54 +0200
committerGitHub2023-08-29 06:34:54 +0200
commit27f9baae2fec8e28eb66eb94c2762b843c264ef7 (patch)
tree1610e5299fa5ba9c4273379393c8b01ab4640338 /src/main/java
parentef21c287f04640021387914af6307d014ea4a2db (diff)
parent994889da4accee45e3460695db4d888db7054615 (diff)
Merge pull request #40 from CCC-MF/issue_37
Issue #37: Anzeige, ob Studie (technisch) in Onkostar aktiv ist
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java13
-rw-r--r--src/main/java/DNPM/dto/Studie.java9
-rw-r--r--src/main/java/DNPM/services/DefaultStudienService.java21
-rw-r--r--src/main/java/DNPM/services/StudienService.java15
4 files changed, 50 insertions, 8 deletions
diff --git a/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java b/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java
index ef64160..1ace2f8 100644
--- a/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java
+++ b/src/main/java/DNPM/analyzer/EinzelempfehlungAnalyzer.java
@@ -128,7 +128,7 @@ public class EinzelempfehlungAnalyzer implements IProcedureAnalyzer {
* executePluginMethod(
* 'TherapieplanAnalyzer',
* 'getStudien',
- * { q: 'NCT-12' },
+ * { q: 'NCT-12', inactive: true },
* (response) => console.log(response),
* false
* );
@@ -139,11 +139,18 @@ public class EinzelempfehlungAnalyzer implements IProcedureAnalyzer {
*/
public List<Studie> getStudien(Map<String, Object> input) {
var query = AnalyzerUtils.getRequiredValue(input, "q", String.class);
+ var inactive = AnalyzerUtils.getRequiredValue(input, "inactive", Boolean.class).orElse(false);
if (query.isEmpty() || query.get().isBlank()) {
- return studienService.findAll();
+ if (inactive) {
+ return studienService.findAll();
+ }
+ return studienService.findActive();
}
- return studienService.findByQuery(query.get());
+ if (inactive) {
+ return studienService.findByQuery(query.get());
+ }
+ return studienService.findActiveByQuery(query.get());
}
}
diff --git a/src/main/java/DNPM/dto/Studie.java b/src/main/java/DNPM/dto/Studie.java
index 877cdd0..4ee4fde 100644
--- a/src/main/java/DNPM/dto/Studie.java
+++ b/src/main/java/DNPM/dto/Studie.java
@@ -32,13 +32,16 @@ public class Studie {
private final String description;
private final int version;
- public Studie(final String kategorieName, final int version, final String code, final String studiennummer, final String shortDesc, final String description) {
+ private final boolean active;
+
+ public Studie(final String kategorieName, final int version, final String code, final String studiennummer, final String shortDesc, final String description, final boolean active) {
this.kategorieName = kategorieName;
this.version = version;
this.code = code;
this.studiennummer = studiennummer;
this.shortDesc = shortDesc;
this.description = description;
+ this.active = active;
}
public String getKategorieName() {
@@ -65,6 +68,10 @@ public class Studie {
return description;
}
+ public boolean isActive() {
+ return active;
+ }
+
public Type getType() {
if (this.hasNctNumber()) {
return Type.NCT;
diff --git a/src/main/java/DNPM/services/DefaultStudienService.java b/src/main/java/DNPM/services/DefaultStudienService.java
index 82be5e7..e172cc8 100644
--- a/src/main/java/DNPM/services/DefaultStudienService.java
+++ b/src/main/java/DNPM/services/DefaultStudienService.java
@@ -5,6 +5,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.util.List;
+import java.util.stream.Collectors;
/**
* Standardimplementierung zum Ermitteln von Studien
@@ -21,7 +22,7 @@ public class DefaultStudienService implements StudienService {
@Override
public List<Studie> findAll() {
- var sql = "SELECT pcc.name, pcv.version_number, TRIM(studie.studien_nummer) AS studien_nummer, studie.startdatum, studie.endedatum, pcve.code, pcve.shortdesc, pcve.description FROM studie "
+ var sql = "SELECT pcc.name, pcv.version_number, TRIM(studie.studien_nummer) AS studien_nummer, studie.startdatum, studie.endedatum, pcve.code, pcve.shortdesc, pcve.description, studie.aktiv FROM studie "
+ "LEFT JOIN category_entry ce ON ce.version_entry_id = studie.property_version_entry "
+ "LEFT JOIN property_catalogue_category pcc ON pcc.id = ce.category_id "
+ "JOIN property_catalogue_version_entry pcve ON pcve.id = studie.property_version_entry "
@@ -36,13 +37,14 @@ public class DefaultStudienService implements StudienService {
resultSet.getString("code"),
resultSet.getString("studien_nummer"),
resultSet.getString("shortdesc"),
- resultSet.getString("description")
+ resultSet.getString("description"),
+ resultSet.getBoolean("aktiv")
));
}
@Override
public List<Studie> findByQuery(String query) {
- var sql = "SELECT pcc.name, pcv.version_number, TRIM(studie.studien_nummer) AS studien_nummer, studie.startdatum, studie.endedatum, pcve.code, pcve.shortdesc, pcve.description FROM studie "
+ var sql = "SELECT pcc.name, pcv.version_number, TRIM(studie.studien_nummer) AS studien_nummer, studie.startdatum, studie.endedatum, pcve.code, pcve.shortdesc, pcve.description, studie.aktiv FROM studie "
+ "LEFT JOIN category_entry ce ON ce.version_entry_id = studie.property_version_entry "
+ "LEFT JOIN property_catalogue_category pcc ON pcc.id = ce.category_id "
+ "JOIN property_catalogue_version_entry pcve ON pcve.id = studie.property_version_entry "
@@ -59,7 +61,18 @@ public class DefaultStudienService implements StudienService {
resultSet.getString("code"),
resultSet.getString("studien_nummer"),
resultSet.getString("shortdesc"),
- resultSet.getString("description")
+ resultSet.getString("description"),
+ resultSet.getBoolean("aktiv")
));
}
+
+ @Override
+ public List<Studie> findActive() {
+ return findAll().stream().filter(Studie::isActive).collect(Collectors.toList());
+ }
+
+ @Override
+ public List<Studie> findActiveByQuery(String query) {
+ return findByQuery(query).stream().filter(Studie::isActive).collect(Collectors.toList());
+ }
}
diff --git a/src/main/java/DNPM/services/StudienService.java b/src/main/java/DNPM/services/StudienService.java
index dc0187e..c82947d 100644
--- a/src/main/java/DNPM/services/StudienService.java
+++ b/src/main/java/DNPM/services/StudienService.java
@@ -21,4 +21,19 @@ public interface StudienService {
*/
List<Studie> findByQuery(String query);
+ /**
+ * Übergibt eine Liste mit aktiven Studien
+ *
+ * @return Liste mit aktiven Studien
+ */
+ List<Studie> findActive();
+
+ /**
+ * Übergibt eine Liste mit aktiven Studien, deren (Kurz-)Beschreibung oder Studiennummer den übergebenen Wert enthalten
+ *
+ * @param query Wert der enthalten sein muss
+ * @return Gefilterte Liste mit aktiven Studien
+ */
+ List<Studie> findActiveByQuery(String query);
+
}