1
0
mirror of https://github.com/pcvolkmer/mv64e-onkostar-data.git synced 2025-07-02 02:22: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(
"mtb-dto" to "0.1.0-SNAPSHOT",
"slf4j" to "2.0.17",
"junit" to "5.13.1",
"assertj" to "3.27.3",
"mockito" to "5.18.0"
@ -46,6 +47,7 @@ dependencies {
prefer("4.3.8.RELEASE")
}
}
implementation("org.slf4j:slf4j-api:${versions["slf4j"]}")
testImplementation(platform("org.junit:junit-bom:${versions["junit"]}"))
testImplementation("org.junit.jupiter:junit-jupiter")

View File

@ -1,13 +1,11 @@
package dev.pcvolkmer.onco.datamapper;
import dev.pcvolkmer.mv64e.mtb.Coding;
import dev.pcvolkmer.mv64e.mtb.Mtb;
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 org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.sql.SQLException;
/**
@ -20,18 +18,18 @@ public class KpaDiagnosisDataMapper implements DataMapper<MtbDiagnosis> {
private final JdbcTemplate jdbcTemplate;
KpaDiagnosisDataMapper(final JdbcTemplate jdbcTemplate) {
private KpaDiagnosisDataMapper(final JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
/**
* 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
*/
public static KpaDiagnosisDataMapper create(final DataSource dataSource) {
return new KpaDiagnosisDataMapper(new JdbcTemplate(dataSource));
public static KpaDiagnosisDataMapper create(final JdbcTemplate jdbcTemplate) {
return new KpaDiagnosisDataMapper(jdbcTemplate);
}
/**
@ -42,7 +40,7 @@ public class KpaDiagnosisDataMapper implements DataMapper<MtbDiagnosis> {
*/
@Override
public MtbDiagnosis getById(int id) {
var kpa = Kpa.create(this.jdbcTemplate);
var kpa = KpaCatalogue.create(this.jdbcTemplate);
var data = kpa.getById(id);
var builder = MtbDiagnosis.builder();

View File

@ -1,10 +1,14 @@
package dev.pcvolkmer.onco.datamapper;
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 javax.sql.DataSource;
import java.util.List;
/**
* Mapper class to load and map Mtb files from database
@ -14,6 +18,8 @@ import javax.sql.DataSource;
*/
public class MtbDataMapper implements DataMapper<Mtb> {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final JdbcTemplate jdbcTemplate;
MtbDataMapper(final JdbcTemplate jdbcTemplate) {
@ -30,15 +36,35 @@ public class MtbDataMapper implements DataMapper<Mtb> {
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
*
* @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
*/
@Override
public Mtb getById(int id) {
return Mtb.builder().build();
public Mtb getById(int kpaId) {
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
*/
public Mtb getByCaseId(String caseId) {
var kpa = Kpa.create(this.jdbcTemplate);
var kpa = KpaCatalogue.create(this.jdbcTemplate);
return this.getById(
kpa.getProcedureIdByCaseId(caseId)
);

View File

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

View File

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