Пример #1
0
 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));
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
        }