From a6238c14e3c08b4f7ee7045824eae4e47890ccd3 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 12 Jul 2023 10:11:11 +0200 Subject: [PATCH] =?UTF-8?q?Issue=20#29:=20Backend-Service=20f=C3=BCr=20ECO?= =?UTF-8?q?G-Status=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/DNPM/DNPMHelper.java | 19 ++++++++++++++++++- src/test/java/DNPM/DNPMHelperTest.java | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/DNPM/DNPMHelper.java b/src/main/java/DNPM/DNPMHelper.java index cc8126a..50b153e 100644 --- a/src/main/java/DNPM/DNPMHelper.java +++ b/src/main/java/DNPM/DNPMHelper.java @@ -45,7 +45,7 @@ public class DNPMHelper implements IProcedureAnalyzer { @Override public String getVersion() { - return "0.3.0"; + return "0.4.0"; } @Override @@ -249,4 +249,21 @@ public class DNPMHelper implements IProcedureAnalyzer { } } + + // TODO Achtung, keine Sicherheitsprüfung, darüber kann für jeden Patienten die Liste mit ECOG-Status abgerufen werden! + public List getEcogStatus(final Map input) { + var pid = AnalyzerUtils.getRequiredId(input, "PatientId"); + if (pid.isEmpty()) { + logger.error("Kein Parameter 'PatientId' angegeben, gebe leere Liste zurück"); + return List.of(); + } + + var patient = onkostarApi.getPatient(pid.get()); + if (null == patient) { + logger.error("Patient nicht gefunden, gebe leere Liste zurück"); + return List.of(); + } + + return systemtherapieService.ecogSatus(patient); + } } \ No newline at end of file diff --git a/src/test/java/DNPM/DNPMHelperTest.java b/src/test/java/DNPM/DNPMHelperTest.java index a90f2fb..cd0b81d 100644 --- a/src/test/java/DNPM/DNPMHelperTest.java +++ b/src/test/java/DNPM/DNPMHelperTest.java @@ -3,6 +3,7 @@ package DNPM; import DNPM.services.systemtherapie.SystemtherapieService; import de.itc.onkostar.api.IOnkostarApi; import de.itc.onkostar.api.Item; +import de.itc.onkostar.api.Patient; import de.itc.onkostar.api.Procedure; import org.hibernate.SQLQuery; import org.hibernate.Session; @@ -245,6 +246,23 @@ class DNPMHelperTest { assertThat(argumentCaptor.getValue()).contains("WHERE patient_id = 2 AND geloescht = 0"); } + @Test + void testShouldReturnEcogStatusList() { + doAnswer(invocationOnMock -> { + var id = invocationOnMock.getArgument(0, Integer.class); + var patient = new Patient(onkostarApi); + patient.setId(id); + return patient; + }).when(onkostarApi).getPatient(anyInt()); + + dnpmHelper.getEcogStatus(Map.of("PatientId", 42)); + + var argumentCaptor = ArgumentCaptor.forClass(Patient.class); + verify(systemtherapieService, times(1)).ecogSatus(argumentCaptor.capture()); + assertThat(argumentCaptor.getValue()).isNotNull(); + assertThat(argumentCaptor.getValue().getId()).isEqualTo(42); + } + } }