mirror of
https://github.com/pcvolkmer/mv64e-onkostar-data.git
synced 2025-07-03 19:12:55 +00:00
feat: add performance status to Mtb data
This commit is contained in:
@ -51,7 +51,13 @@ public class KpaEcogDataMapper extends AbstractSubformDataMapper<PerformanceStat
|
|||||||
var builder = PerformanceStatus.builder();
|
var builder = PerformanceStatus.builder();
|
||||||
builder
|
builder
|
||||||
.id(resultSet.getProcedureId().toString())
|
.id(resultSet.getProcedureId().toString())
|
||||||
.patient(Reference.builder().id(resultSet.getString("patient_id")).build())
|
.patient(
|
||||||
|
Reference.builder()
|
||||||
|
.id(resultSet.getString("patient_id"))
|
||||||
|
// Use "Patient" since Onkostar only provides patient data
|
||||||
|
.type("Patient")
|
||||||
|
.build()
|
||||||
|
)
|
||||||
.effectiveDate(resultSet.getDate("datum"))
|
.effectiveDate(resultSet.getDate("datum"))
|
||||||
.value(getEcogCoding(resultSet.getString("ecog")))
|
.value(getEcogCoding(resultSet.getString("ecog")))
|
||||||
;
|
;
|
||||||
@ -64,9 +70,12 @@ public class KpaEcogDataMapper extends AbstractSubformDataMapper<PerformanceStat
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var resultBuilder = EcogCoding.builder();
|
var resultBuilder = EcogCoding.builder()
|
||||||
|
.system("ECOG-Performance-Status");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
resultBuilder.code(EcogCodingCode.forValue(value));
|
resultBuilder.code(EcogCodingCode.forValue(value));
|
||||||
|
resultBuilder.display(String.format("ECOG %s", value));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new IllegalStateException("No valid code found");
|
throw new IllegalStateException("No valid code found");
|
||||||
}
|
}
|
||||||
|
@ -74,6 +74,9 @@ public class MtbDataMapper implements DataMapper<Mtb> {
|
|||||||
catalogueFactory.catalogue(TherapielinieCatalogue.class),
|
catalogueFactory.catalogue(TherapielinieCatalogue.class),
|
||||||
propertyCatalogue
|
propertyCatalogue
|
||||||
);
|
);
|
||||||
|
var ecogMapper = new KpaEcogDataMapper(
|
||||||
|
catalogueFactory.catalogue(EcogCatalogue.class)
|
||||||
|
);
|
||||||
|
|
||||||
var resultBuilder = Mtb.builder();
|
var resultBuilder = Mtb.builder();
|
||||||
|
|
||||||
@ -87,6 +90,7 @@ public class MtbDataMapper implements DataMapper<Mtb> {
|
|||||||
.diagnoses(List.of(diagnosisDataMapper.getById(kpaId)))
|
.diagnoses(List.of(diagnosisDataMapper.getById(kpaId)))
|
||||||
.guidelineProcedures(prozedurMapper.getByParentId(kpaId))
|
.guidelineProcedures(prozedurMapper.getByParentId(kpaId))
|
||||||
.guidelineTherapies(therapielinieMapper.getByParentId(kpaId))
|
.guidelineTherapies(therapielinieMapper.getByParentId(kpaId))
|
||||||
|
.performanceStatus(ecogMapper.getByParentId(kpaId))
|
||||||
;
|
;
|
||||||
} catch (DataAccessException e) {
|
} catch (DataAccessException e) {
|
||||||
logger.error("Error while getting Mtb.", e);
|
logger.error("Error while getting Mtb.", e);
|
||||||
|
@ -67,9 +67,21 @@ class KpaEcogDataMapperTest {
|
|||||||
var actual = actualList.get(0);
|
var actual = actualList.get(0);
|
||||||
assertThat(actual).isInstanceOf(PerformanceStatus.class);
|
assertThat(actual).isInstanceOf(PerformanceStatus.class);
|
||||||
assertThat(actual.getId()).isEqualTo("1");
|
assertThat(actual.getId()).isEqualTo("1");
|
||||||
assertThat(actual.getPatient()).isEqualTo(Reference.builder().id("42").build());
|
assertThat(actual.getPatient())
|
||||||
|
.isEqualTo(Reference.builder()
|
||||||
|
.id("42")
|
||||||
|
.type("Patient")
|
||||||
|
.build()
|
||||||
|
);
|
||||||
assertThat(actual.getEffectiveDate()).isEqualTo(new java.sql.Date(Date.from(Instant.parse("2000-01-01T12:00:00Z")).getTime()));
|
assertThat(actual.getEffectiveDate()).isEqualTo(new java.sql.Date(Date.from(Instant.parse("2000-01-01T12:00:00Z")).getTime()));
|
||||||
assertThat(actual.getValue()).isEqualTo(EcogCoding.builder().code(EcogCodingCode.CODE_1).build());
|
assertThat(actual.getValue())
|
||||||
|
.isEqualTo(
|
||||||
|
EcogCoding.builder()
|
||||||
|
.code(EcogCodingCode.CODE_1)
|
||||||
|
.display("ECOG 1")
|
||||||
|
.system("ECOG-Performance-Status")
|
||||||
|
.build()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user