public ActionResult Put([FromBody] ManualContourDTO contour) { if (logic.Edit(contour)) { return(Ok()); } return(BadRequest()); }
public ActionResult <ManualContourDTO> Get(Guid guid) { ManualContourDTO contour = logic.Get(guid); if (contour == null) { return(NotFound()); } return(contour); }
public List <ManualContourDTO> FetchByDicomIdToDTOs(string dicomid) { List <ManualContourDTO> contours = new List <ManualContourDTO>(); foreach (Guid guid in repository.FetchByDicomId(dicomid)) { ManualContourDTO contour = repository.Load(guid); if (contour != null) { contours.Add(contour); } } return(contours); }
public List <ManualContourDTO> FetchAllToDTOs() { List <ManualContourDTO> contours = new List <ManualContourDTO>(); foreach (Guid guid in repository.FetchAll()) { ManualContourDTO contour = repository.Load(guid); if (contour != null) { contours.Add(contour); } } return(contours); }
public static StatisticsResult GenerateStatistics(ManualContourDTO contour) { System.Drawing.Bitmap bitmap = OrthancConnection.GetBitmapByInstanceId(contour.dicomid); int width = bitmap.Width; int height = bitmap.Height; int[,] matrixWithContour = CannyAlgorithm.MakeMatrixFromPoints(width, height, contour.lines.First().points); int count = 0; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { if (matrixWithContour[x, y] == 0) { count++; } } } int[,] image = CannyAlgorithm.ReadMatrixFromBitmap(bitmap); double pixelSizeX = 0; double pixelSizeY = 0; List <string> splitString = contour.pixelSpacing.Split('\\').ToList(); List <double> split = new List <double>(); foreach (var s in splitString) { double d = 0; if (double.TryParse(s, System.Globalization.NumberStyles.Number, System.Globalization.CultureInfo.InvariantCulture, out d)) { split.Add(d); } } if (split.Count >= 2) { pixelSizeX = split[0]; pixelSizeY = split[1]; } double pixelAreaInMms = pixelSizeX * pixelSizeY; double pixelLenghtInMms = pixelSizeX; return(GenerateStatistics(contour.lines.First().points, matrixWithContour, image, 0, width, 0, height, pixelAreaInMms, pixelLenghtInMms, contour.centralPoints.First())); }
public ManualContourDTO Get(Guid guid) { ManualContourDTO result = null; try { result = repository.Load(guid); } catch (Exception e) { Console.WriteLine("Catched exception: "); Console.WriteLine(e.ToString()); } return(result); }
public static ManualContourDTO PrepareContour(ManualContourDTO contour) { List <Point> result = new List <Point>(); int count = contour.lines.First().points.Count; int i; for (i = 0; i < count; i++) { Point p1 = contour.lines.First().points[i]; Point p2 = contour.lines.First().points[(i + 1) % count]; result.Add(p1); result.Add(p2); result.AddRange(BresenhamClass.Bresenham(new List <Point>(), p1.x, p1.y, p2.x, p2.y)); } contour.lines.First().points = new List <Point>(result); return(contour); }
public ActionResult <ManualContourDTO> Post([FromBody] ManualContourDTO contour) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (contour == null) { return(BadRequest()); } if (contour.lines == null) { return(BadRequest()); } if (contour.lines.Count == 0) { return(BadRequest()); } foreach (var l in contour.lines) { if (l.points == null) { return(BadRequest()); } if (l.points.Count < 3) { return(BadRequest()); } } logic.Add(contour); return(CreatedAtAction(nameof(Get), new { guid = contour.guid }, contour)); }
public bool Edit(ManualContourDTO contour) { return(repository.Edit(contour)); }
public void Add(ManualContourDTO contour) { contour = PrepareContour(contour); contour.statistics = Statistics.GenerateStatistics(contour); repository.Save(contour); }