Figure G.4.1-1Implementation Model
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 AE’s, though in fact all the AE’s 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 AE’s 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.
MOVE-SCU is activated in the background, to retrieve Hanging Protocol Instances identified in the query results returned to the FIND-SCU. A connection to the remote AE is established to initiate and monitor the retrieval, and the STORAGE-SCP AE receives the retrieved instances.
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 activites.