[Dcmlib] Overlay in DICOM images - follow up

Emmanuel Olart eolart at theralys.com
Thu Dec 1 11:06:09 CET 2005


Hi all,

Following our questions last week on overlays in DICOM images, I 
received this morning my first image with an overlay in the DICOM header.
This overlay is a binary mask which is supposed to be a lesion contour.

Here is what I can see using PrinFile:

As it has been guessed last week, this is a secondary capture image :

V 0008|0008[CS] [Image Type] [DERIVED\SECONDARY\MPR\CSA 
MPR\\CSAPARALLEL\M\ND\NORM]
S 0008|1140[SQ] [Referenced Image Sequence]
   |  --- SQItem number 0
   | V fffe|e000[UL] [Item]
   | V 0008|1150[UI] [Referenced SOP Class UID] 
[1.2.840.10008.5.1.4.1.1.4 ]  ==>       [MR Image Storage]
   | V 0008|1155[UI] [Referenced SOP Instance UID] 
[1.3.12.2.1107.5.2.30.25641.30000005113007072225000001677]

An icon is included in the header, I don't know if we have yet a simple 
way to view it ?

S 0088|0200[SQ] [Icon Image Sequence]
   |  --- SQItem number 0
   | V fffe|e000[UL] [Item]
   | V 0028|0002[US] [Samples per Pixel] [1] x(1)
   | V 0028|0004[CS] [Photometric Interpretation] [PALETTE COLOR ]
   | V 0028|0010[US] [Rows] [64] x(40)
   | V 0028|0011[US] [Columns] [64] x(40)
   | V 0028|0100[US] [Bits Allocated] [8] x(8)
   | V 0028|0101[US] [Bits Stored] [8] x(8)
   | V 0028|0102[US] [High Bit] [7] x(7)
   | V 0028|0103[US] [Pixel Representation] [0] x(0)
   | V 0028|1101[US] [Red Palette Color Lookup Table Descriptor] 
[256\0\8] x(100)
   | V 0028|1102[US] [Green Palette Color Lookup Table Descriptor] 
[256\0\8] x(100)
   | V 0028|1103[US] [Blue Palette Color Lookup Table Descriptor] 
[256\0\8] x(100)
   | B 0028|1201[OW] [Red Palette Color Lookup Table Data] [gdcm::Binary 
data loaded; length = 256]
   | B 0028|1202[OW] [Green Palette Color Lookup Table Data] 
[gdcm::Binary data loaded; length = 256]
   | B 0028|1203[OW] [Blue Palette Color Lookup Table Data] 
[gdcm::Binary data loaded; length = 256]
   | B 7fe0|0010[OW] [Pixel Data] [gdcm::NotLoaded Ad.:8894 x(22be) 
Lgt:4096 x(1000)]

And last : here is all informations for the overlay image :

V 6000|0010[US] [Rows] [484] x(1e4)
V 6000|0011[US] [Columns] [484] x(1e4)
V 6000|0015[IS] [Number of Frames in Overlay] [1 ]
V 6000|0022[LO] [Overlay Description] [Siemens MedCom Object Graphics]
V 6000|0040[CS] [Overlay Type] [G ]
V 6000|0050[SS] [Overlay Origin] [1\1] x(1)
V 6000|0051[US] [Image Frame Origin] [1] x(1)
V 6000|0100[US] [Overlay Bits Allocated] [1] x(1)
V 6000|0102[US] [Overlay Bit Position] [0] x(0)
B 6000|3000[OW] [Overlay Data] [gdcm::NotLoaded Ad.:13122 x(3342) 
Lgt:29282 x(7262)]

As we can see, this is a binary mask, size is 484x484 (same as the 
original image).
Bits allocated = 1 : i.e. one byte is used to store information 
concerning EIGHT voxels.

Finally the original image data is contained in this file :

B 7fe0|0010[OW] [Pixel Data] [gdcm::NotLoaded Ad.:42416 x(a5b0) 
Lgt:468512 x(72620)]

If I read this image with gdcm, I of course get only the original image 
data. I'd like to get also the overlay data, maybe in a separate 
ImageData (used later to superpose overlay on image).

It's quite easy for me to code something to get the value of the 0x6000, 
0x3000 field and to convert it to a char* for VTK display for example. I 
personnaly think that GDCM should provide a way to get either Icon and 
Overlay data withj separate methods :

gdcm::FileHelper::GetPixelData()
gdcm::FileHelper::GetIconData()
gdcm::FileHelper::GetOverlayData()

What do you think ?

Manu

PS: I'll anonymize one of these images if you want to have a look at it.

-- 
Emmanuel OLART, IT Manager
*THERALYS*
Diagnostic & Therapeutic Image Analysis in Clinical Trials

Address : Bioparc, 60 av. Rockefeller, 69008 Lyon, France
+33 (0)4 26 23 05 05 (Phone)
+33 (0)4 26 23 05 06 (Fax)
Email : eolart at theralys.com <mailto:eolart at theralys.com>
THERALYS <http://www.theralys.com/>



More information about the Dcmlib mailing list