Need help searching through a DICOM structure

1 view (last 30 days)
I have a structure ( a DICOMDIR and its files) that I want to search and select certain items for further use. I have been able to read in the DICOMDIR as follows:
dd = dicominfo('path/DICOMDIR');
The next step is to review the items in dd.DirectoryRecordSequence such as
dd.DirectoryRecordSequence.Item_1
There are about 1400 items and I want to index through them with a loop. I can get the proper information with the following:
getfield(dd.DirectoryRecordSequence,'Item_1')
and I can get an array of the field names,
fn = fieldnames(dd.DirectoryRecordSequence);
so that fn(1) is
ans =
1×1 cell array
{'Item_1'}
But
getfield(dd.DirectoryRecordSequence, fn(1))
does not work. How do I go about getting this so I can index it by referencing
fn(i) {where i = 1 to 1400}?
Thank you
  1 Comment
Patrick Ford
Patrick Ford on 26 Sep 2017
Edited: Patrick Ford on 26 Sep 2017
I need to use the char function:
dd.DirectoryRecordSequence.(char(fn(3)))

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 26 Sep 2017
Edited: Walter Roberson on 26 Sep 2017
getfield(dd.DirectoryRecordSequence, fn{1})
or
dd.DirectoryRecordSequence.(fn{1})
You do not need char() -- just use the right indexing style

More Answers (0)

Categories

Find more on DICOM Format in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!