summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/dto/Variant.java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-05-08 16:23:52 +0200
committerPaul-Christian Volkmer2023-05-09 13:36:43 +0200
commit3afe109494e2b4a751874a027694c17f6cabc4cd (patch)
tree06bf905547f0a2cdd3973e5b14928fb0a28a9cab /src/main/java/DNPM/dto/Variant.java
parent06b5381e885cf5cf4cb008e22e7cb2dff88f40b5 (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.java67
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();
+ }
+ }
+}