Skip to content

Dose rate changes to 600 MU/min when coping beam from an original plan to QA plan #168

Description

@leylaMoghaddasi

I adapted the Create VerificationPlan code to work with both flat and FFF beams, but the beams copied to the verification plan have a different dose rate than the original plan. I put in debug print-outs and it appears the DR changes to 600 in the "ExternalBeamMachineParameters" method.

private static string CopyBeam(Beam originalBeam, ExternalPlanSetup plan, VVector isocenter, bool getCollimatorAndGantryFromBeam)
{

string eMode = originalBeam.EnergyModeDisplayName;
int DR = originalBeam.DoseRate;
 ExternalBeamMachineParameters MachineParameters;
 if (eMode.Split('-').Count() < 2)
 {
      MachineParameters=
         new ExternalBeamMachineParameters(originalBeam.TreatmentUnit.Id, eMode, DR, originalBeam.Technique.Id, string.Empty); }
 else
 {
     MachineParameters =
     new ExternalBeamMachineParameters(originalBeam.TreatmentUnit.Id, eMode.Split('-').First(), DR,
     originalBeam.Technique.Id, eMode.Split('-').Last());
 }
 // Create a new beam.
 var collimatorAngle = getCollimatorAndGantryFromBeam ? originalBeam.ControlPoints.First().CollimatorAngle : 0.0;
 var gantryAngle = getCollimatorAndGantryFromBeam ? originalBeam.ControlPoints.First().GantryAngle : 0.0;
 var couchAngle = getCollimatorAndGantryFromBeam ? originalBeam.ControlPoints.First().PatientSupportAngle : 0.0;
 var metersetWeights = originalBeam.ControlPoints.Select(cp => cp.MetersetWeight);
 var beam = plan.AddSlidingWindowBeam(MachineParameters, metersetWeights, collimatorAngle, gantryAngle, couchAngle, isocenter);
 
 System.Windows.MessageBox.Show("Beam" + beam.Id + "has a dose rate of " + beam.DoseRate.ToString());

 // Copy control points from the original beam.
 var editableParams = beam.GetEditableParameters();
 for (var i = 0; i < editableParams.ControlPoints.Count(); i++)
 {
     editableParams.ControlPoints.ElementAt(i).LeafPositions = originalBeam.ControlPoints.ElementAt(i).LeafPositions;
     editableParams.ControlPoints.ElementAt(i).JawPositions = originalBeam.ControlPoints.ElementAt(i).JawPositions;
 }
 beam.ApplyParameters(editableParams);
 return beam.Id;

}

Would appreciate any ideas to fix this issue. I am at my wit's end

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions