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 client- socket.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, and- ThreadedAssociationServerclasses 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 for- AE.associate()and- ssl_contextkeyword parameter for- AE.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) 
 
- 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()and- DIMSEServiceProvider.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 to- AE.on_c_get(),- AE.on_c_find()and- AE.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 thread names (‘threadtype@timestamp’). 
- Added - build_role()to simplify creating SCP/SCU Role Selection Negotiation items.
Changes¶
- AE.quit(),- DIMSEMessage.ID,- ACSE.is_released()and- ACSE.release_association()removed as per planned deprecation.
- AE.start()is deprecated and will be removed in v1.3, use- AE.start_server()instead.
- AE.stop()is deprecated and will be removed in v1.3, use- AE.shutdown()instead.
- The - AE.portproperty and- portargument for- AE()are deprecated and will be removed in v1.3. Use the- addressparameter for- AE.start_server()and the- bind_addresskeyword parameter for- AE.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 the- addressparameter for- AE.start_server()and the- bind_addresskeyword parameter for- AE.associate()instead.
- Changed the default DIMSE timeout to 30 s. 
- Changed the default number of maximum associations to 10. 
- The - acse_timeoutparameter to- ACSE()and- ACSE.acse_timeoutattribute removed, the- Association.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()and- send_c_cancel_move()are deprecated and will be removed in v1.3. Use- Association.send_c_cancel()instead.
- Removed - AE.on_c_get_cancel(),- AE.on_c_find_cancel(),- AE.on_c_move_cancel().