1
0
mirror of https://github.com/pcvolkmer/onkostar-plugin-dnpm.git synced 2025-07-04 10:02:55 +00:00

Merge pull request #43 from CCC-MF/issue_42

Issue #42: Vereinheitlichung der Analyzer-Klassen des Plugins
This commit is contained in:
2023-08-29 09:30:45 +02:00
committed by GitHub
14 changed files with 74 additions and 151 deletions

View File

@ -0,0 +1,12 @@
package DNPM.analyzer;
import de.itc.onkostar.api.analysis.OnkostarPluginType;
public abstract class Analyzer implements IPluginPart {
@Override
public final OnkostarPluginType getType() {
return OnkostarPluginType.ANALYZER;
}
}

View File

@ -0,0 +1,25 @@
package DNPM.analyzer;
import de.itc.onkostar.api.Disease;
import de.itc.onkostar.api.Procedure;
import de.itc.onkostar.api.analysis.OnkostarPluginType;
public abstract class BackendService implements IPluginPart {
@Override
public final OnkostarPluginType getType() {
return OnkostarPluginType.BACKEND_SERVICE;
}
/**
* Ein Backend-Service verwendet die Methode nicht, daher wird hier eine final Stub-Implementierung
* verwendet, die ein Überschreiben verhindert.
* @param procedure
* @param disease
*/
@Override
public final void analyze(Procedure procedure, Disease disease) {
// No op
}
}

View File

