コード例 #1
0
        /// <summary>
        ///     Returns the sum of the volumes across the input structures at a given input dose
        /// </summary>
        /// <param name="pi">the current planning item</param>
        /// <param name="ss">the structures to query</param>
        /// <param name="dv">the dose value to query</param>
        /// <param name="vPres">the volume presentation to return</param>
        /// <returns>the volume at the requested presentation</returns>
        public static double GetVolumeAtDose(this PlanningItem pi, IEnumerable <Structure> ss, DoseValue dv,
                                             VolumePresentation vPres)
        {
            dv = dv.ConvertToSystemUnits(pi);
            var vol = ss.Sum(s => pi.GetVolumeAtDose(s, dv, VolumePresentation.AbsoluteCm3));

            return(vPres == VolumePresentation.AbsoluteCm3 ? vol : vol / ss.Sum(s => s.Volume) * 100);
        }
コード例 #2
0
        /// <summary>
        ///     Returns the volume of the input structure at a given input dose
        /// </summary>
        /// <param name="pi">the current planning item</param>
        /// <param name="s">the structure to query</param>
        /// <param name="dv">the dose value to query</param>
        /// <param name="vPres">the volume presentation to return</param>
        /// <returns>the volume at the requested presentation</returns>
        public static double GetVolumeAtDose(this PlanningItem pi, Structure s, DoseValue dv, VolumePresentation vPres)
        {
            dv = dv.ConvertToSystemUnits(pi);
            var dPres    = dv.GetPresentation();
            var dvhCurve = pi.GetComplexDVH(new List <Structure> {
                s
            }, vPres, dPres);

            return(dvhCurve.GetVolumeAtDose(dv));
        }