Пример #1
0
            private void Analyze(bool responsive)
            {
                _roi = Subject.GetRoi();

                var currentCallout = Callout;
                var roiCallout     = currentCallout as RoiCalloutGraphic;

                if (roiCallout == null)
                {
                    if (currentCallout != null)
                    {
                        Graphics.Remove(currentCallout);
                        currentCallout.Dispose();
                    }
                    roiCallout = new RoiCalloutGraphic {
                        Color = Color
                    };
                    Graphics.Add(roiCallout);
                    Callout = roiCallout;
                }
                roiCallout.Update(_roi, responsive ? RoiAnalysisMode.Responsive : RoiAnalysisMode.Normal);
            }
Пример #2
0
        protected virtual RoiStatistics GetStatistics(RoiCalloutGraphic calloutGraphic)
        {
            var staticstics = new RoiStatistics();

            var roi = calloutGraphic.ParentGraphic.Roi;

            foreach (var analyzer in calloutGraphic.RoiAnalyzers)
            {
                if (analyzer.SupportsRoi(roi))
                {
                    var analyzerResult = analyzer.Analyze(roi, RoiAnalysisMode.Normal);
                    if (analyzerResult != null)
                    {
                        if (staticstics.Items == null)
                        {
                            staticstics.Items = new List <RoiStatistic>();
                        }

                        if (analyzerResult is SingleValueRoiAnalyzerResult)
                        {
                            var result = analyzerResult as SingleValueRoiAnalyzerResult;
                            staticstics.Items.Add(new RoiStatistic()
                            {
                                Name           = analyzerResult.Name,
                                Value          = result.Value,
                                Units          = result.Units,
                                DisplayedValue = analyzerResult.SerializedAsString()
                            });
                        }
                        else if (analyzerResult is RoiAnalyzerResultNoValue)
                        {
                            var result = analyzerResult as RoiAnalyzerResultNoValue;
                            staticstics.Items.Add(new RoiStatistic()
                            {
                                Name           = result.Name,
                                DisplayedValue = result.SerializedAsString()
                            });
                        }
                        if (analyzerResult is MultiValueRoiAnalyzerResult)
                        {
                            IEnumerable <IRoiAnalyzerResult> results = (analyzerResult as MultiValueRoiAnalyzerResult).Value as IEnumerable <IRoiAnalyzerResult>;
                            if (results != null)
                            {
                                foreach (var result in results)
                                {
                                    var units      = (result is SingleValueRoiAnalyzerResult)? (result as SingleValueRoiAnalyzerResult).Units: null;
                                    var value      = result.Value;
                                    var concatName = String.Format("{0}.{1}", analyzerResult.Name, result.Name);

                                    staticstics.Items.Add(new RoiStatistic()
                                    {
                                        Name           = concatName,
                                        Value          = value,
                                        Units          = units,
                                        DisplayedValue = result.SerializedAsString()
                                    });
                                }
                            }
                        }
                        else
                        {
                        }
                    }
                }
            }

            return(staticstics);
        }
Пример #3
0
 /// <summary>
 /// Cloning constructor.
 /// </summary>
 /// <param name="source">The source object from which to clone.</param>
 /// <param name="context">The cloning context object.</param>
 protected AimRoiCalloutGraphic(RoiCalloutGraphic source, ICloningContext context) : base(source, context)
 {
     context.CloneFields(source, this);
 }