メインコンテンツ

DICOM-RT 輪郭データの ROI の追加と変更

この例では、DICOM-RT 構造体セットに保存されている輪郭データを抽出および変更する方法を示します。

DICOM-RT 構造体セットは、放射線療法に特化した DICOM Information Object Definition (IOD) です。DICOM-RT 構造体セット ファイルのメタデータには、放射線療法の計画に関連する関心領域 (ROI) の輪郭データが含まれます。この例では、ROI 輪郭データを dicomContours オブジェクトに抽出し、オブジェクト関数を使用して ROI を表示、追加、および削除し、変更された輪郭を新しいメタデータ構造体に保存します。これらの手順は、DICOM-RT 構造体ファイルを探索したり、MATLAB® で輪郭データを更新する場合に新しいメタデータ構造体を書き込んだりするのに役立ちます。この例では、人間の胴体の輪郭と合成腫瘍および器官領域を定義するデータ セットを使用します。

dicominfo 関数を使用して、DICOM-RT 構造体セット ファイルから DICOM メタデータを読み取ります。

info = dicominfo("RTSTRUCT-VS-SEG-001.dcm");

DICOM メタデータから ROI データを抽出します。出力は、抽出した ROI データを格納する dicomContours オブジェクトです。

contourData = dicomContours(info);

dicomContours オブジェクトの ROIs プロパティを表示します。ROIs プロパティは、抽出した ROI データを含むテーブルです。

contourData.ROIs
ans=4×5 table
    Number       Name        ContourData    GeometricType       Color    
    ______    ___________    ___________    _____________    ____________

      1       {'TV'     }    {13×1 cell}     {13×1 cell}     {3×1 double}
      2       {'Cochlea'}    { 5×1 cell}     { 5×1 cell}     {3×1 double}
      3       {'Vol2016'}    {12×1 cell}     {12×1 cell}     {3×1 double}
      4       {'*Skull' }    {79×1 cell}     {79×1 cell}     {3×1 double}

dicomContours オブジェクトから ROI 輪郭データをプロットします。

figure
plotContour(contourData)
axis equal

Figure contains an axes object. The axes object contains 109 objects of type line.

MAT ファイル countours.mat をワークスペースに読み込みます。cell 配列 contours は、21 個の軸スライスをもつ新しい ROI の境界点の 3 次元座標を指定します。

load("contours.mat")

新しい ROI 輪郭データを含む ROI シーケンスを作成するには、次の属性を指定します。

  • ROI 番号

  • ROI のユーザー定義名

  • 輪郭の幾何学的タイプ

シーケンスの ROI 番号は一意でなければなりませんが、ROI 名は任意のユーザー定義名にすることができます。新しい ROI 輪郭データ内のすべての点は同一平面上にあり、最後の点は最初の点に接続されているので、幾何学的タイプを "Closed_planar" として指定します。新しい ROI をプロットするための表示色を青緑に指定します。

number = 5;
name = "Organ";
geometricType = "Closed_planar";
color = [0; 127; 127];

dicomContours オブジェクトの ROIs プロパティに、新しい ROI シーケンスを追加します。出力は、元の ROI シーケンスと新しい ROI シーケンスを含む dicomContours オブジェクトです。

contourData = addContour(contourData,number,name,contours,geometricType,color);
contourData.ROIs
ans=5×5 table
    Number       Name        ContourData    GeometricType       Color    
    ______    ___________    ___________    _____________    ____________

      1       {'TV'     }    {13×1 cell}     {13×1 cell}     {3×1 double}
      2       {'Cochlea'}    { 5×1 cell}     { 5×1 cell}     {3×1 double}
      3       {'Vol2016'}    {12×1 cell}     {12×1 cell}     {3×1 double}
      4       {'*Skull' }    {79×1 cell}     {79×1 cell}     {3×1 double}
      5       {'Organ'  }    {21×1 cell}     {21×1 cell}     {3×1 double}

更新された等高線データをプロットします。

figure
plotContour(contourData)
axis equal

Figure contains an axes object. The axes object contains 130 objects of type line.

ROI 番号 2 で指定された腫瘍 ROI を削除します。

contourData = deleteContour(contourData,2);
contourData.ROIs
ans=4×5 table
    Number       Name        ContourData    GeometricType       Color    
    ______    ___________    ___________    _____________    ____________

      1       {'TV'     }    {13×1 cell}     {13×1 cell}     {3×1 double}
      3       {'Vol2016'}    {12×1 cell}     {12×1 cell}     {3×1 double}
      4       {'*Skull' }    {79×1 cell}     {79×1 cell}     {3×1 double}
      5       {'Organ'  }    {21×1 cell}     {21×1 cell}     {3×1 double}

最終的な等高線データをプロットします。

figure
plotContour(contourData)
axis equal

Figure contains an axes object. The axes object contains 125 objects of type line.

変更された ROI データを DICOM メタデータ構造体にエクスポートします。

info = convertToInfo(contourData);

dicomwrite 関数を使用して、DICOM-RT 構造体セット ファイルにメタデータを書き込みます。ROI 輪郭データに関連付けられた DICOM イメージが利用できない場合は、dicomwrite 関数の 1 番目の入力引数値を空の配列として指定します。メタデータを新しい DICOM-RT 構造体セット ファイル rtfile.dcm にコピーするには、CreateMode の名前と値の引数を "copy" に設定します。

dicomwrite([],"rtfile.dcm",info,CreateMode="copy");

新しいファイルに正しい ROI 輪郭データが含まれていることを確認します。

info_test = dicominfo("rtfile.dcm");
contour_test = dicomContours(info_test);
contour_test.ROIs
ans=4×5 table
    Number       Name        ContourData    GeometricType       Color    
    ______    ___________    ___________    _____________    ____________

      1       {'TV'     }    {13×1 cell}     {13×1 cell}     {3×1 double}
      3       {'Vol2016'}    {12×1 cell}     {12×1 cell}     {3×1 double}
      4       {'*Skull' }    {79×1 cell}     {79×1 cell}     {3×1 double}
      5       {'Organ'  }    {21×1 cell}     {21×1 cell}     {3×1 double}

参考

| | | | |

トピック