Project

General

Profile

Actions

Bug #370

closed

Dcmdata creates wrong VR for some WaveformData elements

Added by Marco Eichelberg over 17 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
High
Assignee:
-
Category:
Library
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
Module:
dcmdata
Operating System:
Compiler:

Description

Status: A large part of 'DcmItem::checkAndUpdateVR()' implemented

See http://forum.dcmtk.org/viewtopic.php?p=4984

The rule in DICOM part 5 section 8.3 is that WaveformData, when read in implicit VR
shall be converted to OB iff WaveformBitsAllocated==8 and OW otherwise.
We currently always convert to OB, which is wrong.

==== Comments (MO?) ====

This is about writing data in Explicit VR, which will be either created in RAM or be read from Implicit VR.

This could also concern LUT Data (general checks, to what extent other tags that can have other VRs are affected)

List of "polymorphous attributes" from DICOM 2009 that can take on various data types:

  • //OB/OW Value Representation//
  • (50xx,200C) Audio Sample Data AudioSampleData OW or OB 1 RET -> retired
  • (50xx,3000) Curve Data CurveData OW or OB 1 RET -> done
  • (5400,0110) Channel Minimum Value ChannelMinimumValue OB or OW 1
  • (5400,0112) Channel Maximum Value ChannelMaximumValue OB or OW 1
  • (5400,100A) Waveform Padding Value WaveformPaddingValue OB or OW 1 -> done
  • (5400,1010) Waveform Data WaveformData OB or OW 1 -> done
  • (60xx,3000) Overlay Data OverlayData OB or OW 1 -> done
  • (7FE0,0010) Pixel Data PixelData OW or OB 1 -> done
  • (7Fxx,0010) Variable Pixel Data VariablePixelData OW or OB 1 RET -> retired
  • //
  • Other Value Representations//
  • (0028,0071) Perimeter Value PerimeterValue US or SS 1 RET -> retired
  • (0028,0104) Smallest Valid Pixel Value SmallestValidPixelValue US or SS 1 RET -> retired
  • (0028,0105) Largest Valid Pixel Value LargestValidPixelValue US or SS 1 RET -> retired
  • (0028,0106) Smallest Image Pixel Value SmallestImagePixelValue US or SS 1
  • (0028,0107) Largest Image Pixel Value LargestImagePixelValue US or SS 1
  • (0028,0108) Smallest Pixel Value in Series SmallestPixelValueInSeries US or SS 1
  • (0028,0109) Largest Pixel Value in Series LargestPixelValueInSeries US or SS 1
  • (0028,0110) Smallest Image Pixel Value in Plane SmallestImagePixelValueInPlane US or SS 1 RET -> retired
  • (0028,0111) Largest Image Pixel Value in Plane LargestImagePixelValueInPl US or SS 1 RET -> retired
  • (0028,0120) Pixel Padding Value PixelPaddingValue US or SS 1 -> done
  • (0028,0121) Pixel Padding Range Limit PixelPaddingRangeLimit US or SS 1 -> done
  • (0028,1100) Gray Lookup Table Descriptor GrayLookupTableDescriptor US or SS 3 RET -> retired
  • (0028,1101) Red Palette Color Lookup Table Descriptor RedPaletteColorLookupTableDescriptor US or SS 3 -> done (OW according to PS 3.6)
  • (0028,1102) Green Palette Color Lookup Table DescriptorGreenPaletteColorLookupTableDescriptor US or SS 3 -> done (OW according to PS 3.6)
  • (0028,1103) Blue Palette Color Lookup Table DescriptorBluePaletteColorLookupTableDescriptor US or SS 3 -> done (OW according to PS 3.6)
  • (0028,1111) Large Red Palette Color Lookup TableDescriptorLargeRedPaletteColorLookupTableDescriptor US or SS 4 RET -> retired
  • (0028,1112) Large Green Palette Color Lookup Table Descriptor LargeGreenPaletteColorLookupTableDescriptor US or SS 4 RET -> retired
  • (0028,1113) Large Blue Palette Color Lookup Table Descriptor LargeBluePaletteColorLookupTableDescriptor US or SS 4 RET -> retired
  • (0028,1200) Gray Lookup Table Data GrayLookupTableData US or SS or OW 1-n 1 RET -> retired
  • (0028,3002) LUT Descriptor LUTDescriptor US or SS 3
  • (0028,3006) LUT Data LUTData US <del>or SS</del> or OW 1-n/1
  • (0040,9211) Real World Value Last Value Mapped RealWorldValueLastValueMapped US or SS 1
  • (0040,9216) Real World Value First Value Mapped RealWorldValueFirstValueMapped US or SS 1
  • (0060,3004) Histogram First Bin Value HistogramFirstBinValue US or SS 1 -> done
  • (0060,3006) Histogram Last Bin Value HistogramLastBinValue US or SS 1 -> done
Actions #1

Updated by Jörg Riesmeier about 13 years ago

  • Category set to Library
  • % Done changed from 0 to 80
Actions #2

