Version 2.11 - Mar 19, 2019
Changed: the VOI Presentation LUT is now handled by color models, and not color spaces anymore. The constructors of subclasses of VOIColorModel were changed accordingly, with a new argument implementing the interface Presentation. Improved: decamino.jar is now an explicit JPMS (Java 9) module Improved: DicomReadParam.setDestination is now always honored. Added: Experimental AlphaGenerator class to support image blending easily. Added: setWindow in the various VOI colormodel. Added: VOI*ColorModel.color for changing color spaces or alpha channel. Added: Tag.isPrivate. Added: DataElement.getVR and Dictionary.getVR. Added: DataSet.getFunctionGroupMacroSequence. Added: DicomReader.getSampleModel, DicomReadParam.setDestinationRaster and DicomReadParam.getDestinationRaster. Added: DicomReaderSpi.getInstance, DicomWriterSpi.getInstance. Added: DicomColorSpace.SingleComponent. Clarified DicomColorSpace javadoc. Added: DicomReadParam.getReadRealWorldValues et setReadRealWorldValues. Fixed: A bug introduced in 2.10 causing FileSet.add to throw a NPE. Fixed: When reading data set with float pixel data, some elements were read as unsigned integer instead of signed. Fixed: Data element whose VR depends on PixelRepresentation could be wrong if data element in a sequence. Fixed: DataElements.equals threw NPE for values of type Number when some elements are null. Fixed: NumberOfFrames now automatically set when using writeToSequence. Updated: DICOM dictionary to 2018e.
Version 2.10 - Oct 23, 2018
Changed: DeCaMino shipped as a single jar instead of two. The native library is now called decamino instead of jjjni. Changed: Sequences of data sets are now modeled as List
instead of Collection . Changed: ExceptionListener.exceptionOccured now correctly spelled exceptionOccurred. Changed: Error code ProtocoleViolation now correctly spelled ProtocolViolation. Improved: DeCaMino can now be used without the native library if needed. Encoding and decoding of JPEG-LS, 12-bits JPEG and JPEG 2000 pixel data are disabled if the native library cannot be loaded. Added: DataSet.getStream. Added: DicomReader.canDecodePixelData. Added: Support for the new TLS profiles (see SecureTransport javadoc). Added: ReceivedObject.getDicomMetadata. Added: DataSet.equals. Added: BufferedFileImageOutputStream and BufferedFileImageInputStream. Added: Outputs of type File are now accepted by DicomWriter. Added: Inputs of type File are now accepted by DicomReader (see DicomReader javadoc). Added: DataSet.getShorts and DataSet.getShort. Added: DicomColorSpace constants for built-in color spaces. Added: When writing Multi-frame Secondary Capture, if pixel data needs a modality LUT to fit the pixel format, and none is provided in the data set, DeCaMino computes an automatic modality LUT (rescale and intercept). Added: Convenient methods in DataSet: getPersonName, getPersonNames, getLocalDates, getTemporals, getLocalDateTimes, getZonedDateTimes, getLocalTimes. Added: QueryRetrieveSCU.discardReceivedData(). Fixed: Calling QueryRetrieveSCU.getSupportedBySCP or QueryRetrieveSCU.moveSupportedBySCP now blocks instead of returning false if called before negotiation completes. Fixed: Connecting using one of the DICOM profile could throw "Unsupported ciphersuite TLSv1". Fixed: DicomMetadata.isVideoEncoded always returned false. Fixed: DicomReader.getImageTypes could throw an exception if the object contained a VOI LUT. Fixed: Empty components in person names are now always null and not empty strings. Updated: DICOM dictionary to 2018c.
Version 2.09 - Jun 29, 2018
Changed: more compliant processing of UN VR, DicomMetaData.removeUnwritableElements behavior changed and deprecated, removal of class UnknownValue. Improved: allow decoding of data elements encoded with VR UN but which tag is in dictionary. Added: float and double pixel data. Added: 32-bit Int pixel data. Added: 1-bit pixel data. Added: helper methods in DataSet to read and write overlays. Applications that decode pixel data from the raw byte array value of OverlayData won't work anymore. Added: DataSet.canBeEncodedWith. Added: DataElement.isPrivate, canBeWritten, hasUnknownVR, getTag, getValue. Added: DicomMetadata.removePrivateElements and DataSet.removePrivateElements. Added: support for GE-private transfer syntax 1.2.840.113619.5.2. Added: support for non-standard file using implicit transfer syntax for file metadata. Added: DicomMetadata.getVOIViewExplanation. Added: helper methods DataSet.getStrings and DataSet.getLongs. Added: GSDF support, DicomColorSpace, DicomColorSpace.Gray. Added: Tag entries for repeating groups. Added: DicomMetaData.setWordPixelData, setFloatPixelData and setDoublePixelData. Fixed: unsupported DataType when writing float image without rescale/slope. Fixed: reading pixel data with bitsStored <=8 and bitsAllocated = 16. Fixed: now accept undefined length for VR UN. Updated: example classes Display.java (display DICOM only, read overlays), Dump.java (comments), Gateway.java (removed removeUnwritableElements), Transcode.java (updated comments and overlay processing added), QuerySCP (removed removeUnwritableElements), StoreSCP (removed removeUnwritableElements). Updated: DICOM dictionary to 2018a.