public static bool MetricUsesGy(string metricName) { if (metricName == null) { return(false); } //first find if in custom metrics CustomMetricsConfiguration config = Myconfig.GetCustomMetricsSection(); foreach (CustomMetricElement custMetric in config.Metrics) { if (custMetric.Name == metricName) { if (custMetric.Base.Contains("Gy")) { return(true); } else { return(false); } } } //not a custom metric if (metricName.Contains("Gy") || metricName.Contains("Mean")) { return(true); } else { return(false); } }
public static double CustomMetric(Structure structure, VMMetric metric, PlanSetup plan, bool useRapPlanEstimate) { CustomMetricsConfiguration config = Myconfig.GetCustomMetricsSection(); foreach (CustomMetricElement custMetric in config.Metrics) { if (metric.Name == custMetric.Name) { if (custMetric.Base == "D#%(Gy)") { return(GetDoseToVolume(structure, plan, custMetric.Parameter, DoseValuePresentation.Absolute, VolumePresentation.Relative, metric, useRapPlanEstimate)); } else if (custMetric.Base == "D#%(%)") { return(GetDoseToVolume(structure, plan, custMetric.Parameter, DoseValuePresentation.Relative, VolumePresentation.Relative, metric, useRapPlanEstimate)); } else if (custMetric.Base == "D#cc(Gy)") { return(GetDoseToVolume(structure, plan, custMetric.Parameter, DoseValuePresentation.Absolute, VolumePresentation.AbsoluteCm3, metric, useRapPlanEstimate)); } else if (custMetric.Base == "D#cc(%)") { return(GetDoseToVolume(structure, plan, custMetric.Parameter, DoseValuePresentation.Relative, VolumePresentation.AbsoluteCm3, metric, useRapPlanEstimate)); } else if (custMetric.Base == "V#%(cc)") { return(GetVolumeWithDose(structure, plan, custMetric.Parameter, DoseValuePresentation.Relative, VolumePresentation.AbsoluteCm3, metric, useRapPlanEstimate)); } else if (custMetric.Base == "V#%(%)") { return(GetVolumeWithDose(structure, plan, custMetric.Parameter, DoseValuePresentation.Relative, VolumePresentation.Relative, metric, useRapPlanEstimate)); } else if (custMetric.Base == "V#Gy(cc)") { return(GetVolumeWithDose(structure, plan, custMetric.Parameter, DoseValuePresentation.Absolute, VolumePresentation.AbsoluteCm3, metric, useRapPlanEstimate)); } else if (custMetric.Base == "V#Gy(%)") { return(GetVolumeWithDose(structure, plan, custMetric.Parameter, DoseValuePresentation.Absolute, VolumePresentation.Relative, metric, useRapPlanEstimate)); } } } //not one of the defined custom metric bases return(-1); }
//MainControl constructor. This is where execution of this control starts public MainControl() { InitializeComponent(); _viewModel = new ViewModel(); this.DataContext = _viewModel; //populate default metric list MetricList = new List <string>(); foreach (Enum dmetric in Enum.GetValues(typeof(DoseMetrics))) { MetricList.Add(EnumUtils.stringValueOf(dmetric)); } //add custom defined metrics CustomMetricsConfiguration config = Myconfig.GetCustomMetricsSection(); foreach (CustomMetricElement metric in config.Metrics) { MetricList.Add(metric.Name); } }