module Parasitemia.GUI.State open System.Collections.Generic open Emgu.CV open Emgu.CV.Structure open Types type State () = let sourceImages = List() let mutable currentImage = -1 member val FilePath: string = "" with get, set member val PatientID: string = "" with get, set member this.Save () = let data = { Pia.sources = []; Pia.patientID = this.PatientID } Pia.save this.FilePath data member this.Load () = let data = Pia.load this.FilePath this.PatientID <- data.patientID member this.AddSourceImage (filePath: string) : SourceImage = let srcImg = { num = sourceImages.Count + 1; rbcs = []; img = new Image(filePath) } sourceImages.Add(srcImg) if sourceImages.Count = 1 then currentImage <- 1 srcImg member x.SourceImages : SourceImage seq = sourceImages :> SourceImage seq member this.Reset () = this.PatientID <- "" sourceImages.Clear()