diff options
| author | Paul-Christian Volkmer | 2024-09-21 22:10:24 +0200 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2024-09-21 22:10:24 +0200 |
| commit | cc27edc544cec1b892e7c224aec9e6e42342aa39 (patch) | |
| tree | 3036b92f84a707d769782d63c2b018166623abf5 /src/main/java/dev/dnpm/dto/Variant.java | |
| parent | 93215825f5c8aec0912d562b544f370cffe9cda7 (diff) | |
refactor: use package name following Java guidelines
Diffstat (limited to 'src/main/java/dev/dnpm/dto/Variant.java')
| -rw-r--r-- | src/main/java/dev/dnpm/dto/Variant.java | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/main/java/dev/dnpm/dto/Variant.java b/src/main/java/dev/dnpm/dto/Variant.java new file mode 100644 index 0000000..a7f75cd --- /dev/null +++ b/src/main/java/dev/dnpm/dto/Variant.java @@ -0,0 +1,110 @@ +package dev.dnpm.dto; + +import de.itc.onkostar.api.Procedure; + +import java.util.Optional; + +/** + * Ein Auszug der Variante aus dem NGS-Bericht zur Übertragung an das Frontend zur Auswahl der stützenden molekularen Alteration + * + * @since 0.2.0 + */ +public class Variant { + private final Integer id; + + private final String ergebnis; + + private final String gen; + + private final String exon; + + private final String pathogenitaetsklasse; + + private Variant( + final int id, + final String ergebnis, + final String gen, + final String exon, + final String pathogenitaetsklasse + ) { + this.id = id; + this.ergebnis = ergebnis; + this.gen = gen; + this.exon = exon; + this.pathogenitaetsklasse = pathogenitaetsklasse; + } + + public Integer getId() { + return id; + } + + public String getErgebnis() { + return ergebnis; + } + + public String getGen() { + return gen; + } + + public String getExon() { + return exon; + } + + public String getPathogenitaetsklasse() { + return pathogenitaetsklasse; + } + + /** + * Erstellt ein Optional einer Variante aus einer Prozedur + * @param procedure Die zu verwendende Prozedur + * @return Das Optional, wenn die Prozedur verwendet werden kann, ansonsten ein leeres Optional + */ + 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(), + "Einfache Variante (Mutation)", + gene.getString().isBlank() ? "-" : gene.getString(), + null == exon || exon.getString().isBlank() ? "-" : exon.getString(), + null == pathogenitaetsklasse || pathogenitaetsklasse.getString().isBlank() ? "-" : pathogenitaetsklasse.getString() + ) + ); + } else if (ergebnis.getString().equals("CNV")) { + return Optional.of( + new Variant( + procedure.getId(), + "Copy Number Variation (CNV)", + gene.getString().isBlank() ? "-" : gene.getString(), + null == exon || exon.getString().isBlank() ? "-" : exon.getString(), + null == pathogenitaetsklasse || pathogenitaetsklasse.getString().isBlank() ? "-" : pathogenitaetsklasse.getString() + ) + ); + } else if (ergebnis.getString().equals("F")) { + return Optional.of( + new Variant( + procedure.getId(), + "Fusion (Translokation Inversion Insertion)", + gene.getString().isBlank() ? "-" : gene.getString(), + null == exon || exon.getString().isBlank() ? "-" : exon.getString(), + null == pathogenitaetsklasse || pathogenitaetsklasse.getString().isBlank() ? "-" : pathogenitaetsklasse.getString() + ) + ); + } else { + return Optional.empty(); + } + } +} |
