pynetdicom.dul.DULServiceProvider¶
-
class
pynetdicom.dul.DULServiceProvider(socket=None, port=None, dul_timeout=None, assoc=None)[source][source]¶ The DICOM Upper Layer Service Provider.
Three ways to call DULServiceProvider:
- If a port number is given, the DUL will wait for incoming connections on this port.
- If a socket is given, the DUL will use this socket as the client socket.
- If neither is given, the DUL will not be able to accept connections (but will be able to initiate them.)
-
artim_timer¶ The ARTIM timer
Type: timer.Timer
-
association¶ The DUL’s current Association
Type: association.Association
-
dul_from_user_queue¶ Queue of PDUs from the DUL service user to be processed by the DUL provider
Type: queue.Queue
-
dul_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
-
scp_socket¶ If the local AE is acting as an SCP, this is the connection from the peer AE to the SCP
Type: socket.socket()
-
scu_socket¶ If the local AE is acting as an SCU, this is the connection from the local AE to the peer AE SCP
Type: socket.socket()
-
state_machine¶ The DICOM Upper Layer’s State Machine
Type: fsm.StateMachine
-
__init__(socket=None, port=None, dul_timeout=None, assoc=None)[source][source]¶ Parameters: - socket (socket.socket, optional) – The local AE’s listen socket
- port (int, optional) – The port number on which to wait for incoming connections
- dul_timeout (float, optional) – The maximum amount of time to wait for connection responses (in seconds)
- assoc (association.Association) – The DUL’s current Association
Methods
__init__([socket, port, dul_timeout, assoc])param socket: The local AE’s listen socket 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 on_receive_pdu()Called after the first byte of an incoming PDU is read. peek_next_pdu()Check the next PDU to be processed. receive_pdu([wait, timeout])Get the next item to be processed out of the queue of items sent from the DUL service provider to the service user run()The main threading.Thread run loop. send_pdu(params)param params -: The parameters to put on FromServiceUser [FIXME] setDaemon(daemonic)setName(name)start()Start the thread’s activity. stop_dul()Interrupts the thread if state is “Sta1” Attributes
daemonA boolean value indicating whether this thread is a daemon thread. identThread identifier of this thread or None if it has not been started. nameA string used for identification purposes only. -
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.
-
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()[source][source]¶ Checks if the idle timer has expired
Returns: True if the idle timer has expired, False otherwise Return type: bool
-
isAlive()[source]¶ 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.
-
is_alive()[source]¶ 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)[source]¶ 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 isAlive() 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.
-
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.
-
receive_pdu(wait=False, timeout=None)[source][source]¶ Get the next item to be processed out of the queue of items sent from the DUL service provider to the service user
Parameters: Returns: - queue_item – The next object in the to_user_queue [FIXME]
- None – If the queue is empty
-
run()[source][source]¶ 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.
- Ripping out this loop and replacing it with event-driven reactor would
- be nice.
-
send_pdu(params)[source][source]¶ Parameters: - (params) – The parameters to put on FromServiceUser [FIXME]