1.4.0

Fixes

  • Fixed Query Retrieve service class not responded with 0x0000 (Success) if no matches were yielded by the C-FIND request handler.
  • Fixed association being aborted due to failure to decode a rejected presentation context when the transfer syntax value is empty (#342)
  • Checkpoint added to the reactor in Association to prevent possible race conditions:
    • When acting as the Acceptor and calling one of the Association.send_*() methods.
    • During an A-RELEASE collision.

Enhancements

  • Added Event.move_destination (for evt.EVT_C_MOVE), Event.action_type (for evt.EVT_N_ACTION), Event.event_type (for evt.EVT_N_EVENT_REPORT) and Event.event properties (#353)
  • Added meta_uid keyword parameters to the Association.send_n_*() methods to allow the use of Meta SOP Classes (such as those used in the Print Management service class)
  • Added Basic Grayscale Print Management Meta SOP Class and Basic Color Print Management Meta SOP Class to sop_class.
  • Added support for the following service classes:
    • Protocol Approval Query Retrieve (#327)
    • Application Event Logging
    • Instance Availability Notification
    • Media Creation Management
    • Print Management
    • Unified Procedure Step
    • RT Machine Verification
    • Storage Commitment
  • Added handling of non-conformant Presentation Context AC (reject) PDUs which contain no Transfer Syntax Sub-item (#361)
  • ae_title and contexts keyword arguments added to AE.start_server()
  • Invalid (0000,1030) Move Originator Application Entity Title values received in C-STORE service requests are now logged and ignored rather than raising an exception and aborting the association.
  • Improved handling of DIMSE service messages with empty element values.
  • Added handling for DIMSE service requests when acting as the association Requestor

Changes

  • The following have been removed as per planned deprecation:
    • AE.on_c_store(), AE.on_c_echo(), AE.on_c_find(), AE.on_c_get(), AE.on_c_move(), AE.on_n_get(), AE.on_async_ops_window(), AE.on_sop_class_common_extended(), AE.on_sop_class_extended(), AE.on_user_identity(), AE.on_association_accepted(), AE.on_association_rejected(), AE.on_association_released(), AE.on_association_aborted(),
    • _config.DECODE_STORE_DATASETS
    • DIMSEServiceProvider.on_send_dimse_message(), DIMSEServiceProvider.on_receive_dimse_message()
  • Association.send_c_find(), Association.send_c_get() and Association.send_c_move() now require a query_model parameter that is used to set the Affected SOP Class UID value. The parameter should pass a pydicom UID or UID string. Passing a key that corresponds to a given UID is deprecated and will be removed in v1.5. (#348)
  • Event.name and Event.description properties removed, use Event.event.name and Event.event.description instead.