summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/DNPM/DNPMHelper.java30
-rw-r--r--src/main/resources/de/itc/onkostar/library/moduleContext.xml4
-rw-r--r--src/test/java/DNPM/DNPMHelperTest.java91
3 files changed, 106 insertions, 19 deletions
diff --git a/src/main/java/DNPM/DNPMHelper.java b/src/main/java/DNPM/DNPMHelper.java
index 8ec5a83..a086759 100644
--- a/src/main/java/DNPM/DNPMHelper.java
+++ b/src/main/java/DNPM/DNPMHelper.java
@@ -1,36 +1,30 @@
package DNPM;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import ATCCodes.AtcCode;
-import org.hibernate.SQLQuery;
-import org.hibernate.Session;
-import org.hibernate.SessionFactory;
-import org.hibernate.transform.Transformers;
-import org.hibernate.type.StandardBasicTypes;
-import org.springframework.beans.factory.annotation.Autowired;
-
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-
import de.itc.onkostar.api.Disease;
import de.itc.onkostar.api.IOnkostarApi;
import de.itc.onkostar.api.Item;
import de.itc.onkostar.api.Procedure;
-
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.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.transform.Transformers;
+import org.hibernate.type.StandardBasicTypes;
+
+import java.util.*;
public class DNPMHelper implements IProcedureAnalyzer{
- // Laden der API
- @Autowired
- private IOnkostarApi onkostarApi;
+ private final IOnkostarApi onkostarApi;
+
+ public DNPMHelper(final IOnkostarApi onkostarApi) {
+ this.onkostarApi = onkostarApi;
+ }
@Override
public OnkostarPluginType getType() {
diff --git a/src/main/resources/de/itc/onkostar/library/moduleContext.xml b/src/main/resources/de/itc/onkostar/library/moduleContext.xml
index 40de642..48ea576 100644
--- a/src/main/resources/de/itc/onkostar/library/moduleContext.xml
+++ b/src/main/resources/de/itc/onkostar/library/moduleContext.xml
@@ -10,7 +10,9 @@
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">
- <bean id="DNPMHelper" class="DNPM.DNPMHelper" />
+ <bean id="DNPMHelper" class="DNPM.DNPMHelper">
+ <constructor-arg ref="localOnkostarApi" />
+ </bean>
<bean id="Merkmalskatalog" class="DNPM.Merkmalskatalog" />
<bean id="ConsentManager" class="DNPM.ConsentManager" />
diff --git a/src/test/java/DNPM/DNPMHelperTest.java b/src/test/java/DNPM/DNPMHelperTest.java
new file mode 100644
index 0000000..f5c8d03
--- /dev/null
+++ b/src/test/java/DNPM/DNPMHelperTest.java
@@ -0,0 +1,91 @@
+package DNPM;
+
+import de.itc.onkostar.api.IOnkostarApi;
+import de.itc.onkostar.api.Item;
+import de.itc.onkostar.api.Procedure;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.sql.Date;
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doAnswer;
+
+@ExtendWith(MockitoExtension.class)
+public class DNPMHelperTest {
+
+ private IOnkostarApi onkostarApi;
+
+ private DNPMHelper dnpmHelper;
+
+ @BeforeEach
+ void setup(
+ @Mock IOnkostarApi onkostarApi
+ ) {
+ this.onkostarApi = onkostarApi;
+ this.dnpmHelper = new DNPMHelper(onkostarApi);
+ }
+
+ @Test
+ void testShouldReturnSystemischeTherapienFromDiagnose() {
+ doAnswer(invocationOnMock -> {
+ var procedure = new Procedure(onkostarApi);
+ procedure.setFormName("OS.Systemische Therapie");
+ procedure.setValue("Beginn", new Item("Beginn", Date.from(Instant.parse("2023-01-01T00:00:00Z"))));
+ procedure.setValue("Ende", new Item("Ende", Date.from(Instant.parse("2023-01-31T00:00:00Z"))));
+ procedure.setValue("Beendigung", new Item("Beendigungsstatus", "E"));
+ procedure.setValue("Ergebnis", new Item("Ergebnis", "T"));
+
+ var substanzen = new ArrayList<>();
+ substanzen.add(Map.of(
+ "Substanz", "Testsubstanz",
+ "Substanz_shortDescription", "Testsubstanz"
+ ));
+ substanzen.add(Map.of(
+ "Substanz", "L01AA01",
+ "Substanz_shortDescription", "cyclophosphamide"
+ ));
+
+ procedure.setValue("SubstanzenList", new Item("SubstanzenList", substanzen));
+
+ return List.of(procedure);
+ }).when(this.onkostarApi).getProceduresForDiseaseByForm(anyInt(), anyString());
+
+ var actual = dnpmHelper.getSystemischeTherapienFromDiagnose(Map.of("DiagnoseId", 1));
+
+ assertThat(actual).isNotNull();
+ assertThat(actual).isExactlyInstanceOf(ArrayList.class);
+
+ @SuppressWarnings("unchecked")
+ var actualList = (ArrayList<Map<String, Object>>) actual;
+ assertThat(actualList).hasSize(1);
+
+ assertThat(actualList.get(0).get("Beginn"))
+ .isEqualTo(Date.from(Instant.parse("2023-01-01T00:00:00Z")).toString());
+ assertThat(actualList.get(0).get("Ende"))
+ .isEqualTo(Date.from(Instant.parse("2023-01-31T00:00:00Z")).toString());
+ assertThat(actualList.get(0).get("Beendigung"))
+ .isEqualTo("E");
+ assertThat(actualList.get(0).get("Ergebnis"))
+ .isEqualTo("T");
+ assertThat(actualList.get(0).get("Wirkstoffe"))
+ .isEqualTo("Testsubstanz, cyclophosphamide");
+ assertThat(actualList.get(0).get("WirkstoffCodes"))
+ .isEqualTo(
+ "[" +
+ "{\"system\":\"other\",\"code\":\"Testsubstanz\",\"substance\":\"Testsubstanz\"}," +
+ "{\"system\":\"ATC\",\"code\":\"L01AA01\",\"substance\":\"cyclophosphamide\"}" +
+ "]"
+ );
+ }
+
+}