1
0
mirror of https://github.com/pcvolkmer/mv64e-onkostar-data.git synced 2025-07-03 19:12:55 +00:00

feat: add util method to create patient reference

This commit is contained in:
2025-06-22 15:31:54 +02:00
parent e848752e45
commit 684c866b97
8 changed files with 55 additions and 16 deletions

View File

@ -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<MtbDiagnosis> {
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"))

View File

@ -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<PerformanceStat
var builder = PerformanceStatus.builder();
builder
.id(resultSet.getProcedureId().toString())
.patient(
Reference.builder()
.id(resultSet.getString("patient_id"))
// Use "Patient" since Onkostar only provides patient data
.type("Patient")
.build()
)
.patient(getPatientReference(resultSet.getString("patient_id")))
.effectiveDate(resultSet.getDate("datum"))
.value(getEcogCoding(resultSet.getString("ecog")))
;

View File

@ -7,6 +7,8 @@ import dev.pcvolkmer.onco.datamapper.PropertyCatalogue;
import dev.pcvolkmer.onco.datamapper.ResultSet;
import dev.pcvolkmer.onco.datamapper.datacatalogues.ProzedurCatalogue;
import static dev.pcvolkmer.onco.datamapper.mapper.MapperUtils.getPatientReference;
/**
* Mapper class to load and map prozedur data from database table 'dk_dnpm_uf_prozedur'
*
@ -42,7 +44,7 @@ public class KpaProzedurDataMapper extends AbstractKpaTherapieverlaufDataMapper<
var builder = OncoProcedure.builder();
builder
.id(resultSet.getString("id"))
.patient(Reference.builder().id(resultSet.getString("patient_id")).build())
.patient(getPatientReference(resultSet.getString("patient_id")))
.basedOn(Reference.builder().id(diseases.get(0).getDiseaseId().toString()).build())
.recordedOn(resultSet.getDate("erfassungsdatum"))
.therapyLine(resultSet.getLong("therapielinie"))

View File

@ -7,6 +7,8 @@ import dev.pcvolkmer.onco.datamapper.PropertyCatalogue;
import dev.pcvolkmer.onco.datamapper.ResultSet;
import dev.pcvolkmer.onco.datamapper.datacatalogues.TherapielinieCatalogue;
import static dev.pcvolkmer.onco.datamapper.mapper.MapperUtils.getPatientReference;
/**
* Mapper class to load and map prozedur data from database table 'dk_dnpm_therapielinie'
*
@ -42,7 +44,7 @@ public class KpaTherapielinieDataMapper extends AbstractKpaTherapieverlaufDataMa
var builder = MtbSystemicTherapy.builder();
builder
.id(resultSet.getString("id"))
.patient(Reference.builder().id(resultSet.getString("patient_id")).build())
.patient(getPatientReference(resultSet.getString("patient_id")))
.basedOn(Reference.builder().id(diseases.get(0).getDiseaseId().toString()).build())
.recordedOn(resultSet.getDate("erfassungsdatum"))
.therapyLine(resultSet.getLong("therapielinie"))

View File

@ -0,0 +1,30 @@
package dev.pcvolkmer.onco.datamapper.mapper;
import dev.pcvolkmer.mv64e.mtb.Reference;
import dev.pcvolkmer.onco.datamapper.exceptions.DataAccessException;
/**
* Utility methods to be used in mappers
*/
public class MapperUtils {
private MapperUtils() {
}
/**
* Get Patient Reference based on default column name 'patient_id'
*
* @return The patient reference
*/
public static Reference getPatientReference(String patientId) {
if (patientId == null) {
throw new DataAccessException("No patient id found");
}
return Reference.builder()
.id(patientId)
// Use "Patient" since Onkostar only provides patient data
.type("Patient")
.build();
}
}