From 9afb438eeae0f5a5d6cf63afdaf4b5df8b06a895 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Tue, 7 Apr 2026 10:15:30 +0200 Subject: refactor: remove deprecated MtbService (#260) --- .../oshelper/analyzer/TherapieplanAnalyzer.java | 62 +------ .../dnpm/oshelper/config/PluginConfiguration.java | 9 +- .../oshelper/services/mtb/DefaultMtbService.java | 90 --------- .../dev/dnpm/oshelper/services/mtb/MtbService.java | 51 ------ .../analyzer/TherapieplanAnalyzerTest.java | 61 +----- .../services/mtb/DefaultMtbServiceTest.java | 204 --------------------- 6 files changed, 8 insertions(+), 469 deletions(-) delete mode 100644 src/main/java/dev/dnpm/oshelper/services/mtb/DefaultMtbService.java delete mode 100644 src/main/java/dev/dnpm/oshelper/services/mtb/MtbService.java delete mode 100644 src/test/java/dev/dnpm/oshelper/services/mtb/DefaultMtbServiceTest.java diff --git a/src/main/java/dev/dnpm/oshelper/analyzer/TherapieplanAnalyzer.java b/src/main/java/dev/dnpm/oshelper/analyzer/TherapieplanAnalyzer.java index 50b8c20..85baf5f 100644 --- a/src/main/java/dev/dnpm/oshelper/analyzer/TherapieplanAnalyzer.java +++ b/src/main/java/dev/dnpm/oshelper/analyzer/TherapieplanAnalyzer.java @@ -19,18 +19,13 @@ package dev.dnpm.oshelper.analyzer; -import dev.dnpm.oshelper.security.DelegatingDataBasedPermissionEvaluator; -import dev.dnpm.oshelper.security.PermissionType; -import dev.dnpm.oshelper.services.mtb.MtbService; -import dev.dnpm.oshelper.services.therapieplan.TherapieplanServiceFactory; import de.itc.onkostar.api.Disease; import de.itc.onkostar.api.Procedure; import de.itc.onkostar.api.analysis.AnalyseTriggerEvent; import de.itc.onkostar.api.analysis.AnalyzerRequirement; -import org.springframework.security.core.context.SecurityContextHolder; +import dev.dnpm.oshelper.services.therapieplan.TherapieplanServiceFactory; import org.springframework.stereotype.Component; -import java.util.Map; import java.util.Set; /** @@ -43,18 +38,10 @@ public class TherapieplanAnalyzer extends Analyzer { private final TherapieplanServiceFactory therapieplanServiceFactory; - private final MtbService mtbService; - - private final DelegatingDataBasedPermissionEvaluator permissionEvaluator; - public TherapieplanAnalyzer( - final TherapieplanServiceFactory therapieplanServiceFactory, - final MtbService mtbService, - final DelegatingDataBasedPermissionEvaluator permissionEvaluator + final TherapieplanServiceFactory therapieplanServiceFactory ) { this.therapieplanServiceFactory = therapieplanServiceFactory; - this.mtbService = mtbService; - this.permissionEvaluator = permissionEvaluator; } @Override @@ -99,49 +86,4 @@ public class TherapieplanAnalyzer extends Analyzer { therapieplanServiceFactory.currentUsableInstance().updateRequiredMtbEntries(procedure); } - /** - * Übergibt den Text der referenzierten MTBs für den Protokollauszug - * - *

Wurde der Eingabewert id nicht übergeben, wird ein leerer String zurück gegeben. - * - *

Beispiel zur Nutzung in einem Formularscript - *

-     * executePluginMethod(
-     *   'TherapieplanAnalyzer',
-     *   'getProtokollauszug',
-     *   { id: 12345 },
-     *   (response) => console.log(response),
-     *   false
-     * );
-     * 
- * - * @param input Map mit Eingabewerten - * @return Zeichenkette mit Protokollauszug - */ - @Deprecated(since = "2.1", forRemoval = true) - public String getProtokollauszug(Map input) { - var procedureId = AnalyzerUtils.getRequiredId(input, "id"); - - if (procedureId.isEmpty()) { - return ""; - } - - if ( - permissionEvaluator.hasPermission( - SecurityContextHolder.getContext().getAuthentication(), - procedureId.get(), - Procedure.class.getSimpleName(), - PermissionType.READ - ) - ) { - return mtbService.getProtocol( - therapieplanServiceFactory - .currentUsableInstance() - .findReferencedMtbs(procedureId.get()) - ); - } - - return ""; - } - } diff --git a/src/main/java/dev/dnpm/oshelper/config/PluginConfiguration.java b/src/main/java/dev/dnpm/oshelper/config/PluginConfiguration.java index f52fa29..bb6619f 100644 --- a/src/main/java/dev/dnpm/oshelper/config/PluginConfiguration.java +++ b/src/main/java/dev/dnpm/oshelper/config/PluginConfiguration.java @@ -19,6 +19,7 @@ package dev.dnpm.oshelper.config; +import de.itc.onkostar.api.IOnkostarApi; import dev.dnpm.oshelper.atc.services.AgentCodeService; import dev.dnpm.oshelper.atc.services.CsvAgentCodeService; import dev.dnpm.oshelper.atc.services.OnkostarAgentCodeService; @@ -27,14 +28,11 @@ import dev.dnpm.oshelper.services.*; import dev.dnpm.oshelper.services.consent.ConsentManagerServiceFactory; import dev.dnpm.oshelper.services.molekulargenetik.MolekulargenetikFormService; import dev.dnpm.oshelper.services.molekulargenetik.OsMolekulargenetikFormService; -import dev.dnpm.oshelper.services.mtb.DefaultMtbService; -import dev.dnpm.oshelper.services.mtb.MtbService; import dev.dnpm.oshelper.services.strahlentherapie.DefaultStrahlentherapieService; import dev.dnpm.oshelper.services.strahlentherapie.StrahlentherapieService; import dev.dnpm.oshelper.services.systemtherapie.DefaultSystemtherapieService; import dev.dnpm.oshelper.services.systemtherapie.SystemtherapieService; import dev.dnpm.oshelper.services.therapieplan.TherapieplanServiceFactory; -import de.itc.onkostar.api.IOnkostarApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @@ -67,11 +65,6 @@ public class PluginConfiguration { return new SettingsService(settingsRepository); } - @Bean - public MtbService mtbService(final IOnkostarApi onkostarApi) { - return new DefaultMtbService(onkostarApi); - } - @Bean public SystemtherapieService systemtherapieService( final IOnkostarApi onkostarApi, diff --git a/src/main/java/dev/dnpm/oshelper/services/mtb/DefaultMtbService.java b/src/main/java/dev/dnpm/oshelper/services/mtb/DefaultMtbService.java deleted file mode 100644 index bc8a0cc..0000000 --- a/src/main/java/dev/dnpm/oshelper/services/mtb/DefaultMtbService.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * This file is part of onkostar-plugin-dnpm - * - * Copyright (C) 2023-2026 the original author or authors. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package dev.dnpm.oshelper.services.mtb; - -import de.itc.onkostar.api.IOnkostarApi; -import de.itc.onkostar.api.Procedure; - -import java.util.Comparator; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** - * Standardimplementierung des MtbService - * - * @since 0.0.2 - */ -@Deprecated(forRemoval = true, since = "2.1.0") -public class DefaultMtbService implements MtbService { - - private final IOnkostarApi onkostarApi; - - public DefaultMtbService(final IOnkostarApi onkostarApi) { - this.onkostarApi = onkostarApi; - } - - /** - * Zusammenfassung der Prozeduren. - * Dabei werden alle Prozeduren sortiert, mit ermitteltem Mapper in {@link Optional} eines {@link String}s - * gewandelt und, wenn dies erfolgreich war, die Zeichenkette extrahiert. - * Im Anschluss wird die Abfolge der Zeichenketten mit den einzelnen Prozedur-Zusammenfassungen in eine - * einzige Zusammenfassung zusammengefügt. - * @param procedures Prozeduren, die zusammen gefasst werden sollen - * @return Text mit Zusammenfassung aller übergebenen Prozeduren - */ - @Override - public String getProtocol(List procedures) { - return this.sortedDistinctProcedureProtocolList(procedures.stream()) - .collect(Collectors.joining("\n\n")); - } - - private Stream sortedDistinctProcedureProtocolList(Stream procedures) { - return procedures - .sorted(Comparator.comparing(Procedure::getStartDate)) - .map(this::selectAndApplyMapper) - .filter(Optional::isPresent) - .map(Optional::get) - .distinct(); - } - - /** - * Übergibt anzuwendenden Mapper für eine Prozedur. - * Wurde keine Implementierung festgelegt, wird ein Mapper zurückgegeben, der eine - * Prozedur in ein leeres {@link Optional} zurück gibt, übergeben. - * @param procedure Prozedur, für die ein Mapper ermittelt werden soll - * @return Mapper für diese Prozedur - */ - @Override - public ProcedureToProtocolMapper procedureToProtocolMapper(Procedure procedure) { - switch (procedure.getFormName()) { - case "OS.Tumorkonferenz": - return new OsTumorkonferenzToProtocolMapper(); - case "OS.Tumorkonferenz.VarianteUKW": - return new OsTumorkonferenzVarianteUkwToProtocolMapper(); - case "MR.MTB_Anmeldung": - return new MrMtbAnmeldungToProtocolMapper(this.onkostarApi); - default: - return p -> Optional.empty(); - } - } - -} diff --git a/src/main/java/dev/dnpm/oshelper/services/mtb/MtbService.java b/src/main/java/dev/dnpm/oshelper/services/mtb/MtbService.java deleted file mode 100644 index ec0724c..0000000 --- a/src/main/java/dev/dnpm/oshelper/services/mtb/MtbService.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * This file is part of onkostar-plugin-dnpm - * - * Copyright (C) 2023-2026 the original author or authors. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package dev.dnpm.oshelper.services.mtb; - -import de.itc.onkostar.api.Procedure; - -import java.util.List; -import java.util.Optional; - -@Deprecated(forRemoval = true, since = "2.1.0") -public interface MtbService { - /** - * Zusammenfassung der Prozeduren - * @param procedures Prozeduren, die zusammen gefasst werden sollen - * @return Text mit Zusammenfassung der Prozeduren - */ - String getProtocol(List procedures); - - /** - * Übergibt anzuwendenden Mapper für eine Prozedur - * @param procedure Prozedur, für die ein Mapper ermittelt werden soll - * @return Mapper für diese Prozedur - */ - ProcedureToProtocolMapper procedureToProtocolMapper(Procedure procedure); - - /** - * Select mapper using method {@link #procedureToProtocolMapper(Procedure)} and apply procedure - * @param procedure The Procedure to select mapper for and apply - * @return {@link Optional} with protocol or empty {@link Optional} - */ - default Optional selectAndApplyMapper(Procedure procedure) { - return this.procedureToProtocolMapper(procedure).apply(procedure); - } -} diff --git a/src/test/java/dev/dnpm/oshelper/analyzer/TherapieplanAnalyzerTest.java b/src/test/java/dev/dnpm/oshelper/analyzer/TherapieplanAnalyzerTest.java index d822f89..0ee1ef8 100644 --- a/src/test/java/dev/dnpm/oshelper/analyzer/TherapieplanAnalyzerTest.java +++ b/src/test/java/dev/dnpm/oshelper/analyzer/TherapieplanAnalyzerTest.java @@ -19,27 +19,17 @@ package dev.dnpm.oshelper.analyzer; -import dev.dnpm.oshelper.security.DelegatingDataBasedPermissionEvaluator; -import dev.dnpm.oshelper.security.PermissionType; -import dev.dnpm.oshelper.services.FormService; -import dev.dnpm.oshelper.services.mtb.MtbService; -import dev.dnpm.oshelper.services.therapieplan.MultipleMtbTherapieplanService; -import dev.dnpm.oshelper.services.therapieplan.TherapieplanService; -import dev.dnpm.oshelper.services.therapieplan.TherapieplanServiceFactory; import de.itc.onkostar.api.IOnkostarApi; -import de.itc.onkostar.api.Item; import de.itc.onkostar.api.Procedure; +import dev.dnpm.oshelper.services.FormService; +import dev.dnpm.oshelper.services.therapieplan.DefaultTherapieplanService; +import dev.dnpm.oshelper.services.therapieplan.TherapieplanServiceFactory; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import java.util.List; -import java.util.Map; - -import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.*; @ExtendWith(MockitoExtension.class) @@ -54,62 +44,21 @@ class TherapieplanAnalyzerTest { @Mock private TherapieplanServiceFactory therapieplanServiceFactory; - @Mock - private TherapieplanService therapieplanService; - - @Mock - private MtbService mtbService; - - @Mock - private DelegatingDataBasedPermissionEvaluator permissionEvaluator; - private TherapieplanAnalyzer therapieplanAnalyzer; @BeforeEach void setUp() { - this.therapieplanAnalyzer = new TherapieplanAnalyzer(therapieplanServiceFactory, mtbService, permissionEvaluator); + this.therapieplanAnalyzer = new TherapieplanAnalyzer(therapieplanServiceFactory); } @Test void shouldRunServiceMethodsOnAnalyzeCalled() { when(this.therapieplanServiceFactory.currentUsableInstance()) - .thenReturn(new MultipleMtbTherapieplanService(onkostarApi, formService)); + .thenReturn(new DefaultTherapieplanService(onkostarApi, formService)); this.therapieplanAnalyzer.analyze(new Procedure(onkostarApi), null); verify(this.therapieplanServiceFactory, times(1)).currentUsableInstance(); } - @Test - void shouldRequestProtokollauszug() { - doAnswer(invocationOnMock -> { - var procedure = new Procedure(onkostarApi); - procedure.setValue("referstemtb", new Item("referstemtb", 2345)); - return List.of(procedure); - }).when(this.therapieplanService).findReferencedMtbs(anyInt()); - - when(this.therapieplanServiceFactory.currentUsableInstance()) - .thenReturn(therapieplanService); - - when(this.permissionEvaluator.hasPermission(any(), anyInt(), anyString(), any(PermissionType.class))).thenReturn(true); - - var input = Map.of("id", (Object) 1234); - this.therapieplanAnalyzer.getProtokollauszug(input); - - var captor = ArgumentCaptor.forClass(List.class); - verify(mtbService, times(1)).getProtocol(captor.capture()); - assertThat(captor.getValue()).hasSize(1); - } - - @Test - void shouldNotRequestProtokollauszugDueToNoPermission() { - when(this.permissionEvaluator.hasPermission(any(), anyInt(), anyString(), any(PermissionType.class))) - .thenReturn(false); - - var input = Map.of("id", (Object) 1234); - this.therapieplanAnalyzer.getProtokollauszug(input); - - verify(mtbService, times(0)).getProtocol(anyList()); - } - } diff --git a/src/test/java/dev/dnpm/oshelper/services/mtb/DefaultMtbServiceTest.java b/src/test/java/dev/dnpm/oshelper/services/mtb/DefaultMtbServiceTest.java deleted file mode 100644 index 9796a73..0000000 --- a/src/test/java/dev/dnpm/oshelper/services/mtb/DefaultMtbServiceTest.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * This file is part of onkostar-plugin-dnpm - * - * Copyright (C) 2023-2026 the original author or authors. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package dev.dnpm.oshelper.services.mtb; - -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.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.MethodSource; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - -import java.time.Instant; -import java.util.*; - -import static org.assertj.core.api.Assertions.assertThat; - -@ExtendWith(MockitoExtension.class) -class DefaultMtbServiceTest { - - private IOnkostarApi onkostarApi; - - private DefaultMtbService service; - - @BeforeEach - void setup( - @Mock IOnkostarApi onkostarApi - ) { - this.onkostarApi = onkostarApi; - this.service = new DefaultMtbService(onkostarApi); - } - - private static Set>> expectedMappings() { - return Map.ofEntries( - Map.entry("OS.Tumorkonferenz", OsTumorkonferenzToProtocolMapper.class), - Map.entry("OS.Tumorkonferenz.VarianteUKW", OsTumorkonferenzVarianteUkwToProtocolMapper.class), - Map.entry("MR.MTB_Anmeldung", MrMtbAnmeldungToProtocolMapper.class) - ).entrySet(); - } - - @ParameterizedTest - @MethodSource("expectedMappings") - void testShouldMapFormNameToMapper(Map.Entry> expectedMapping) { - var procedure = new Procedure(onkostarApi); - procedure.setFormName(expectedMapping.getKey()); - - var actual = service.procedureToProtocolMapper(procedure); - - assertThat(actual).isExactlyInstanceOf(expectedMapping.getValue()); - } - - @Test - void testShouldReturnMtbProtocolForDefaultImplementation() { - var procedure1 = new Procedure(onkostarApi); - procedure1.setFormName("OS.Tumorkonferenz"); - procedure1.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); - procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); - procedure1.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); - - var procedures = List.of( - procedure1 - ); - - var actual = service.getProtocol(procedures); - - assertThat(actual).isEqualTo("Fragestellung:\nTest ok?\n\nEmpfehlung:\nRerun Test if not ok!"); - } - - @Test - void testShouldReturnMtbProtocolForMultipleTK() { - var procedure1 = new Procedure(onkostarApi); - procedure1.setFormName("OS.Tumorkonferenz"); - procedure1.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); - procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test immer noch ok?")); - procedure1.setValue("Empfehlung", new Item("Empfehlung", "Do not rerun Test if ok!")); - - var procedure2 = new Procedure(onkostarApi); - procedure2.setFormName("OS.Tumorkonferenz"); - procedure2.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); - procedure2.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); - procedure2.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); - - var procedures = List.of( - procedure1, - procedure2 - ); - - var actual = service.getProtocol(procedures); - - assertThat(actual).isEqualTo( - "Fragestellung:\nTest ok?\n\nEmpfehlung:\nRerun Test if not ok!\n\n" + - "Fragestellung:\nTest immer noch ok?\n\nEmpfehlung:\nDo not rerun Test if ok!" - ); - } - - @Test - void testShouldReturnMtbProtocolForMultipleTKVarianteUKW() { - var procedure1 = new Procedure(onkostarApi); - procedure1.setFormName("OS.Tumorkonferenz.VarianteUKW"); - procedure1.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); - procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test immer noch ok?")); - procedure1.setValue("Empfehlung", new Item("Empfehlung", "Do not rerun Test if ok!")); - - var procedure2 = new Procedure(onkostarApi); - procedure2.setFormName("OS.Tumorkonferenz.VarianteUKW"); - procedure2.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); - procedure2.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); - procedure2.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); - - - var procedures = Arrays.asList( - procedure1, - procedure2 - ); - - var actual = service.getProtocol(procedures); - - assertThat(actual).isEqualTo( - "Fragestellung:\nTest ok?\n\nEmpfehlung:\nRerun Test if not ok!\n\n" + - "Fragestellung:\nTest immer noch ok?\n\nEmpfehlung:\nDo not rerun Test if ok!" - ); - } - - @Test - void testShouldReturnDistinctProtocolEntries() { - var procedure1 = new Procedure(onkostarApi); - procedure1.setFormName("OS.Tumorkonferenz.VarianteUKW"); - procedure1.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); - procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test immer noch ok?")); - procedure1.setValue("Empfehlung", new Item("Empfehlung", "Do not rerun Test if ok!")); - - var procedure2 = new Procedure(onkostarApi); - procedure2.setFormName("OS.Tumorkonferenz.VarianteUKW"); - procedure2.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); - procedure2.setValue("Fragestellung", new Item("Fragestellung", "Test immer noch ok?")); - procedure2.setValue("Empfehlung", new Item("Empfehlung", "Do not rerun Test if ok!")); - - var procedure3 = new Procedure(onkostarApi); - procedure3.setFormName("OS.Tumorkonferenz.VarianteUKW"); - procedure3.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); - procedure3.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); - procedure3.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); - - - var procedures = Arrays.asList( - procedure1, - procedure2, - procedure3 - ); - - var actual = service.getProtocol(procedures); - - assertThat(actual).isEqualTo( - "Fragestellung:\nTest ok?\n\nEmpfehlung:\nRerun Test if not ok!\n\n" + - "Fragestellung:\nTest immer noch ok?\n\nEmpfehlung:\nDo not rerun Test if ok!" - ); - } - - @Test - void testShouldReturnEmptyMtbProtocolForUnknownForm() { - var procedure1 = new Procedure(onkostarApi); - procedure1.setFormName("OS.Tumorkonferenz.Unbekannt"); - procedure1.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); - procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test immer noch ok?")); - procedure1.setValue("Empfehlung", new Item("Empfehlung", "Do not rerun Test if ok!")); - - var procedure2 = new Procedure(onkostarApi); - procedure2.setFormName("OS.Tumorkonferenz.Unbekannt"); - procedure2.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); - procedure2.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); - procedure2.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); - - - var procedures = Arrays.asList( - procedure1, - procedure2 - ); - - var actual = service.getProtocol(procedures); - - assertThat(actual).isEmpty(); - } - -} -- cgit v1.2.3