Class OtherWordAttributeOnDisk
- java.lang.Object
-
- com.pixelmed.dicom.Attribute
-
- com.pixelmed.dicom.OtherAttributeOnDisk
-
- com.pixelmed.dicom.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:
Attribute
,AttributeFactory
,AttributeList
,OtherByteAttributeOnDisk
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
bigEndian
-
Fields inherited from class com.pixelmed.dicom.OtherAttributeOnDisk
byteOffset, deleteFilesWhenNoLongerNeeded, file
-
Fields inherited from class com.pixelmed.dicom.Attribute
valueLength, valueMultiplicity
-
-
Constructor Summary
Constructors Constructor Description OtherWordAttributeOnDisk(AttributeTag t)
Construct an (empty) attribute.OtherWordAttributeOnDisk(AttributeTag t, long vl, DicomInputStream i, long byteOffset)
Read an attribute from an input stream.OtherWordAttributeOnDisk(AttributeTag t, java.lang.Long vl, DicomInputStream i, java.lang.Long byteOffset)
Read an attribute from an input stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description short[]
getShortValues()
Get the values of this attribute as a short array.short[]
getShortValuesForSelectedFrame(int frameNumber, int numberOfFrames)
Get the value of this attribute as a short array for one selected frame.short[][]
getShortValuesPerFrame(int numberOfFrames)
Get the values of this attribute as multiple short arrays, one per frame.byte[]
getVR()
Get the value representation of this attribute (OW).boolean
isBigEndian()
Is the data on disk byte order big endian ?void
write(DicomOutputStream o)
Write the entire attribute (including values) to the output stream.-
Methods inherited from class com.pixelmed.dicom.OtherAttributeOnDisk
deleteFilesWhenNoLongerNeeded, finalize, getByteOffset, getFile, removeValues, setFile, setFile, toString
-
Methods inherited from class com.pixelmed.dicom.Attribute
addValue, addValue, addValue, addValue, addValue, addValue, addValue, getByteValues, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDoubleValues, getDoubleValues, getDoubleValues, getElement, getFloatValues, getFloatValues, getFloatValues, getGroup, getIntegerValues, getIntegerValues, getIntegerValues, getLongValues, getLongValues, getLongValues, getOriginalStringValues, getPaddedVL, getSingleDoubleValueOrDefault, getSingleDoubleValueOrDefault, getSingleDoubleValueOrDefault, getSingleFloatValueOrDefault, getSingleFloatValueOrDefault, getSingleFloatValueOrDefault, getSingleIntegerValueOrDefault, getSingleIntegerValueOrDefault, getSingleIntegerValueOrDefault, getSingleLongValueOrDefault, getSingleLongValueOrDefault, getSingleLongValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getStringValues, getStringValues, getStringValues, getStringValues, getStringValues, getStringValues, getTag, getVL, getVM, getVRAsString, isValid, repairValues, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValues, setValues, setValues, setValues, toString, writeBase
-
-
-
-
Constructor Detail
-
OtherWordAttributeOnDisk
public OtherWordAttributeOnDisk(AttributeTag t)
Construct an (empty) attribute.
- Parameters:
t
- the tag of the attribute
-
OtherWordAttributeOnDisk
public OtherWordAttributeOnDisk(AttributeTag t, long vl, DicomInputStream i, long byteOffset) throws java.io.IOException, DicomException
Read an attribute from an input stream.
- Parameters:
t
- the tag of the attributevl
- the value length of the attributei
- the input streambyteOffset
- the byte offset in the input stream of the start of the data- Throws:
java.io.IOException
DicomException
-
OtherWordAttributeOnDisk
public OtherWordAttributeOnDisk(AttributeTag t, java.lang.Long vl, DicomInputStream i, java.lang.Long byteOffset) throws java.io.IOException, DicomException
Read an attribute from an input stream.
- Parameters:
t
- the tag of the attributevl
- the value length of the attributei
- the input streambyteOffset
- the byte offset in the input stream of the start of the data- Throws:
java.io.IOException
DicomException
-
-
Method Detail
-
write
public void write(DicomOutputStream o) throws DicomException, java.io.IOException
Description copied from class:Attribute
Write the entire attribute (including values) to the output stream.
- Specified by:
write
in classAttribute
- Parameters:
o
-- Throws:
java.io.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 aShortBuffer
from the file, or more likely is not even aware that the attribute values have been left on disk, becauseAttributeFactory
silently created an instance of this class rather than an in-memoryOtherWordAttribute
.- Overrides:
getShortValues
in classAttribute
- 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 aShortBuffer
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 aShortBuffer
from the file, or more likely is not even aware that the attribute values have been left on disk, becauseAttributeFactory
silently created an instance of this class rather than an in-memoryOtherWordAttribute
.- Parameters:
frameNumber
- from 0numberOfFrames
- 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 classAttribute
- Returns:
- 'O','W' in ASCII as a two byte array; see
ValueRepresentation
-
-