The application provides both a user interface, internal database and network listener that spawns additional threads as necessary to handle incoming connections.
Conceptually the network services may be modeled as the following separate AEs, though in fact all the AEs share a single (configurable) AE Title:
STORAGE-SCP, which receives incoming Image, Presentation State, and Hanging Protocol Instances
STORAGE-SCU, which sends outbound Image, Presentation State, and Hanging Protocol Instances
FIND-SCU, which queries remote AEs for Hanging Protocol Instances
MOVE-SCU, which retrieves Hanging Protocol Instances
STORAGE-SCP waits in the background for connections, will accept associations with Presentation Contexts for SOP Classes of the Storage Service Class and Hanging Protocol Storage Service Class, and will store the received instances to the local database where they may subsequently be listed and viewed through the user interface.
STORAGE-SCU is activated through the user interface when a user selects instances from the local database, or the currently displayed instance, and requests that they be sent to a remote AE (selected from a pre-configured list).
FIND-SCU is activated in the background when images for a study are received, to query for matching Hanging Protocols if an appropriate Hanging Protocol Instance is not available in the local database.
All SCP activities are performed asynchronously in the background and not dependent on any sequencing.
Storage SCU activities are sequentially initiated in the user interface, and another activity may not be initiated until the prior activity has completed. Find and Move SCU activities are performed asynchronously in the background, where Move activities are triggered by the results of Find activities.