private void AddDoseObject(IDoseObject doseObject) { Doses.Add(doseObject); foreach (SelectableObject <RegionOfInterest, DoseVolumeHistogram> selectableRegionOfInterest in RegionOfInterests) { var dvh = new DoseVolumeHistogram(doseObject, selectableRegionOfInterest.Value); selectableRegionOfInterest.AddChild(new SelectableObject <DoseVolumeHistogram>(dvh)); } }
public async Task <DoseVolumeHistogram> Build(IDoseObject dose, RegionOfInterest roi) { var pi = ProgressService.CreateNew("Building DVH... ", false); DoseVolumeHistogram dvh = null; await Task.Run(() => { dvh = new DoseVolumeHistogram(dose, roi); dvh.Compute(); } ); ProgressService.End(pi); return(dvh); }
private void AddStructureSet(StructureSet structureSet) { foreach (RegionOfInterest roi in structureSet.ROIs) { var selectableRegionOfInterest = new SelectableObject <RegionOfInterest, DoseVolumeHistogram>(roi); selectableRegionOfInterest.ChildrenObjectsSelectionChanged += SelectableStructureSet_ChildrenObjectsSelectionChanged; foreach (IDoseObject doseObject in Doses) { var dvh = new DoseVolumeHistogram(doseObject, roi); selectableRegionOfInterest.AddChild(new SelectableObject <DoseVolumeHistogram>(dvh)); } RegionOfInterests.Add(selectableRegionOfInterest); } }
private LineSeries createLineSeries(DoseVolumeHistogram dvh) { LineSeries series = new LineSeries(); if (dvh.ROIObject?.Color != null) { series.Color = OxyPlot.OxyColor.FromArgb( (byte)dvh.ROIObject.Color.A, (byte)dvh.ROIObject.Color.R, (byte)dvh.ROIObject.Color.G, (byte)dvh.ROIObject.Color.B); } for (int i = 0; i < dvh.Dose.Length; i++) { series.Points.Add(new DataPoint(dvh.Dose[i], 100 * (dvh.CumulativeVolume[i] / dvh.TotalVolume))); } return(series); }