1
0
mirror of https://github.com/pcvolkmer/mv64e-onkostar-data.git synced 2025-07-03 02:52:54 +00:00

refactor: rename catalogue classes

This commit is contained in:
2025-06-19 15:08:44 +02:00
parent f0ce22da2f
commit 8168bd40d4
5 changed files with 54 additions and 27 deletions

View File

@ -8,6 +8,7 @@ version = "0.1.0-SNAPSHOT"
var versions = mapOf( var versions = mapOf(
"mtb-dto" to "0.1.0-SNAPSHOT", "mtb-dto" to "0.1.0-SNAPSHOT",
"slf4j" to "2.0.17",
"junit" to "5.13.1", "junit" to "5.13.1",
"assertj" to "3.27.3", "assertj" to "3.27.3",
"mockito" to "5.18.0" "mockito" to "5.18.0"
@ -46,6 +47,7 @@ dependencies {
prefer("4.3.8.RELEASE") prefer("4.3.8.RELEASE")
} }
} }
implementation("org.slf4j:slf4j-api:${versions["slf4j"]}")
testImplementation(platform("org.junit:junit-bom:${versions["junit"]}")) testImplementation(platform("org.junit:junit-bom:${versions["junit"]}"))
testImplementation("org.junit.jupiter:junit-jupiter") testImplementation("org.junit.jupiter:junit-jupiter")

View File

