- "Index was outside the bounds of the array" in PrecalculatedLUT indexer (#219 #221)
- DicomReader reads past end of file if empty private sequence is last attribute in dataset (#220 #222)
- DicomReader reads past end of file if first private sequence item is zero length (#223 #224)
- DICOM CP-246 not handled correctly in DicomReader (#177 #192)
- Fix for #64 breaks parsing of valid datasets (#178 #184 #194)
- Invalid VR in explicit dataset leads to 'silent' stop (#179 #196)
- DicomDictionary.UnknownTag missing new VRs OD, UC and UR (#183 #185)
- DicomPixelData.Create is broken for signed pixel data with BitsAllocated != BitsStored (#187 #189)
- CompositeByteBuffer ArgumentException (#195 #198)
- Removed Modality Dicom Tag in Study Request (#166)
- Checking for valid Window Center and Window Width values before using in GrayscaleRenderOptions (#161 #163)
- Initialize managers automatically via reflection (#148 #149)
- Message Command Field Priority invalid for C-ECHO and all DIMSE-N Requests (#141 #143)
- Overlay data error corrections (#110 #138 #140)
- Report status for additional presentation contexts (#137 #139)
- Extended stop parsing functionality with support e.g. for sequence depth (#136 #142)
- Handle simultaneous use of explicit sequence length and sequence delimitation item (#64 #135)
- Parse error when encapsulated pixel data appears inside sequence item (#133 #134)
- Universal Windows Platform library with networking, imaging and transcoding capability (#118 #124 #125 #126 #132)
- Improved exception reporting for NLog (#121 #122)
- MetroLog connector is Portable Class Library (#119 #120)
- Fix of concurrency bugs in DicomDictionary (#114 #115 #151 #152)
- Xamarin Android platform library with imaging cabability (#113 #117)
- Xamarin iOS platform library with imaging cabability (#111 #112)
- Portable Core and platform-specific assemblies, including basic Mono implementation (#13 #93 #94 #60 #109)
- Network abstraction layer (#86 #106 #156 #159 #160 #157 #164 #158 #165 #167 #175)
- Transcoder abstraction layer (#102 #105)
- Synchronized LogManager API with other managers (#103 #104)
- Image abstraction layer (#83 #85 #92 #101 #144 #145 #150)
- I/O abstraction layer (#69 #78 #97 #100)
- Provide Task Asynchronous Pattern (async/await) for file I/O and network operations (#65 #90 #96 #98 #99 #107 #116 #130 #131)
- Provide NullLogger for disabled logging (#89 #91)
- Improved NuGet installation procedure for codec assemblies (#87 #88 #123)
- DICOM Dump can ignore private dictionary (#84)
- API for applying color LUT on grayscale image (#79 #81 #146 #147)
- Log4Net connector and NuGet package (#76 #77)
- JPEG, JPEG-LS and JPEG2000 source code updated to latest applicable version (#74 #75)
- Reverted memory mapped file implementation for image loading (#71 #72 #73)
- MetroLog connector and NuGet package (#59 #68)
- Enable configuration of default encoding in the DicomDatasetReaderObserver (#54)
- DicomDataset.Add(DicomTag, ...) method does not support multi-valued LO, PN, SH and UI tags (#51)
- Explicit VR file parsing failures due to strictness (#47)
- Overlay scaling in WPF images (#46)
- Prevent non-socket related exceptions from being swallowed (#45)
- Codec loading - add logging and default the search filter wildcard (#41)
- Use memory mapped file buffer to improve large image reading (#17)
- Improved reliability in search for native codec assemblies (#14)
- Consistent handling of Get<T> default values (#10)
- DICOM dictionary (tags and UIDs) updated to version 2015c (#9, #44)
- UC, UR and OD value representations added (#9, #48)
- Serilog support added; NLog and Serilog loggers moved to separate assemblies (#8, #34)
- Corrected Color32.B getter (#7)
- Upgraded to .NET 4.5 and C/C++ toolset v120 (#4)
- Use UTF-8 encoding where appropriate (#2, #20, #21)
- Fixed JPEG Codec memory corruption when encoding decoding on the same process for long period (#1)
- Fix OW swap for single byte images
- Better handling of long duration and aborted connections
- Many imported extensions and bug fixes!
- Add DICOM Compare tool to project
- Add support for disabling TCP Nagle algorithm
- Better handling of aborted connections
- Fix some UID values containing encoding characters
- Fix extraction of embedded overlays
- Utility methods for calculating window/level
- Use number keys to change W/L calculation mode in dump utility
- Use O key to show/hide overlays in dump utility
- Fix byte swapping for Implicit VR single byte images
- Fix bug sorting private tags
- Ability to add private tags to dataset
- Better handling of improperly encoded private sequences
- Fix bug adding presentation contexts from requests
- Fix typo in N-Set response handler
- Fix bug adding presentation contexts with Implicit Little Endian syntax
- Add option to use the remote AE Title as the logger name
- Miscellaneous improvements and fixes
- Fix bug returning default value for zero length elements
- Fix exception when disposing DicomDirectory
- Fix menu bug in DICOM Dump utility when changing syntax to JPEG Lossless
- Fix bug matching private DICOM tags
- Add classes for basic structured report creation
- Ability to browse multiframe images in DICOM Dump utility
- Ability to recover when parsing invalid sequences
- Ability to parse improperly encoded private sequences
- Add logging abstraction layer to remove runtime dependency on NLog
- Fix bug reading duplicate entries in DICOM dictionary
- Fix bug storing AT values
- Fix bug sorting private DICOM tags
- Fix bug using custom DicomWriteOptions
- DICOM Media example by Hesham Desouky
- Move DicomFileScanner to Dicom.Media namespace
- Add WriteToConsole logging extension method
- Increase line length of dataset logging extension methods
- Fix reading of sequences in DICOMDIR files (Hesham Desouky)
- Improve rendering performance by precalculating grayscale LUT
- Ability to render single-bit images
- Fix hash code implementation for private tags
- Miscellaneous improvements and fixes
- Improved portability and fewer compiler warnings (Anders Gustafsson)
- Ensure frame buffers created by codecs have even length
- Import DicomFileScanner from mDCM
- Ability to save datasets and images in DICOM Dump utility
- Ability to change tranfer syntax in DICOM Dump utility
- Fix loss of embedded overlay data during compression
- Fix rendering of big endian images
- Miscellaneous improvements and fixes
- Fix bug rescaling DicomImage (Mahesh Dubey)
- Add rules for matching and transforming DICOM datasets
- Miscellaneous improvements and fixes
- Minor modifications to facilitate library porting to Windows Store apps (Anders Gustafsson)
- Convert unit tests to use MS Unit Testing framework
- Move DICOMDIR classes back to Dicom.Media namespace
- Change DicomDirectory Open/Save methods to be consistent with DicomFile usage
- Fix bug decoding single frame from a multiframe image (Mahesh Dubey)
- Display exception message in DICOM Dump for image rendering errors
- Remove serialization members
- Fix bug where frame is not added to OtherWordPixelData (Mahesh Dubey)
- Fix bug where exception is not thrown for out of range frame numbers in GetFrame() (Mahesh Dubey)
- Fix bug where internal transfer syntax is not set when transcoding file (Mahesh Dubey)
- Add request/response classes for DICOM Normalized services
- Change DicomCStoreRequest constructor to use SOP Class/Instance UIDs from dataset instead of FMI
- Experimental support for DICOM directory files (Hesham Desouky)
- Ensure that file handles are closed after opening or saving DICOM file
- Add ability to move file pointed to by FileReference
- Fix window/level settings not being applied to rendered DicomImage
- Fix processing order of received DIMSE responses
- Process P-Data-TF PDUs on ThreadPool
- Temporary fix for rendering JPEG compressed YBR images
- Fix Async Ops window for associations where it is not negotiated
- Fix bug reading Palette Color LUT with implicit length
- Support decompression and rendering of JPEG Process 2 images
- Enable modification of Window/Level in DicomImage
- Advanced DIMSE logging options for DicomService base class
- Advanced configuration options for P-Data-TF PDU buffer lengths
- Fix bug where final PDV may not be written to P-Data-TF PDU
- Fix bug reading DIMSE datasets from network
- Fix min/max pixel value calculation for unsigned 32-bit pixel values
- Fix collection modified exception when calculating group lengths
- Better handling of null values when adding elements to dataset
- Fix default values when accessing SS/US element values (Anders Gustafsson, Cureos AB)
- Fix decoding of JPEG2000 images with signed pixel data (Mahesh Dubey)
- Ability to decompress single frame from dataset (Mahesh Dubey)
- Use ThreadPoolQueue to process related response messages in order
- Change the default presentation context transfer syntax acceptance behavior to prefer the SCU proposed order
- Reject all presentation contexts that have not already been accepted or rejected when sending association accept
- Add finalizers to temp file classes to catch files not deleted at application exit
- Remove Exists() method from DicomDataset (duplicates functionality of Contains())
- Extension methods for recalculating and removing group length elements
- Force calculation of group lengths when writing File Meta Info and Command datasets
- Fix exception when attempting to display ROI overlays
- Add ability to extract embedded overlays from pixel data
- Detect incorrect transfer syntax in file meta info
- Add support for reading and displaying GE Private Implicit VR Big Endian syntax
- Fix W/L calculation creating negative window width
- Round VOI LUT values instead of casting away fraction
- Fix bug reading signed pixel data from buffer
- Fix encoding of JPEG2000 images with signed pixel data
- Throttle queueing of PDUs to prevent out of memory errors for very large datasets
- Better management of PDU buffer memory
- Better handling for irregular specific character sets
- Support displaying images without specified photometric interpretation
- Ability to read files without preamble or file meta information (including ACR-NEMA)
- Add Offending Element tags to C-Move response output
- Add exception handling for C-Store requests with unparsable datasets
- Handle ObjectDisposedExceptions in network operations
- Fix transcoding between uncompressed transfer syntaxes
- Don't parse values for IS and DS elements if returning string types
- Add AMICAS private tags (AMICAS0) to private dictionary
- Add support for 32-bit pixel data (Anders Gustafsson, Cureos AB)
- Better handling of default item in Get<> method (Anders Gustafsson, Cureos AB)
- Support opening DicomFile from Stream (Anders Gustafsson, Cureos AB)
- Add support SIGMOID VOI LUT function
- Better handling of size and position of image display window in DICOM Dump
- Fix calculation of W/L from smallest/largest pixel value elements
- Fix viewing of images with bits allocated == 16 and bits stored == 8
- Add support for image scaling in DicomImage
- Use library to scale images before displaying in DICOM Dump
- Calculate W/L from pixel data values if no defaults are available
- Add ability to Get<> Int32 values from US/SS elements
- Add ability to Get<> DicomVR and IByteBuffer from elements
- Add ability to Get<> byte[] from elements
- Add ability to render basic PALETTE COLOR images
- Fix unnecessary byte swap for 8-bit pixel data stored in OW
- Add DicomFileException to allow better chance of recovery from parse errors
- Add maximum PDU length to association output
- Fix major bug in writing PDataTF PDUs; improvements in performance and memory usage
- Add ability to propose additional transfer syntaxes in C-Store request
- Add connection close event and socket error handlers to DicomService
- Fix C-Store SCP example's constructor not passing logger
- Fix exception in DicomClient when releasing association
- Force passing of Logger to DicomService constructor (may be null)
- Print Offending Element values when outputing request to log
- Add ability to pass custom logger to DicomService based classes
- Check overlay group before attempting to load overlay data
- Add ability to copy value column to clipboard in DICOM Dump
- Fix DicomClient linger timeout and add release timeout
- Fix decompression of JPEG Baseline Process 1 images
- Fix conversion of YBR to RGB in JPEG compressed images
- Add ability to handle encapsulated OW pixel data
- Better handling of grayscale images without Window/Level in dataset
- Add ability to store user state object in DicomService based classes
- Add ability to store user state object in DicomClient
- Fix handling of UIDs in DicomCFindRequest
- Fix comparison of private DicomTags
- Add shortcut constructor for private DicomTags
- Handle null DicomDateRange in DicomDataset.Add()
- Modality Worklist C-Find helper method
- Fix bug in DicomDatasetReaderObserver handling zero length Specific Character Set elements
- Fix bug in DICOM Dump when displaying zero length UIDs
- Load implementation version from assembly info
- Add ability for library to create and manage temp files
- User state object for DIMSE requests and responses
- Fix reading of elements with unknown dictionary VR (Justin Wake)
- Fix handling of UIDs in DicomCMoveRequest (Justin Wake)
- Add version to file meta information
- Add support for multiframe images in DicomImage
- Add private dictionary to assembly
- Fix parsing errors when reading private dictionaries
- Fix reading of private tags
- Miscellaneous enhancements
- Accept unknown transfer syntaxes
- Add ability to write DICOM dataset to string
- Fix bug preloading dictionary from another assembly (Mahesh Dubey)
- Add name of UID to DICOM Dump elements
- Better error handling in GetDateTime method
- Persistent temporary file remover
- Parsing of Attribute Tag element type
- Fix bug displaying compressed images
- Add codec libraries as references to DICOM Dump utility
- Fix bug writing private sequence lengths
- Fix stack overflow when reading datasets with lots of sequences
- Fix big endian pixel data being swapped twice
- Fix exception when accessing overlay data
- Fix parsing of multi-value string elements
- Add option to display image in DICOM Dump utility
- Fix C-Store request from Conquest causing exception
- Don't throw exception for invalid UID characters
- Allow casting of OB & UN elements to value types
- Bug fixes
- DICOM Dump example project
- Make logger instance protected in DicomService
- Lock DICOM dictionary while loading
- Throw exception if no DICOM dictionary entry is found while adding element to dataset
- Fix bug where status is not being set in DIMSE response
- Fix bug in C-Store SCP where file is inaccessible
- Add C-Store SCP example project
- Fix parsing of explicit length sequences
- Image rendering
- Don't create offset table for datasets over 4Gb
- Regenerate dictionary and tags to include grouped elements such as overlays
- Fix bug in ByteBufferEnumerator
- Initial public release