2.0.0¶
The major breaking changes with the version 2.0 release are:
Python 2 is no longer supported
SOP class variable names now use their new DICOM UID keywords (for example, VerificationSOPClass becomes simply Verification)
AE title values should be
str
rather thanbytes
and trailing padding spaces are stripped from the raw value during decoding.
Fixes¶
Fixed not processing multiple PDUs received when acting as the association requestor with SSL/TLS (#528)
Fixed not using the correct Move Originator Message ID when sending C-STORE-RQs when acting as a Move SCP (#541)
Fixed C-FIND, C-GET and C-MOVE SCPs sending the previous pending Identifier with the final success response (#571)
Fixed Composite Instance Retrieve Without Bulk Data Get SCPs not removing Overlay Data, Audio Sample Data and Curve Data bulk data elements (#608)
Fixed not sending a failure response if all C-GET or C-MOVE sub-operations failed when acting as an Query/Retrieve SCP (#577)
Fixed
ServiceUser.requested_contexts
andServiceUser.supported_contexts
not returning the expected contexts (#636)Fixed a memory leak when running
AssociationServer
due to old Association threads not being garbage collected (#669)Fixed an exception in the state machine during association negotiation as the acceptor when an A-ABORT-RQ PDU is received before the initial A-ASSOCIATE-RQ has been processed (#721)
Fixed network timeouts not working as expected on Windows (#653)
Enhancements¶
Added the ability to pass a file path to a dataset to
send_c_store()
(#517)Allow parsing of DIMSE command sets that contain elements with non-conformant VMs (#554)
Added a check when acting as a QR SCP that returns from the event handler if the association is aborted or released (#592)
Added
AE.connection_timeout
(#616)Updated to meet the 2021e version of the DICOM Standard
Added type hints
Handle non-conformant A-ASSOCIATE (RJ) ‘Result’, ‘Source’ and ‘Diagnostic’ values during ACSE negotiation (#633)
Added query_model keyword parameter to
send_c_cancel()
to make sending a C-CANCEL request easier (#535)Added the following configuration options:
CODECS
to allow customising the codecs used when decoding text-like PDU parameters (#611)VALIDATORS
to allow customising the validation performed on UIDs and AE titles (#515, #549)WINDOWS_TIMER_RESOLUTION
to allow customisation of the timer resolution used when running on Windows (#620)PASS_CONTEXTVARS
to allow user code to define contextual behaviorSTORE_SEND_CHUNKED_DATASET
to allow the use of a chunked read when a file path is passed tosend_c_store()
in order to reduce the memory needed for sending datasets (#517)STORE_RECV_CHUNKED_DATASET
to allow storing received C-STORE datasets directly to file, reducing the memory needed when receiving datasets (#517)UNRESTRICTED_STORAGE_SERVICE
to allow the use of the AE as an unrestricted Storage SCP (#505)
The DUL reactor should be more performant when processing multiple successive events (#651)
Added
Association.network_timeout_response
to allow normal association release on network timeout expiry rather than an abort (#619)
Changes¶
Removed support for Python 2.7, 3.5 and 3.6, added it for Python 3.9 and 3.10
Minimum pydicom version is 2.2
The Failed SOP Instance UID List sent with the final C-GET/C-MOVE SCP failure or warning responses no longer includes the SOP Instance UIDs for sub-operations that return a warning status
SOP Class and Instance variable names changed to match the new UID keywords from the DICOM Standard. In particular
VerificationSOPClass
is now simplyVerification
All AE titles and DIMSE elements with a VR of AE should be set using an ASCII
str
rather thanbytes
The default bind address used when making association requests has been changed to
("127.0.0.1", 0)
(#680)DULServiceProvider.primitive
andDULServiceProvider.pdu
have been removedAssociationSocket.connect
now takes aT_CONNECT
primitive