@ -1,13 +1,11 @@
package dev.pcvolkmer.onco.datamapper; package dev.pcvolkmer.onco.datamapper;
import dev.pcvolkmer.mv64e.mtb.Coding; import dev.pcvolkmer.mv64e.mtb.Coding;
import dev.pcvolkmer.mv64e.mtb.Mtb;
import dev.pcvolkmer.mv64e.mtb.MtbDiagnosis; import dev.pcvolkmer.mv64e.mtb.MtbDiagnosis;
import dev.pcvolkmer.onco.datamapper.datacatalogues.Kpa; import dev.pcvolkmer.onco.datamapper.datacatalogues.KpaCatalogue;
import dev.pcvolkmer.onco.datamapper.exceptions.DataAccessException; import dev.pcvolkmer.onco.datamapper.exceptions.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.sql.SQLException; import java.sql.SQLException;
/** /**
@ -20,18 +18,18 @@ public class KpaDiagnosisDataMapper implements DataMapper<MtbDiagnosis> {
private final JdbcTemplate jdbcTemplate; private final JdbcTemplate jdbcTemplate;
KpaDiagnosisDataMapper(final JdbcTemplate jdbcTemplate) { private KpaDiagnosisDataMapper(final JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate; this.jdbcTemplate = jdbcTemplate;
} }
/** /**
* Create instance of the mapper class * Create instance of the mapper class
* *
* @param dataSource The datasource to be used * @param jdbcTemplate The Spring JdbcTemplate to be used
* @return The initialized mapper * @return The initialized mapper
*/ */
public static KpaDiagnosisDataMapper create(final DataSource dataSource) { public static KpaDiagnosisDataMapper create(final JdbcTemplate jdbcTemplate) {
return new KpaDiagnosisDataMapper(new JdbcTemplate(dataSource)); return new KpaDiagnosisDataMapper(jdbcTemplate);
} }
/** /**
@ -42,7 +40,7 @@ public class KpaDiagnosisDataMapper implements DataMapper<MtbDiagnosis> {
*/ */
@Override @Override
public MtbDiagnosis getById(int id) { public MtbDiagnosis getById(int id) {
var kpa = Kpa.create(this.jdbcTemplate); var kpa = KpaCatalogue.create(this.jdbcTemplate);
var data = kpa.getById(id); var data = kpa.getById(id);
var builder = MtbDiagnosis.builder(); var builder = MtbDiagnosis.builder();

View File

@ -1,10 +1,14 @@
package dev.pcvolkmer.onco.datamapper; package dev.pcvolkmer.onco.datamapper;
import dev.pcvolkmer.mv64e.mtb.Mtb; import dev.pcvolkmer.mv64e.mtb.Mtb;
import dev.pcvolkmer.onco.datamapper.datacatalogues.Kpa; import dev.pcvolkmer.onco.datamapper.datacatalogues.KpaCatalogue;
import dev.pcvolkmer.onco.datamapper.exceptions.DataAccessException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.util.List;
/** /**
* Mapper class to load and map Mtb files from database * Mapper class to load and map Mtb files from database
@ -14,6 +18,8 @@ import javax.sql.DataSource;
*/ */
public class MtbDataMapper implements DataMapper<Mtb> { public class MtbDataMapper implements DataMapper<Mtb> {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final JdbcTemplate jdbcTemplate; private final JdbcTemplate jdbcTemplate;
MtbDataMapper(final JdbcTemplate jdbcTemplate) { MtbDataMapper(final JdbcTemplate jdbcTemplate) {
@ -30,15 +36,35 @@ public class MtbDataMapper implements DataMapper<Mtb> {
return new MtbDataMapper(new JdbcTemplate(dataSource)); return new MtbDataMapper(new JdbcTemplate(dataSource));
} }
/**
* Create instance of the mapper class
*
* @param jdbcTemplate The Spring JdbcTemplate to be used
* @return The initialized mapper
*/
public static MtbDataMapper create(final JdbcTemplate jdbcTemplate) {
return new MtbDataMapper(jdbcTemplate);
}
/** /**
* Loads and maps a Mtb file using the root procedures database id * Loads and maps a Mtb file using the root procedures database id
* *
* @param id The database id of the root procedure data set * @param kpaId The database id of the root procedure data set
* @return The loaded Mtb file * @return The loaded Mtb file
*/ */
@Override @Override
public Mtb getById(int id) { public Mtb getById(int kpaId) {
return Mtb.builder().build(); var diagnosisDataMapper = KpaDiagnosisDataMapper.create(jdbcTemplate);
var resultBuilder = Mtb.builder();
try {
resultBuilder
.diagnoses(List.of(diagnosisDataMapper.getById(kpaId)));
} catch (DataAccessException e) {
logger.error("Error while getting Mtb.", e);
}
return resultBuilder.build();
} }
/** /**
@ -48,7 +74,7 @@ public class MtbDataMapper implements DataMapper<Mtb> {
* @return The loaded Mtb file * @return The loaded Mtb file
*/ */
public Mtb getByCaseId(String caseId) { public Mtb getByCaseId(String caseId) {
var kpa = Kpa.create(this.jdbcTemplate); var kpa = KpaCatalogue.create(this.jdbcTemplate);
return this.getById( return this.getById(
kpa.getProcedureIdByCaseId(caseId) kpa.getProcedureIdByCaseId(caseId)
); );

View File

@ -11,16 +11,16 @@ import java.sql.ResultSet;
* @author Paul-Christian Volkmer * @author Paul-Christian Volkmer
* @since 0.1 * @since 0.1
*/ */
public class Kpa { public class KpaCatalogue {
private final JdbcTemplate jdbcTemplate; private final JdbcTemplate jdbcTemplate;
private Kpa(JdbcTemplate jdbcTemplate) { private KpaCatalogue(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate; this.jdbcTemplate = jdbcTemplate;
} }
public static Kpa create(JdbcTemplate jdbcTemplate) { public static KpaCatalogue create(JdbcTemplate jdbcTemplate) {
return new Kpa(jdbcTemplate); return new KpaCatalogue(jdbcTemplate);
} }
/** /**

View File

@ -13,6 +13,7 @@ import javax.sql.DataSource;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List; import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.*;
@ -28,7 +29,7 @@ class KpaDiagnosisDataMapperTest {
@BeforeEach @BeforeEach
void setUp(@Mock JdbcTemplate jdbcTemplate) { void setUp(@Mock JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate; this.jdbcTemplate = jdbcTemplate;
this.dataMapper = new KpaDiagnosisDataMapper(jdbcTemplate); this.dataMapper = KpaDiagnosisDataMapper.create(jdbcTemplate);
} }
@Test @Test
@ -37,17 +38,10 @@ class KpaDiagnosisDataMapperTest {
} }
@Test @Test
void shouldUseKpaProcedureId(@Mock ResultSet resultSet) throws SQLException { void shouldCreateDiagnosis(@Mock ResultSet resultSet) throws SQLException {
doAnswer(invocationOnMock -> { doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class); var columnName = invocationOnMock.getArgument(0, String.class);
switch (columnName) { return testData().get(columnName);
case "id":
return "1";
case "icd10":
return "F79.9";
default:
return null;
}
}).when(resultSet).getString(anyString()); }).when(resultSet).getString(anyString());
doAnswer(invocationOnMock -> List.of(resultSet)) doAnswer(invocationOnMock -> List.of(resultSet))
@ -60,4 +54,11 @@ class KpaDiagnosisDataMapperTest {
assertThat(actual.getCode().getCode()).isEqualTo("F79.9"); assertThat(actual.getCode().getCode()).isEqualTo("F79.9");
} }
private static Map<String, Object> testData() {
return Map.of(
"id", "1",
"icd10", "F79.9"
);
}
} }