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.
STORAGE-SCP provide Standard Conformance to the following SOP Class(es) :
Table G.4.2-1. SOP Classes Supported By STORAGE-SCP
|
SOP Class Name |
SOP Class UID |
SCU |
SCP |
|---|---|---|---|
|
Ultrasound Image Storage |
1.2.840.10008.5.1.4.1.1.6.1 |
No |
Yes |
|
Ultrasound Multi-frame Image Storage |
1.2.840.10008.5.1.4.1.1.3.1 |
No |
Yes |
|
MR Image Storage |
1.2.840.10008.5.1.4.1.1.4 |
No |
Yes |
|
Digital Mammography X-Ray Image Storage - For Presentation |
1.2.840.10008.5.1.4.1.1.1.2 |
No |
Yes |
|
Grayscale Softcopy Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.1 |
No |
Yes |
|
Hanging Protocol Storage |
1.2.840.10008.5.1.4.38.1 |
No |
Yes |
STORAGE-SCP accepts but never initiates associations.
Table G.4.2-2. Maximum PDU Size Received as a SCP for STORAGE-SCP
|
Maximum PDU size received |
Unlimited |
Table G.4.2-3. Number of Associations as a SCP for STORAGE-SCP
|
Maximum number of simultaneous associations |
Unlimited |
STORAGE-SCP will only allow a single outstanding operation on an Association. Therefore, STORAGE-SCP will not perform asynchronous operations window negotiation.
When STORAGE-SCP accepts an association, it will respond to storage requests. If the Called AE Title does not match the pre-configured AE Title shared by all the SCPs of the application, the association will be rejected.
As instances are received they are copied to the local file system and a record inserted into the local database. If the received instance is a duplicate of a previously received instance, the old file and database record will be overwritten with the new one.
Table G.4.2-5. Accepted Presentation Contexts for STORAGE-SCP and Receive Storage Request
|
Presentation Context Table |
|||||
|---|---|---|---|---|---|
|
Abstract Syntax |
Transfer Syntax |
Role |
Extended Negotiation |
||
|
Name |
UID |
Name List |
UID List |
||
|
See Table G.4.2-1 |
See Table G.4.2-1 |
Implicit VR Little Endian |
1.2.840.10008.1.2 |
SCP |
None |
|
Explicit VR Little Endian |
1.2.840.10008.1.2.1 |
||||
STORAGE-SCP provides standard conformance to the Storage Service Class.
When displaying an image in the viewing application, if a Hanging Protocol Instance is not being applied or the instance being applied does not contain presentation intent attributes, the newest Grayscale Softcopy Presentation State containing references to the image will be automatically applied, and the GSPS Presentation Label and Presentation Description will be displayed. The user has the option to select any other Presentation States that also reference the image. If no Presentation State references the image then no Presentation State will be applied by default. If a Hanging Protocol Instance is being applied, the presentation intent attributes, if present, are used to select the closest matching GSPS instance to apply. If there is no GSPS instance, then the Hanging Protocol Instance presentation intent attributes are applied, if present.
All of the Image Storage SOP Classes listed in Table G.4.2-1 are supported as references from instances of the Grayscale Softcopy Presentation State Storage SOP Class.
STORAGE-SCP provides standard conformance to the Hanging Protocol Storage Service Class.
If Partial Data Display Handling (0072,0208) is zero length, then MAINTAIN_LAYOUT behavior is applied. If the value is ADAPT_LAYOUT, then Image Boxes are proportionally resized to occupy all available display space.
If the display environment of a Hanging Protocol Instance differs from the display environment of the ImageViewer, then the layout is maintained.
The Hanging Protocol SOP instances are stored to a local database until explicitly deleted. When a study is selected for display, the application automatically applies a Hanging Protocol Instance to the study.
STORAGE-SCP will always accept any Presentation Context for the supported SOP Classes with the supported Transfer Syntaxes. More than one proposed Presentation Context will be accepted for the same Abstract Syntax if the Transfer Syntax is supported, whether or not it is the same as another Presentation Context.
STORAGE-SCP prefers explicit Transfer Syntaxes. If offered a choice of Transfer Syntaxes in a Presentation Context, it will apply the following priority to the choice of Transfer Syntax:
first encountered explicit Transfer Syntax,
default Transfer Syntax.
STORAGE-SCP will accept duplicate Presentation Contexts, that is, if it is offered multiple Presentation Contexts, each of which offers acceptable Transfer Syntaxes, it will accept all Presentation Contexts, applying the same priority for selecting a Transfer Syntax for each.
STORAGE-SCP will behave as described in the Table below when generating the C-STORE response command message.
Table G.4.2-6. Response Status for STORAGE-SCP and Receive Storage Request
|
Service Status |
Further Meaning |
Status Codes |
Reason |
|---|---|---|---|
|
Failure |
Refused: Out of Resources |
A700 |
Never sent |
|
Error: Data Set does not match SOP Class |
A900 |
Never sent - data set is not checked prior to storage |
|
|
Error: Cannot understand |
C000 |
Never sent |
|
|
Warning |
Coercion of Data Elements |
B000 |
Never sent - no coercion is ever performed |
|
Data Set does not match SOP Class |
B007 |
Never sent - data set is not checked prior to storage |
|
|
Elements Discarded |
B006 |
Never sent - all elements are always stored |
|
|
Success |
0000 |
STORAGE-SCU provides Standard Conformance to the following SOP Class(es) :
Table G.4.2-7. SOP Classes Supported By STORAGE-SCU
|
SOP Class Name |
SOP Class UID |
SCU |
SCP |
|---|---|---|---|
|
Ultrasound Image Storage |
1.2.840.10008.5.1.4.1.1.6.1 |
Yes |
No |
|
Ultrasound Multi-frame Image Storage |
1.2.840.10008.5.1.4.1.1.3.1 |
Yes |
No |
|
MR Image Storage |
1.2.840.10008.5.1.4.1.1.4 |
Yes |
No |
|
Digital Mammography X-Ray Image Storage - For Presentation |
1.2.840.10008.5.1.4.1.1.1.2 |
Yes |
No |
|
Grayscale Softcopy Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.1 |
Yes |
No |
|
Hanging Protocol Storage |
1.2.840.10008.5.1.4.38.1 |
Yes |
No |
STORAGE-SCU initiates but never accepts associations.
Table G.4.2-8. Maximum PDU Size Received as a SCP for STORAGE-SCU
|
Maximum PDU size received |
Unlimited |
Table G.4.2-9. Number of Associations as a SCP for STORAGE-SCU
|
Maximum number of simultaneous associations |
1 |
STORAGE-SCU will only allow a single outstanding operation on an Association. Therefore, STORAGE-SCU will not perform asynchronous operations window negotiation.
STORAGE-SCU attempts to initiate a new association for each instance it attempts to transfer.
For each Image, Presentation State, or Hanging Protocol Instance selected from the user interface to be transferred, a single attempt will be made to transmit it to the selected remote AE. If the send fails, for whatever reason, no retry will be performed, and an attempt will be made to send the next instance.
Table G.4.2-11. Proposed Presentation Contexts for STORAGE-SCU and Receive Storage Request
|
Presentation Context Table |
|||||
|---|---|---|---|---|---|
|
Abstract Syntax |
Transfer Syntax |
Role |
Extended Negotiation |
||
|
Name |
UID |
Name List |
UID List |
||
|
See Table G.4.2-7 |
See Table G.4.2-7 |
Implicit VR Little Endian |
1.2.840.10008.1.2 |
SCU |
None |
|
Explicit VR Little Endian |
1.2.840.10008.1.2.1 |
||||
STORAGE-SCU will propose Presentation Contexts only for the SOP Class of the instance that is to be transferred.
For that SOP Class, STORAGE-SCU will propose multiple Presentation Contexts, one for each of the supported Transfer Syntaxes, and an additional Presentation Context with all of the supported Transfer Syntaxes, in order to determine which Transfer Syntaxes the remote SCP supports, and which it prefers.
STORAGE-SCU provides standard conformance to the Storage Service Class.
STORAGE-SCU provides standard conformance to the Hanging Protocol Storage Service Class.
In Hanging Protocol Instances created on the Viewer, no Private Attributes are used as the value of Selector Attribute (0072,0026) in any of the Sequence Attributes to which it applies.
STORAGE-SCU prefers explicit Transfer Syntaxes. If offered a choice of Transfer Syntaxes in the accepted Presentation Contexts, it will apply the following priority to the choice of Presentation Context to use for the C-STORE operation:
first encountered explicit Transfer Syntax,
default Transfer Syntax.
STORAGE-SCU will behave as described in the Table below in response to the status returned in the C-STORE response command message.
Table G.4.2-12. Response Behavior for STORAGE-SCU and Send Storage Request
|
Service Status |
Further Meaning |
Status Codes |
Behavior |
|---|---|---|---|
|
Failure |
Refused: Out of Resources |
A7xx |
The user is notified and the failure is logged |
|
Error: Data Set does not match SOP Class |
A9xx |
The user is notified and the failure is logged |
|
|
Error: Cannot understand |
Cxxx |
The user is notified and the failure is logged |
|
|
Warning |
Coercion of Data Elements |
B000 |
Ignored |
|
Data Set does not match SOP Class |
B007 |
Ignored |
|
|
Elements Discarded |
B006 |
Ignored |
|
|
Success |
0000 |
Ignored |
FIND-SCU provide Standard Conformance to the following SOP Class(es) :
Table G.4.2-13. SOP Classes Supported By FIND-SCU
|
SOP Class Name |
SOP Class UID |
SCU |
SCP |
|---|---|---|---|
|
Hanging Protocol Information Model - FIND |
1.2.840.10008.5.1.4.38.2 |
Yes |
No |
FIND-SCU initiates but never accepts associations.
Table G.4.2-15. Number of Associations as a SCP for FIND-SCU
|
Maximum number of simultaneous associations |
1 |
FIND-SCU will only allow a single outstanding operation on an Association. Therefore, FIND-SCU will not perform asynchronous operations window negotiation.
FIND-SCU attempts to initiate a new association when a study is received for which an appropriate Hanging Protocol Instance is not already stored in the local database.
A single attempt will be made to query the remote AE. If the query fails, for whatever reason, no retry will be performed.
Table G.4.2-17. Proposed Presentation Contexts for FIND-SCU and Query Remote AE
|
Presentation Context Table |
|||||
|---|---|---|---|---|---|
|
Abstract Syntax |
Transfer Syntax |
Role |
Extended Negotiation |
||
|
Name |
UID |
Name |
UID |
||
|
See Table G.4.2-13 |
See Table G.4.2-13 |
Implicit VR Little Endian |
1.2.840.10008.1.2 |
SCU |
None |
|
Explicit VR Little Endian |
1.2.840.10008.1.2.1 |
||||
FIND-SCU will propose multiple Presentation Contexts, one for each of the supported Transfer Syntaxes, and an additional Presentation Context with all of the supported Transfer Syntaxes, in order to determine which Transfer Syntaxes the remote SCP supports, and which it prefers.
FIND-SCU provides standard conformance to the supported C-FIND SOP Class.
The following applies to Hanging Protocol Information Model C-FIND.
If present in the response, Specific Character Set will be used to identify character sets other than the default character set for matching between Hanging Protocol and Image Instances.
Table G.4.2.3.3.1.3.1-1. Hanging Protocol Information Model C-FIND SOP Specific Conformance
|
Name |
Tag |
Types of Matching |
|---|---|---|
|
SOP Class UID |
(0008,0016) |
zero length |
|
SOP Instance UID |
(0008,0018) |
zero length |
|
Hanging Protocol Name |
(0072,0002) |
S, *, U |
|
Hanging Protocol Description |
(0072,0004) |
zero length |
|
Hanging Protocol Level |
(0072,0006) |
S, U |
|
Hanging Protocol Creator |
(0072,0008) |
zero length |
|
Hanging Protocol Creation Datetime |
(0072,000A) |
zero length |
|
Hanging Protocol Definition Sequence |
(0072,000C) |
SQ, U |
|
>Modality |
(0008,0060) |
From list (US, MR, MG) or zero length |
|
>Anatomic Region Sequence |
(0008,2218) |
From CID 4 “Anatomic Region” or zero length |
|
>> Code Value |
(0008,0100) |
S, U |
|
>> Coding Scheme Designator |
(0008,0102) |
S, U |
|
>>Coding Scheme Version |
(0008,0103) |
zero length |
|
>>Code Meaning |
(0008,0104) |
zero length |
|
>Laterality |
(0020,0060) |
From list (R, L, U, B) or zero length |
|
> Procedure Code Sequence |
(0008,1032) |
zero length |
|
>Reason for Requested Procedure Code Sequence |
(0040,100A) |
zero length |
|
Number of Priors Referenced |
(0072,0014) |
zero length |
|
Hanging Protocol User Identification Code Sequence |
(0072,000E) |
From list of local coded terms or zero length |
|
>Code Value |
(0008,0100) |
S, U |
|
>Coding Scheme Designator |
(0008,0102) |
S, U |
|
>Coding Scheme Version |
(0008,0103) |
zero length |
|
>Code Meaning |
(0008,0104) |
zero length |
|
Hanging Protocol User Group Name |
(0072,0010) |
zero length |
|
Number of Screens |
(0072,0100) |
zero length |
|
Nominal Screen Definition Sequence |
(0072,0102) |
zero length |
FIND-SCU prefers explicit Transfer Syntaxes. If offered a choice of Transfer Syntaxes in the accepted Presentation Contexts, it will apply the following priority to the choice of Presentation Context to use for the C-FIND operation:
first encountered explicit Transfer Syntax,
default Transfer Syntax.
FIND-SCU will behave as described in Table G.4.2-19 in response to the status returned in the C-FIND response command message(s).
Table G.4.2-19. Response Status for FIND-SCU and Query Remote AE Request
|
Service Status |
Further Meaning |
Status Codes |
Behavior |
|---|---|---|---|
|
Refused |
Out of Resources |
A700 |
Current query is terminated; remaining queries continue |
|
Error |
Identifier does not match SOP Class |
A900 |
Current query is terminated; remaining queries continue |
|
Unable to process |
Cxxx |
Current query is terminated; remaining queries continue |
|
|
Cancel |
Matching terminated due to Cancel request |
FE00 |
Ignored (should never occur, since cancels never issued) |
|
Success |
Matching is complete - No final Identifier is supplied |
0000 |
Current query is terminated. If one or more Pending responses were received, logic is applied to trigger Retrieve of best suited Hanging Protocol Instances; remaining queries continue |
|
Pending |
Matches are continuing - Current Match is supplied and any Optional Keys were supported in the same manner as Required Keys |
FF00 |
Identifier stored temporarily for use in setting up Retrieve. |
|
Matches are continuing - Warning that one or more Optional Keys were not supported for existence and/or matching for this Identifier |
FF01 |
Identifier stored temporarily for use in setting up Retrieve |
MOVE-SCU provide Standard Conformance to the following SOP Class(es) :
Table G.4.2-20. SOP Classes Supported By MOVE-SCU
|
SOP Class Name |
SOP Class UID |
SCU |
SCP |
|---|---|---|---|
|
Hanging Protocol Information Model - MOVE |
1.2.840.10008.5.1.4.38.3 |
Yes |
No |
MOVE-SCU initiates but never accepts associations.
Table G.4.2-27. Number of Associations as a SCP for MOVE-SCU
|
Maximum number of simultaneous associations |
1 |
MOVE-SCU will only allow a single outstanding operation on an Association. Therefore, MOVE-SCU will not perform asynchronous operations window negotiation.
MOVE-SCU attempts to initiate a new association when the results of the FIND-SCU indicate matching Hanging Protocol Instances to retrieve.
A single attempt will be made to retrieve Hanging Protocol Instances from the remote AE. If the retrieve fails, for whatever reason, no retry will be performed.
Table G.4.2-24. Proposed Presentation Contexts for MOVE-SCU and Retrieve From Remote AE
|
Presentation Context Table |
|||||
|---|---|---|---|---|---|
|
Abstract Syntax |
Transfer Syntax |
Role |
Extended Negotiation |
||
|
Name |
UID |
Name List |
UID List |
||
|
See Table G.4.2-20 |
See Table G.4.2-20 |
Implicit VR Little Endian |
1.2.840.10008.1.2 |
SCP |
None |
|
Explicit VR Little Endian |
1.2.840.10008.1.2.1 |
||||
MOVE-SCU will propose multiple Presentation Contexts, one for each of the supported Transfer Syntaxes, and an additional Presentation Context with all of the supported Transfer Syntaxes, in order to determine which Transfer Syntaxes the remote SCP supports, and which it prefers.
MOVE-SCU provides standard conformance to the supported C-MOVE SOP Class.
No CANCEL requests are ever issued.
The retrieval is performed from the AE that was specified in the Retrieve AE attribute returned from the query performed by FIND-SCU. The instances are retrieved to the current application's local database by specifying the destination as the AE Title of the STORE-SCP AE of the local application. This implies that the remote C-MOVE SCP must be preconfigured to determine the presentation address corresponding to the STORE-SCP AE. The STORE-SCP AE will accept storage requests addressed to it from anywhere, so no pre-configuration of the local application to accept from the remote AE is necessary (except in so far as it was necessary to configure FIND-SCU).
Table G.4.2-25. Request Identifier for MOVE-SCU
|
Name |
Tag |
Request Key |
|---|---|---|
|
Hanging Protocol |
||
|
SOP Instance UID |
(0008,0018) |
List of UIDs |
MOVE-SCU prefers explicit Transfer Syntaxes. If offered a choice of Transfer Syntaxes in the accepted Presentation Contexts, it will apply the following priority to the choice of Presentation Context to use for the C-MOVE operation:
first encountered explicit Transfer Syntax,
default Transfer Syntax.
MOVE-SCU will behave as described in the Table below in response to the status returned in the C-MOVE response command message(s).
Table G.4.2-26. Response Status for MOVE-SCU and Retrieve From Remote AE Request
|
Service Status |
Further Meaning |
Status Codes |
Related Fields |
Behavior |
|---|---|---|---|---|
|
Refused |
Out of Resources - Unable to calculate number of matches |
A701 |
(0000,0902) |
Retrieval is terminated |
|
Out of Resources - Unable to perform sub-operations |
A702 |
(0000,1020) (0000,1021) (0000,1022) (0000,1023) |
Retrieval is terminated |
|
|
Move Destination unknown |
A801 |
(0000,0902) |
Retrieval is terminated |
|
|
Failed |
Identifier does not match SOP Class |
A900 |
(0000,0901) (0000,0902) |
Retrieval is terminated |
|
Unable to process |
Cxxx |
(0000,0901) (0000,0902) |
Retrieval is terminated |
|
|
Cancel |
Sub-operations terminated due to Cancel Indication |
FE00 |
(0000,1020) (0000,1021) (0000,1022) (0000,1023) |
Retrieval is terminated (should never occur, since cancels never issued) |
|
Warning |
Sub-operations Complete - One or more Failures |
B000 |
(0000,1020) (0000,1022) (0000,1023) |
Retrieval is terminated |
|
Success |
Sub-operations Complete - No Failures |
0000 |
(0000,1020) (0000,1021) (0000,1022) (0000,1023) |
Retrieval is terminated |
|
Pending |
Sub-operations are continuing |
FF00 |
(0000,1020) (0000,1021) (0000,1022) (0000,1023) |
Retrieval continues |
Since the C-MOVE operation is dependent on completion of C-STORE sub-operations that are occurring on a separate association, the question of failure of operations on the other association(s) must be considered.
MOVE-SCU completely ignores whatever activities are taking place in relation to the STORAGE-SCP AE that is receiving the retrieved instances. Once the C-MOVE has been initiated it runs to completion (or failure) as described in the C-MOVE response command message(s). There is no attempt by MOVE-SCU to confirm that instances have actually been successfully received or locally stored.
Whether or not completely or partially successfully retrievals are made available in the local database to the user is purely dependent on the success or failure of the C-STORE sub-operations, not on any explicit action by MOVE-SCU.
Whether or not the remote AE attempts to retry any failed C-STORE sub-operations is beyond the control of MOVE-SCU.
If the association on which the C-MOVE was issued is aborted for any reason, whether or not the C-STORE sub-operations continue is dependent on the remote AE; the local STORAGE-SCP will continue to accept associations and storage operations regardless.
The application is indifferent to the physical medium over which TCP/IP executes, which is dependent on the underlying operating system and hardware.
This product supports both IPv4 and IPv6. It does not utilize any of the optional configuration identification or security features of IPv6.
All configuration is performed through the use of Java properties file(s) stored in pre-defined locations that are specific to the underlying operating system. Refer to the Release Notes for specific details.
The Calling AE Titles of the local application are configurable in the preferences file. The mapping of the logical name by which remote AEs are described in the user interface to Called AE Titles as well as presentation address (hostname or IP address and port number) is configurable in the preferences file.
Table G.4.4-1. Configuration Parameters Table
|
Parameter |
Configurable |
Default Value |
|---|---|---|
|
General Parameters |
||
|
PDU Size |
No |
16kB |
|
Time-out waiting for acceptance or rejection Response to an Association Open Request. (Application Level timeout) |
No |
None |
|
General DIMSE level time-out values |
No |
None |
|
Time-out waiting for response to TCP/IP connect() request. (Low-level timeout) |
No |
None |
|
Time-out waiting for acceptance of a TCP/IP message over the network. (Low-level timeout) |
No |
None |
|
Time-out for waiting for data between TCP/IP packets. (Low-level timeout) |
No |
None |
|
Any changes to default TCP/IP settings, such as configurable stack parameters. |
No |
None |
|
AE Specific Parameters (all AEs) |
||
|
Size constraint in maximum object size |
No |
None |
|
Maximum PDU size the AE can receive (see note 1) |
No |
Unlimited |
|
Maximum PDU size the AE can send |
No |
Unlimited |
|
AE specific DIMSE level time-out values |
No |
None |
|
Number of simultaneous Associations by Service and/or SOP Class |
No |
Unlimited |
|
SOP Class support |
No |
All supported SOP Classes always proposed and accepted |
|
Transfer Syntax support |
No |
All supported Transfer Syntaxes always proposed and accepted |
|
Other parameters that are configurable |
No |
None |
Though the application can support unlimited PDU sizes, it will never offer a Maximum Received PDU Length of zero (unlimited) since this triggers a bug in some older systems.