mirror of
https://github.com/pcvolkmer/onkostar-plugin-dnpm.git
synced 2025-07-03 17:52:53 +00:00
Verwende konkrete Rückgabetypen und füge weitere Prüfungen für InputMap hinzu
This commit is contained in:
@ -83,11 +83,16 @@ public class DNPMHelper implements IProcedureAnalyzer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public Object getVerweise(final Map<String, Object> input) {
|
public List<Map<String, String>> getVerweise(final Map<String, Object> input) {
|
||||||
int ProcedureId = (int) input.get("ProcedureId");
|
var procedureId = AnalyzerUtils.getRequiredId(input, "ProcedureId");
|
||||||
int PatientId = (int) input.get("PatientId");
|
var patientId = AnalyzerUtils.getRequiredId(input, "PatientId");
|
||||||
|
|
||||||
|
if (procedureId.isEmpty() || patientId.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
int value = 0;
|
int value = 0;
|
||||||
List<Map<String, String>> VerbundeneFormulare = new ArrayList<Map<String, String>>();
|
var VerbundeneFormulare = new ArrayList<Map<String, String>>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
SessionFactory sessionFactory = onkostarApi.getSessionFactory();
|
SessionFactory sessionFactory = onkostarApi.getSessionFactory();
|
||||||
@ -99,7 +104,7 @@ public class DNPMHelper implements IProcedureAnalyzer {
|
|||||||
"LEFT JOIN data_catalogue_entry ON data_catalogue_entry.data_catalogue_id = data_form_data_catalogue.data_catalogue_id " +
|
"LEFT JOIN data_catalogue_entry ON data_catalogue_entry.data_catalogue_id = data_form_data_catalogue.data_catalogue_id " +
|
||||||
"LEFT JOIN data_catalogue ON data_catalogue.id = data_catalogue_entry.data_catalogue_id " +
|
"LEFT JOIN data_catalogue ON data_catalogue.id = data_catalogue_entry.data_catalogue_id " +
|
||||||
"LEFT JOIN data_form ON data_form.id = prozedur.data_form_id " +
|
"LEFT JOIN data_form ON data_form.id = prozedur.data_form_id " +
|
||||||
"WHERE patient_id = " + PatientId + " " +
|
"WHERE patient_id = " + patientId.get() + " " +
|
||||||
"AND geloescht = 0 " +
|
"AND geloescht = 0 " +
|
||||||
"AND data_catalogue_entry.type = 'formReference' " +
|
"AND data_catalogue_entry.type = 'formReference' " +
|
||||||
"GROUP BY prozedur.id, prozedur.data_form_id, data_catalogue.name, data_catalogue_entry.name";
|
"GROUP BY prozedur.id, prozedur.data_form_id, data_catalogue.name, data_catalogue_entry.name";
|
||||||
@ -122,7 +127,7 @@ public class DNPMHelper implements IProcedureAnalyzer {
|
|||||||
if (query.uniqueResult() != null) {
|
if (query.uniqueResult() != null) {
|
||||||
value = (Integer) query.uniqueResult();
|
value = (Integer) query.uniqueResult();
|
||||||
}
|
}
|
||||||
if (value == ProcedureId) {
|
if (value == procedureId.get()) {
|
||||||
VerbundeneFormulare.add(Map.of("formular", var.getVerbundenesFormular()));
|
VerbundeneFormulare.add(Map.of("formular", var.getVerbundenesFormular()));
|
||||||
value = 0;
|
value = 0;
|
||||||
}
|
}
|
||||||
@ -150,18 +155,22 @@ public class DNPMHelper implements IProcedureAnalyzer {
|
|||||||
return systemtherapieService.getSystemischeTherapienFromDiagnose(diagnoseId.get());
|
return systemtherapieService.getSystemischeTherapienFromDiagnose(diagnoseId.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object getProzedurenFromDiagnose(final Map<String, Object> input) {
|
public String getProzedurenFromDiagnose(final Map<String, Object> input) {
|
||||||
String dataForm = (String) input.get("dataForm");
|
|
||||||
int DiagnoseId = (int) input.get("DiagnoseId");
|
|
||||||
int PatientId = (int) input.get("PatientId");
|
|
||||||
// Prozedur, Feldname, Wert
|
// Prozedur, Feldname, Wert
|
||||||
|
var dataForm = AnalyzerUtils.getRequiredValue(input, "dataForm", String.class);
|
||||||
|
var diagnoseId = AnalyzerUtils.getRequiredId(input, "DiagnoseId");
|
||||||
|
var patientId = AnalyzerUtils.getRequiredId(input, "PatientId");
|
||||||
|
|
||||||
|
if (dataForm.isEmpty() || diagnoseId.isEmpty() || patientId.isEmpty()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
List<Object> Formulare = new ArrayList<Object>();
|
List<Object> Formulare = new ArrayList<Object>();
|
||||||
String jsonStr = "";
|
String jsonStr = "";
|
||||||
List<Procedure> Prozeduren = onkostarApi.getProceduresByPatientId(PatientId);
|
List<Procedure> Prozeduren = onkostarApi.getProceduresByPatientId(patientId.get());
|
||||||
for (Procedure Prozedur : Prozeduren) {
|
for (Procedure Prozedur : Prozeduren) {
|
||||||
// Formular gehört zur aktuellen Diagnose und hat den angegebenen Namen
|
// Formular gehört zur aktuellen Diagnose und hat den angegebenen Namen
|
||||||
if (Prozedur.getDiseaseIds().contains(DiagnoseId) && Prozedur.getFormName().contains(dataForm)) {
|
if (Prozedur.getDiseaseIds().contains(diagnoseId.get()) && Prozedur.getFormName().contains(dataForm.get())) {
|
||||||
// alle Werte auslesen
|
// alle Werte auslesen
|
||||||
Map<String, Item> Werte = Prozedur.getAllValues();
|
Map<String, Item> Werte = Prozedur.getAllValues();
|
||||||
Map<String, Object> Values = new HashMap<>();
|
Map<String, Object> Values = new HashMap<>();
|
||||||
|
@ -6,6 +6,7 @@ import org.hibernate.SQLQuery;
|
|||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Nested;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
@ -60,6 +61,9 @@ class DNPMHelperTest {
|
|||||||
assertThat(actual).isNull();
|
assertThat(actual).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
class UpdateEmpfehlungPrioTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testShouldReturnFalseIfNoRidAndNoBdCallingUpdateEmpfehlungPrio() {
|
void testShouldReturnFalseIfNoRidAndNoBdCallingUpdateEmpfehlungPrio() {
|
||||||
var actual = dnpmHelper.updateEmpfehlungPrio(new HashMap<>());
|
var actual = dnpmHelper.updateEmpfehlungPrio(new HashMap<>());
|
||||||
@ -114,3 +118,65 @@ class DNPMHelperTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
class GetProzedurenFromDiagnoseTests {
|
||||||
|
@Test
|
||||||
|
void testShouldReturnEmptyStringOnParamCheckIfNoDataFormParamGiven() {
|
||||||
|
var actual = dnpmHelper.getProzedurenFromDiagnose(Map.of("DiagnoseId", 1, "PatientId", 2));
|
||||||
|
assertThat(actual).isEqualTo("");
|
||||||
|
|
||||||
|
verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testShouldReturnEmptyStringOnParamCheckIfNoDiagnoseIdParamGiven() {
|
||||||
|
var actual = dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "PatientId", 2));
|
||||||
|
assertThat(actual).isEqualTo("");
|
||||||
|
|
||||||
|
verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testShouldReturnEmptyStringOnParamCheckIfNoPatientIdParamGiven() {
|
||||||
|
var actual = dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "DiagnoseId", 1));
|
||||||
|
assertThat(actual).isEqualTo("");
|
||||||
|
|
||||||
|
verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testShouldRequestProceduresIfRequiredParamsGiven() {
|
||||||
|
dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "DiagnoseId", 1, "PatientId", 2));
|
||||||
|
verify(onkostarApi, times(1)).getProceduresByPatientId(anyInt());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
class GetVerweiseTests {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testShouldReturnEmptyArrayIfNoProcedureIdParamGiven() {
|
||||||
|
var actual = dnpmHelper.getVerweise(Map.of("PatientId", 2));
|
||||||
|
assertThat(actual).isNull();
|
||||||
|
|
||||||
|
verify(onkostarApi, times(0)).getSessionFactory();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testShouldReturnEmptyArrayIfNoPatientIdParamGiven() {
|
||||||
|
var actual = dnpmHelper.getVerweise(Map.of("ProcedureId", 1));
|
||||||
|
assertThat(actual).isNull();
|
||||||
|
|
||||||
|
verify(onkostarApi, times(0)).getSessionFactory();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testShouldRequestSessionFactoryIfRequiredParamsGiven() {
|
||||||
|
dnpmHelper.getVerweise(Map.of("ProcedureId", 1, "PatientId", 2));
|
||||||
|
verify(onkostarApi, times(1)).getSessionFactory();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user