7.2 患者体位のチェック

目的

患者のCT撮影体位、プランでの体位がHead First Supineになっているか確認します。

必要な情報

CT撮影時およびプラン時の患者体位

与えられている引数

PlanSetupクラスのインスタンスplan

必要な情報へのアクセス方法

プランで使用されるCT画像へのアクセス

1
var image = plan.StructureSet.Image;

CT画像の体位を文字列で取得

1
var orientation = image.ImagingOrientation.ToString();

プランの体位を文字列で取得

1
var planOrientation = plan.TreatmentOrientation.ToString();

必要な情報の表示

Exercise_PlanCheck_Ex1.3.csを開き、関数CheckImageFunc内に以下のコードを記述します。

1
2
3
4
5
var image = plan.StructureSet.Image;
var orientation = image.ImagingOrientation.ToString();
var planOrientation = plan.TreatmentOrientation.ToString();

MessageBox.Show(string.Format("CT Orientation: {0}\nPlan Orientation: {1}", orientation, planOrientation));

Eclipseと同様の結果となっているか確認してみてください。

実装

Exercise_PlanCheck_Ex1.3.csCheckImageFunc関数内の2箇所をコメントアウトします。

1
2
3
4
5
6
7
// Check PatientOrientation
checkName = "PatientOrientation"; // ココ
~~CT画像の体位を確認~~

// Matching between ImagingOrientation and TreatmentOrientation
checkName = "MatchOrientation(Image-Plan)"; // ココ
~~CT画像とプランの体位を確認~~

まずはCT画像の体位が Head First Supine であることを確認しましょう。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
string PatientOrientation = "HeadFirstSupine";

if (image.ImagingOrientation.ToString() == PatientOrientation)
{
    oText += MakeFormatText(true, checkName, "");
}
else
{
    oText += MakeFormatText(false, checkName, image.ImagingOrientation.ToString() + " --> " + PatientOrientation);
}

続いて、CT画像とプランの体位が同一であることを確認します。

1
2
3
4
5
6
7
8
if (image.ImagingOrientation.ToString() == plan.TreatmentOrientation.ToString())
{
    oText += MakeFormatText(true, checkName, "");
}
else
{
    oText += MakeFormatText(false, checkName, image.ImagingOrientation.ToString() + " <-> " + plan.TreatmentOrientation.ToString());
}