tijian_tieying/winform/packages/fo-dicom.4.0.7/ChangeLog.md
2025-02-20 12:01:17 +08:00

637 lines
38 KiB
Markdown

#### v.4.0.8 (TBD)
#### v.4.0.7 (11/1/2020)
* Bug fix: Not able to open deflated dicom file which contains squence (#1097)
* Bug fix: DS VR type value ending with \0 fails to serialize in JsonDicomConverter (#1078)
* Allow disabling validation in JsonDicomConverter
* Bug fix: IPv6 issue in DesktopNetworkStream
* Optimize DicomTag.GetHashCode() (#1088)
* Bug fix: Prevent special characters in association requests from crashing Fellow Oak DICOM (#1104)
* Fixes caching of pixel data in DicomImage when rendering the same image multithreaded. (#805)
* Fix handling of MaximumPDULength. DicomServer always repeated the clients value of MaximumPDULength in AssociationAccepted-message instead of returning its own value. (#1084)
* Bug fix: It's very slow to open deflated dicom file. (#1115)
* Bug fix: DicomUID Storage Commitment Push Model SOP Class was mapped to wrng DicomStorageCategory (#1113)
* Handle PresentationStates and StructuredReports when creating a DICOMDIR (#1045)
* Allow conversion of integerString into integer if original string had decimal with trailing zeros
* Bug fix: String decimals ending in . (ex. 10.) throw DicomValidationException even though they can be converted to decimal
* Bug fix: FrameGeometry.PixelSpacingX and FrameGeometry.PixelSpacingY where wrong initialized. Now for clarity they are called PixelSpacingBetweenRows and PixelSpacingBetweenColumns.
* Bug fix: Date (DA) and DateTime (DT) fields didn't support range in validation (#1105)
#### v.4.0.6 (8/6/2020)
* Update to DICOM Standard 2020b.
* Handle N-Event requests in DicomClient (required for synchronous storage commitment) (#1001)
* Bug fix: Fix DICOM Tag conversion for private tags for element numbers xxff (#1059)
* ImplicitVRLittleEndian always added to presentation context by default causes other transfer syntax to not be accepted (#1048)
* New interface IDicomNEventReportRequestProvider for DicomServer. This is necessary to handle synchronous storage commitment on server (#1055)
* Bug fix: Fix the deserialization issue in JsonDicomConverter for NaN value in VR=FL (#1063)
* Bug fix: IOException when reading/sending file > 2GB. (#1061)
* Bug fix: DicomValidator ValidateLO issue, ESC is a valid character (#1043)
* Bug fix: DicomValidation for UI when AddFile to DicomDirectory (#1053)
* Bug fix: Exception occurred in Indexer of VOISequenceLUT Class (#1062)
* Bug fix: Prevent DicomClient getting stuck when any Exception (except IOException) occurs while sending a PDU over the network (#1054)
* Bug fix: Size of uncompressed YBR_FULL_422 images is calculated wrong (#645)
* Bug fix: YBR_FULL_422 images should have a planar configuration value of zero (#1049)
* When opening a DICOMDIR with invalid offsets, try to find the best matching records in a second run (#828)
#### v.4.0.5 (5/18/2020)
* Bug fix: DicomTags of ValueRepresentation LT have not been validated.
* Bug fix: Unawaited task throws unhandled exception caught in finalizer thread when stopping Dicom Server. (#1013)
* Bug fix: dependency of fo-dicom.ImageSharp nuget package was wrong. Now it also requires only netStandard1.3 (#1017)
* Bug fix: Fixed freeze when reading SQ of length 0 (#1009)
* Bug fix: DicomDictionary accessor thew exception on unknown keyword instead of returning null (#996)
* Update version of ImageSharp to rc1
* Bug fix: Comparing instance of class DicomStatus with null returned wrong value (#975)
* Bug fix: Overlay origin cannot be set correctly. (#1028)
* Add encoding to JsonDicomConverter on LO, SH and PN (#1020)
#### v.4.0.4 (1/17/2020)
* New feature: asynchronous counterparts to IDicomCEchoProvider, IDicomCFindProvider, IDicomCStoreProvider, IDicomCMoveProvider, IDicomCGetProvider and IDicomNServiceProvider
* Bug fix: Prevent SSL handshake freeze from blocking the TCP listener (#923)
* disable validation when cloning/copying existing DicomDatasets. Exceptions has been thrown when anonymizing files that contain invalid content.
* Bug fix: FileReadOption.SkipLargeTags caused that only parts of a FragmentSequece have been read, which then lead to further errors. Now the whole FragmentSequence is skipped if only one part of this sequence is skipped.
* Bug fix: Exception when anonymizing private tags, where the value representation is not known.
* Implementation of IImage with ImageSharp, which is pure managed and can be used on any operation system. (#693)
* Add link to wiki entry in DicomCodecException (#948)
* Bug fix: DicomDataset.TryGetString throws if the element is an empty number-based element (#932)
* Bug fix: Some continuations in the new DicomClient were not properly marked with ConfigureAwait, which could cause trouble
* Bug fix: VOI LUT was not applied correctly (#949)
* Add ReferencedFilmSessionSequence in N-Create message of BasicFilmBox (#967)
* Bug fix: Exception when cloning to Jpeg Process2_4 when parameters are set to null.
#### v.4.0.3 (9/21/2019)
* Bug fix: Exception when adding an element of VR UR/UT/LT/ST with empty value (#915)
* Bug fix: Exception when opening a file with FileReadOption.SkipLargeTags (#893)
* Bug fix: Do not open new associations on the existing TCP connection (#896)
* Bug fix: Broken images when transcoding to JpegProces14 (#921)
* New feature: Add the ability to enforce a maximum number of DICOM requests per association to the new DICOM client (#898)
* Add AutoValidate property also to DicomDirectory class.
* Add support for timeout detection on DICOM requests. Events on Requests and DicomClient are thrown in case of timeout (#666, #236)
* New Option MaxPDULength in DicomServiceOption.
* Rewrite SOP class extended negotiation support (#740)
* Bug fix: extended negotiations have been accepted by default, but should be explicitly accepted (#900)
* Bug fix: Send only PrintManagementMetaSopClassUid on AssociationRequest instead of all the various SopClassUids of the NCreate and NSet requests (#667)
* Global static property DicomValidation.PerformValidation to turn off validation for every DicomDataset.
* Bug fix: Prevent DICOM client from freezing when too many DICOM requests time out and async operations invoked is a low number
#### v.4.0.2 (7/30/2019)
* Bug fix: prevent resource leak when DesktopNetworkListener waits for new TCP clients
* Updated to DICOM Dictionary 2019a (#724)
* Add pure managed JpegLosses Decoder to DICOM.NetCore project
* Upgraded native libraries to MSVC platform toolset v141 (VS 2017) (#814)
* Replaced deprecated licenseUrl tags in NuGet specification files (#813)
* Add validation of content when adding DICOM elements to DicomDataset. This validation is skipped when reading files or receiving data via network.
* Be more prudent when releasing association after the linger timeout (#840)
* A completely new DicomClient, under the namespace Dicom.Network.Client.DicomClient (beware of confusion with Dicom.Network.DicomClient!)
* The intent is that the old Dicom.Network.DicomClient will disappear in the next major update, so the namespace confusion shouldn't last very long.
* For now, both versions can be used side by side according to your needs. All of our unit tests cover both implementations.
* The new Dicom.Network.Client.DicomClient sports the following characteristics:
* Redesigned architecture using state pattern. This makes the DicomClient a lot more robust in various scenarios (abort while sending requests, disconnect while releasing association, etc)
* Completely async from the very start
* Full and graceful cancellation support using CancellationToken. Upon cancellation, no more requests will be sent, the association will be released and the connection closed gracefully.
* One DicomClient instance per DICOM server. The host, port and other server related parameters are moved to the DicomClient constructor.
* More hooks to react to the various states a DicomClient goes through. (e.g. when connecting, when lingering the association, etc.)
* Bug Fix: Fixed wrong interpretation and application of LUT for PALETTE COLOR images (#817)
* Bug Fix: Allow any SOP Class to be set as Affected SOP CLass in C-FIND requests (#808)
* Bug Fix: Don't drop connection right after releasing an association (#839)
* Bug Fix: Wait for release of previous association before opening a new one (#833)
* Bug Fix: When a connection is still open but the association is already released, create a new association (#833)
* Bug Fix: When adding datasets to a DicomDirectory where some patientNames have trailing ^, then they were not recognized as one patient (#765)
* Bug Fix: Anonymizer throws exception on private tags (#771)
* Bug Fix: Linear windowing wrong in corner cases (#816)
* Bug Fix: Fix DicomClient getting stuck when sending one request fails completely (#848)
* Added Modality LUT Sequence and VOI LUT Sequence functionality when generating a DICOM Image.
* Bug Fix: Logging requests with very long private tags throws exception (#846)
* Bug Fix: turn off validation when creating CFind-, CGet- or CMove-Requests, since there are no newly generated data included, but already existing UIDs have to be added there. (#860, #842)
* Bug Fix: generation of DicomUID using obsolete method Generate("name") resulted in invalid UIDs. (#862)
* Bug Fix: Disabling dataset validation for file meta information objects. (#859)
* Bug Fix: JPEG 2000 decodes wrong colors in .NET Core (#850)
* Enable secure DICOM Tls 1.0, 1.1 and 1.2 (#872)
* Set text encoding of Json to UTF-8, as defined in dicom standard F.2
* Bug Fix: Photometric Interpretation updates on Transfer Syntax changes (#836)
* Bug Fix: DicomOverlayData OriginX and OriginY were swapped
* Bug Fix: Handle Json deserializing of empty values (#873)
#### v.4.0.1 (3/13/2019)
* change IFileReference and IByteBuffer to have offset of type long so that big files can be processed (#743)
* internally identify dicom servers by port/ipadress combination instead of only port (#699)
* DicomDirectory.AddFile returns a reference to the newly added patient-, study-, series- and instance-Record.
* Update Json DS validation regex (#643)
* Add option to DicomFile.Open how to deal with large tags (#617)
* DicomFileMetaInformation now uses pre-existing SourceAET where possible
* PixelData.GetMinMax now has 2 overloads, one that takes padding into account and one wihtout the padding parameter (#675)
* string.ToUpper() is replaced by string.ToUpperInvariant() to prevent bad character conversion on turkish system
* Fix detecting default windowing if a dataset contains several windows configurations (#741)
* Fix bug in .net core when a image is both flipped in x and y direction (#721)
* Pass through the timeout parameter from DicomClient.Send to the constructor of DesktopNetworkStream (#732)
* Added appveyor.yml file for ci by this setting (#729)
* Bug Fix : anonymized patient name is now encoded with same character set as the original Dicom.
* add DicomUID.IsVolumeStorage.
* Bug Fix : DICOM server may throw DicomDataException on association when non-standard transfer syntax was proposed (#749)
* allow Query/Register/Unregister transfer syntax.
* DicomCFindRequest should allow defnition of Query Retrieve Information Model (#708)
* Bug fix : DicomUIDGenerator.GenerateDerivedFromUUID converts Guids incorrectly to the DICOM "2.25." + UUID format (#762)
* Bug Fix : TryGetValue, TryGetValues, TryGetSingleValue should return false instead of throw exception. (#746)
* Add methods to calculate localizer lines (#779)
* Bug Fix : DicomPixelData.Create throws Exception if BitsAllocated >= 32 (#716)
* Bug Fix: GetValues<object> on empty element may throw ArgumentOutOfRangeException (#720)
* Serilog for .NET Standard 1.3/.NET Core (#772)
* Bug Fix : DicomServer does not close TcpClient/socket after client closed connection (#795)
* Bug Fix : JsonDicomConverter should decode BulkDataURI element(#796)
* Bug Fix: fix deserialization of Json when the VR-property is not on first position (#730)
* DicomClient uses StrongBox to reduce memory consumption (#794)
* Bug Fix: C-STORE request may hang. (#792)
#### v.4.0.0 (9/24/2018)
* Demonstrate and fix error in RLELossless Transfer Syntax Codec
* Fixing 2 UWP Networking Bugs (#636, #637)
* Add List of known Private UID's (#589)
* DicomReader: Prevent premature exit from privateBadSequence when private sequence contains sub-sequence (#565 #626)
* Saving a file with deflated transfer syntax occasionally fails (#621)
* Anonymizer not removing Sequences (#610 #611)
* Deprecate DicomClient.WaitForAssociation and provide association events (#605 #609)
* Subclassing DicomServer (#602 #604)
* Support CP-1066 (#597 #606)
* DicomDataset.Add and .AddOrUpdate overloads with Encoding parameter (#596 #607)
* Code generator support for anonymization data (#594 #595)
* DicomServer to listen on IPv6 socket (#588 #604)
* DicomAnonymizer blank DicomDate/DicomDateTime to DateTime.MinValue instead of empty value (#576 #593)
* DicomAnonymizer ignores the PatientName and PatientID in the SecurityProfile (#575 #592)
* Private group not added to tag when private tag item is added to dataset (#570 #577)
* ReceivingApplicationEntityTitle and SendingApplicationEntityTitle omitted during Save (#563 #569)
* Downgrade desktop libraries to framework version 4.5 (#561 #562)
* Add support for Unity 2017.1 platform (#560 #585)
* Handle fragmented OW pixel data when creating EncapsulatedPixelData for new pixel data (#553 #586)
* DicomImage is not thread safe (#552 #582)
* DicomUIDGenerator.Generate UID Collisions (Non-unique UIDs) (#546 #571)
* Correct interpolation of rescaled overlay graphics (#545 #558)
* Some getters of optional sequences do not account for missing sequence (#544 #572)
* A-ASSOCIATE-AC PDU parsing incorrect (#543 #583 #590 #591)
* DicomCFindRequest is unsuitable for "Search for Unified Procedure Step (C-FIND)" (#540 #580)
* DicomClient proposes wrong presentation context in .NET core with codec that does not support 16 bit encoding (#538 #600)
* Private tag is listed out or order (#535 #566)
* JsonDicomConverter.ParseTag is very slow for keyword lookups (#533 #531)
* DicomDictionary.GetEnumerator() is very slow (#532 #534)
* DicomPixelData.BitsAllocated setter removed (#528 #564)
* Complete list of transfer syntax fields from the DICOM Standard (#526 #599)
* DicomClient.SendAsync will never return when certain non-transient exceptions are thrown (#525 #584)
* CStore-SCU always adds a PC with LEExplicit and LEImplicit (#524 #541)
* Added Maximum Clients Allowed to restrict connection to SCP (#523 #573)
* Updated JPEG-LS to latest CharLS commit (#517)
* Support for anonymization, deflated and compressed transfer syntaxes on Unity (#496)
* Support for up to 16 bit JPEG 2000 codecs on Android, iOS, Mono and .NET Core (#496)
* Added missing encodings for .NET Core (#481 #486)
* Update to latest DICOM Standard 2018b (#480 #482 #536 #537 #555 #559 #619 #676)
* Convert .NET Core projects to use VS 2017 .csproj project files (#470 #473)
* Add TextWriterLogger (#461 #542)
* Call to DicomServer.Stop does not remove all clients (#456 #464)
* Repository re-organization (#445 #446 #447 #448 #451 #452 #455 #462 #463 #465 #467 #468 #469 #476 #477 #478)
* Hololens support on Unity (#431 #556)
* Deprecate Legacy class library (#415 #449)
* Provide System.Drawing.Bitmap support for image rendering with .NET Core (#409 #450 #459)
* Added optional parameter for use in extended DicomService (#348 #441)
* Consistently asynchronous networking API (#331 #584)
* Pass through unsupported user data during PDU parsing (#242 #443)
* Remove warning messages during build (#33 #438)
* Online and NuGet packages API documentation (#28 #459 #466 #574 #584)
* Status code in respose got lost and mapped to an internally known status code (#616)
* WinFormsImage may throw exception on Dispose or on GC (#634)
* Fix StackOverflowException in Vector3D multiplication (#640)
#### v.3.0.2 (4/20/2017)
* DicomRejectReason enumerables should be parsed w.r.t. source (#516 #521)
* Incorrect numerical value on RejectReason.ProtocolVersionNotSupported (#515 #520)
* Add private creator to private tags when deserializing json (#512 #513)
* Adding private tags implicitly uses wrong VR (#503 #504)
* Add option in DicomServiceOptions for max PDVs per PDU (#502 #506)
* DicomResponse.ErrorComment is always added in the DicomResponse.Status setter, even for successes (#501 #505)
* DicomStatus.Lookup does not consider priority in matching (#499 #498)
* DesktopNetworkListener can throw an exception which causes DicomServer to stop listening (#495 #519)
* Cannot create DICOMDIR after anonymizing images (#488 #522)
* Cannot parse dicom files if the last tag is a private sequence containing only empty sequence items (#487 #518)
* If the connection is closed by the host, DicomClient will keep trying to send (#472 #489)
* N-CREATE response constructor throws when request command does not contain SOP Instance UID (#484 #485)
* Cannot render YBR_FULL/PARTIAL_422 with odd number of columns (#471 #479)
* Dicom Server listener consumes large amount of memory if http request is sent to listener (#327 #509)
#### v.3.0.1 (3/06/2017)
* Add runtime directives to enable .NET Native builds for UWP (#424 #460)
* YBR_FULL_422 JPEG Process 14 SV1 compressed image incorrectly decoded (#453 #454)
#### v.3.0.0 (2/15/2017)
* DICOM Anonymizer preview (#410 #437)
* Client should not send if association rejected (#433 #434)
* Deploy error for Unity based applications on Hololens (#431 #432)
* Add method "AddOrUpdatePixelData" to the DicomDataset (#427 #430)
* Adding too many presentation contexts causes null reference exception in DicomClient.Send (#426 #429)
* Serialize to XML according to DICOM standard PS 3.19, Section A (#425)
* Invalid reference in Universal targets build file (#422 #423)
* Alpha component is zero for color images on UWP, .NET Core and Xamarin platforms (#421 #428)
* Print SCP exception due to insufficient DicomDataset.AddOrUpdate refactoring (#353 #420)
* Invalid decoding of JPEG baseline RGB images with managed JPEG codec (#417 #419)
* DicomFile.Save throwing an exception in DotNetCore for macOS (#411 #413)
* Added method GenerateUuidDerived (#408)
* Padding argument not accounted for in some IPixelData.GetMinMax implementations (#406 #414)
* Incorrect handling of padded buffer end in EvenLengthBuffer.GetByteRange (#405 #412)
* Unhandled exception after error in JPEG native decoding (#394 #399)
* DicomDataset.Get&lt;T[]&gt; on empty tag should not throw (#392 #398)
* Efilm 2.1.2 seems to send funny presentation contexts, break on PDU.read (#391 #397)
* Improved reliability in DicomClient.Send (#389 #407)
* Cannot catch exceptions while doing C-STORE if I close my network connection (#385 #390)
* Handle UN encode group lengths and missing last item delimitation tag (#378 #388)
* Invalid handling of overlay data type, description, subtype and label (#375 #382)
* Incorrect message logged when async ops are not available, but requested (#374 #381)
* Fix get object for all DicomValueElement inheritors (#367 #368)
* Handle parsing sequence items not associated with any sequence (#364 #383 #435 #436)
* System Out Of Memory Exception when saving large DICOM files (#363 #384)
* Null characters not trimmed from string values (#359 #380)
* Corrected JPEG-LS encoding and JPEG decoding for YBR images (#358 #379 #416 #418)
* Cannot override CreateCStoreReceiveStream due to private fields (#357 #386)
* DicomClient multiple C-Store request cause exception when AsyncOps is not negotiated (#356 #400)
* Enable registration of private UIDs (#355 #387)
* DICOM Parse error - Stack empty (#342)
* Invalid abort upon exception in P-Data-TF PDU processing (#341 #401)
* Sufficient image creation when Bits Allocated does not match destination type size (#340 #350)
* Some Dicom Printer refuse print requests from fo-dicom (#336)
* DicomContentItem.Children() throws exception when there are no children (#332 #333)
* Functional changes in Dataset.Add, rename of ChangeTransferSyntax (#330 #343)
* Added support for more date/time formats (#328 #352)
* Exception if Storage Commitment N-Event Report response does not contain EventID tag (#323 #329)
* ImageDisposableBase implicit destructor missing (#322 #326)
* Dicom Response Message should be sent using the same Presentation Context in the Request (#321)
* DicomDataset.Contains(DicomTag tag) matches on object, will not find private tags (#319 #351)
* Add DICOM VR Codes as constants (#315)
* DicomClient should be able to C-STORE non-Part 10 DICOM files (#306 #307)
* Incorrect dependency in fo-dicom.Universal.nuspec (#300 #301)
* GetDateTime method does not handle missing date and time tags (#299 #302)
* Print SCP sample reports exception due to missing ActionTypeID in N-ACTION response (#298 #308)
* Red and Blue bytes swapped in color images on iOS (#290 #291)
* Support creating DS Value elements from string and IByteBuffer (#288)
* Pixel Data not null-padded to even length (#284 #286)
* Merge core and platform assemblies (#280 #283)
* ChangeTransferSyntax throws an exception (J2k 16-bit -&gt; Jpeg Lossy P 4) (#277 #281)
* Merge DicomUID partial files (#268 #270)
* Wrong description for some tags (#266 #271)
* DicomFileMetaInformation overly intrusive (#265 #285)
* Type 3 property getters in DicomFileMetaInformation throw when tag not defined (#262 #264)
* Invalid DicomDateTime output format (#261 #269)
* NLog Formatted Logging Failing (#258 #260)
* .NET Core Library Build Request (#256 #294 #296 #297 #310 #311 #325 #334)
* Adaptations for fo-dicom on Unity platform (#251 #252 #253 #255 #257 #263 #287 #289 #292 #293)
* Log4net event logging config not working with AssemblyInfo.cs XMLConfigurator (#244 #248)
* Implement SOP Class Extended Negotiation (#241 #243 #304 #305)
* DicomClient.Send DicomAssociationRejectedException not working (#239 #249)
* Dicom.Platform.rd.xml file should be included as Embedded Resource (#237 #247)
* DicomIntegerString.Get&lt;T&gt;() throws for enums and non-int value types (#231 #212 #226)
* Upgrade dictionary to latest DICOM version 2016e (#229 #233 #245 #246 #317 #318 #360 #362 #372 #373)
* Deflate Transfersyntax (#227 #259)
* Use an editorconfig-file (#216 #215)
* Upgrade to Visual Studio 2015 toolset (#214 #217)
* Limited debug info for DicomDataset (#210 #211)
* Allow specifying AbstractSyntax distinct from RequestedSOPClassUID (#208 #209)
* Separate NuGet packages for all supported platforms (#206 #207 #275 #282)
* Support more date-time parser formats (#205)
* DicomDecimalString constructor fails with decimals if CurrentCulture has decimal commas (#202 #203)
* Add VR Other Long (OL) (#201 #232)
* Improved reliability in network operations (#199 #234 #312 #314 #316 #324)
* If DicomServer already running, get instance of them (#191 #250)
* Implement JSON serialization and deserialization of DICOM objects (#182 #186)
* Open and save DicomDirectory to Stream (#181 #235)
* Implement C-GET support (#180 #309)
* Exposing network infos (ip and port) in association (#173 #225 #377)
* Consider implementing DicomDataset.Clone() as "DeepClone" (#153 #313)
* Image compression/decompression for Mono and Xamarin (#128 #279 #295)
#### v2.0.2 (2/15/2016)
* "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)
#### v2.0.1 (1/22/2016)
* 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)
#### v2.0.0 (1/14/2016)
* 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)
#### v1.1.0 (8/10/2015)
* 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&lt;T&gt; 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)
#### v1.0.38 (withdrawn)
* Fix OW swap for single byte images
* Better handling of long duration and aborted connections
* Many imported extensions and bug fixes!
#### v1.0.37 (2/19/2014)
* 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
#### v1.0.36 (8/6/2013)
* 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
#### v1.0.35 (7/5/2013)
* 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
#### v1.0.34 (6/27/2013)
* 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
#### v1.0.33 (4/28/2013)
* 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
#### v1.0.32 (3/12/2013)
* 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
#### v1.0.31 (1/13/2013)
* 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
#### v1.0.30 (1/1/2013)
* Fix bug rescaling DicomImage (Mahesh Dubey)
* Add rules for matching and transforming DICOM datasets
* Miscellaneous improvements and fixes
#### v1.0.29 (12/22/2012)
* 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)
#### v1.0.28 (12/12/2012)
* 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)
#### v1.0.27 (10/30/2012)
* 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
#### v1.0.26 (10/19/2012)
* 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
#### v1.0.25 (10/18/2012)
* 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
#### v1.0.24 (10/01/2012)
* 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
#### v1.0.23 (09/26/2012)
* 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)
#### v1.0.22 (09/25/2012)
* 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&lt;&gt; 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&lt;&gt; Int32 values from US/SS elements
* Add ability to Get&lt;&gt; DicomVR and IByteBuffer from elements
* Add ability to Get&lt;&gt; 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
#### v1.0.21 (09/14/2012)
* Add connection close event and socket error handlers to DicomService
* Fix C-Store SCP example's constructor not passing logger
#### v1.0.20 (09/13/2012)
* Fix exception in DicomClient when releasing association
#### v1.0.19 (09/13/2012)
* Force passing of Logger to DicomService constructor (may be null)
#### v1.0.18 (09/13/2012)
* Print Offending Element values when outputing request to log
* Add ability to pass custom logger to DicomService based classes
#### v1.0.17 (09/12/2012)
* 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
#### v1.0.16 (09/11/2012)
* 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
#### v1.0.15 (09/06/2012)
* 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
#### v1.0.14 (09/05/2012)
* 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
#### v1.0.13 (09/04/2012)
* 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
#### v1.0.12 (08/27/2012)
* Add private dictionary to assembly
* Fix parsing errors when reading private dictionaries
* Fix reading of private tags
* Miscellaneous enhancements
#### v1.0.11 (08/23/2012)
* Accept unknown transfer syntaxes
* Add ability to write DICOM dataset to string
#### v1.0.10 (08/13/2012)
* 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
#### v1.0.9 (08/02/2012)
* 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
#### v1.0.7 (07/26/2012)
* 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
#### v1.0.6 (07/24/2012)
* Don't throw exception for invalid UID characters
* Allow casting of OB & UN elements to value types
#### v1.0.5 (07/22/2012)
* Bug fixes
* DICOM Dump example project
#### v1.0.4 (07/18/2012)
* 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
#### v1.0.3 (07/11/2012)
* Fix parsing of explicit length sequences
#### v1.0.2 (07/07/2012)
* 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
#### v1.0.1 (06/22/2012)
* Initial public release