1
0
mirror of https://github.com/pcvolkmer/mv64e-onkostar-data.git synced 2025-09-13 16:02:52 +00:00

feat: add MTB episodes of care

This commit is contained in:
2025-06-28 14:28:33 +02:00
parent 4841aae3e7
commit 1e09495d41
4 changed files with 135 additions and 1 deletions

View File

@@ -67,6 +67,7 @@ public class MtbDataMapper implements DataMapper<Mtb> {
catalogueFactory.catalogue(TumorgradingCatalogue.class),
propertyCatalogue
);
var mtbEpisodeDataMapper = new MtbEpisodeDataMapper(kpaCatalogue, propertyCatalogue);
var prozedurMapper = new KpaProzedurDataMapper(
catalogueFactory.catalogue(ProzedurCatalogue.class),
propertyCatalogue
@@ -97,6 +98,7 @@ public class MtbDataMapper implements DataMapper<Mtb> {
resultBuilder
.patient(kpaPatient)
.episodesOfCare(List.of(mtbEpisodeDataMapper.getById(kpaId)))
// DNPM Klinik/Anamnese
.diagnoses(List.of(diagnosisDataMapper.getById(kpaId)))
.guidelineProcedures(prozedurMapper.getByParentId(kpaId))

View File

@@ -0,0 +1,61 @@
package dev.pcvolkmer.onco.datamapper.mapper;
import dev.pcvolkmer.mv64e.mtb.MtbEpisodeOfCare;
import dev.pcvolkmer.mv64e.mtb.PeriodDate;
import dev.pcvolkmer.mv64e.mtb.Reference;
import dev.pcvolkmer.onco.datamapper.PropertyCatalogue;
import dev.pcvolkmer.onco.datamapper.datacatalogues.KpaCatalogue;
import java.util.List;
import static dev.pcvolkmer.onco.datamapper.mapper.MapperUtils.getPatientReference;
/**
* Mapper class to load and map patient data from database table 'dk_dnpm_kpa'
*
* @author Paul-Christian Volkmer
* @since 0.1
*/
public class MtbEpisodeDataMapper implements DataMapper<MtbEpisodeOfCare> {
private final KpaCatalogue kpaCatalogue;
private final PropertyCatalogue propertyCatalogue;
public MtbEpisodeDataMapper(
final KpaCatalogue kpaCatalogue,
final PropertyCatalogue propertyCatalogue
) {
this.kpaCatalogue = kpaCatalogue;
this.propertyCatalogue = propertyCatalogue;
}
/**
* Loads and maps a ca plan using the database id
*
* @param id The database id of the procedure data set
* @return The loaded Patient data
*/
@Override
public MtbEpisodeOfCare getById(int id) {
var kpaData = kpaCatalogue.getById(id);
var builder = MtbEpisodeOfCare.builder();
builder
.id(kpaData.getString("id"))
.patient(getPatientReference(kpaData.getString("patient_id")))
.diagnoses(
List.of(
Reference.builder()
.id(kpaData.getString("id"))
.type("Diagnose")
.build()
)
)
.period(PeriodDate.builder().start(kpaData.getDate("anmeldedatummtb")).build())
.build()
;
return builder.build();
}
}