diff options
| author | Paul-Christian Volkmer | 2023-05-08 16:23:52 +0200 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2023-05-09 13:36:43 +0200 |
| commit | 3afe109494e2b4a751874a027694c17f6cabc4cd (patch) | |
| tree | 06bf905547f0a2cdd3973e5b14928fb0a28a9cab /src/main/java/DNPM/dto/Variant.java | |
| parent | 06b5381e885cf5cf4cb008e22e7cb2dff88f40b5 (diff) | |
Issue #28: Initiale Implementierung zur Ermittlung der NGS-Befund-Varianten
Diffstat (limited to 'src/main/java/DNPM/dto/Variant.java')
| -rw-r--r-- | src/main/java/DNPM/dto/Variant.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/main/java/DNPM/dto/Variant.java b/src/main/java/DNPM/dto/Variant.java new file mode 100644 index 0000000..36788f2 --- /dev/null +++ b/src/main/java/DNPM/dto/Variant.java @@ -0,0 +1,67 @@ +package DNPM.dto; + +import de.itc.onkostar.api.Procedure; + +import java.util.Optional; + +public class Variant { + private final Integer id; + + private final String shortDescription; + + private Variant( + final int id, + final String shortDescription + ) { + this.id = id; + this.shortDescription = shortDescription.trim(); + } + + public Integer getId() { + return id; + } + + public String getShortDescription() { + return shortDescription; + } + + public static Optional<Variant> fromProcedure(Procedure procedure) { + if (! "OS.Molekulargenetische Untersuchung".equals(procedure.getFormName())) { + return Optional.empty(); + } + + var ergebnis = procedure.getValue("Ergebnis"); + var gene = procedure.getValue("Untersucht"); + var exon = procedure.getValue("ExonInt"); + var pathogenitaetsklasse = procedure.getValue("Pathogenitaetsklasse"); + + if (null == gene) { + return Optional.empty(); + } + + if (ergebnis.getString().equals("P")) { + return Optional.of( + new Variant( + procedure.getId(), + String.format("Einfache Variante: %s, %s, %s", gene.getString(), exon.getString(), pathogenitaetsklasse.getString()) + ) + ); + } else if (ergebnis.getString().equals("CNV")) { + return Optional.of( + new Variant( + procedure.getId(), + String.format("Copy Number Variation: %s, %s, %s", gene.getString(), exon.getString(), pathogenitaetsklasse.getString()) + ) + ); + } else if (ergebnis.getString().equals("F")) { + return Optional.of( + new Variant( + procedure.getId(), + String.format("Fusion: %s, %s, %s", gene.getString(), exon.getString(), pathogenitaetsklasse.getString()) + ) + ); + } else { + return Optional.empty(); + } + } +} |
