Exemple #1
0
        public static DoseValue Divide(this DoseValue numerator, DoseValue denominator)
        {
            var sameUnit = denominator.GetDose(numerator.Unit);
            var mathOp   = numerator.Dose / sameUnit;

            return(new DoseValue(mathOp, numerator.Unit));
        }
Exemple #2
0
        public static DoseValue Multiply(this DoseValue val, DoseValue val2)
        {
            var sameUnit = val2.GetDose(val.Unit);
            var mathOp   = val.Dose * sameUnit;

            return(new DoseValue(mathOp, val.Unit));
        }
        public override ConstraintResult Constrain(PlanningItem pi)
        {
            var msg    = string.Empty;
            var passed = GetFailedResultType();

            var dvhs = GetStructures(pi)
                       .Select(s => pi.GetDVHCumulativeData(s, ConstraintDose.GetPresentation(),
                                                            VolumePresentation.AbsoluteCm3, 0.01));
            var meanValue = dvhs.Average(d => d.MeanDose.GetDose(ConstraintDose.Unit));
            var mean      = new DoseValue(meanValue, ConstraintDose.Unit);

            var value = $"{mean.GetDose(ConstraintDose.Unit).ToString("F3")} {ConstraintDose.UnitAsString}";

            passed = mean.GreaterThanOrEqualTo(ConstraintDose) ? ResultType.PASSED : GetFailedResultType();
            msg    = $"Mean dose to {string.Join("/", StructureNames)} is {value}.";

            return(new ConstraintResult(this, passed, msg, value));
        }
Exemple #4
0
 /// <summary>
 ///     Forces the units to be centigray. Used for quick comparison
 /// </summary>
 /// <param name="dv">the dose value</param>
 /// <returns>dose in units of centigray</returns>
 public static double GetDoseCGy(this DoseValue dv)
 {
     return(dv.GetDose(DoseValue.DoseUnit.cGy));
 }
Exemple #5
0
        /// <summary>
        /// Converts the dose to the unit requested. It cannot convert from % to abs dose. Will return NaN if asked
        /// </summary>
        /// <param name="dv">the dose value to be converted</param>
        /// <param name="unit">the unit desired for the returned dose</param>
        /// <returns>the dose in the desired units</returns>
        public static DoseValue ConvertUnits(this DoseValue dv, DoseValue.DoseUnit unit)
        {
            var dose = dv.GetDose(unit);

            return(new DoseValue(dose, unit));
        }