Page 638 |
DICOM PS3.3 2020a - Information Object Definitions |
vectors.Anindexingvectorisa1dimensionalarraywithexactlyoneelementforeachframeintheimage.Thevalueofthenthelement in the indexing vector represents the index for the nth frame, in that dimension. Indices are always numbered starting from 1.
Note
The scheme for encoding a multi-dimensional array of frames into a single image object is as follows. First, the definition of the Data Element called the Frame Increment Pointer is changed so that it can be multi-valued (i.e., its VM is now 1-n). Each value of Frame Increment Pointer represents one of the dimensions of the array, with the last value representing the most rapidly changing index. Each value of Frame Increment Pointer is the Tag of a Data Element that is an indexing vector. An indexing vector is a 1 dimensional array with exactly one element for each frame in the image. The value of the nth element in the indexing vector represents the index for the nth frame, in that dimension. For example, suppose you are encoding a Dynamic image consisting of 2 phases (containing 5 and 2 frames, respectively), from each of two detectors, using one isotope,whichgivesatotalof14framesintheimage.ForaDynamicimage,theFrameIncrementPointerisdefinedas:Frame Increment Pointer = Energy Window Vector (0054,0010) \ Detector Vector (0054,0020) \ Phase Vector (0054,0030) \ Time Slice Vector (0054,0100). Pixel Data (7FE0,0010) would contain the frames in the following order:
Frame |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
EnergyWindow1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
# |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Detector # |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
Phase # |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
Time Slice # |
1 |
2 |
3 |
4 |
5 |
1 |
2 |
1 |
2 |
3 |
4 |
5 |
1 |
2 |
and the four vectors would be defined as:
Energy Window Vector = 1,1,1,1,1,1,1,1,1,1,1,1,1,1
Detector Vector = 1,1,1,1,1,1,1,2,2,2,2,2,2,2
Phase Vector = 1,1,1,1,1,2,2,1,1,1,1,1,2,2
Time Slice Vector = 1,2,3,4,5,1,2,1,2,3,4,5,1,2
The receiver can tell the relationship of all the frames from these four vectors. For instance, looking at the 11th value in these four vectors tells you that the 11th frame in this multi-frame object is time slice 4 of phase 1 from detector 2 and isotope 1.
TheEnergyWindow,Detector,Phase,Rotation,R-RInterval,andTimeSlotVectorshavecorrespondingSequenceAttributes that contain exactly one Sequence Item for each of the index values in the vector. The Sequence Item contains a set of At- tributes that are specific to that group of frames, but change from one group to the next. In the above example there would be a detector Sequence Attribute, an isotope Sequence Attribute and a phase Sequence Attribute (for dynamics, no frame Sequence Attribute is needed). The detector and phase Sequence Attributes would contain two Sequence Items (because there were 2 detectors and 2 phases).
Table C.8-7. NM Multi-frame Module Attributes
Attribute Name |
Tag |
Type |
Attribute Description |
FrameIncrementPointer |
(0028,0009) |
1 |
Contains the Data Element Tags of one or more frame index vectors. See |
|
|
|
Section C.8.4.8.1.1 for further specialization. |
Energy Window Vector |
(0054,0010) |
1C |
Anarraythatcontainstheenergywindownumberforeachframe.Required |
|
|
|
if the value of Frame Increment Pointer (0028,0009) includes the Tag for |
|
|
|
Energy Window Vector (0054,0010). See Section C.8.4.8.1.2 for |
|
|
|
specialization. |
Number of Energy |
(0054,0011) |
1 |
Number of energy window groupings. See Section C.8.4.8.1.2 for |
Windows |
|
|
specialization. |
Detector Vector |
(0054,0020) |
1C |
An array that contains the detector number for each frame. Required if the |
|
|
|
valueofFrameIncrementPointer(0028,0009)includestheTagforDetector |
|
|
|
Vector (0054,0020). See Section C.8.4.8.1.3 for specialization. |