1
0
mirror of https://github.com/pcvolkmer/onkostar-plugin-dnpm.git synced 2025-07-03 09:42:54 +00:00

Etwas Codebereinigung und Eingabeprüfung in Klasse Merkmalskatalog

This commit is contained in:
2023-03-16 22:47:28 +01:00
parent 2e7d71069f
commit ed4b56113a

View File

@ -1,98 +1,112 @@
package DNPM; package DNPM;
import java.util.List;
import java.util.Map;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.type.StandardBasicTypes;
import org.springframework.beans.factory.annotation.Autowired;
import de.itc.onkostar.api.Disease; import de.itc.onkostar.api.Disease;
import de.itc.onkostar.api.IOnkostarApi; import de.itc.onkostar.api.IOnkostarApi;
import de.itc.onkostar.api.Procedure; import de.itc.onkostar.api.Procedure;
import de.itc.onkostar.api.analysis.AnalyzerRequirement; import de.itc.onkostar.api.analysis.AnalyzerRequirement;
import de.itc.onkostar.api.analysis.IProcedureAnalyzer; import de.itc.onkostar.api.analysis.IProcedureAnalyzer;
import de.itc.onkostar.api.analysis.OnkostarPluginType; import de.itc.onkostar.api.analysis.OnkostarPluginType;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.type.StandardBasicTypes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
public class Merkmalskatalog implements IProcedureAnalyzer{ import java.util.List;
@Autowired import java.util.Map;
private IOnkostarApi onkostarApi;
@Override public class Merkmalskatalog implements IProcedureAnalyzer {
public OnkostarPluginType getType() {
return OnkostarPluginType.BACKEND_SERVICE;
}
@Override private final Logger logger = LoggerFactory.getLogger(this.getClass());
public String getVersion() {
return "1";
}
@Override @Autowired
public String getName() { private IOnkostarApi onkostarApi;
return "UMR Merkmalskatalog";
}
@Override @Override
public String getDescription() { public OnkostarPluginType getType() {
return "Methoden für Merkmalskataloge"; return OnkostarPluginType.BACKEND_SERVICE;
} }
@Override @Override
public boolean isRelevantForDeletedProcedure() { public String getVersion() {
return false; return "1";
} }
@Override @Override
public boolean isSynchronous() { public String getName() {
return true; return "UMR Merkmalskatalog";
} }
@Override @Override
public AnalyzerRequirement getRequirement() { public String getDescription() {
return AnalyzerRequirement.PROCEDURE; return "Methoden für Merkmalskataloge";
} }
@Override
public boolean isRelevantForAnalyzer(Procedure procedure, Disease currentDisease) {
return false;
}
@Override @Override
public void analyze(Procedure procedurea, Disease disease) {} public boolean isRelevantForDeletedProcedure() {
return false;
}
public Object getMerkmalskatalog(final Map<String, Object> input) { @Override
String Merkmalskatalog = (String) input.get("Merkmalskatalog"); public boolean isSynchronous() {
String Spalten = (String) input.get("Spalten"); return true;
String[] SpaltenArray = Spalten.split("\\s*,\\s*"); }
String sql;
try {
SessionFactory sessionFactory = onkostarApi.getSessionFactory();
Session session = sessionFactory.getCurrentSession();
try {
sql = "SELECT p.id, p.code, p.shortdesc, p.description, p.note, p.synonyms "
+ "FROM property_catalogue "
+ "LEFT JOIN property_catalogue_version ON property_catalogue_version.datacatalog_id = property_catalogue.id "
+ "LEFT JOIN property_catalogue_version_entry p ON p.property_version_id = property_catalogue_version.id "
+ "WHERE name = '" + Merkmalskatalog + "' AND aktiv = 1 "
+ "ORDER BY position ASC";
SQLQuery query = session.createSQLQuery(sql);
for (int i = 0; i < SpaltenArray.length; i++) { @Override
query.addScalar(SpaltenArray[i], StandardBasicTypes.STRING); public AnalyzerRequirement getRequirement() {
return AnalyzerRequirement.PROCEDURE;
}
@Override
public boolean isRelevantForAnalyzer(Procedure procedure, Disease currentDisease) {
return false;
}
@Override
public void analyze(Procedure procedurea, Disease disease) {
}
public List<String[]> getMerkmalskatalog(final Map<String, Object> input) {
var merkmalskatalog = input.get("Merkmalskatalog");
var spalten = input.get("Spalten");
if (null == merkmalskatalog || merkmalskatalog.toString().isBlank()) {
logger.error("Kein Merkmalskatalog angegeben!");
return null;
} }
@SuppressWarnings("unchecked") if (null == spalten || spalten.toString().isBlank()) {
List<String[]> rows = query.list(); logger.error("Keine Spalten angegeben!");
return rows; return null;
} catch (Exception e) { }
return null;
} String[] spaltenArray = spalten.toString().split("\\s*,\\s*");
} catch (Exception e) {
return null; try {
} SessionFactory sessionFactory = onkostarApi.getSessionFactory();
} Session session = sessionFactory.getCurrentSession();
String sql = "SELECT p.id, p.code, p.shortdesc, p.description, p.note, p.synonyms "
+ "FROM property_catalogue "
+ "LEFT JOIN property_catalogue_version ON property_catalogue_version.datacatalog_id = property_catalogue.id "
+ "LEFT JOIN property_catalogue_version_entry p ON p.property_version_id = property_catalogue_version.id "
+ "WHERE name = '" + merkmalskatalog + "' AND aktiv = 1 "
+ "ORDER BY position ASC";
SQLQuery query = session.createSQLQuery(sql);
for (String s : spaltenArray) {
query.addScalar(s, StandardBasicTypes.STRING);
}
@SuppressWarnings("unchecked")
List<String[]> rows = query.list();
return rows;
} catch (Exception e) {
logger.error("Fehler bei der Ausführung von getMerkmalskatalog()", e);
return null;
}
}
} }