diff --git a/README.md b/README.md index 0916bd8..f800f84 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,8 @@ var jsonResult = Converter.toJsonString(mtbMapper.getByCaseId("16000123")); | Episoden | ✅ | | | Diagnosen | ✅ | Entsprechend Formularaufbau nur Diagnose der aktuellen Episode | | Verwandten-Diagnosen | ✅ | | -| Systemische Leitlinien-Therapien | ⌛ | Status noch nicht vollständig in Formular | -| Leitlinien-Prozeduren | ✅ | | +| Systemische Leitlinien-Therapien | ✅ | Siehe auch: https://github.com/dnpm-dip/mtb-model/issues/9 | +| Leitlinien-Prozeduren | ✅ | Siehe auch: https://github.com/dnpm-dip/mtb-model/issues/9 | | ECOG-Verlauf | ✅ | | | Tumor-Probem | | | | vorherige Molekular-Diagnostik | | | diff --git a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/AbstractKpaTherapieverlaufDataMapper.java b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/AbstractKpaTherapieverlaufDataMapper.java index 52f3ebd..9be939c 100644 --- a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/AbstractKpaTherapieverlaufDataMapper.java +++ b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/AbstractKpaTherapieverlaufDataMapper.java @@ -100,7 +100,9 @@ public abstract class AbstractKpaTherapieverlaufDataMapper extends AbstractSu return null; } - var resultBuilder = MtbSystemicTherapyRecommendationFulfillmentStatusCoding.builder(); + var resultBuilder = MtbSystemicTherapyRecommendationFulfillmentStatusCoding.builder() + .system("dnpm-dip/therapy/recommendation-fulfillment-status") + .display(propertyCatalogue.getByCodeAndVersion(value, version).getShortdesc()); try { resultBuilder.code(MtbSystemicTherapyRecommendationFulfillmentStatusCodingCode.forValue(value)); } catch (IOException e) { @@ -115,7 +117,9 @@ public abstract class AbstractKpaTherapieverlaufDataMapper extends AbstractSu return null; } - var resultBuilder = MtbSystemicTherapyCategoryCoding.builder(); + var resultBuilder = MtbSystemicTherapyCategoryCoding.builder() + .system("dnpm-dip/therapy/category") + .display(propertyCatalogue.getByCodeAndVersion(value, version).getShortdesc()); try { resultBuilder.code(MtbSystemicTherapyCategoryCodingCode.forValue(value)); } catch (IOException e) { @@ -130,7 +134,9 @@ public abstract class AbstractKpaTherapieverlaufDataMapper extends AbstractSu return null; } - var resultBuilder = MtbSystemicTherapyDosageDensityCoding.builder(); + var resultBuilder = MtbSystemicTherapyDosageDensityCoding.builder() + .system("dnpm-dip/therapy/status-density") + .display(propertyCatalogue.getByCodeAndVersion(value, version).getShortdesc()); try { resultBuilder.code(MtbSystemicTherapyDosageDensityCodingCode.forValue(value)); } catch (IOException e) { @@ -148,7 +154,7 @@ public abstract class AbstractKpaTherapieverlaufDataMapper extends AbstractSu var resultBuilder = OncoProcedureCoding.builder() .system("dnpm-dip/therapy/type") .display(propertyCatalogue.getByCodeAndVersion(value, version).getShortdesc()); - + try { resultBuilder.code(OncoProcedureCodingCode.forValue(value)); } catch (IOException e) { diff --git a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaProzedurDataMapper.java b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaProzedurDataMapper.java index d47c162..5fde367 100644 --- a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaProzedurDataMapper.java +++ b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaProzedurDataMapper.java @@ -7,6 +7,8 @@ import dev.pcvolkmer.onco.datamapper.PropertyCatalogue; import dev.pcvolkmer.onco.datamapper.ResultSet; import dev.pcvolkmer.onco.datamapper.datacatalogues.ProzedurCatalogue; +import java.util.List; + import static dev.pcvolkmer.onco.datamapper.mapper.MapperUtils.getPatientReference; /** @@ -78,7 +80,17 @@ public class KpaProzedurDataMapper extends AbstractKpaTherapieverlaufDataMapper< resultSet.getInteger("typ_propcat_version") ) ) + .reason( + Reference.builder() + .id(resultSet.getString("ref_einzelempfehlung")) + .build() + ) ; + + if (resultSet.getString("anmerkungen") != null) { + builder.notes(List.of(resultSet.getString("anmerkungen"))); + } + return builder.build(); } diff --git a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaTherapielinieDataMapper.java b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaTherapielinieDataMapper.java index 6af50ad..6dbf51b 100644 --- a/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaTherapielinieDataMapper.java +++ b/src/main/java/dev/pcvolkmer/onco/datamapper/mapper/KpaTherapielinieDataMapper.java @@ -7,6 +7,8 @@ import dev.pcvolkmer.onco.datamapper.PropertyCatalogue; import dev.pcvolkmer.onco.datamapper.ResultSet; import dev.pcvolkmer.onco.datamapper.datacatalogues.TherapielinieCatalogue; +import java.util.List; + import static dev.pcvolkmer.onco.datamapper.mapper.MapperUtils.getPatientReference; /** @@ -73,12 +75,44 @@ public class KpaTherapielinieDataMapper extends AbstractKpaTherapieverlaufDataMa .build() ) .medication(JsonToMedicationMapper.map(resultSet.getString("wirkstoffcodes"))) - - /* TODO Yet missing form fields */ - //.category(getMtbSystemicTherapyCategoryCoding()) - //.dosage(getMtbSystemicTherapyDosageDensityCoding()) - //.recommendationFulfillmentStatus(getMtbSystemicTherapyRecommendationFulfillmentStatusCoding() + .reason( + Reference.builder() + .id(resultSet.getString("ref_einzelempfehlung")) + .build() + ) ; + + if (resultSet.getString("stellung_propcat_version") != null) { + builder.category( + getMtbSystemicTherapyCategoryCoding( + resultSet.getString("stellung"), + resultSet.getInteger("stellung_propcat_version") + ) + ); + } + + if (resultSet.getString("dosisdichte_propcat_version") != null) { + builder.dosage( + getMtbSystemicTherapyDosageDensityCoding( + resultSet.getString("dosisdichte"), + resultSet.getInteger("dosisdichte_propcat_version") + ) + ); + } + + if (resultSet.getString("umsetzung_propcat_version") != null) { + builder.recommendationFulfillmentStatus( + getMtbSystemicTherapyRecommendationFulfillmentStatusCoding( + resultSet.getString("umsetzung"), + resultSet.getInteger("umsetzung_propcat_version") + ) + ); + } + + if (resultSet.getString("anmerkungen") != null) { + builder.notes(List.of(resultSet.getString("anmerkungen"))); + } + return builder.build(); }