From 684c866b97625269bf91d5d4e32da0814e0aeccc Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Sun, 22 Jun 2025 15:31:54 +0200 Subject: [PATCH] feat: add util method to create patient reference --- .../mapper/KpaDiagnosisDataMapper.java | 4 ++- .../datamapper/mapper/KpaEcogDataMapper.java | 11 ++----- .../mapper/KpaProzedurDataMapper.java | 4 ++- .../mapper/KpaTherapielinieDataMapper.java | 4 ++- .../onco/datamapper/mapper/MapperUtils.java | 30 +++++++++++++++++++ .../mapper/KpaDiagnosisDataMapperTest.java | 6 +++- .../mapper/KpaProzedurDataMapperTest.java | 6 ++-- .../KpaTherapielinieDataMapperTest.java | 6 ++-- 8 files changed, 55 insertions(+), 16 deletions(-) create mode 100644 src/main/java/dev/pcvolkmer/onco/datamapper/mapper/MapperUtils.java diff --git a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaDiagnosisDataMapper.java b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaDiagnosisDataMapper.java index 165d460..a153fb0 100644 --- a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaDiagnosisDataMapper.java +++ b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaDiagnosisDataMapper.java @@ -12,6 +12,8 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; +import static dev.pcvolkmer.onco.datamapper.mapper.MapperUtils.getPatientReference; + /** * Mapper class to load and map diagnosis data from database table 'dk_dnpm_kpa' * @@ -50,7 +52,7 @@ public class KpaDiagnosisDataMapper implements DataMapper { var builder = MtbDiagnosis.builder(); builder .id(data.getString("id")) - .patient(Reference.builder().id(data.getString("patient_id")).build()) + .patient(getPatientReference(data.getString("patient_id"))) .code( Coding.builder() .code(data.getString("icd10")) diff --git a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaEcogDataMapper.java b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaEcogDataMapper.java index f6dedbc..c53aed2 100644 --- a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaEcogDataMapper.java +++ b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaEcogDataMapper.java @@ -3,7 +3,6 @@ package dev.pcvolkmer.onco.datamapper.mapper; import dev.pcvolkmer.mv64e.mtb.EcogCoding; import dev.pcvolkmer.mv64e.mtb.EcogCodingCode; import dev.pcvolkmer.mv64e.mtb.PerformanceStatus; -import dev.pcvolkmer.mv64e.mtb.Reference; import dev.pcvolkmer.onco.datamapper.ResultSet; import dev.pcvolkmer.onco.datamapper.datacatalogues.EcogCatalogue; @@ -13,6 +12,8 @@ import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; +import static dev.pcvolkmer.onco.datamapper.mapper.MapperUtils.getPatientReference; + /** * Mapper class to load and map prozedur data from database table 'dk_dnpm_uf_ecog' * @@ -51,13 +52,7 @@ public class KpaEcogDataMapper extends AbstractSubformDataMapper testData() { return Map.of( "id", "1", - "icd10", "F79.9" + "icd10", "F79.9", + "patient_id", "42" ); } diff --git a/src/test/java/dev/pcvolkmer/onco/datamapper/mapper/KpaProzedurDataMapperTest.java b/src/test/java/dev/pcvolkmer/onco/datamapper/mapper/KpaProzedurDataMapperTest.java index 78f5b87..5c15101 100644 --- a/src/test/java/dev/pcvolkmer/onco/datamapper/mapper/KpaProzedurDataMapperTest.java +++ b/src/test/java/dev/pcvolkmer/onco/datamapper/mapper/KpaProzedurDataMapperTest.java @@ -42,7 +42,6 @@ class KpaProzedurDataMapperTest { @Test void shouldMapResultSet(@Mock ResultSet resultSet) { var testData = Map.of( - "erkrankung.id", "1", "id", "1", "beginn", new java.sql.Date(Date.from(Instant.parse("2000-01-01T12:00:00Z")).getTime()), "ende", new java.sql.Date(Date.from(Instant.parse("2024-06-19T12:00:00Z")).getTime()), @@ -51,7 +50,8 @@ class KpaProzedurDataMapperTest { "status", "stopped", "statusgrund", "patient-death", "therapielinie", 1L, - "typ", "surgery" + "typ", "surgery", + "patient_id", "42" ); doAnswer(invocationOnMock -> { @@ -99,6 +99,8 @@ class KpaProzedurDataMapperTest { var actual = actualList.get(0); assertThat(actual).isInstanceOf(OncoProcedure.class); assertThat(actual.getId()).isEqualTo("1"); + assertThat(actual.getPatient()) + .isEqualTo(Reference.builder().id("42").type("Patient").build()); assertThat(actual.getPeriod()).isEqualTo( PeriodDate.builder() .start(Date.from(Instant.parse("2000-01-01T12:00:00Z"))) diff --git a/src/test/java/dev/pcvolkmer/onco/datamapper/mapper/KpaTherapielinieDataMapperTest.java b/src/test/java/dev/pcvolkmer/onco/datamapper/mapper/KpaTherapielinieDataMapperTest.java index 643e53b..e616812 100644 --- a/src/test/java/dev/pcvolkmer/onco/datamapper/mapper/KpaTherapielinieDataMapperTest.java +++ b/src/test/java/dev/pcvolkmer/onco/datamapper/mapper/KpaTherapielinieDataMapperTest.java @@ -42,7 +42,6 @@ class KpaTherapielinieDataMapperTest { @Test void shouldMapResultSet(@Mock ResultSet resultSet) { var testData = Map.of( - "erkrankung.id", "1", "id", "1", "beginn", new java.sql.Date(Date.from(Instant.parse("2000-01-01T12:00:00Z")).getTime()), "ende", new java.sql.Date(Date.from(Instant.parse("2024-06-19T12:00:00Z")).getTime()), @@ -50,7 +49,8 @@ class KpaTherapielinieDataMapperTest { "intention", "S", "status", "stopped", "statusgrund", "patient-death", - "therapielinie", 1L + "therapielinie", 1L, + "patient_id", "42" ); doAnswer(invocationOnMock -> { @@ -99,6 +99,8 @@ class KpaTherapielinieDataMapperTest { .isInstanceOf(MtbSystemicTherapy.class); assertThat(actual.getId()) .isEqualTo("1"); + assertThat(actual.getPatient()) + .isEqualTo(Reference.builder().id("42").type("Patient").build()); assertThat(actual.getPeriod()) .isEqualTo( PeriodDate.builder()