6.2 DoseLimitのチェック¶
目的¶
プライマリリファレンスポイントに設定されているDoseLimitの値をチックします。
必要な情報¶
プライマリリファレンスポイントのTotal Dose Limit、Daily Dose Limit、Session Dose Limit値 プランの総線量、1回線量
与えられている引数¶
PlanSetup
クラスのインスタンスplan
必要な情報へのアクセス方法¶
現在開かれているPlanのプライマリリファレンスポイントに設定されている各Limit値は以下のようにアクセスします。
1 2 3 4 5 6 7 8 | //PlanのプライマリリファレンスポイントのTotal Dose Limitにアクセス DoseValue TotalDoseLimit =plan.PrimaryReferencePoint.TotalDoseLimit; //PlanのプライマリリファレンスポイントのDaily Dose Limitにアクセス DoseValue DailyDoseLimit =plan.PrimaryReferencePoint.DailyDoseLimit; //PlanのプライマリリファレンスポイントのSession Dose Limitにアクセス DoseValue SessionDoseLimit =plan.PrimaryReferencePoint.SessionDoseLimit; |
現在開かれているPlanの総線量、1回線量にアクセスするには以下のようにします。
1 2 3 4 5 | //Planの総線量アクセス DoseValue TotalDose =plan.TotalDose; //Planの1回線量にアクセス DoseValue DosePerFraction =plan.DosePerFraction; |
必要な情報の表示¶
Exercise_PlanCheck_Ex1.3.cs
を開き、関数CheckRPFunc
内に以下のコードを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | DoseValue TotalDose =plan.TotalDose; DoseValue DosePerFraction =plan.DosePerFraction; DoseValue TotalDoseLimit =plan.PrimaryReferencePoint.TotalDoseLimit; DoseValue DailyDoseLimit =plan.PrimaryReferencePoint.DailyDoseLimit; DoseValue SessionDoseLimit =plan.PrimaryReferencePoint.SessionDoseLimit; string RP_info = string.Format("TotalDose:{0}" + "\n" + "DosePerFraction:{1}" + "\n" + "TotalDoseLimit:{2}" + "\n" + "DailyDoseLimit:{3}" + "\n" + "SessionDoseLimit:{4}", TotalDose.ToString(), DosePerFraction, TotalDoseLimit, DailyDoseLimit, SessionDoseLimit); MessageBox.Show(RP_info); |
実装¶
まずTotalDoseLimitがplanの総線量TotalDoseと一致しているかチェックし、異なる場合はTotalDoseLimitとTotalDoseを表示します。
1 2 3 4 5 6 7 8 | if (plan.PrimaryReferencePoint.TotalDoseLimit == plan.TotalDose) { oText += MakeFormatText(true, checkName, ""); } else { oText += MakeFormatText(false, checkName, "Total Dose Limit: " + plan.PrimaryReferencePoint.TotalDoseLimit + ",Planed Dose: " + plan.TotalDose); } |
1 2 3 4 5 6 7 8 | if (plan.PrimaryReferencePoint.SessionDoseLimit == plan.DosePerFraction) { oText += MakeFormatText(true, checkName, ""); } else { oText += MakeFormatText(false, checkName, " Session Dose Limit: " + plan.PrimaryReferencePoint.SessionDoseLimit + ",Planed Dose: " + plan.DosePerFraction); } |
最後にDailyDoseLimitがSessionDoseLimitと一致しているかチェックし、異なっている場合はDailyDoseLimitとSessionDoseLimitが異なっている旨を表示します。
1 2 3 4 5 6 7 8 | if (plan.PrimaryReferencePoint.DailyDoseLimit == plan.PrimaryReferencePoint.SessionDoseLimit) { oText += MakeFormatText(true, checkName, ""); } else { oText += MakeFormatText(false, checkName, " Session: " + plan.PrimaryReferencePoint.SessionDoseLimit + "is differ form Daily: " + plan.PrimaryReferencePoint.DailyDoseLimit); } |