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); }
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); }
/// <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); }