DICOM ファイルからの機密情報の削除
この例では、DICOM ファイルを匿名化する方法を説明します。
トレーニング セット、盲検試験またはプレゼンテーションの一部として DICOM ファイルを使用する場合など、部外秘の患者情報の削除が必要な場合があります。このプロセスをファイルの "匿名化" と呼びます。これを行うには、関数 dicomanon を使用します。
イメージを DICOM ファイルからワークスペースに読み取ります。
filename = "CT-MONO2-16-ankle.dcm";
I = dicomread(filename);イメージを表示します。DICOM イメージ データは、符号付き 16 ビット データであるため、最小ピクセル値が黒、最大ピクセル値が白になるように表示範囲を自動的にスケーリングします。
imshow(I,DisplayRange=[])

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'
参考
アプリ
関数
dicomanon|dicomfind|dicomupdate|dicomFile(Medical Imaging Toolbox) |updateAttribute(Medical Imaging Toolbox) |dicominfo|dicomread|dicomwrite|dicomuid