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:
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user