Class OtherWordAttributeOnDisk


public class OtherWordAttributeOnDisk extends OtherAttributeOnDisk

A concrete class specializing Attribute for Other Word (OW) attributes whose values are not memory resident.

Though an instance of this class may be created using its constructors, there is also a factory class, AttributeFactory.

See Also:
  • Field Details

    • bigEndian

      protected boolean bigEndian
  • Constructor Details

    • OtherWordAttributeOnDisk

      public OtherWordAttributeOnDisk(AttributeTag t)

      Construct an (empty) attribute.

      Any file set later will be expected to be little endian.
      Parameters:
      t - the tag of the attribute
    • OtherWordAttributeOnDisk

      public OtherWordAttributeOnDisk(AttributeTag t, boolean bigEndian)

      Construct an (empty) attribute.

      Any file set later will be expected to be in the specified byte order.
      Parameters:
      t - the tag of the attribute
      bigEndian - big endian, false if little endian
    • OtherWordAttributeOnDisk

      public OtherWordAttributeOnDisk(AttributeTag t, long vl, DicomInputStream i, long byteOffset) throws IOException, DicomException

      Read an attribute from an input stream.

      Parameters:
      t - the tag of the attribute
      vl - the value length of the attribute
      i - the input stream
      byteOffset - the byte offset in the input stream of the start of the data
      Throws:
      IOException
      DicomException
    • OtherWordAttributeOnDisk

      public OtherWordAttributeOnDisk(AttributeTag t, Long vl, DicomInputStream i, Long byteOffset) throws IOException, DicomException

      Read an attribute from an input stream.

      Parameters:
      t - the tag of the attribute
      vl - the value length of the attribute
      i - the input stream
      byteOffset - the byte offset in the input stream of the start of the data
      Throws:
      IOException
      DicomException
  • Method Details

    • write

      public void write(DicomOutputStream o) throws DicomException, IOException
      Description copied from class: Attribute

      Write the entire attribute (including values) to the output stream.

      Specified by:
      write in class Attribute
      Parameters:
      o -
      Throws:
      IOException
      DicomException
    • isBigEndian

      public boolean isBigEndian()

      Is the data on disk byte order big endian ?

      Returns:
      true if big endian, false if little endian
    • getShortValues

      public short[] getShortValues() throws DicomException

      Get the values of this attribute as a short array.

      This allocates a new array of sufficient length, which may fail if it is too large, and defeats the point of leaving the values on disk in the first place. However, it is a fallback for when the caller does not want to go to the trouble of creating a MappedByteBuffer from which to get a ShortBuffer from the file, or more likely is not even aware that the attribute values have been left on disk, because AttributeFactory silently created an instance of this class rather than an in-memory OtherWordAttribute.

      Overrides:
      getShortValues in class Attribute
      Returns:
      the values as an array of short
      Throws:
      DicomException - thrown if values cannot be read
    • getShortValuesPerFrame

      public short[][] getShortValuesPerFrame(int numberOfFrames) throws DicomException

      Get the values of this attribute as multiple short arrays, one per frame.

      Caller needs to supply the number for frames so that pixel data can be split across per-frame arrays (since not necessarily known when this attribute was created or read.

      This allocates new arrays of sufficient length, which may fail if they are too large, and defeats the point of leaving the values on disk in the first place. However, it is a fallback for when the caller does not want to go to the trouble of creating a MappedByteBuffer from which to get a ShortBuffer from the file, or more likely is not even aware that the attribute values have been left on disk.

      Parameters:
      numberOfFrames - the number of frames
      Returns:
      the values as an array of arrays of bytes
      Throws:
      DicomException - thrown if values cannot be read
    • getShortValuesForSelectedFrame

      public short[] getShortValuesForSelectedFrame(int frameNumber, int numberOfFrames) throws DicomException

      Get the value of this attribute as a short array for one selected frame.

      This allocates a new array of sufficient length, which may fail if it is too large, and defeats the point of leaving the values on disk in the first place. However, it is a fallback for when the caller does not want to go to the trouble of creating a MappedByteBuffer from which to get a ShortBuffer from the file, or more likely is not even aware that the attribute values have been left on disk, because AttributeFactory silently created an instance of this class rather than an in-memory OtherWordAttribute.

      Parameters:
      frameNumber - from 0
      numberOfFrames - the number of frames
      Returns:
      the values as an array of short
      Throws:
      DicomException - thrown if values cannot be read
    • getVR

      public byte[] getVR()

      Get the value representation of this attribute (OW).

      Overrides:
      getVR in class Attribute
      Returns:
      'O','W' in ASCII as a two byte array; see ValueRepresentation