コード例 #1
0
        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")));
            }
        }
コード例 #2
0
        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));
        }