pynetdicom.dul.DULServiceProvider

class pynetdicom.dul.DULServiceProvider(assoc: Association)[source]

The DICOM Upper Layer Service Provider.

artim_timer

The ARTIM timer.

Type:

timer.Timer

socket

A wrapped socket object used to communicate with the peer.

Type:

transport.AssociationSocket

to_provider_queue

Queue of primitives received from the peer to be processed by the service user.

Type:

queue.Queue

to_user_queue

Queue of processed PDUs for the DUL service user.

Type:

queue.Queue

event_queue

List of queued events to be processed by the state machine.

Type:

queue.Queue

state_machine

The DICOM Upper Layer’s State Machine.

Type:

fsm.StateMachine

__init__(assoc: Association) None[source]

Create a new DUL service provider for assoc.

Parameters:

assoc (association.Association) – The DUL’s parent Association instance.

Methods

__init__(assoc)

Create a new DUL service provider for assoc.

getName()

Return a string used for identification purposes only.

idle_timer_expired()

Return True if the network idle timer has expired.

isDaemon()

Return whether this thread is a daemon.

is_alive()

Return whether the thread is alive.

join([timeout])

Wait until the thread terminates.

kill_dul()

Kill the DUL reactor and stop the thread

peek_next_pdu()

Check the next PDU to be processed.

receive_pdu([wait, timeout])

Return an item from the queue if one is available.

run()

Method representing the thread's activity.

run_reactor()

Run the DUL reactor.

send_pdu(primitive)

Place a primitive in the provider queue to be sent to the peer.

setDaemon(daemonic)

Set whether this thread is a daemon.

setName(name)

Set the name string for this thread.

start()

Start the thread's activity.

stop_dul()

Stop the reactor if current state is 'Sta1'

Attributes

assoc

Return the parent Association.

daemon

A boolean value indicating whether this thread is a daemon thread.

ident

Thread identifier of this thread or None if it has not been started.

name

A string used for identification purposes only.

native_id

Native integral thread ID of this thread, or None if it has not been started.

network_timeout

Return the network timeout (in seconds).

property assoc: Association

Return the parent Association.

idle_timer_expired() bool[source]

Return True if the network idle timer has expired.

kill_dul() None[source]

Kill the DUL reactor and stop the thread

property network_timeout: float | None

Return the network timeout (in seconds).

peek_next_pdu() A_ASSOCIATE | A_RELEASE | A_ABORT | A_P_ABORT | P_DATA | None[source]

Check the next PDU to be processed.

receive_pdu(wait: bool = False, timeout: float | None = None) A_ASSOCIATE | A_RELEASE | A_ABORT | A_P_ABORT | P_DATA | None[source]

Return an item from the queue if one is available.

Get the next service primitive to be processed out of the queue of items sent from the DUL service provider to the service user

Parameters:
  • wait (bool, optional) – If wait is True and timeout is None, blocks until an item is available. If timeout is a positive number, blocks at most timeout seconds. Otherwise returns an item if one is immediately available.

  • timeout (int or None) – See the definition of wait

Returns:

The next primitive in the to_user_queue, or None if the queue is empty.

Return type:

Optional[Union[A_ASSOCIATE, A_RELEASE, A_ABORT, A_P_ABORT]]

run_reactor() None[source]

Run the DUL reactor.

The main threading.Thread run loop. Runs constantly, checking the connection for incoming data. When incoming data is received it categorises it and add its to the to_user_queue.

send_pdu(primitive: A_ASSOCIATE | A_RELEASE | A_ABORT | A_P_ABORT | P_DATA) None[source]

Place a primitive in the provider queue to be sent to the peer.

Primitives are converted to the corresponding PDU and encoded before sending.

Parameters:

primitive (pdu_primitives.PDU sub-class) –

A service primitive, one of:

stop_dul() bool[source]

Stop the reactor if current state is 'Sta1'

Returns:

True if 'Sta1' and the reactor has stopped, False otherwise

Return type:

bool