summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/forms/TherapieplanAnalyzer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/DNPM/forms/TherapieplanAnalyzer.java')
-rw-r--r--src/main/java/DNPM/forms/TherapieplanAnalyzer.java44
1 files changed, 42 insertions, 2 deletions
diff --git a/src/main/java/DNPM/forms/TherapieplanAnalyzer.java b/src/main/java/DNPM/forms/TherapieplanAnalyzer.java
index 2873004..9fd53cc 100644
--- a/src/main/java/DNPM/forms/TherapieplanAnalyzer.java
+++ b/src/main/java/DNPM/forms/TherapieplanAnalyzer.java
@@ -89,17 +89,57 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
@Override
public void analyze(Procedure procedure, Disease disease) {
+ updateMtbInSections(procedure);
updateMtbInSubforms(procedure);
}
/**
+ * Verlinke MTB und Übernahme Datum aus Hauptformular in weiteren Bereichen
+ * "Humangenetische Beratung" und "Reevaluation", wenn erforderlich.
+ *
+ * @param procedure Die Prozedur mit Hauptformular
+ */
+ private void updateMtbInSections(Procedure procedure) {
+ if (
+ null != onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode")
+ && onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode").equals("true")
+ ||
+ !procedure.getValue("humangenberatung").getString().equals("1")
+ && !procedure.getValue("reevaluation").getString().equals("1")
+ ) {
+ return;
+ }
+
+ var mtbReference = procedure.getValue("referstemtb").getInt();
+ var mtbDate = procedure.getValue("datum").getDate();
+
+ if (mtbReference != procedure.getValue("reftkhumangenber").getInt() && !mtbDate.equals(procedure.getValue("datumtkhumangenber").getDate())) {
+ procedure.setValue("reftkhumangenber", new Item("ref_tk_humangenber", mtbReference));
+ procedure.setValue("datumtkhumangenber", new Item("datum_tk_humangenber", mtbDate));
+ }
+
+ if (mtbReference != procedure.getValue("reftkreevaluation").getInt() && !mtbDate.equals(procedure.getValue("datumtkreevaluation").getDate())) {
+ procedure.setValue("reftkreevaluation", new Item("ref_tk_reevaluation", mtbReference));
+ procedure.setValue("datumtkreevaluation", new Item("datum_tk_reevaluation", mtbDate));
+ }
+
+ try {
+ onkostarApi.saveProcedure(procedure, false);
+ } catch (Exception e) {
+ logger.error("Formular 'DNPM Therapieplan' konnte nicht aktualisiert werden", e);
+ }
+ }
+
+ /**
* Verlinke MTB und Übernahme Datum aus Hauptformular in Unterformularen
*
* @param procedure Die Prozedur mit Hauptformular
*/
- // TODO: 13.03.23 Onkostar führt nach Speicherung eines Unterformulars erneut eine Speicherung des Hauptformulars aus - ggf eigene Speicher-Methode ohne Verwendung der Onkostar-API implementieren.
private void updateMtbInSubforms(Procedure procedure) {
- if (onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode").equals("true")) {
+ if (
+ null != onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode")
+ && onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode").equals("true")
+ ) {
return;
}