1
0
mirror of https://github.com/pcvolkmer/mv64e-onkostar-data.git synced 2025-07-02 02:22:54 +00:00

feat: add missing entries for therapies

This commit is contained in:
2025-06-29 12:28:19 +02:00
parent 73526f296e
commit 55ccf8c876
4 changed files with 63 additions and 11 deletions

View File

@ -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 | | |

View File

@ -100,7 +100,9 @@ public abstract class AbstractKpaTherapieverlaufDataMapper<T> 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<T> 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<T> 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<T> 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) {

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 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();
}

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 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();
}