summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/dto
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/DNPM/dto')
-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();
+ }
+ }
+}