В этом примере показано, как анонимизировать файл DICOM.
При использовании файла DICOM как части обучающего набора, слепого исследования или презентации можно удалить конфиденциальную информацию о пациенте, что называется анонимизацией файла. Для этого используйте dicomanon функция.
Считывание изображения из файла DICOM в рабочую область.
dicomFile = 'CT-MONO2-16-ankle.dcm';
I = dicomread(dicomFile);Отображение изображения. Поскольку данные изображения DICOM подписаны 16-битными данными, автоматически масштабировать диапазон отображения так, чтобы минимальное значение пикселя было черным, а максимальное значение пикселя - белым.
imshow(I,'DisplayRange',[])
Считывание метаданных из файла DICOM.
info = dicominfo(dicomFile);
Файл DICOM в этом примере уже был анонимизирован для обеспечения конфиденциальности пациентов. Чтобы создать информативный тестовый файл DICOM, задайте для параметра «Имя пользователя» искусственное значение с помощью представления значения «Имя пользователя» (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'
Чтобы определить серию, к которой принадлежит неанонимное изображение, отобразите значение свойства SerureInstureUID.
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: ''
Убедитесь, что анонимное изображение принадлежит новому исследованию, отображая значение свойства SerityInstureUID.
infoAnon.SeriesInstanceUID
ans = '1.3.6.1.4.1.9590.100.1.2.47227908031172265731092785891723348338'
dicomanon | dicominfo | dicomread | dicomuid | dicomwrite