メインコンテンツ

DICOM ファイルからの機密情報の削除

この例では、DICOM ファイルを匿名化する方法を説明します。

トレーニング セット、盲検試験またはプレゼンテーションの一部として DICOM ファイルを使用する場合など、部外秘の患者情報の削除が必要な場合があります。このプロセスをファイルの "匿名化" と呼びます。これを行うには、関数 dicomanon を使用します。

イメージを DICOM ファイルからワークスペースに読み取ります。

filename = "CT-MONO2-16-ankle.dcm";
I = dicomread(filename);

イメージを表示します。DICOM イメージ データは、符号付き 16 ビット データであるため、最小ピクセル値が黒、最大ピクセル値が白になるように表示範囲を自動的にスケーリングします。

imshow(I,DisplayRange=[])

Figure contains an axes object. The hidden axes object contains an object of type image.

DICOM ファイルからメタデータを読み取ります。

info = dicominfo(filename);

この例の DICOM ファイルは、患者のプライバシー保護のため既に匿名化されています。情報量の多いテスト用 DICOM ファイルを作成するには、Person Name (PN) 値表現を使用して擬似的な値を PatientName に設定します。

info.PatientName = 'Doe^John';

変更されたメタデータとともにイメージを新しい DICOM ファイルに書き込みます。

filenameNotAnon = "ankle_notAnon.dcm";
dicomwrite(I,filenameNotAnon,info);

非匿名 DICOM ファイルからメタデータを読み取ってから、新しいファイルの患者名が非匿名になっていることを確認します。

infoNotAnon = dicominfo(filenameNotAnon);
infoNotAnon.PatientName
ans = struct with fields:
    FamilyName: 'Doe'
     GivenName: 'John'

非匿名イメージが属する系列を識別するには、SeriesInstanceUID フィールドの値を表示します。

infoNotAnon.SeriesInstanceUID
ans = 
'1.2.840.113619.2.1.2411.1031152382.365.736169244'

関数 dicomanon を使用して、ファイルを匿名化します。この関数は、新しい試験値で新しい系列を作成し、メタデータの一部を変更してから、新しいファイルにイメージを書き込みます。

filenameAnon = "ankle_anon.dcm";
dicomanon(filenameNotAnon,filenameAnon);

匿名化済みの DICOM ファイルからメタデータを読み取ります。

infoAnon = dicominfo(filenameAnon);

患者名情報が削除されていることを確認します。

infoAnon.PatientName
ans = struct with fields:
    FamilyName: ''
     GivenName: ''
    MiddleName: ''
    NamePrefix: ''
    NameSuffix: ''

SeriesInstanceUID フィールドの値を表示して、匿名イメージが新しい試験に属していることを確認します。

infoAnon.SeriesInstanceUID
ans = 
'1.3.6.1.4.1.9590.100.1.4.337453386520640102825663937650160854411'

参考

アプリ

関数

トピック