1.2.0¶
Fixes¶
- Fixed
network_timeoutnot working when acting as the association requestor and an A-ABORT not being sent when the timeout expired. (#286) - Fixed changing
network_timeoutvalue not propagating to the actual timer. - All DIMSE service requests should now properly abort the association if no response is received within the DIMSE timeout window and return/yield expected values. (#119)
- Any outgoing primitives are now sent to the peer before incoming PDUs are processed (#120)
- Fixed not setting requestor presentation context roles to False when only one role is specified during Role Selection negotiation. (#293)
Enhancements¶
- Added
_configmodule and the ability to skip the dataset decoding step in C-STORE operations by setting_config.DECODE_STORE_DATASETSto False (#282) - Consolidated and improved the robustness of the transport related code
(#42):
- Added
transportmodule - Added
AssociationSocketclass that wraps a clientsocket.socketto provide integration with the Association state machine. In particular all receive and send operations should emit state machine event ‘Evt17’ when the connection is closed. (#204) - Added
AssociationServer, andThreadedAssociationServerclasses to provide association acceptor services. fsm.AE_1is now properly implemented and state machine event ‘Evt2’ is now emitted in a non-trivial manner.- Added
AE.start_server()which allows operation in both blocking and non-blocking modes. - Added
AE.shutdown()which allows the user to shutdown all non-blocking association servers that may be running. - Support for TLS added via the
tls_argskeyword parameter forAE.associate()andssl_contextkeyword parameter forAE.start_server()(#175, #71) - It should now be possible to both request a C-MOVE operation and act as the destination for the request’s C-STORE sub-operations over a new association within the same AE instance by running a non-blocking Storage SCP. (#5, #181)
- Added
- Received P-DATA primitives are now processed when received rather than when processing is requested.
- Added
DIMSEServiceProvider.get_msg(),DIMSEServiceProvider.receive_primitive(),DIMSEServiceProvider.peek_msg()andDIMSEServiceProvider.msg_queueto be used with the new P-DATA processing. - Time required to start an association improved significantly.
- Implemented C-CANCEL support
- Added
ServiceClass.is_cancelled()method to allow checking whether a C-CANCEL message corresponding to a message ID value has been received. - Added ‘cancelled’ key to the
infoparameter passed toAE.on_c_get(),AE.on_c_find()andAE.on_c_move(). The corresponding value is a callable function (is_cancelled()) that takes a Message ID value and and returns True if a C-CANCEL message with a corresponding Message ID Being Responded To value has been received.
- Added
- Added thread names (‘threadtype@timestamp’).
- Added
build_role()to simplify creating SCP/SCU Role Selection Negotiation items.
Changes¶
AE.quit(),DIMSEMessage.ID,ACSE.is_released()andACSE.release_association()removed as per planned deprecation.AE.start()is deprecated and will be removed in v1.3, useAE.start_server()instead.AE.stop()is deprecated and will be removed in v1.3, useAE.shutdown()instead.- The
AE.portproperty andportargument forAE()are deprecated and will be removed in v1.3. Use theaddressparameter forAE.start_server()and thebind_addresskeyword parameter forAE.associate()instead. - The
AE.local_socketattribute is deprecated and will be removed in v1.3. - The
AE.addressattribute is deprecated and will be removed in v1.3. - The
AE.bind_addrattribute is deprecated and will be removed in v1.3. Use theaddressparameter forAE.start_server()and thebind_addresskeyword parameter forAE.associate()instead. - Changed the default DIMSE timeout to 30 s.
- Changed the default number of maximum associations to 10.
- The
acse_timeoutparameter toACSE()andACSE.acse_timeoutattribute removed, theAssociation.acse_timeoutvalue is used instead. AE.active_associationschanged from an attribute to a property and returns a list of all the AE’s active Association threads.AE.associate()is now synchronous until association negotiation has completed or the connection closed (#108).- Removed
DIMSEServiceProvider.receive_msg(). Association.send_c_cancel_get(),send_c_cancel_find()andsend_c_cancel_move()are deprecated and will be removed in v1.3. UseAssociation.send_c_cancel()instead.- Removed
AE.on_c_get_cancel(),AE.on_c_find_cancel(),AE.on_c_move_cancel().