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 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 pydicom.uid.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.