pynetdicom._handlers.doc_handle_store(event: Event, *args: Sequence[Any]) Union[int, Dataset][source]

Documentation for handlers bound to evt.EVT_C_STORE.

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

If the user is storing the dataset in the DICOM File Format then they are responsible for adding the File Meta Information.



Supported Service Classes


0x0000 - Success
0xB000 - Coercion of data elements
0xB006 - Elements discarded
0xB007 - Dataset does not match SOP class
0x0117 - Invalid SOP instance
0x0122 - SOP class not supported
0x0124 - Not authorised
0x0210 - Duplicate invocation
0x0211 - Unrecognised operation
0x0212 - Mistyped argument
0xA700 to 0xA7FF - Out of resources
0xA900 to 0xA9FF - Dataset does not match SOP class
0xC000 to 0xCFFF - Cannot understand
  • event (events.Event) –

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

    Event properties are:

    • dataset: the decoded Dataset contained within the C-STORE request’s Data Set 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.

    • dataset_path: when STORE_RECV_CHUNKED_DATASET is True, this is the path to the received dataset as pathlib.Path.

    • file_meta: a Dataset containing DICOM conformant File Meta Information that can be used with the decoded dataset when saving to file: event.dataset.file_meta = event.file_meta.

    • message_id: the C-STORE request’s Message ID as int.

  • 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 list then there will be one or more optional extra parameters matching the contents of args.


status – The status returned to the requesting AE in the C-STORE response. Must be a valid C-STORE 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 the DICOM Standard, Part 7, Annex C).

Return type

pydicom.dataset.Dataset or int


NotImplementedError – If the handler has not been implemented and bound to evt.EVT_C_STORE by the user.