pynetdicom.dul.DULServiceProvider

class pynetdicom.dul.DULServiceProvider(assoc)

The DICOM Upper Layer Service Provider.

artim_timer

The ARTIM timer

Type

timer.Timer

socket

A wrapped socket.socket object used to communicate with the peer.

Type

transport.AssociationSocket

to_provider_queue

Queue of PDUs from the DUL service user to be processed by the DUL provider

Type

queue.Queue

to_user_queue

Queue of primitives from the DUL service to be processed by the DUL 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)
Parameters

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

Methods

__init__(assoc)

param assoc

The DUL’s parent Association instance.

getName()

idle_timer_expired()

Checks if the idle timer has expired

isAlive()

Return whether the thread is alive.

isDaemon()

is_alive()

Return whether the thread is alive.

join([timeout])

Wait until the thread terminates.

kill_dul()

Immediately interrupts 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()

The main threading.Thread run loop.

send_pdu(primitive)

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

setDaemon(daemonic)

setName(name)

start()

Start the thread’s activity.

stop_dul()

Interrupts the thread if state is “Sta1”

Attributes

assoc

Return the Association we are providing DUL services for.

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.

network_timeout

Return the network_timeout.

property assoc

Return the Association we are providing DUL services for.

property daemon

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

This must be set before start() is called, otherwise RuntimeError is raised. Its initial value is inherited from the creating thread; the main thread is not a daemon thread and therefore all threads created in the main thread default to daemon = False.

The entire Python program exits when no alive non-daemon threads are left.

property ident

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

This is a nonzero integer. See the get_ident() function. Thread identifiers may be recycled when a thread exits and another thread is created. The identifier is available even after the thread has exited.

idle_timer_expired()

Checks if the idle timer has expired

Returns

True if the idle timer has expired, False otherwise.

Return type

bool

isAlive()

Return whether the thread is alive.

This method is deprecated, use is_alive() instead.

is_alive()

Return whether the thread is alive.

This method returns True just before the run() method starts until just after the run() method terminates. The module function enumerate() returns a list of all alive threads.

join(timeout=None)

Wait until the thread terminates.

This blocks the calling thread until the thread whose join() method is called terminates – either normally or through an unhandled exception or until the optional timeout occurs.

When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof). As join() always returns None, you must call is_alive() after join() to decide whether a timeout happened – if the thread is still alive, the join() call timed out.

When the timeout argument is not present or None, the operation will block until the thread terminates.

A thread can be join()ed many times.

join() raises a RuntimeError if an attempt is made to join the current thread as that would cause a deadlock. It is also an error to join() a thread before it has been started and attempts to do so raises the same exception.

kill_dul()

Immediately interrupts the thread

property name

A string used for identification purposes only.

It has no semantics. Multiple threads may be given the same name. The initial name is set by the constructor.

property network_timeout

Return the network_timeout.

peek_next_pdu()

Check the next PDU to be processed.

receive_pdu(wait=False, timeout=None)

Return an item from the queue if one is available.

Get the next item 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

  • queue_item – The next object in the to_user_queue.

  • None – If the queue is empty.

run()

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)

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

- pdu_primitives class (primitive) – A service primitive, one of A_ASSOCIATE, A_RELEASE, A_ABORT, A_P_ABORT or P_DATA.

start()

Start the thread’s activity.

It must be called at most once per thread object. It arranges for the object’s run() method to be invoked in a separate thread of control.

This method will raise a RuntimeError if called more than once on the same thread object.

stop_dul()

Interrupts the thread if state is “Sta1”

Returns

True if Sta1, False otherwise

Return type

bool