@ -1,16 +1,14 @@
package DNPM; package DNPM.analyzer;
import DNPM.services.consent.ConsentManagerServiceFactory; import DNPM.services.consent.ConsentManagerServiceFactory;
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.OnkostarPluginType;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class ConsentManager implements IProcedureAnalyzer { public class ConsentManager extends Analyzer {
private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());
@ -31,26 +29,11 @@ public class ConsentManager implements IProcedureAnalyzer {
return "Aktualisiert Consent Daten in verknüpften Formularen"; return "Aktualisiert Consent Daten in verknüpften Formularen";
} }
@Override
public String getName() {
return "Consent Manager";
}
@Override @Override
public AnalyzerRequirement getRequirement() { public AnalyzerRequirement getRequirement() {
return AnalyzerRequirement.PROCEDURE; return AnalyzerRequirement.PROCEDURE;
} }
@Override
public OnkostarPluginType getType() {
return OnkostarPluginType.ANALYZER;
}
@Override
public String getVersion() {
return "0.3.0";
}
@Override @Override
public boolean isRelevantForAnalyzer(Procedure prozedur, Disease erkrankung) { public boolean isRelevantForAnalyzer(Procedure prozedur, Disease erkrankung) {
return prozedur.getFormName().equals(onkostarApi.getGlobalSetting("consentform")); return prozedur.getFormName().equals(onkostarApi.getGlobalSetting("consentform"));

View File

@ -1,6 +1,6 @@
package DNPM; package DNPM.analyzer;
import DNPM.analyzer.AnalyzerUtils; import DNPM.VerweisVon;
import DNPM.security.IllegalSecuredObjectAccessException; import DNPM.security.IllegalSecuredObjectAccessException;
import DNPM.security.PermissionType; import DNPM.security.PermissionType;
import DNPM.security.PersonPoolBasedPermissionEvaluator; import DNPM.security.PersonPoolBasedPermissionEvaluator;
@ -11,8 +11,6 @@ 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.OnkostarPluginType;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
@ -27,7 +25,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public class DNPMHelper implements IProcedureAnalyzer { public class DNPMHelper extends BackendService {
private static final Logger logger = LoggerFactory.getLogger(DNPMHelper.class); private static final Logger logger = LoggerFactory.getLogger(DNPMHelper.class);
@ -47,23 +45,6 @@ public class DNPMHelper implements IProcedureAnalyzer {
this.personPoolBasedPermissionEvaluator = permissionEvaluator; this.personPoolBasedPermissionEvaluator = permissionEvaluator;
} }
@Override
public OnkostarPluginType getType() {
// Typ des Plugins
// Für das Interface IProcedureAnalyzer gültig sind ANALYZER und BACKEND_SERVICE
return OnkostarPluginType.BACKEND_SERVICE;
}
@Override
public String getVersion() {
return "0.4.0";
}
@Override
public String getName() {
return "UMR DNPM";
}
@Override @Override
public String getDescription() { public String getDescription() {
return "Methoden für DNPM-Formulare"; return "Methoden für DNPM-Formulare";
@ -90,11 +71,6 @@ public class DNPMHelper implements IProcedureAnalyzer {
return false; return false;
} }
@Override
public void analyze(Procedure entry, Disease currentDisease) {
// wird nicht benötigt, da dass Plugin nicht ausgeführt wird
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public List<Map<String, String>> getVerweise(final Map<String, Object> input) { public List<Map<String, String>> getVerweise(final Map<String, Object> input) {
var procedureId = AnalyzerUtils.getRequiredId(input, "ProcedureId"); var procedureId = AnalyzerUtils.getRequiredId(input, "ProcedureId");

View File

@ -10,8 +10,6 @@ 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.OnkostarPluginType;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
@ -26,7 +24,7 @@ import java.util.Map;
* @since 0.2.0 * @since 0.2.0
*/ */
@Component @Component
public class EinzelempfehlungAnalyzer implements IProcedureAnalyzer { public class EinzelempfehlungAnalyzer extends BackendService {
private final static Logger logger = LoggerFactory.getLogger(EinzelempfehlungAnalyzer.class); private final static Logger logger = LoggerFactory.getLogger(EinzelempfehlungAnalyzer.class);
@ -50,21 +48,6 @@ public class EinzelempfehlungAnalyzer implements IProcedureAnalyzer {
this.permissionEvaluator = permissionEvaluator; this.permissionEvaluator = permissionEvaluator;
} }
@Override
public OnkostarPluginType getType() {
return OnkostarPluginType.BACKEND_SERVICE;
}
@Override
public String getVersion() {
return "0.4.0";
}
@Override
public String getName() {
return "DNPM Einzelempfehlung Backend Service";
}
@Override @Override
public String getDescription() { public String getDescription() {
return "Stellt Funktionen zur Nutzung im Therapieplan-Unterformular für Einzelempfehlungen bereit"; return "Stellt Funktionen zur Nutzung im Therapieplan-Unterformular für Einzelempfehlungen bereit";
@ -93,11 +76,6 @@ public class EinzelempfehlungAnalyzer implements IProcedureAnalyzer {
return AnalyzerRequirement.PROCEDURE; return AnalyzerRequirement.PROCEDURE;
} }
@Override
public void analyze(Procedure procedure, Disease disease) {
// No op
}
public List<Variant> getVariants(Map<String, Object> input) { public List<Variant> getVariants(Map<String, Object> input) {
var procedureId = AnalyzerUtils.getRequiredId(input, "id"); var procedureId = AnalyzerUtils.getRequiredId(input, "id");

View File

@ -6,8 +6,6 @@ import de.itc.onkostar.api.Item;
import de.itc.onkostar.api.Procedure; import de.itc.onkostar.api.Procedure;
import de.itc.onkostar.api.analysis.AnalyseTriggerEvent; import de.itc.onkostar.api.analysis.AnalyseTriggerEvent;
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.OnkostarPluginType;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -20,7 +18,7 @@ import java.util.Set;
* @since 0.0.2 * @since 0.0.2
*/ */
@Component @Component
public class FollowUpAnalyzer implements IProcedureAnalyzer { public class FollowUpAnalyzer extends Analyzer {
private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());
@ -30,21 +28,6 @@ public class FollowUpAnalyzer implements IProcedureAnalyzer {
this.onkostarApi = onkostarApi; this.onkostarApi = onkostarApi;
} }
@Override
public OnkostarPluginType getType() {
return OnkostarPluginType.ANALYZER;
}
@Override
public String getVersion() {
return "0.4.0";
}
@Override
public String getName() {
return "DNPM FollowUp Analyzer";
}
@Override @Override
public String getDescription() { public String getDescription() {
return "Aktualisiert verknüpfte Formulare nach Änderungen im FollowUp-Formular"; return "Aktualisiert verknüpfte Formulare nach Änderungen im FollowUp-Formular";

View File

@ -0,0 +1,19 @@
package DNPM.analyzer;
import de.itc.onkostar.api.analysis.IProcedureAnalyzer;
public interface IPluginPart extends IProcedureAnalyzer {
default String getVersion() {
return "0.4.0";
}
default String getName() {
return "DNPM Plugin";
}
default String getDescription() {
return String.format("Plugin-Bestandteil '%s'", this.getClass().getSimpleName());
}
}

View File

@ -1,12 +1,9 @@
package DNPM; package DNPM.analyzer;
import DNPM.analyzer.AnalyzerUtils;
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.OnkostarPluginType;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
@ -17,7 +14,7 @@ import org.slf4j.LoggerFactory;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public class Merkmalskatalog implements IProcedureAnalyzer { public class Merkmalskatalog extends BackendService {
private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());
@ -27,21 +24,6 @@ public class Merkmalskatalog implements IProcedureAnalyzer {
this.onkostarApi = onkostarApi; this.onkostarApi = onkostarApi;
} }
@Override
public OnkostarPluginType getType() {
return OnkostarPluginType.BACKEND_SERVICE;
}
@Override
public String getVersion() {
return "0.3.0";
}
@Override
public String getName() {
return "UMR Merkmalskatalog";
}
@Override @Override
public String getDescription() { public String getDescription() {
return "Methoden für Merkmalskataloge"; return "Methoden für Merkmalskataloge";
@ -67,10 +49,6 @@ public class Merkmalskatalog implements IProcedureAnalyzer {
return false; return false;
} }
@Override
public void analyze(Procedure procedure, Disease disease) {
}
public List<String[]> getMerkmalskatalog(final Map<String, Object> input) { public List<String[]> getMerkmalskatalog(final Map<String, Object> input) {
var merkmalskatalog = AnalyzerUtils.getRequiredValue(input, "Merkmalskatalog", String.class); var merkmalskatalog = AnalyzerUtils.getRequiredValue(input, "Merkmalskatalog", String.class);
var spalten = AnalyzerUtils.getRequiredValue(input, "Spalten", String.class); var spalten = AnalyzerUtils.getRequiredValue(input, "Spalten", String.class);

View File

@ -7,8 +7,6 @@ import de.itc.onkostar.api.Item;
import de.itc.onkostar.api.Procedure; import de.itc.onkostar.api.Procedure;
import de.itc.onkostar.api.analysis.AnalyseTriggerEvent; import de.itc.onkostar.api.analysis.AnalyseTriggerEvent;
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.OnkostarPluginType;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -25,7 +23,7 @@ import java.util.stream.Collectors;
* @since 0.4.0 * @since 0.4.0
*/ */
@Component @Component
public class SystemtherapieAnalyzer implements IProcedureAnalyzer { public class SystemtherapieAnalyzer extends Analyzer {
private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());
@ -41,21 +39,6 @@ public class SystemtherapieAnalyzer implements IProcedureAnalyzer {
this.systemtherapieService = systemtherapieService; this.systemtherapieService = systemtherapieService;
} }
@Override
public OnkostarPluginType getType() {
return OnkostarPluginType.ANALYZER;
}
@Override
public String getVersion() {
return "0.4.0";
}
@Override
public String getName() {
return "DNPM Systemtherapie Analyzer";
}
@Override @Override
public String getDescription() { public String getDescription() {
return "Aktualisiert verknüpfte Formulare nach Änderungen im Formularen vom Typ Systemtherapie"; return "Aktualisiert verknüpfte Formulare nach Änderungen im Formularen vom Typ Systemtherapie";

View File

@ -8,8 +8,6 @@ import de.itc.onkostar.api.Disease;
import de.itc.onkostar.api.Procedure; import de.itc.onkostar.api.Procedure;
import de.itc.onkostar.api.analysis.AnalyseTriggerEvent; import de.itc.onkostar.api.analysis.AnalyseTriggerEvent;
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.OnkostarPluginType;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -22,7 +20,7 @@ import java.util.Set;
* @since 0.0.2 * @since 0.0.2
*/ */
@Component @Component
public class TherapieplanAnalyzer implements IProcedureAnalyzer { public class TherapieplanAnalyzer extends Analyzer {
private final TherapieplanServiceFactory therapieplanServiceFactory; private final TherapieplanServiceFactory therapieplanServiceFactory;
@ -40,21 +38,6 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
this.permissionEvaluator = permissionEvaluator; this.permissionEvaluator = permissionEvaluator;
} }
@Override
public OnkostarPluginType getType() {
return OnkostarPluginType.ANALYZER;
}
@Override
public String getVersion() {
return "0.4.0";
}
@Override
public String getName() {
return "DNPM Therapieplan Analyzer";
}
@Override @Override
public String getDescription() { public String getDescription() {
return "Aktualisiert Unterformulare nach Änderungen im Therapieplan-Formular"; return "Aktualisiert Unterformulare nach Änderungen im Therapieplan-Formular";

View File

@ -10,14 +10,14 @@
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<bean id="DNPMHelper" class="DNPM.DNPMHelper"> <bean id="DNPMHelper" class="DNPM.analyzer.DNPMHelper">
<constructor-arg ref="localOnkostarApi" /> <constructor-arg ref="localOnkostarApi" />
<constructor-arg ref="systemtherapieService" /> <constructor-arg ref="systemtherapieService" />
</bean> </bean>
<bean id="Merkmalskatalog" class="DNPM.Merkmalskatalog"> <bean id="Merkmalskatalog" class="DNPM.analyzer.Merkmalskatalog">
<constructor-arg ref="localOnkostarApi" /> <constructor-arg ref="localOnkostarApi" />
</bean> </bean>
<bean id="ConsentManager" class="DNPM.ConsentManager"> <bean id="ConsentManager" class="DNPM.analyzer.ConsentManager">
<constructor-arg ref="localOnkostarApi" /> <constructor-arg ref="localOnkostarApi" />
<constructor-arg ref="consentManagerServiceFactory" /> <constructor-arg ref="consentManagerServiceFactory" />
</bean> </bean>

View File

@ -1,5 +1,6 @@
package DNPM; package DNPM;
import DNPM.analyzer.ConsentManager;
import DNPM.services.consent.ConsentManagerServiceFactory; import DNPM.services.consent.ConsentManagerServiceFactory;
import DNPM.services.consent.MrConsentManagerService; import DNPM.services.consent.MrConsentManagerService;
import de.itc.onkostar.api.IOnkostarApi; import de.itc.onkostar.api.IOnkostarApi;

View File

@ -1,5 +1,6 @@
package DNPM; package DNPM;
import DNPM.analyzer.DNPMHelper;
import DNPM.security.IllegalSecuredObjectAccessException; import DNPM.security.IllegalSecuredObjectAccessException;
import DNPM.security.PermissionType; import DNPM.security.PermissionType;
import DNPM.security.PersonPoolBasedPermissionEvaluator; import DNPM.security.PersonPoolBasedPermissionEvaluator;

View File

@ -1,5 +1,6 @@
package DNPM; package DNPM;
import DNPM.analyzer.Merkmalskatalog;
import de.itc.onkostar.api.IOnkostarApi; import de.itc.onkostar.api.IOnkostarApi;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.hibernate.Session; import org.hibernate.Session;