mirror of
https://github.com/pcvolkmer/onkostar-plugin-dnpm.git
synced 2025-07-03 01:32:55 +00:00
Issue #11: Backend-Service-Methode zum Abrufen des Protokollauszugs hinzugefügt
This commit is contained in:
@ -3,6 +3,7 @@ package DNPM.analyzer;
|
|||||||
import DNPM.services.Studie;
|
import DNPM.services.Studie;
|
||||||
import DNPM.services.StudienService;
|
import DNPM.services.StudienService;
|
||||||
import DNPM.services.TherapieplanServiceFactory;
|
import DNPM.services.TherapieplanServiceFactory;
|
||||||
|
import DNPM.services.mtb.MtbService;
|
||||||
import de.itc.onkostar.api.Disease;
|
import de.itc.onkostar.api.Disease;
|
||||||
import de.itc.onkostar.api.Procedure;
|
import de.itc.onkostar.api.Procedure;
|
||||||
import de.itc.onkostar.api.analysis.AnalyseTriggerEvent;
|
import de.itc.onkostar.api.analysis.AnalyseTriggerEvent;
|
||||||
@ -27,12 +28,16 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
|
|||||||
|
|
||||||
private final TherapieplanServiceFactory therapieplanServiceFactory;
|
private final TherapieplanServiceFactory therapieplanServiceFactory;
|
||||||
|
|
||||||
|
private final MtbService mtbService;
|
||||||
|
|
||||||
public TherapieplanAnalyzer(
|
public TherapieplanAnalyzer(
|
||||||
final StudienService studienService,
|
final StudienService studienService,
|
||||||
final TherapieplanServiceFactory therapieplanServiceFactory
|
final TherapieplanServiceFactory therapieplanServiceFactory,
|
||||||
|
final MtbService mtbService
|
||||||
) {
|
) {
|
||||||
this.studienService = studienService;
|
this.studienService = studienService;
|
||||||
this.therapieplanServiceFactory = therapieplanServiceFactory;
|
this.therapieplanServiceFactory = therapieplanServiceFactory;
|
||||||
|
this.mtbService = mtbService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -110,6 +115,7 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
|
|||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param input Map mit Eingabewerten
|
* @param input Map mit Eingabewerten
|
||||||
|
* @return Liste mit Studien
|
||||||
*/
|
*/
|
||||||
public List<Studie> getStudien(Map<String, Object> input) {
|
public List<Studie> getStudien(Map<String, Object> input) {
|
||||||
var query = input.get("q");
|
var query = input.get("q");
|
||||||
@ -120,4 +126,38 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
|
|||||||
return studienService.findByQuery(query.toString());
|
return studienService.findByQuery(query.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Übergibt den Text der referenzierten MTBs für den Protokollauszug
|
||||||
|
*
|
||||||
|
* <p>Wurde der Eingabewert <code>id</code> nicht übergeben, wird ein leerer String zurück gegeben.
|
||||||
|
*
|
||||||
|
* <p>Beispiel zur Nutzung in einem Formularscript
|
||||||
|
* <pre>
|
||||||
|
* executePluginMethod(
|
||||||
|
* 'TherapieplanAnalyzer',
|
||||||
|
* 'getProtokollauszug',
|
||||||
|
* { id: 12345 },
|
||||||
|
* (response) => console.log(response),
|
||||||
|
* false
|
||||||
|
* );
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param input Map mit Eingabewerten
|
||||||
|
* @return Zeichenkette mit Protokollauszug
|
||||||
|
*/
|
||||||
|
public String getProtokollauszug(Map<String, Object> input) {
|
||||||
|
var id = input.get("id");
|
||||||
|
|
||||||
|
if (null == id || 0 == Integer.parseInt(id.toString())) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
var procedureId = Integer.parseInt(id.toString());
|
||||||
|
return mtbService.getProtocol(
|
||||||
|
therapieplanServiceFactory
|
||||||
|
.currentUsableInstance()
|
||||||
|
.findReferencedMtbs(procedureId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package DNPM.analyzer;
|
package DNPM.analyzer;
|
||||||
|
|
||||||
import DNPM.services.MultipleMtbTherapieplanService;
|
import DNPM.services.*;
|
||||||
import DNPM.services.StudienService;
|
import DNPM.services.mtb.MtbService;
|
||||||
import DNPM.services.TherapieplanServiceFactory;
|
|
||||||
import de.itc.onkostar.api.IOnkostarApi;
|
import de.itc.onkostar.api.IOnkostarApi;
|
||||||
|
import de.itc.onkostar.api.Item;
|
||||||
import de.itc.onkostar.api.Procedure;
|
import de.itc.onkostar.api.Procedure;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@ -13,6 +13,7 @@ import org.mockito.Mock;
|
|||||||
import org.mockito.junit.jupiter.MockitoExtension;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
@ -24,22 +25,32 @@ public class TherapieplanAnalyzerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private IOnkostarApi onkostarApi;
|
private IOnkostarApi onkostarApi;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private FormService formService;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private StudienService studienService;
|
private StudienService studienService;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private TherapieplanServiceFactory therapieplanServiceFactory;
|
private TherapieplanServiceFactory therapieplanServiceFactory;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private TherapieplanService therapieplanService;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private MtbService mtbService;
|
||||||
|
|
||||||
private TherapieplanAnalyzer therapieplanAnalyzer;
|
private TherapieplanAnalyzer therapieplanAnalyzer;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setUp() {
|
void setUp() {
|
||||||
this.therapieplanAnalyzer = new TherapieplanAnalyzer(studienService, therapieplanServiceFactory);
|
this.therapieplanAnalyzer = new TherapieplanAnalyzer(studienService, therapieplanServiceFactory, mtbService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void shouldRunServiceMethodsOnAnalyzeCalled() {
|
void shouldRunServiceMethodsOnAnalyzeCalled() {
|
||||||
when(this.therapieplanServiceFactory.currentUsableInstance()).thenReturn(new MultipleMtbTherapieplanService());
|
when(this.therapieplanServiceFactory.currentUsableInstance())
|
||||||
|
.thenReturn(new MultipleMtbTherapieplanService(onkostarApi, formService));
|
||||||
|
|
||||||
this.therapieplanAnalyzer.analyze(new Procedure(onkostarApi), null);
|
this.therapieplanAnalyzer.analyze(new Procedure(onkostarApi), null);
|
||||||
|
|
||||||
@ -72,4 +83,23 @@ public class TherapieplanAnalyzerTest {
|
|||||||
assertThat(captor.getValue()).isEqualTo("NCT-123");
|
assertThat(captor.getValue()).isEqualTo("NCT-123");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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);
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,6 @@ public class TherapieplanServiceFactoryTest {
|
|||||||
@Test
|
@Test
|
||||||
void testShouldReturnDefaultTherapieplanServiceIfSettingIsFalse() {
|
void testShouldReturnDefaultTherapieplanServiceIfSettingIsFalse() {
|
||||||
when(settingsService.multipleMtbsInMtbEpisode()).thenReturn(false);
|
when(settingsService.multipleMtbsInMtbEpisode()).thenReturn(false);
|
||||||
var actual = this.therapieplanServiceFactory.currentUsableInstance();
|
|
||||||
|
|
||||||
var actual = this.therapieplanServiceFactory.currentUsableInstance();
|
var actual = this.therapieplanServiceFactory.currentUsableInstance();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user