Ejemplo n.º 1
0
        private static void BuildMeanDoseConstraint(MayoConstraint mc, string structureName, PriorityType priority,
                                                    out IConstraint c)
        {
            var doseUnit = GetDoseUnits(mc.Query.UnitsDesired);
            var dose     = mc.ConstraintValue;
            var dv       = new DoseValue(dose, doseUnit);

            switch (mc.Discriminator)
            {
            case Discriminator.EQUAL:
            case Discriminator.GREATER_THAN:
            case Discriminator.GREATHER_THAN_OR_EQUAL:
                c = new MinMeanDoseConstraint
                {
                    ConstraintDose = dv,
                    StructureName  = structureName,
                    Priority       = priority
                };
                break;

            case Discriminator.LESS_THAN:
            case Discriminator.LESS_THAN_OR_EQUAL:
                c = new MaxMeanDoseConstraint
                {
                    ConstraintDose = dv,
                    StructureName  = structureName,
                    Priority       = priority
                };
                break;

            default:
                c = null;
                break;
            }
        }
Ejemplo n.º 2
0
        private static void BuildMinDoseConstraint(MayoConstraint mc, string structureName, PriorityType priority,
                                                   out IConstraint c)
        {
            var doseUnit = GetDoseUnits(mc.Query.UnitsDesired);
            var dose     = mc.ConstraintValue;
            var dv       = new DoseValue(dose, doseUnit);

            c = new MinDoseConstraint {
                ConstraintDose = dv, StructureName = structureName, Priority = priority
            };
        }
Ejemplo n.º 3
0
        public static IConstraint ConvertToDVHConstraint(string structureName, PriorityType priority, MayoConstraint mc)
        {
            IConstraint c = null;

            switch (mc.Query.QueryType)
            {
            case QueryType.MAX_DOSE:
                BuildMaxDoseConstraint(mc, structureName, priority, out c);
                break;

            case QueryType.MIN_DOSE:
                BuildMinDoseConstraint(mc, structureName, priority, out c);
                break;

            case QueryType.MEAN_DOSE:
                BuildMeanDoseConstraint(mc, structureName, priority, out c);
                break;

            case QueryType.DOSE_AT_VOLUME:
                BuildDoseAtVolumeConstraint(mc, structureName, priority, out c);
                break;

            case QueryType.VOLUME_AT_DOSE:
                BuildVolumeAtDoseConstraint(mc, structureName, priority, out c);
                break;

            case QueryType.DOSE_COMPLIMENT:
                BuildDoseComplimentConstraint(mc, structureName, priority, out c);
                break;

            case QueryType.COMPLIMENT_VOLUME:
                BuildComplimentVolumeConstraint(mc, structureName, priority, out c);
                break;
            }
            return(c);
        }
Ejemplo n.º 4
0
 public static IConstraint ToDVHConstraint(this MayoConstraint mc, string structureName, PriorityType priority)
 {
     return(MayoConstraintConverter.ConvertToDVHConstraint(structureName, priority, mc));
 }
Ejemplo n.º 5
0
        public static IConstraint Build(string structureName, string mayoConstraint, PriorityType priority = PriorityType.IDEAL)
        {
            var mayo = MayoConstraint.Read(mayoConstraint);

            return(mayo.ToDVHConstraint(structureName, priority));
        }