Re: [Gdcm2] GDCM cannot get rescale intercept/slope/type from nested objects with undefined length
Cross-platform DICOM implementation
Brought to you by:
malat
|
From: <k3...@fr...> - 2017-08-17 16:38:17
|
Thanks for this detailed answer. Could you explain me what DCS and PMS stand for? Here is the output of gdcminfo for that image: MediaStorage is 1.2.840.10008.5.1.4.1.1.4 [MR Image Storage] TransferSyntax is 1.2.840.10008.1.2 [Implicit VR Little Endian: Default Transfer Syntax for DICOM] NumberOfDimensions: 2 Dimensions: (160,160,1) SamplesPerPixel :1 BitsAllocated :16 BitsStored :12 HighBit :11 PixelRepresentation:0 ScalarType found :UINT16 PhotometricInterpretation: MONOCHROME2 PlanarConfiguration: 0 TransferSyntax: 1.2.840.10008.1.2 Origin: (-73.2212,-67.9772,129.333) Spacing: (1,1,3) DirectionCosines: (1,0,0,0,1,0) Rescale Intercept/Slope: (-3142,1.53455) Orientation Label: AXIAL I guess we should blame ITK right? :) Thanks Florent ----- Mail original ----- De: "Mathieu Malaterre" <mat...@gm...> À: k3...@fr... Cc: "gdcm-developers" <gdc...@li...> Envoyé: Jeudi 17 Août 2017 14:18:29 Objet: Re: [Gdcm2] GDCM cannot get rescale intercept/slope/type from nested objects with undefined length On Thu, Aug 17, 2017 at 2:10 PM, Mathieu Malaterre <mat...@gm...> wrote: > Salut Florent :) > > On Thu, Aug 17, 2017 at 11:16 AM, <k3...@fr...> wrote: >> Hi, >> >> I am trying to read a DICOM series (multi-echo series from Philips) but I need to check some DICOM tags first: >> - 0028,1052: rescale intercept >> - 0028,1053: rescale slope >> - 0028,1054: rescale type > > So you are dealing with legacy MR Image Storage instance(s) from > Philips Medical System. > >> Unfortunately GDCM is not able to find that tags through ITKs API (gdcmIO->GetMetaDataDictionary()), but when I use gdcmdump to search for DICOM tags manually I am able to find the tags but in nested objects with "undefined length": >> >> (2001,1068) ?? (SQ) (Sequence with undefined length) # u/l,1 ?LinearModalityGLTrafo >> (fffe,e000) na (Item with undefined length) >> (0028,1052) ?? (DS) [-12095] # 6,1 Rescale Intercept >> (0028,1053) ?? (DS) [5.90720390720390] # 16,1 Rescale Slope >> (0028,1054) ?? (LO) [normalized] # 10,1 Rescale Type >> (2001,0010) ?? (LO) [Philips Imaging DD 001] # 22,1 Private Creator >> (2001,1077) ?? (CS) [LINEARMODALITY] # 14,1 GL TrafoType >> (2001,10c1) ?? (LO) [LinearModalityGLTrafo ] # 22,1 Nested Object Type Name >> (fffe,e00d) >> (fffe,e0dd) > > Well since the public tag is nested within a private tags, this means > it belong to the extended SOP Class definition. In case you have > access to the DCS of PMS for that particular instance, you should be > able to implement support for it. > >> Is there a way to fix that? Did you ever see that kind of nested objects? Is there a configuration on the Philips workstation to avoid that kind of nested objects? >> Thanks. > > I am not 100% convince there is anything to 'fix', could you please > send us the output of gdcminfo on that image. This will tell whether > the issue is really at GDCM level or at ITK level. I did implement > support for those Philips 'Combine MR Rescale option', since GDCM > 2.6.x I forgot to answer the last question: yes you can avoid this kind of object, since by definition MR Image Storage cannot store Rescale Intercept/Slope. See for example: https://groups.google.com/d/msg/comp.protocols.dicom/M4kdqcrs50Y/fJVGWNsgAwAJ -- Mathieu |