pynetdicom._handlers.doc_handle_move¶
- 
pynetdicom._handlers.doc_handle_move(event, *args)[source]¶
- Documentation for handlers bound to - evt.EVT_C_MOVE.- User implementation of this event handler is required if one or more services that use C-MOVE are to be supported. If a handler is not implemented and bound to - evt.EVT_C_MOVEthen the C-MOVE request will be responded to using a Status value of- 0xC511- Failure.- The first yield should be the - (addr, port)of the move destination, however you may instead yield- (addr, port, kwargs), where- kwargsis a- dictcontaining keyword parameters that will be passed to- AE.associate(). This allows you to customise the presentation contexts requested by the association with the Storage SCP via the contexts keyword parameter.- The second yield should be the number of required C-STORE sub-operations as an - int, and the remaining yields the- (status, dataset)pairs.- Matching SOP Instances will be sent to the move destination Storage SCP over a new association. If the move destination is unknown then the SCP will send a response with a ‘Failure’ status of - 0xA801‘Move Destination Unknown’.- Changed in version 1.5: Added the ability to yield either - (addr, port)or- (addr, port, kwargs)- Event - evt.EVT_C_MOVE- Supported Service Classes - Status - Success
- 0x0000- Sub-operations complete, no failures
- Pending
- 0xFF00- Sub-operations are continuing
- Cancel
- 0xFE00- Sub-operations terminated due to Cancel indication
- Failure
- 0x0122- SOP class not supported- 0x0124- Not authorised- 0x0210- Duplicate invocation- 0x0211- Unrecognised operation- 0x0212- Mistyped argument- 0xA701- Out of resources: unable to calculate number of matches- 0xA702- Out of resources: unable to perform sub-operations- 0xA801- Move destination unknown- 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- 0xC000to- 0xCFFF- Unable to process
 - Parameters
- event (events.Event) – - The event representing a service class receiving a C-MOVE request message. - Eventattributes are:- assoc: the- Associationthat is running the service that received the C-MOVE request.
- context: the presentation context the request was sent under as a- PresentationContextTuple.
- event: the event that occurred as- InterventionEvent.
- request: the received- C-MOVE request
- timestamp: the date and time that the C-MOVE request was processed by the service as- datetime.datetime.
 - Eventproperties are:- identifier: the decoded- Datasetcontained within the C-MOVE request’s Identifier parameter. Because pydicom uses a deferred read when decoding data, if the decode fails the returned- Datasetwill only raise an exception at the time of use.
- is_cancelled: returns- Trueif a C-CANCEL request has been received,- Falseotherwise. If a C-CANCEL is received then the handler should yield a- (0xFE00, None)status/dataset pair and- return.
- message_id: the C-MOVE request’s Message ID as- int.
- move_destination: the C-MOVE request’s Move Destination value as- bytes.
 
- args – If the handler was bound to the event using - bind(event, handler, args)or by passing- evt_handlers=[(event, handler, args), ...], where args is a- listthen there will be one or more optional extra parameters matching the contents of args.
 
- Yields
- addr, port or addr, port, kwargs (str, int, (dict) or None, None, (None)) – The first yield should be the (TCP/IP address, port number) of the destination AE (if known) or - (None, None)if unknown. If- (None, None)is yielded then the SCP will send a C-MOVE response with a ‘Failure’ Status of- 0xA801(move destination unknown), in which case nothing more needs to be yielded. You may instead yield- (addr, port, kwargs), where- kwargsis a- dictcontaining keyword parameters to pass to- AE.associate()when the new association with the Storage SCP is initiated.
- int – The second yield should be the number of C-STORE sub-operations required to complete the C-MOVE 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-MOVE response. Must be a valid C-MOVE status value for the applicable Service Class as either an - intor a- Datasetcontaining (at a minimum) a (0000,0900) Status element. If returning a- Datasetthen 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 is ‘Pending’ then yield the - Datasetto send to the peer via a C-STORE sub-operation over a new association.- If the status is ‘Failed’, ‘Warning’ or ‘Cancel’ then yield a - Datasetwith a (0008,0058) Failed SOP Instance UID List element containing the list of the C-STORE sub-operation SOP Instance UIDs for which the C-MOVE operation has failed.- If the status is ‘Success’ then yield - None, although yielding a final ‘Success’ status is not required and will be ignored if necessary.
 
 - See also - send_c_move(),- C_MOVE,- QueryRetrieveServiceClass,- HangingProtocolQueryRetrieveServiceClass,- DefinedProcedureProtocolQueryRetrieveServiceClass,- ColorPaletteQueryRetrieveServiceClass,- ImplantTemplateQueryRetrieveServiceClass,- ProtocolApprovalQueryRetrieveServiceClass- References