public async Task <OperationDataResult <SegmentsModel> > Index(SegmentRequestModel pnRequestModel) { try { SegmentsModel segmentsModel = new SegmentsModel(); IQueryable <Segment> segmentQuery = _dbContext.Segments.AsQueryable(); if (!string.IsNullOrEmpty(pnRequestModel.Sort)) { if (pnRequestModel.IsSortDsc) { segmentQuery = segmentQuery .CustomOrderByDescending(pnRequestModel.Sort); } else { segmentQuery = segmentQuery .CustomOrderBy(pnRequestModel.Sort); } } else { segmentQuery = _dbContext.Segments .OrderBy(x => x.Id); } segmentQuery = segmentQuery .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed) .Skip(pnRequestModel.Offset) .Take(pnRequestModel.PageSize); List <SegmentModel> segmentModels = await segmentQuery.Select(x => new SegmentModel { Id = x.Id, Name = x.Name, Description = x.Description, SdkFolderId = x.SdkFolderId }).ToListAsync(); segmentsModel.Total = await _dbContext.Segments.CountAsync(x => x.WorkflowState != Constants.WorkflowStates.Removed); segmentsModel.SegmentList = segmentModels; Core _core = await _coreHelper.GetCore(); return(new OperationDataResult <SegmentsModel>(true, segmentsModel)); } catch (Exception e) { Trace.TraceError(e.Message); _coreHelper.LogException(e.Message); return(new OperationDataResult <SegmentsModel>(false, _trashInspectionLocalizationService.GetString("ErrorObtainingSegments"))); } }
public async Task <InstanceSegmentsModel> GetSegmentsByInstanceId(Segments segments, string instanceId, string hostUrl = "") { var apiUrl = string.Format("/instances/{0}/tags", instanceId); var request = new RestRequest(apiUrl, Method.GET); var response = await this.SendRequestAsync <List <Dictionary <string, InstanceTagsModel> > >(request, string.Empty, apiUrl); if (response.IsSuccessful) { var result = new InstanceSegmentsModel(); var values = response.Data.SelectMany(x => x.Values).ToList(); result.PatientName = values.SingleOrDefault(x => x.Name == "PatientName").Value; //result.InstanceCreationDate = values.SingleOrDefault(x => x.Name == "InstanceCreationDate").Value; //try //{ // result.InstanceCreationDate = values.SingleOrDefault(x => x.Name == "InstanceCreationDate").Value; //} //catch(Exception ex) //{ // result.InstanceCreationDate = "-"; //} string folderName = string.Empty; if (segments.IsThreshold) { folderName = @"\Threshold\" + instanceId + @"\segments\threshold_segments\"; } else if (segments.IsKMeans) { folderName = @"\KMeans\" + instanceId + @"\segments\kmeans_segments\"; } else if (segments.IsRegionGrowth) { folderName = @"\RegionGrowth\" + instanceId + @"\segments\regiongrowth_segments\"; } //var instanceSegmentsPath = Path.Combine(PathToDicomSegments, folderName); var instanceSegmentsPath = PathToDicomSegments + folderName; if (Directory.Exists(instanceSegmentsPath)) { var instanceSegmentFiles = Directory.GetFiles(instanceSegmentsPath, "*.jpg"); foreach (var file in instanceSegmentFiles) { var segmentsModel = new SegmentsModel(); var fileName = Path.GetFileNameWithoutExtension(file); var jpgFilePath = Path.Combine(instanceSegmentsPath, fileName) + ".jpg"; if (File.Exists(jpgFilePath)) { var finalPath = hostUrl + "/segments/" + folderName.Replace("\\", "/") + fileName + ".jpg"; segmentsModel.Name = fileName; segmentsModel.Type = ".jpg"; segmentsModel.Url = finalPath; result.Segments.Add(segmentsModel); } } return(result); } else { var segmentsPath = Path.Combine(PathToDicomSegments); if (Directory.Exists(segmentsPath)) { var segmentFiles = Directory.GetFiles(segmentsPath, "*.jpg"); foreach (var file in segmentFiles) { var segmentsModel = new SegmentsModel(); var fileName = Path.GetFileNameWithoutExtension(file); var jpgFilePath = Path.Combine(segmentsPath, fileName) + ".jpg"; if (File.Exists(jpgFilePath)) { var finalPath = hostUrl + "/segments/" + fileName + ".jpg"; segmentsModel.Name = fileName; segmentsModel.Type = ".jpg"; segmentsModel.Url = finalPath; result.Segments.Add(segmentsModel); } } } return(result); } } InstanceSegmentsModel returnResponse = new InstanceSegmentsModel(); return(await Task.FromResult <InstanceSegmentsModel>(returnResponse)); }