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
AssociationServer
not 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
ImplantationPlanSRDocumentStorage
toImplantationPlanSRStorage
to 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
InvalidEventError
due 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_AET
so 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_id
toEvent
for 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
AllStoragePresentationContexts
which 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 -d
Added 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
AE
for creatingAssociationSocket
objects (#455)Added a customisable
Status
convenience class for comparing, returning and yielding status values (#454)Added hook in
RequestHandler
for creatingAssociation
objects (#455)Prefer an exact match when selecting a valid presentation context over a convertible one (#472)
Added configuration options
_config.LOG_REQUEST_IDENTIFIERS
and_config.LOG_RESPONSE_IDENTIFIERS
for 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 function
may optionally yield(addr, port, kwargs)
as its first yield, wherekwargs
is adict
containing 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)