38 KiB
38 KiB
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