Удаление конфиденциальной информации из файла DICOM

В этом примере показано, как анонимизировать файл DICOM.

При использовании файла DICOM в качестве части набора обучающих данных, слепого исследования или презентации, можно хотеть удалить конфиденциальную информацию о пациенте, процесс, называемый анонимизацией файла. Для этого используйте dicomanon функция.

Чтение изображения из файла DICOM в рабочую область.

dicomFile = 'CT-MONO2-16-ankle.dcm';
I = dicomread(dicomFile);

Отобразите изображение. Поскольку данные изображения DICOM подписаны 16-битными данными, автоматически масштабируйте область значений отображения так, чтобы минимальное значение пикселя было черным, а максимальное значение пикселя было белым.

imshow(I,'DisplayRange',[])

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

Считайте метаданные из файла DICOM.

info = dicominfo(dicomFile);

Файл DICOM в этом примере уже анонимизирован для конфиденциальности пациентов. Чтобы создать информационный тестовый файл DICOM, установите PatientName с искусственным значением с помощью представления значения Имени человека (PN).

info.PatientName = 'Doe^John';

Запись изображения с измененными метаданными в новый файл DICOM.

dicomFileNotAnon = 'ankle_notAnon.dcm';
dicomwrite(I,dicomFileNotAnon,info);

Считайте метаданные из неанонимного файла DICOM, затем подтвердите, что имя пациентов в новом файле не является анонимным.

infoNotAnon = dicominfo(dicomFileNotAnon);
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 функция. Функция создает новую серию с новыми значениями исследования, изменяет некоторые метаданные, а затем записывает изображение в новый файл.

dicomFileAnon = 'ankle_anon.dcm'
dicomFileAnon = 
'ankle_anon.dcm'
dicomanon(dicomFileNotAnon,dicomFileAnon);

Считайте метаданные из анонимного файла DICOM.

infoAnon = dicominfo(dicomFileAnon);

Подтвердите, что информация о имени пациентов удалена.

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

Подтвердите, что анонимное изображение принадлежит новому исследованию, отобразив значение свойства SeriesInstanceUID.

infoAnon.SeriesInstanceUID
ans = 
'1.3.6.1.4.1.9590.100.1.2.47227908031172265731092785891723348338'

См. также

Приложения

Функции

Похожие темы