pynetdicom._handlers.doc_handle_c_get

pynetdicom._handlers.doc_handle_c_get(event)[source][source]

Documentation for handlers bound to evt.EVT_C_GET.

User implementation of this event handler is required if one or more services that use C-GET are to be supported. If a handler is not implemented and bound to evt.EVT_C_GET then the C-GET request will be responded to using a Status value of 0xC411 - Failure.

Yields an int containing the total number of C-STORE sub-operations, then yields (status, dataset) pairs.

Event

evt.EVT_C_GET

Supported Service Classes

  • Query/Retrieve Service Class

  • Hanging Protocol Query/Retrieve Service

  • Defined Procedure Protocol Query/Retrieve Service

  • Color Palette Query/Retrieve Service

  • Implant Template Query/Retrieve Service

Status

Success
0x0000 Sub-operations complete, no failures or warnings
Failure
0xA701 Out of resources: unable to calculate the number of matches
0xA702 Out of resources: unable to perform sub-operations
0xA900 Identifier does not match SOP class
0xAA00 None of the frames requested were found in the SOP instance
0xAA01 Unable to create new object for this SOP class
0xAA02 Unable to extract frames
0xAA03 Time-based request received for a non-time-based original SOP Instance
0xAA04 Invalid request
0xC000 to 0xCFFF Unable to process
Cancel
0xFE00 Sub-operations terminated due to Cancel request
Warning
0xB000 Sub-operations complete, one or more failures or warnings
Pending
0xFF00 Matches are continuing - Current Match is supplied and any Optional Keys were supported in the same manner as Required Keys
Parameters

event (events.Event) –

The event representing a service class receiving a C-GET request message. Event attributes are:

  • assoc : the association that is running the service that received the C-GET request.

  • context : the presentation context the request was sent under as a presentation.PresentationContextTuple.

  • description : a description of the event that occurred as str.

  • name : the name of the event that occurred as str.

  • request : the received C-GET request

  • timestamp : the date and time that the C-GET request was processed by the service.

Event properties are:

  • identifier : the decoded Dataset contained within the C-GET request’s Identifier parameter. Because pydicom uses a deferred read when decoding data, if the decode fails the returned Dataset will only raise an exception at the time of use.

  • is_cancelled : returns True if a C-CANCEL request has been received, False otherwise. If a C-CANCEL is received then the handler should yield (0xFE00, None) and return.

Yields
  • int – The first yielded value should be the total number of C-STORE sub-operations necessary to complete the C-GET operation. In other words, this is the number of matching SOP Instances to be sent to the peer.

  • status (pydicom.dataset.Dataset or int) – The status returned to the peer AE in the C-GET response. Must be a valid C-GET status value for the applicable Service Class as either an int or a Dataset object containing (at a minimum) a (0000,0900) Status element. If returning a Dataset object then it may also contain optional elements related to the Status (as in DICOM Standard Part 7, Annex C).

  • dataset (pydicom.dataset.Dataset or None) – If the status category is ‘Pending’ then yield the Dataset to send to the peer via a C-STORE sub-operation over the current association.

    If the status category is ‘Failed’, ‘Warning’ or ‘Cancel’ then yield a Dataset with a (0008,0058) Failed SOP Instance UID List element containing a list of the C-STORE sub-operation SOP Instance UIDs for which the C-GET operation has failed.

    If the status category is ‘Success’ then yield None, although yielding a final ‘Success’ status is not required and will be ignored if necessary.

References