Dimse.Scu.Store (Dimse v0.8.7)

Copy Markdown View Source

C-STORE SCU — DICOM Storage Service Class User.

Sends a C-STORE-RQ to a remote SCP to store a DICOM instance, equivalent to DCMTK's storescu or dcm4che's storescu.

Usage

{:ok, assoc} = Dimse.Scu.open("192.168.1.10", 11112,
  calling_ae: "MY_SCU",
  called_ae: "REMOTE_SCP",
  abstract_syntaxes: ["1.2.840.10008.5.1.4.1.1.2"]  # CT Image Storage
)

:ok = Dimse.Scu.Store.send(assoc, sop_class_uid, sop_instance_uid, data_set)

DICOM Reference

  • PS3.7 Section 9.1.1 (C-STORE Service)
  • PS3.4 Annex B (Storage Service Class)

Summary

Functions

Sends a C-STORE-RQ with the given data set and waits for C-STORE-RSP.

Functions

send(assoc, sop_class_uid, sop_instance_uid, data, opts \\ [])

@spec send(pid(), String.t(), String.t(), binary(), keyword()) ::
  :ok | {:error, term()}

Sends a C-STORE-RQ with the given data set and waits for C-STORE-RSP.

Parameters

  • assoc — association pid from Dimse.Scu.open/3
  • sop_class_uid — SOP Class UID of the instance (e.g., CT Image Storage)
  • sop_instance_uid — SOP Instance UID uniquely identifying the instance
  • data — encoded data set binary

Options

  • :priority — request priority (default: 0x0000 medium)
  • :move_originator_ae — AE title of the C-MOVE originator
  • :move_originator_message_id — message ID from the C-MOVE request
  • :timeout — response timeout in ms (default: 30_000)

Returns :ok if the response status is Success (0x0000), {:error, {:status, code}} for non-success DIMSE status, {:error, reason} for transport or protocol errors.