1.0.0

Fixes

  • Fixed upstream pydicom changes to AE elements breaking logging (#195)
  • Fixed typos in SOP class names, fix bad UID
  • Fixed SCP/SCU Role Negotiation requiring both SCP and SCU role values to be set (as association requestor)
  • Starting with v1.0.0, versioning should be consistent

Changes

  • applicationentity module renamed ae
  • ApplicationEntity interface updated
    • Removed the following: AE.scu_supported_sop, AE.scp_supported_sop, AE.transfer_syntax, AE.presentation_contexts_scu, AE.presentation_contexts_scp.
    • scu_sop_class, scp_sop_class, transfer_syntax and bind_addr arguments removed from AE initialisation.
    • Added AE.bind_addr attribute to allow the user to specify the network adapter.
    • Added AE.add_supported_context(), AE.supported_contexts, AE.remove_supported_context() for adding and removing the presentation contexts supported as an SCP.
    • Added AE.add_requested_context(), AE.requested_contexts, AE.remove_requested_context() for adding and removing the presentation contexts requested as an SCU.
  • Removed VerificationSOPClass, StorageSOPClassList and QueryRetrieveSOPClassList.
  • Added VerificationPresentationContexts, StoragePresentationContexts, QueryRetrievePresentationContexts and BasicWorklistManagmentPresentationContexts to replace them
  • Added service_class module and moved the service class implementations from sop_class to service_class.
  • The three Query/Retrieve service class implementations (Find, Get, Move) have been consolidated into one.
  • BasicWorklistManagementServiceClass reimplemented separately from QR.
  • SOPClass class added to sop_class module and all SOP Class objects now inherit from it rather than the corresponding service class.
  • utils.PresentationContextManager removed
  • MaximumLengthNegotiation changed to MaximumLengthNotification
  • ImplementationClassUIDNegotiation changed to ImplementationClassUIDNotification
  • ImplementationVersionNameNegotiation changed to ImplementationVersioNameNotification
  • Simplified service_class.ServiceClass interface
  • ACSE refactored to do more of the association negotiation work and to operate independently of the Association instance.
    • Added send_abort, send_ap_abort, send_reject, send_release send_request, send_accept methods
    • Added negotiate_association method
    • Added release_association method
  • Added association.ServiceUser class
  • Association refactored to do less association negotiation work and to operate independently of the ACSE instance.
    • Added Association.requestor and Association.acceptor attributes which are ServiceUser instances that track the association requestor and acceptor.
  • Project named changed from pynetdicom3 to pynetdicom

Enhancements

  • Add context and info parameters to on_c_* callbacks (#45, #54, #65, #106)
  • Added contribution, issue and PR guides (#66)
  • Added PEP8 conformant PYNETDICOM_IMPLEMENTATION_VERSION and PYNETDICOM_IMPLEMENTATION_UID variables. The old ones will be removed in v1.0
  • Added AE.implementation_version_name and AE.implementation_class_uid attributes so user’s can specify the values used during association negotiation.
  • Allow per-association presentation context requests (SCU)
  • Allow more than 128 supported presentation contexts (SCP)
  • Documentation added: user guide, examples, API reference (#1, #45, #49, #50)
  • Add support for QR Instance and Frame Level Retrieve
  • Add support for QR Composite Instance Root Retrieval
  • Add support for the Relevant Patient Information Query service
  • Add support for the Hanging Protocol QR service
  • Add support for the Substance Administration Query service
  • Add support for the Color Palette QR service
  • Add support for the Implant Template QR service
  • Add support for the Non-Patient Information Storage service
  • Add support for the Defined Procedure Protocol QR service
  • Add support for the Display System Management service
  • Add support for N-GET, N-SET, N-EVENT-REPORT, N-DELETE, N-ACTION, N-CREATE as SCU.
  • Add full support for SCP/SCU Role Selection Negotiation
  • Add support for SOP Class Extended Negotiation
  • Add support for Asynchronous Operations Window Negotiation, however pynetdicom does not support asynchronous operations.
  • Add support for User Identity Negotiation
  • Add support for SOP Class Common Extended Negotiation
  • Non-conformant (null trailing padded) UIDs in A-ASSOCIATE messages are now handled