Updated by Andrew Chiw over 12 years ago

Description

Status: A large part of ''DcmItem::checkAndUpdateVR()'' implemented
See http://forum.dcmtk.org/viewtopic.php?p=4984

The rule in DICOM part 5 section 8.3 is that WaveformData, when read in implicit VR
shall be converted to OB iff WaveformBitsAllocated==8 and OW otherwise.
We currently always convert to OB, which is wrong.

==== Comments (MO?) ====

This is about writing data in Explicit VR, which will be either arranged in RAM or read into Implicit VR.

This could also concern LUT Data (general checks, to what extent other tags that can have other VRs are affected)

List of "polymorphous attributes" from DICOM 2009 that can take on various data types:

//OB/OW Value Representation//

    (50xx,200C) Audio Sample Data AudioSampleData OW or OB 1 RET -> retired
    (50xx,3000) Curve Data CurveData OW or OB 1 RET -> done
    (5400,0110) Channel Minimum Value ChannelMinimumValue OB or OW 1
    (5400,0112) Channel Maximum Value ChannelMaximumValue OB or OW 1
    (5400,100A) Waveform Padding Value WaveformPaddingValue OB or OW 1 -> done
    (5400,1010) Waveform Data WaveformData OB or OW 1 -> done
    (60xx,3000) Overlay Data OverlayData OB or OW 1 -> done
    (7FE0,0010) Pixel Data PixelData OW or OB 1 -> done
    (7Fxx,0010) Variable Pixel Data VariablePixelData OW or OB 1 RET -> retired
    //
    Other Value Representations//

    (0028,0071) Perimeter Value PerimeterValue US or SS 1 RET -> retired
    (0028,0104) Smallest Valid Pixel Value SmallestValidPixelValue US or SS 1 RET -> retired
    (0028,0105) Largest Valid Pixel Value LargestValidPixelValue US or SS 1 RET -> retired
    (0028,0106) Smallest Image Pixel Value SmallestImagePixelValue US or SS 1
    (0028,0107) Largest Image Pixel Value LargestImagePixelValue US or SS 1
    (0028,0108) Smallest Pixel Value in Series SmallestPixelValueInSeries US or SS 1
    (0028,0109) Largest Pixel Value in Series LargestPixelValueInSeries US or SS 1
    (0028,0110) Smallest Image Pixel Value in Plane SmallestImagePixelValueInPlane US or SS 1 RET -> retired
    (0028,0111) Largest Image Pixel Value in Plane LargestImagePixelValueInPl US or SS 1 RET -> retired
    (0028,0120) Pixel Padding Value PixelPaddingValue US or SS 1 -> done
    (0028,0121) Pixel Padding Range Limit PixelPaddingRangeLimit US or SS 1 -> done
    (0028,1100) Gray Lookup Table Descriptor GrayLookupTableDescriptor US or SS 3 RET -> retired
    (0028,1101) Red Palette Color Lookup Table Descriptor RedPaletteColorLookupTableDescriptor US or SS 3 -> done (OW according to PS 3.6)
    (0028,1102) Green Palette Color Lookup Table DescriptorGreenPaletteColorLookupTableDescriptor US or SS 3 -> done (OW according to PS 3.6)
    (0028,1103) Blue Palette Color Lookup Table DescriptorBluePaletteColorLookupTableDescriptor US or SS 3 -> done (OW according to PS 3.6)
    (0028,1111) Large Red Palette Color Lookup TableDescriptorLargeRedPaletteColorLookupTableDescriptor US or SS 4 RET -> retired
    (0028,1112) Large Green Palette Color Lookup Table Descriptor LargeGreenPaletteColorLookupTableDescriptor US or SS 4 RET -> retired
    (0028,1113) Large Blue Palette Color Lookup Table Descriptor LargeBluePaletteColorLookupTableDescriptor US or SS 4 RET -> retired
    (0028,1200) Gray Lookup Table Data GrayLookupTableData US or SS or OW 1-n 1 RET -> retired
    (0028,3002) LUT Descriptor LUTDescriptor US or SS 3
    (0028,3006) LUT Data LUTData US <del>or SS</del> or OW 1-n/1
    (0040,9211) Real World Value Last Value Mapped RealWorldValueLastValueMapped US or SS 1
    (0040,9216) Real World Value First Value Mapped RealWorldValueFirstValueMapped US or SS 1
    (0060,3004) Histogram First Bin Value HistogramFirstBinValue US or SS 1 -> done
    (0060,3006) Histogram Last Bin Value HistogramLastBinValue US or SS 1 -> done
Actions #3

Updated by Marco Eichelberg almost 9 years ago

  • Description updated (diff)
Actions #4

Updated by Marco Eichelberg over 8 years ago

  • Target version set to 3.6.2
Actions #5

Updated by Jan Schlamelcher over 8 years ago

  • Status changed from New to Closed
  • % Done changed from 80 to 100
  • Assignee set to Anonymous

Closed by commit #33ec1ef2eddef9.

Actions

Also available in: Atom PDF