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:
@ -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")
|
||||||
|
@ -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();
|
||||||
|
@ -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)
|
||||||
);
|
);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
@ -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"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user