DeCaMino
ABOUT DOCUMENTATION DOWNLOAD LICENSING SUPPORT
DOCUMENTATION
As a plugin As a library
Get/Set attributes Storage SCP Direct write Storage SCU Storage commitment Query/Retrieve SCU Query/Retrieve SCP Worklist management File-sets (DICOMDIR) Direct encapsulation
DICOM conformance Image I/O conformance Changelog

Version 2.15 - Apr 06, 2022

Added: vararg in PersonName(String) constructor. Now accepting less than 5 elements in component groups.
Added: allow parsing of decimal string using locale rules instead of standard rules to accomodate some non-conform datasets.
Added: find(Identifier, FindListener), an asynchronous overload of find(Identifier) for QueryRetrieveSCU, BasicWorklistManagementSCU and HangingProtocolQueryRetrieveSCU, in order to be notified each time a response is received.
Added: DataElement.getName and getKeyword.

Updated: to DICOM 2022a.

Version 2.14 - Feb 06, 2021

Added: TemporalRange.equals

Changed: Default implementation version name changed from "DeCaMino 2.14" to
"DECAMINO_2_14" to conform to standard.
Changed: When a date without time components is encoded in a data element with
VR DT (DateTime), returned value is now a LocalDate instead of LocalDateTime
or ZonedDateTime.
Changed: Reading an erroneous file without a SOP class or without a SOP instance now only
raise a warning and not an exception.

Fixed: Person names were limited to 64 characters when writing, irrespectively
of the number of names or name components.
Fixed: Now ignore leading and trailing spaces within person name components.
Fixed: When using multi-byte character set, apply correctly the length limit
of data element values.
Fixed: DateTime value without a day or without a day and a month now parsed
correctly.
Fixed: DataSet.getTemporals and DataSet.getPersonNames could throw
ClassCastException.

Updated: to DICOM 2021a.

Version 2.13 - May 04, 2020

Improved: Reading of multiframe datasets encoded with the Deflated Explicit VR Little Endian transfer syntax is faster.

Added: Support for reading non-conform datasets encapsulating JP2 files instead of JPEG2000 codestreams.

Fixed: Values of data elements of VR UC didn't honor the specific character set.

Updated: to DICOM 2020b.

Version 2.12 - Dec 04, 2019

Improved: DataSet.getString now returns a concatenated string when the data element has multiple values.
Improved: Support for very large files.

Added: A PersonName constructor accepting the 3 component groups.
Added: Dictionary.getUIDName, Dictionary.learnUID.
Added: Plugin.getVersion.

Fixed: Encoding of person names without alphabetic component group.
Fixed: VOIWindowLinearExactColorModelDouble had wrong transfer type.
Fixed: NullPointerException when instantiating a QueryRetrieveSCU without specifying a list of accepted SOP classes.
Fixed: Calling QueryRetrieveSCU.getSupportedBySCP when the association was refused blocked indefinitely.
Fixed: In example code QuerySCU, get was reported to be not supported when it was.
Fixed: In example code WorklistManageSCU, add the missing procedure step start time in the query.
Fixed: Moved Identifier.set(int, TemporalRange) to DataSet to allow for specifying a range in a sub-dataset of an identifier.

Updated: to DICOM 2019e.

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.

DICOM is the registered trademark of the National Electrical Manufacturers Association for its standards publications relating to digital communications of medical information.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

apteryx is a registered trademark of apteryx, sarl.

DeCaMinoTM is a trademark of apteryx, sarl.

© apteryx 2024