public static string getCurrPercentage() { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; string percent = DataAccess.DataAccessTestCase.CalculatePercentual(managerView.usr.Id_user, managerView.IDTestcase, managerView.tc.DiskreteScale); return(percent); }
public static int getNGroup() { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; return(managerView.iNGroups); }
public static void reportError(string messageUser) { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; List <string> message = Constant.errorReportToAdminMail(managerView, messageUser); MyEmail notification = new MyEmail(); notification.sendEmail(notification.sender, message[0], message[1]); }
protected void updateReference(int index) { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; if ((managerView.allImages.Count > 0) && (managerView.allImages[index][0].ReferenceGlobal)) { List <GlobalReference> gloRef = new List <GlobalReference>(); gvGlobalReference.DataSource = getGlobReferences(index); gloRef = getGlobReferences(index); } else { gvGlobalReference.DataSource = null; } gvGlobalReference.DataBind(); }
public static List <GlobalReference> getGlobReferences(int index) { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; List <GlobalReference> globRefList = new List <GlobalReference>(); for (int k = 0; k < managerView.allImages[index][0].GlobalReferences.Count(); k++) { GlobalReference GlobRef = new GlobalReference(); GlobRef.PathImageMin = "ShowImage.ashx?NqC3ke=4&tXt9X3=0&XwjRGm=1&Hsfke2=0&yAR8st=1&WkYTCe=" + obfuscate(managerView.allImages[index][0].GlobalReferences[k].PathImageMin); GlobRef.PathImageMax = "ShowImage.ashx?NqC3ke=4&tXt9X3=0&XwjRGm=1&Hsfke2=0&yAR8st=1&WkYTCe=" + obfuscate(managerView.allImages[index][0].GlobalReferences[k].PathImageMax); GlobRef.DescriptionScale = managerView.allImages[index][0].GlobalReferences[k].DescriptionScale; GlobRef.ID_TypScale = managerView.allImages[index][0].GlobalReferences[k].ID_TypScale; GlobRef.Idgroup = managerView.allImages[index][0].GlobalReferences[k].Idgroup; globRefList.Add(GlobRef); } return(globRefList); }
public static bool SaveLabelContinuous(List <LableScaleContinuous> Listlablecontinuous) { if (Listlablecontinuous.Count == 0) { return(false); } Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; Class.User user = HttpContext.Current.Session["User"] as Class.User; Result res = null; int index = managerView.currentPageIndex; foreach (LableScaleContinuous lb in Listlablecontinuous) { // save labels in current session for (int i = 0; i < managerView.allImages[index].Count; i++) { if (managerView.allImages[index][i].IdGroupImage == lb.IdGroupImage) { for (int c = 0; c < managerView.allImages[index][i].LableContinuous.Count; c++) { if (managerView.allImages[index][i].LableContinuous[c].IdLable == lb.IdLable) { managerView.allImages[index][i].LableContinuous[c].Lable = lb.Lable; } } } } if (lb.IdGroupImage != 0) { LableScaleContinuous lable = new LableScaleContinuous(); lable.Lable = lb.Lable; lable.IdGroupImage = lb.IdGroupImage; lable.IdUser = Convert.ToInt64(user.Id_user); lable.IdScaleContinuous = lb.IdScaleContinuous; res = DataAccessTestCase.InsertLableScaleContinuous(lable); } } return(res.result); }
// Error report: report an error to the admin public static List <string> errorReportToAdminMail(Class.manageImg managerView, string messageFromUser) { List <string> message = new List <string>(); // subject: message.Add("User: "******" " + managerView.usr.Name + " " + managerView.usr.Surname + " (UserID: " + managerView.usr.Id_user + "; username: "******"; usertype: " + managerView.usr.DescriptionType + ")" + " has reported an error"); // message text string messageText = "User info:<br/>"; // add user info messageText += "UserID: " + managerView.usr.Id_user + "; User: "******" " + managerView.usr.Name + " " + managerView.usr.Surname + " (username: "******")" + "; usertype: " + managerView.usr.DescriptionType + "; email: " + managerView.usr.Email + ";<br/><br/>"; // add testcase info messageText += "testcase info:\nIdTestcase: " + managerView.IDTestcase + "; testcase name:" + managerView.tc.NameTestCase + "; test question: " + managerView.tc.TestQuestion + "; general info: " + managerView.tc.GeneralInfo + "; discrete: " + managerView.tc.DiskreteScale + "; active learning: " + managerView.tc.ActiveLearning + "; initial threshold: " + managerView.tc.initialThreshold + "; user interval: " + managerView.tc.userThreshold + ";<br/><br/>"; messageText += messageFromUser; message.Add(messageText); return(message); }
public static String[] fGetFilenames() { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; List <String> sPath = managerView.sCurrentImageFolder; String[] sFilenames; if (sPath == null) { throw new ArgumentException("path variable in manageImg is not specified!"); } else { // return firstImagesOfPage; sFilenames = (System.IO.Directory.EnumerateFiles(sPath[0], "*.*", SearchOption.AllDirectories).Where(s => Constant.lsExtensions.Any(e => s.EndsWith(e)))).ToArray(); Array.Sort(sFilenames); return(sFilenames); } }
public static void SaveLabelDiscrete(List <LableScaleDiskrete> Listlablediscrete) { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; if (Listlablediscrete.Count == 0) { return; } // discrete label wird hier gespeichert Class.User user = HttpContext.Current.Session["User"] as Class.User; Result res = null; int index = managerView.currentPageIndex; foreach (LableScaleDiskrete lb in Listlablediscrete) { // save labels in current session for (int i = 0; i < managerView.allImages[index].Count; i++) { if (managerView.allImages[index][i].IdGroupImage == lb.IdGroupImage) { managerView.allImages[index][i].LableDiscrete = lb.Lable; } } if (lb.IdGroupImage != 0) { LableScaleDiskrete lable = new LableScaleDiskrete(); lable.Lable = lb.Lable; lable.IdGroupImage = lb.IdGroupImage; lable.IdUser = Convert.ToInt64(user.Id_user); res = DataAccessTestCase.InsertLableScaleDiskrete(lable); } } }
public static int[] fGetDatasetLength() { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; String sPath = managerView.sCurrentImageFolder[0]; String[] sFilenames; if (sPath == null) { throw new ArgumentException("path variable in manageImg is not specified!"); } else { sFilenames = (System.IO.Directory.EnumerateFiles(sPath, "*.*", SearchOption.AllDirectories).Where(s => Constant.lsExtensions.Any(e => s.EndsWith(e)))).ToArray(); int[] iSize = new int[] { 0, 0, 0 }; // get dataset length and set hiddenfield itk.simple.Image itkImage = SimpleITK.ReadImage(sFilenames[0]); // Es wird nur das erste Listenelement ausgelesen? VectorUInt32 UInt32Size = itkImage.GetSize(); iSize[0] = unchecked ((int)UInt32Size[0]); iSize[1] = unchecked ((int)UInt32Size[1]); iSize[2] = unchecked ((int)UInt32Size[2]); return(iSize); } }
public static int[] getUnlabelled(int currentIndex) // if next -> get next unlabelled, if !next -> get previous unlabelled { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; int indexNext = -1; int indexPrev = -1; bool found = false; // get next unlabelled for (int c = (currentIndex + 1); (c < managerView.allImages.Count) && (!found); c++) { for (int i = 0; i < managerView.allImages[c].Count; i++) { if (managerView.allImages[0][0].DiskreteScale) { if ((managerView.allImages[c][i].LableDiscrete == 0) && (!managerView.allImages[c][i].IsReference)) { indexNext = c + 1; break; } } else if (managerView.allImages[0][0].ContinuousScale) { for (int k = 0; k < managerView.allImages[c][i].LableContinuous.Count; k++) { if ((managerView.allImages[c][i].LableContinuous[k].Lable == -1) && (!managerView.allImages[c][i].IsReference)) { indexNext = c + 1; break; } } } } if (indexNext != -1) { break; } } // get previous unlabelled for (int c = (currentIndex - 1); c > -1; c--) // start search with previous image { for (int i = 0; i < managerView.allImages[c].Count; i++) { if (managerView.allImages[0][0].DiskreteScale) { if ((managerView.allImages[c][i].LableDiscrete == 0) && (!managerView.allImages[c][i].IsReference)) { indexPrev = c + 1; break; } } else if (managerView.allImages[0][0].ContinuousScale) { for (int k = 0; k < managerView.allImages[c][i].LableContinuous.Count; k++) { if ((managerView.allImages[c][i].LableContinuous[k].Lable == -1) && (!managerView.allImages[c][i].IsReference)) { indexPrev = c + 1; break; } } } } if (indexPrev != -1) { break; } } int[] unlabelled = { (indexPrev), (indexNext) }; return(unlabelled); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (HttpContext.Current.Session["User"] == null) { Response.Redirect("~/Account/Login.aspx"); } else { long idTestCase = 0; if (HttpContext.Current.Session["IdTestCase"] != null) { idTestCase = Convert.ToInt64(HttpContext.Current.Session["IdTestCase"]); } // infos die immer da sind und sich während des Labelns nicht ändern Class.TestCase tc = DataAccess.DataAccessTestCase.getTestCase().Where(p => p.IDTestcase == idTestCase).FirstOrDefault(); lblNameTestCase.Text = tc.NameTestCase; lblTestQuestion.Text = tc.TestQuestion; lblGeneralInfo.Text = tc.GeneralInfo; if (System.IO.File.Exists(Constant.pathTutorialPages + tc.IDTestcase + ".html")) { string html = System.IO.File.ReadAllText(Constant.pathTutorialPages + tc.IDTestcase + ".html"); hddTutorial.Value = html; disableTutorial.Value = Constant.pathTutorialPages + tc.IDTestcase + ".html"; } else { hddTutorial.Value = ""; disableTutorial.Value = ""; } updateReference(0); HttpContext.Current.Session["viewImage"] = this; if (tc.ActiveLearning) { // check if there are files Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; // 0: no filesfound; 1: user file found; 2: initial file found int statusFiles = 0; if (System.IO.File.Exists(Constant.pathALuserInput + string.Format("{0:D4}", managerView.IDTestcase) + "_User" + string.Format("{0:D4}", managerView.IDUser) + ".csv")) { statusFiles += 2; HttpContext.Current.Session["numberOfOptimizationsUser"] = int.Parse(System.IO.File.ReadLines(Constant.pathALuserInput + string.Format("{0:D4}", managerView.IDTestcase) + "_User" + string.Format("{0:D4}", managerView.IDUser) + ".csv").First()); } else if (System.IO.File.Exists(Constant.pathALinitialInput + string.Format("{0:D4}", managerView.IDTestcase) + ".csv")) { statusFiles += 1; } HttpContext.Current.Session["statusFiles"] = statusFiles; } } } else { if (HttpContext.Current.Session["User"] == null) { Response.Redirect("~/Account/Login.aspx"); } else { try { bool refresh = (bool)HttpContext.Current.Session["refresh"]; if (refresh) { long idTestCase = 0; if (HttpContext.Current.Session["IdTestCase"] != null) { idTestCase = Convert.ToInt64(HttpContext.Current.Session["IdTestCase"]); } Class.TestCase tc = DataAccess.DataAccessTestCase.getTestCase().Where(p => p.IDTestcase == idTestCase).FirstOrDefault(); Thread task; Class.manageImg managerView; Class.User user = Session["User"] as Class.User; // initialize manage object with all needed content managerView = new manageImg(tc, user); // spawn a thread to create the image packages ThreadStart thread = new ThreadStart(managerView.ThreadRun); task = new Thread(thread); task.Start(); if (task.IsAlive) // creation of everything finished => all necessary information are in Session["managerView"] { Session["managerView"] = managerView; Response.Redirect("~/managementImage/ViewImage_.aspx"); } } }catch (Exception ex) {} } } }
public static string getListOfPackageImage(int index) { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; managerView.currentPageIndex = index; HttpContext.Current.Session["managerView"] = managerView; ViewImage_ that = HttpContext.Current.Session["viewImage"] as ViewImage_; that.updateReference(index); // set default values managerView.allImages[index][0].getUnlabelled = new int[] { -1, -1 }; managerView.allImages[index][0].getPercentage = "-"; if (managerView.tc.ActiveLearning) // when active learning is enabled, check if threshold is reached { if (DataAccess.DataAccessTestCase.checkThreshold(managerView)) { return("alert('Active learning procedure has been executed, page index will be reset'); setTimeout(function(){ Reset=true; }, 3000);"); } } if (index >= 0 && index <= managerView.iNGroups) { managerView.sCurrentImageFolder = new List <String>(managerView.allImages[index].Count); for (var i = 0; i < managerView.allImages[index].Count; i++) { managerView.sCurrentImageFolder.Add(null); managerView.sCurrentImageFolder[i] = managerView.tc.dbPath + "\\" + managerView.allImages[index][i].Path.Replace('/', '\\'); //- Martin } // get the labelscales for (int i = 0; i < managerView.allImages[index].Count; i++) { if (managerView.tc.DiskreteScale) { managerView.allImages[index][i].LableDiscrete = DataAccessTestCase.GetDiscreteLabel(managerView.IDUser, managerView.allImages[index][i].IdGroupImage);//pcw } else { managerView.allImages[index][i].LableContinuous = DataAccessTestCase.GetLableContinuous(managerView.allImages[index][i].IdGroupImage, managerView.IDUser, managerView.allImages[index][i].TypeScaleContinuous);//pcw } } List <String> sPath = managerView.sCurrentImageFolder; if (sPath == null) { throw new ArgumentException("path variable in manageImg is not specified!"); } else { // get paths and dimension of every individual image for (int i = 0; i < managerView.allImages[index].Count; i++) { managerView.allImages[index][i].imagePaths = (System.IO.Directory.EnumerateFiles(sPath[i], "*.*", SearchOption.AllDirectories).Where(s => Constant.lsExtensions.Any(e => s.EndsWith(e)))).ToArray(); Array.Sort(managerView.allImages[index][i].imagePaths); int[] iSize = new int[] { 0, 0, 0 }; string pfad = managerView.allImages[index][i].imagePaths[0]; itk.simple.Image itkImage = SimpleITK.ReadImage(pfad); // bei DICOM werden nur die Dimensionen des ersten Bildes ausgelesen, diese sind bei den anderen Schichten identisch VectorUInt32 UInt32Size = itkImage.GetSize(); iSize[0] = unchecked ((int)UInt32Size[0]); iSize[1] = unchecked ((int)UInt32Size[1]); if (managerView.allImages[index][i].imagePaths.Length > 1)// for DICOM files { iSize[2] = managerView.allImages[index][i].imagePaths.Length; } else if (managerView.allImages[index][i].imagePaths.Length == 1)// { iSize[2] = unchecked ((int)UInt32Size[2]); iSize[2]--; } managerView.allImages[index][i].imageDimensions = iSize; } } // get index of the next/previous page with not completely labelled images try { managerView.allImages[index][0].getNumOfPages = managerView.allImages.Count(); managerView.allImages[index][0].getUnlabelled = getUnlabelled(index); managerView.allImages[index][0].getPercentage = getCurrPercentage(); }catch (ArgumentOutOfRangeException ex) { return("alert('An error occurred while trying to load the image package, please contact the administrator');"); } //Obfuscate image paths for (int c = 0; c < managerView.allImages[index].Count; c++) { for (int z = 0; z < managerView.allImages[index][c].imagePaths.Length; z++) { managerView.allImages[index][c].imagePaths[z] = obfuscate(managerView.allImages[index][c].imagePaths[z]); } } // put the array in the JSON format var json = new JavaScriptSerializer().Serialize(managerView.allImages[index]); return(json); //return managerView.allImages[index]; } else { return(null); } }
protected void Button1_Click(object sender, EventArgs e) { Class.manageImg managerView = HttpContext.Current.Session["managerView"] as Class.manageImg; updateReference(managerView.currentPageIndex); }