mirror of
https://github.com/pcvolkmer/mv64e-onkostar-data.git
synced 2025-09-13 16:02:52 +00:00
feat: further data mappings for NGS reports
This commit is contained in:
@@ -50,8 +50,8 @@ var jsonResult = Converter.toJsonString(
|
|||||||
| Histologie-Berichte | ⌛ | Aktuell in Arbeit |
|
| Histologie-Berichte | ⌛ | Aktuell in Arbeit |
|
||||||
| IHC-Berichte | | |
|
| IHC-Berichte | | |
|
||||||
| MSI-Befunde | | |
|
| MSI-Befunde | | |
|
||||||
| NGS-Berichte | ⌛ | Aktuell in Arbeit |
|
| NGS-Berichte | ⛅ | Best effort: Formular OS.Molekulargenetik erfüllt nicht alle Anforderungen (2) |
|
||||||
| MTB-Beschlüsse | ✅ | Stützende molekulare Alteration(en) für einfache Variante und CNV (2) |
|
| MTB-Beschlüsse | ✅ | Stützende molekulare Alteration(en) für einfache Variante und CNV (3) |
|
||||||
| Follow-Up Verlauf | | |
|
| Follow-Up Verlauf | | |
|
||||||
| Antrag Kostenübernahme | | |
|
| Antrag Kostenübernahme | | |
|
||||||
| Antwort Kostenübernahme | | |
|
| Antwort Kostenübernahme | | |
|
||||||
@@ -61,7 +61,9 @@ var jsonResult = Converter.toJsonString(
|
|||||||
### Hinweise
|
### Hinweise
|
||||||
|
|
||||||
1. Nicht alle möglichen Ausprägungen in `OS.Molekulargenetik` vorhanden.
|
1. Nicht alle möglichen Ausprägungen in `OS.Molekulargenetik` vorhanden.
|
||||||
2. Implementierung des Mappings von HGNC-Symbol (Gen-Name) zu HGNC-ID über enthaltene Gen-Liste.
|
2. Aktuell nicht alle Angaben effektiv im Formular `OS.Molekulargenetik` wie gefordert angebbar.
|
||||||
|
Hinweis: Tumorzellgehalt-Methode problematisch, wenn auch im NGS-Bericht histologisch festgestellt.
|
||||||
|
3. Implementierung des Mappings von HGNC-Symbol (Gen-Name) zu HGNC-ID über enthaltene Gen-Liste.
|
||||||
|
|
||||||
## Enthaltene Liste mit Genen
|
## Enthaltene Liste mit Genen
|
||||||
|
|
||||||
|
@@ -22,6 +22,7 @@ package dev.pcvolkmer.onco.datamapper.mapper;
|
|||||||
|
|
||||||
import dev.pcvolkmer.mv64e.mtb.*;
|
import dev.pcvolkmer.mv64e.mtb.*;
|
||||||
import dev.pcvolkmer.onco.datamapper.PropertyCatalogue;
|
import dev.pcvolkmer.onco.datamapper.PropertyCatalogue;
|
||||||
|
import dev.pcvolkmer.onco.datamapper.ResultSet;
|
||||||
import dev.pcvolkmer.onco.datamapper.datacatalogues.*;
|
import dev.pcvolkmer.onco.datamapper.datacatalogues.*;
|
||||||
import dev.pcvolkmer.onco.datamapper.genes.GeneUtils;
|
import dev.pcvolkmer.onco.datamapper.genes.GeneUtils;
|
||||||
|
|
||||||
@@ -67,7 +68,10 @@ public class KpaMolekulargenetikDataMapper implements DataMapper<SomaticNgsRepor
|
|||||||
.patient(data.getPatientReference())
|
.patient(data.getPatientReference())
|
||||||
.issuedOn(data.getDate("datum"))
|
.issuedOn(data.getDate("datum"))
|
||||||
.specimen(Reference.builder().id(data.getString("einsendenummer")).type("Specimen").build())
|
.specimen(Reference.builder().id(data.getString("einsendenummer")).type("Specimen").build())
|
||||||
.results(this.getNgsReportResults(id))
|
// TODO: OS.MolDiagSequenzierung kennt keine Unterscheidung zwischen 'genome-long-read' und 'genome-short-read'! -> OTHER
|
||||||
|
.type(getNgsReportCoding(data.getString("artdersequenzierung")))
|
||||||
|
.metadata(List.of(getNgsReportMetadata(data.getString("artdersequenzierung"))))
|
||||||
|
.results(this.getNgsReportResults(data))
|
||||||
;
|
;
|
||||||
|
|
||||||
return builder.build();
|
return builder.build();
|
||||||
@@ -87,10 +91,24 @@ public class KpaMolekulargenetikDataMapper implements DataMapper<SomaticNgsRepor
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
private NgsReportResults getNgsReportResults(int id) {
|
private NgsReportResults getNgsReportResults(ResultSet resultSet) {
|
||||||
var subforms = this.untersuchungCatalogue.getAllByParentId(id);
|
var subforms = this.untersuchungCatalogue.getAllByParentId(resultSet.getId());
|
||||||
|
|
||||||
var resultBuilder = NgsReportResults.builder();
|
var resultBuilder = NgsReportResults.builder();
|
||||||
|
|
||||||
|
// TODO: Aktuell nicht eingebunden, da Fehler, wenn nicht bioinformatisch gemäß: https://ibmi-ut.atlassian.net/wiki/spaces/DAM/pages/698777783/ Zeile 144!
|
||||||
|
// In Würzburg immer histologisch!
|
||||||
|
/*if (null != resultSet.getLong("tumorzellgehalt")) {
|
||||||
|
resultBuilder.tumorCellContent(
|
||||||
|
TumorCellContent.builder()
|
||||||
|
.id(resultSet.getId().toString())
|
||||||
|
.patient(resultSet.getPatientReference())
|
||||||
|
.specimen(Reference.builder().id(resultSet.getString("einsendenummer")).type("Specimen").build())
|
||||||
|
.value(resultSet.getLong("tumorzellgehalt"))
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}*/
|
||||||
|
|
||||||
resultBuilder.simpleVariants(
|
resultBuilder.simpleVariants(
|
||||||
subforms.stream()
|
subforms.stream()
|
||||||
// P => Einfache Variante
|
// P => Einfache Variante
|
||||||
@@ -163,4 +181,45 @@ public class KpaMolekulargenetikDataMapper implements DataMapper<SomaticNgsRepor
|
|||||||
return resultBuilder.build();
|
return resultBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private NgsReportCoding getNgsReportCoding(final String artdersequenzierung) {
|
||||||
|
switch (artdersequenzierung) {
|
||||||
|
case "WES":
|
||||||
|
return NgsReportCoding.builder()
|
||||||
|
.code(NgsReportCodingCode.EXOME)
|
||||||
|
.display("Exome")
|
||||||
|
.system("http://bwhc.de/mtb/somatic-ngs-report/sequencing-type")
|
||||||
|
.build();
|
||||||
|
case "PanelKit":
|
||||||
|
return NgsReportCoding.builder()
|
||||||
|
.code(NgsReportCodingCode.PANEL)
|
||||||
|
.display("Panel")
|
||||||
|
.system("http://bwhc.de/mtb/somatic-ngs-report/sequencing-type")
|
||||||
|
.build();
|
||||||
|
default:
|
||||||
|
return NgsReportCoding.builder()
|
||||||
|
.code(NgsReportCodingCode.OTHER)
|
||||||
|
.display("Other")
|
||||||
|
.system("http://bwhc.de/mtb/somatic-ngs-report/sequencing-type")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private NgsReportMetadata getNgsReportMetadata(final String artdersequenzierung) {
|
||||||
|
var resultBuilder = NgsReportMetadata.builder();
|
||||||
|
|
||||||
|
switch(artdersequenzierung) {
|
||||||
|
// TODO: Replace with real data in properties file
|
||||||
|
default:
|
||||||
|
resultBuilder
|
||||||
|
.sequencer("")
|
||||||
|
.kitManufacturer("")
|
||||||
|
.pipeline("")
|
||||||
|
.kitType("")
|
||||||
|
.kitManufacturer("")
|
||||||
|
.referenceGenome("")
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultBuilder.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user