From a80295c4c884d779bf4d2578e737579ead0ebe71 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 22 Mar 2023 12:04:10 +0100 Subject: Extraktion des Mappings Prozedur zu Prozedurwerten und Auswahl des Mappers Aktuell sind nur die beiden Formulare * OS.Systemische Therapie * OS.Systemische Therapie.VarianteUKW bekannt. Beide lassen sich über den extrahierten Mapper in eine Map mit Prozedurwerten mappen. --- .../ProzedurToProzedurwerteMapperTest.java | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/test/java/DNPM/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java (limited to 'src/test/java/DNPM/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java') diff --git a/src/test/java/DNPM/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java b/src/test/java/DNPM/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java new file mode 100644 index 0000000..8804a52 --- /dev/null +++ b/src/test/java/DNPM/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java @@ -0,0 +1,77 @@ +package DNPM.services.systemtherapie; + +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.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +@ExtendWith(MockitoExtension.class) +public class ProzedurToProzedurwerteMapperTest { + + private IOnkostarApi onkostarApi; + + private OsSystemischeTherapieToProzedurwerteMapper mapper; + + @BeforeEach + void setup( + @Mock IOnkostarApi onkostarApi + ) { + this.onkostarApi = onkostarApi; + this.mapper = new OsSystemischeTherapieToProzedurwerteMapper(); + } + + @Test + void testShouldReturnSystemischeTherapienFromDiagnose() { + 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)); + + var actual = mapper.apply(procedure); + + assertThat(actual).isPresent(); + + assertThat(actual.get().get("Beginn")) + .isEqualTo(Date.from(Instant.parse("2023-01-01T00:00:00Z")).toString()); + assertThat(actual.get().get("Ende")) + .isEqualTo(Date.from(Instant.parse("2023-01-31T00:00:00Z")).toString()); + assertThat(actual.get().get("Beendigung")) + .isEqualTo("E"); + assertThat(actual.get().get("Ergebnis")) + .isEqualTo("T"); + assertThat(actual.get().get("Wirkstoffe")) + .isEqualTo("Testsubstanz, cyclophosphamide"); + assertThat(actual.get().get("WirkstoffCodes")) + .isEqualTo( + "[" + + "{\"system\":\"other\",\"code\":\"Testsubstanz\",\"substance\":\"Testsubstanz\"}," + + "{\"system\":\"ATC\",\"code\":\"L01AA01\",\"substance\":\"cyclophosphamide\"}" + + "]" + ); + } + +} -- cgit v1.2.3