diff --git a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/MtbDataMapper.java b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/MtbDataMapper.java index 4832b6e..126808e 100644 --- a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/MtbDataMapper.java +++ b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/MtbDataMapper.java @@ -1,5 +1,8 @@ package dev.pcvolkmer.onco.datamapper.mapper; +import dev.pcvolkmer.mv64e.mtb.FamilyMemberHistory; +import dev.pcvolkmer.mv64e.mtb.FamilyMemberHistoryRelationshipTypeCoding; +import dev.pcvolkmer.mv64e.mtb.FamilyMemberHistoryRelationshipTypeCodingCode; import dev.pcvolkmer.mv64e.mtb.Mtb; import dev.pcvolkmer.onco.datamapper.PropertyCatalogue; import dev.pcvolkmer.onco.datamapper.datacatalogues.*; @@ -12,6 +15,8 @@ import javax.sql.DataSource; import java.util.List; import java.util.stream.Collectors; +import static dev.pcvolkmer.onco.datamapper.mapper.MapperUtils.getPatientReference; + /** * Mapper class to load and map Mtb files from database * @@ -100,6 +105,20 @@ public class MtbDataMapper implements DataMapper { .guidelineProcedures(prozedurMapper.getByParentId(kpaId)) .guidelineTherapies(therapielinieMapper.getByParentId(kpaId)) .performanceStatus(ecogMapper.getByParentId(kpaId)) + // TODO Refactoring of inlined mapping + .familyMemberHistories( + catalogueFactory.catalogue(VerwandteCatalogue.class).getAllByParentId(kpaId).stream() + .map(it -> FamilyMemberHistory.builder() + .id(it.getId().toString()) + .patient(getPatientReference(patient.getId())) + .relationship(FamilyMemberHistoryRelationshipTypeCoding.builder().code( + it.getString("verwandschaftsgrad").equals("FAMMEMB") + ? FamilyMemberHistoryRelationshipTypeCodingCode.FAMMEMB + : FamilyMemberHistoryRelationshipTypeCodingCode.EXT + ).build()) + .build() + ).collect(Collectors.toList()) + ) // DNPM Therapieplan .carePlans( therapieplanCatalogue