 
  (defn variant-identifier
    "Return variant identifier, typically the ClinGen AlleleReg id."
-   [v]
-   (csv-colval (get v "CanonicalAllele") "ERROR-variant-identifier"))
+   [v r]
+   (if (nil? v) (report/append-to-report r "\n\n*E-202: Variant identifier not provided."))
+   (csv-colval (get v "CanonicalAllele") "*E-202"))
 
 
   (defn variant-alt-designations
   "Return variant hgvs representations"
-  [v]
-  (csv-colval (get v "alleleName name") "ERROR-variant-alt-designations"))
+  [v r]
+  (if (nil? v) (report/append-to-report r "\n\n*W-251: Preferred variant alternate designation not provided"))
+  (csv-colval (get v "alleleName name") "*W-251"))
  
  (defn variant-refseq
   "Return the variant reference sequence."
-  [t v] 
+  [t v r] 
   (let [refseq (ld-> t v "referenceCoordinate" "referenceSequence")]
-    (csv-colval (get refseq "display") "ERROR-variant-refseq")))
+  (if (nil? refseq) (report/append-to-report r "\n\n*E-204: Preferred variant reference sequence not provided."))
+    (csv-colval (get refseq "display") "*E-204")))
 
 (defn variant-start
   "Return the variant reference sequence start pos (0-to-1-based transform)."
-  [t v]
+  [t v r]
    ;if ref is not null add 1 to start otherwise as-is
   (let [ref (ld-> t v "referenceCoordinate" "refAllele")
         alt (get v "allele")
-        start (ld-> t v "referenceCoordinate" "start")]
-    (csv-colval (if (str/blank? ref) (get start "index") (+ 1 (get start "index"))) "ERROR-variant-start")))
+        start (ld-> t v "referenceCoordinate" "start")]
+    (if (nil? start) (report/append-to-report r "\n\n*E-205: Preferred variant start coordinate not provided."))
+    (csv-colval (if (str/blank? ref) (get start "index") (+ 1 (get start "index"))) "*E-205")))
 
 (defn variant-stop
   "Return the variant reference sequence stop pos (0-to-1-based transform)."
-  [t v]
+  [t v r]
    ;if ref is blank and alt is not add 1 to stop otherwise as-is
   (let [ref (ld-> t v "referenceCoordinate" "refAllele")
         alt (get v "allele")
-        stop (ld-> t v "referenceCoordinate" "end")]
-    (csv-colval (if (and (str/blank? ref) (not (str/blank? alt))) (+ 1 (get stop "index")) (get stop "index")) "ERROR-variant-stop")))
+        stop (ld-> t v "referenceCoordinate" "end")]
+    (if (nil? stop) (report/append-to-report r "\n\n*E-206: Preferred variant stop coordinate not provided."))
+    (csv-colval (if (and (str/blank? ref) (not (str/blank? alt))) (+ 1 (get stop "index")) (get stop "index")) "*E-206")))
  
  (defn variant-ref
   "Return the variant ref allele sequence."
-  [t v]
+  [t v r]
   (let [refcoord (ld-> t v "referenceCoordinate")] 
-    (csv-colval (get refcoord "refAllele") "ERROR-variant-ref")))
+    (if (nil? v) (report/append-to-report r "\n\n*E-207: Preferred variant reference allele not provided."))
+    (csv-colval (get refcoord "refAllele") "*E-207")))
  
  (defn variant-alt
    "Return the variant alt allele sequence."
-   [v]
-   (csv-colval (get v "allele") "ERROR-variant-alt"))
+   [v r]
+   (if (nil? v) (report/append-to-report r "\n\n*E-208: Preferred variant alternate allele not provided."))
+   (csv-colval (get v "allele") "*E-208"))
  
  (defn get-variant
   "Returns a map of all variant related fields needed for the clinvar 

  [t i r]
  (let [v (ld1-> t i "variant" "relatedContextualAllele" (prop= t true "preferred"))]
  (if (nil? v ) (log/error (str "Exception in get-variant: relatedContextualAllele not found")))
    {:variantIdentifier (variant-identifier v),
     :altDesignations (variant-alt-designations v),
     :refseq (variant-refseq t v),
     :start (variant-start t v),
     :stop  (variant-stop t v),
     :ref (variant-ref t v),
     :alt (variant-alt v)}))

;*** Condition related transformations 


  (if(nil? (ld-> t i "contribution")) (report/append-to-report r "\n\n*E-401: Interpretation evaluation date not provided"))
  (let [contribution (ld-> t i "contribution")]
    (if (nil? (get contribution "onDate")) "" 
      (try
      (.format 
        (java.text.SimpleDateFormat. "'=\"'yyyy-MM-dd'\"'") 
        (.parse
          (java.text.SimpleDateFormat. "yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX")
          (get contribution "onDate")))
       (catch Exception e (report/append-to-report r "\n\n*E-404: Interpretation evaluation date format not valid") (get contribution "onDate") "*E-404")))))

  (defn get-interpretation
   "Returns a map of all interpretation related fields needed for the 
