1.5.0#
This will be the last release that supports Python 2, with fixes for serious bugs being available for a year after the release date.
Fixes#
Fixed the
AssociationServernot properly closing its sockets (#382)Improved the robustness of determining the local IP address (#394)
Fixed not being able to set an Implementation Version Name of length 1 (#414)
Changed
ImplantationPlanSRDocumentStoragetoImplantationPlanSRStorageto match the name from Part 6 of the DICOM Standard rather than Part 4.Stopped the QR Move SCP from associating with the move destination when no sub-operations were required (#436)
Fixed a possible race condition during DIMSE message exchange (#435)
Fixed the association acceptor selecting the first matching proposed transfer syntax rather than the first matching supported transfer syntax during presentation context negotiation (#445)
Fixed incorrect Pending status value for Modality Worklist (#462)
Fixed an
InvalidEventErrordue to two A-ABORT messages being sent. Issue is triggered when the DIMSE and network timeouts have the same value and both expire while sending a DIMSE request. (#460)Fixed datasets encoding using Deflated Explicit VR Little Endian not transferring correctly (#482)
Enhancements#
Added configuration option
_config.USE_SHORT_DIMSE_AETso elements with a VR of AE in DIMSE messages are no longer padded to the maximum 16 characters. (#403)When acting as the association Acceptor check that the user hasn’t sent an A-ABORT or A-ASSOCIATE-RJ before attempting association negotiation (#408)
Added
message_idtoEventfor use when receiving a DIMSE service requestAdded the well-known SOP Instances for the supported service classes to
sop_class.Added support for the DIMSE intervention event handlers aborting or releasing the association during service class operation.
Add new SOP classes up to 2019e version of the standard (#424)
Added
AllStoragePresentationContextswhich contains all of the Storage Service Class’ SOP Class UIDs rather than just the first 128 as inStoragePresentationContexts.Updates and additions to the applications:
Apps can now be invoked from the command line with
python -m pynetdicom [appname] [options], e.g.python -m pynetdicom echoscu 127.0.0.1 11112 -dAdded ability to pass optional extra arguments to event handlers by using
(evt.EVT_NAME, handler, ['list', 'of', 'args'])(#447)Added
AE.make_server()(#453)Added request_handler keyword parameter to
AssociationServer(#453)Added hook in
AEfor creatingAssociationSocketobjects (#455)Added a customisable
Statusconvenience class for comparing, returning and yielding status values (#454)Added hook in
RequestHandlerfor creatingAssociationobjects (#455)Prefer an exact match when selecting a valid presentation context over a convertible one (#472)
Added configuration options
_config.LOG_REQUEST_IDENTIFIERSand_config.LOG_RESPONSE_IDENTIFIERSfor controlling whether or not the contents of C-FIND, C-GET and C-MOVE request and response Identifier datasets are loggedAdded
pretty_dataset()andpretty_element()functions for producing pretty string output from datasets and elementsWhen handling
evt.EVT_C_MOVE, thehandler functionmay optionally yield(addr, port, kwargs)as its first yield, wherekwargsis adictcontaining keyword parameters that will be passed toAE.associate()when the association with the Storage SCP is initiated.
Changes#
Using a key that corresponds to a given UID with
Association.send_c_find(),Association.send_c_get()andAssociation.send_c_move()removed as per planned deprecation. Use the UID directly instead.Support for Python 2 is deprecated and will be removed starting in version 2.0.
Python 3.4 is no longer supported, Python 3.7 and 3.8 are now officially supported
If an A-ABORT is received while waiting for a DIMSE message the
Association.send_*methods will now return immediately rather than waiting for the DIMSE timeout. (#430)Added abort_type keyword parameter to
ACSE.is_aborted()Added args keyword parameter to
Association.bind()andAssociationServer.bind()Association.get_handlers()andAssociationServer.get_handlers()now return a 2-tuple or list of 2-tuples.encode_element()is deprecated and will be removed in version 2.0Deflated Explicit VR Little Endian added to
DEFAULT_TRANSFER_SYNTAXES
Known Issues#
TLS v1.3 (with OpenSSL 1.1.1 or higher) is not currently supported (#364)