DICOM PS3.7 2021a - Message Exchange
Table of Contents
- Notice and Disclaimer
- Foreword
- 1. Scope and Field of Application
- 2. Normative References
- 3. Definitions
- 4. Symbols and Abbreviations
- 5. Conventions
- 6. Service Context
- 7. Service Overview
- 8. Protocol Overview
- 9. DIMSE-C
- 9.1. Services
- 9.1.1. C-STORE Service
- 9.1.2. C-FIND Service
- 9.1.3. C-GET Service
- 9.1.3.1. C-GET Parameters
- 9.1.3.1.1. Message ID
- 9.1.3.1.2. Message ID Being Responded To
- 9.1.3.1.3. Affected SOP Class UID
- 9.1.3.1.4. Priority
- 9.1.3.1.5. Identifier
- 9.1.3.1.6. Status
- 9.1.3.1.7. Number of Remaining Sub-Operations
- 9.1.3.1.8. Number of Completed Sub-Operations
- 9.1.3.1.9. Number of Failed Sub-Operations
- 9.1.3.1.10. Number of Warning Sub-Operations
- 9.1.3.2. C-GET Service Procedures
- 9.1.4. C-MOVE Service
- 9.1.4.1. C-MOVE Parameters
- 9.1.4.1.1. Message ID
- 9.1.4.1.2. Message ID Being Responded To
- 9.1.4.1.3. Affected SOP Class UID
- 9.1.4.1.4. Priority
- 9.1.4.1.5. Move Destination
- 9.1.4.1.6. Identifier
- 9.1.4.1.7. Status
- 9.1.4.1.8. Number of Remaining Sub-Operations
- 9.1.4.1.9. Number of Completed Sub-Operations
- 9.1.4.1.10. Number of Failed Sub-Operations
- 9.1.4.1.11. Number of Warning Sub-Operations
- 9.1.4.2. C-MOVE Service Procedures
- 9.1.5. C-ECHO Service
- 9.2. Sequencing
- 9.3. Protocol
- 10. DIMSE-N
- 10.1. Services
- 10.1.1. N-EVENT-REPORT Service
- 10.1.2. N-GET Service
- 10.1.3. N-SET Service
- 10.1.4. N-ACTION Service
- 10.1.4.1. N-ACTION Parameters
- 10.1.4.1.1. Message ID
- 10.1.4.1.2. Message ID Being Responded To
- 10.1.4.1.3. Requested SOP Class UID
- 10.1.4.1.4. Requested SOP Instance UID
- 10.1.4.1.5. Action Type ID
- 10.1.4.1.6. Action Information
- 10.1.4.1.7. Affected SOP Class UID
- 10.1.4.1.8. Affected SOP Instance UID
- 10.1.4.1.9. Action Reply
- 10.1.4.1.10. Status
- 10.1.4.2. N-ACTION Service Procedures
- 10.1.5. N-CREATE Service
- 10.1.6. N-DELETE Service
- 10.2. Sequencing
- 10.3. Protocol
- A. Application Context Usage (Normative)
- B. Index to Application Context Name UIDs (Informative)
- C. Status Type Encoding (Normative)
- C.1. Success Status Class
- C.2. Pending Status Class
- C.3. Cancel Status Class
- C.4. Warning Status Class
- C.5. Failure Status Class
- C.5.1. Error: Cannot understand
- C.5.2. Error: Data Set does not match SOP Class
- C.5.3. Failed
- C.5.4. Refused: Move Destination unknown
- C.5.5. Refused: Out of resources
- C.5.6. Refused: SOP Class not supported
- C.5.7. Class-Instance conflict
- C.5.8. Duplicate SOP Instance
- C.5.9. Duplicate invocation
- C.5.10. Invalid argument value
- C.5.11. Invalid Attribute Value
- C.5.12. Invalid SOP Instance
- C.5.13. Missing Attribute
- C.5.14. Missing Attribute Value
- C.5.15. Mistyped argument
- C.5.16. No such argument
- C.5.17. No such Attribute
- C.5.18. No such Event Type
- C.5.19. No such SOP Instance
- C.5.20. No such SOP Class
- C.5.21. Processing Failure
- C.5.22. Resource Limitation
- C.5.23. Unrecognized operation
- C.5.24. No such Action Type
- C.5.25. Refused: Not authorized
- D. Association Negotiation (Normative)
- D.1. Abstract Syntax
- D.2. Transfer Syntaxes
- D.3. Association Establishment
- D.3.1. Application Context
- D.3.2. Presentation Contexts Negotiation
- D.3.3. DICOM Application Association Information
- D.3.3.1. Maximum Length Application PDU Notification
- D.3.3.2. Implementation Identification Notification
- D.3.3.3. Asynchronous Operations (And Sub-Operations) Window Negotiation
- D.3.3.4. SCP/SCU Role Selection Negotiation
- D.3.3.5. Service-Object Pair (SOP) Class Extended Negotiation
- D.3.3.6. Service-Object Pair (SOP) Class Common Extended Negotiation
- D.3.3.7. User Identity Negotiation
- E. Command Dictionary (Normative)
- F. Usage of the P-DATA Service By the DICOM Application Entity (Normative)
List of Figures
- 6.1-1. DICOM Communication Model for Message Exchange
- 6.2-1. DICOM Application Layer Structure
- 6.3-1. DICOM Message Structure
- 7-1. DIMSE Service Primitives
- 7.2-1. Operation and Notification Flow
- 7.4-1. DICOM Application Entity and Association
- D.1-1. Service Class, IOD, DSG and SOP Class Relationships
- D.1-2. SOP Class UIDs and Meta SOP Class UIDs and Abstract Syntax Names
- D.3-1. Presentation Contexts Negotiation
- D.3-2. Maximum Length PDU Negotiation
- D.3-3. Implementation Class UID Notification
- D.3-4. Implementation Version Name Notification
- D.3-5. Asynchronous Operations Window Negotiation (Window Being Negotiated Down By DICOM Application Entity "B")
- D.3-6. Asynchronous Operations Window Negotiation (Window Being Defaulted to 1, 1 By DICOM Application Entity "B")
- D.3-7. SCU/SCP Role Negotiation
- D.3-8. User Identity Negotiation (With Server Positive Response Requested)
- D.3-9. User Identity Negotiation (Application Entity "A" Provides Username Identity)
List of Tables
- 7.5-1. DIMSE Services
- 7.5-2. DIMSE Services and Procedures
- 9.1-1. C-STORE Parameters
- 9.1-2. C-FIND Parameters
- 9.1-3. C-GET Parameters
- 9.1-4. C-MOVE Parameters
- 9.1-5. C-ECHO Parameters
- 9.3-1. C-STORE-RQ Message Fields
- 9.3-2. C-STORE-RSP Message Fields
- 9.3-3. C-FIND-RQ Message Fields
- 9.3-4. C-FIND-RSP Message Fields
- 9.3-5. C-CANCEL-FIND-RQ Message Fields
- 9.3-6. C-GET-RQ Message Fields
- 9.3-7. C-GET-RSP Message Fields
- 9.3-8. C-CANCEL-GET-RQ Message Fields
- 9.3-9. C-MOVE-RQ Message Fields
- 9.3-10. C-MOVE-RSP Message Fields
- 9.3-11. C-CANCEL-MOVE-RQ Message Fields
- 9.3-12. C-ECHO-RQ Message Fields
- 9.3-13. C-ECHO-RSP Message Fields
- 10.1-1. N-EVENT-REPORT Parameters
- 10.1-2. N-GET Parameters
- 10.1-3. N-SET Parameters
- 10.1-4. N-ACTION Parameters
- 10.1-5. N-CREATE Parameters
- 10.1-6. N-DELETE Parameters
- 10.3-1. N-EVENT-REPORT-RQ Message Fields
- 10.3-2. N-EVENT-REPORT-RSP Message Fields
- 10.3-3. N-GET-RQ Message Fields
- 10.3-4. N-GET-RSP Message Fields
- 10.3-5. N-SET-RQ Message Fields
- 10.3-6. N-SET-RSP Message Fields
- 10.3-7. N-ACTION-RQ Message Fields
- 10.3-8. N-ACTION-RSP Message Fields
- 10.3-9. N-CREATE-RQ Message Fields
- 10.3-10. N-CREATE-RSP Message Fields
- 10.3-11. N-DELETE-RQ Message Fields
- 10.3-12. N-DELETE-RSP Message Fields
- D.3-1. Implementation Class UID Sub-Item Fields (A-ASSOCIATE-RQ)
- D.3-2. Implementation UID Sub-Item Fields (A-ASSOCIATE-AC)
- D.3-3. Implementation Version Name Sub-Item Fields (A-ASSOCIATE-RQ)
- D.3-4. Implementation Version Name Sub-Item Fields (A-ASSOCIATE-AC)
- D.3-7. Asynchronous Operations Window Sub-Item Fields (A-ASSOCIATE-RQ)
- D.3-8. Asynchronous Operations Window Sub-Item Fields (A-ASSOCIATE-AC)
- D.3-9. SCP/SCU Role Selection Sub-Item Fields (A-ASSOCIATE-RQ)
- D.3-10. SCP/SCU Role Selection Sub-Item Fields (A-ASSOCIATE-AC)
- D.3-11. SOP Class Extended Negotiation Sub-Item Fields (A-ASSOCIATE-RQ and A-ASSOCIATE-AC)
- D.3-12. SOP Class Common Extended Negotiation Sub-Item Fields (A-ASSOCIATE-RQ)
- D.3-13. Related-General-SOP-Class-Identification Sub-Fields
- D.3-14. User Identity Negotiation Sub-Item Fields (A-ASSOCIATE-RQ)
- D.3-15. User Identity Negotiation Sub-Item Fields (A-ASSOCIATE-AC)
- E.1-1. Command Fields
- E.2-1. Retired Command Fields
The information in this publication was considered technically sound by the consensus of persons engaged in the development and approval of the document at the time it was developed. Consensus does not necessarily mean that there is unanimous agreement among every person participating in the development of this document.
NEMA standards and guideline publications, of which the document contained herein is one, are developed through a voluntary consensus standards development process. This process brings together volunteers and/or seeks out the views of persons who have an interest in the topic covered by this publication. While NEMA administers the process and establishes rules to promote fairness in the development of consensus, it does not write the document and it does not independently test, evaluate, or verify the accuracy or completeness of any information or the soundness of any judgments contained in its standards and guideline publications.
NEMA disclaims liability for any personal injury, property, or other damages of any nature whatsoever, whether special, indirect, consequential, or compensatory, directly or indirectly resulting from the publication, use of, application, or reliance on this document. NEMA disclaims and makes no guaranty or warranty, expressed or implied, as to the accuracy or completeness of any information published herein, and disclaims and makes no warranty that the information in this document will fulfill any of your particular purposes or needs. NEMA does not undertake to guarantee the performance of any individual manufacturer or seller's products or services by virtue of this standard or guide.
In publishing and making this document available, NEMA is not undertaking to render professional or other services for or on behalf of any person or entity, nor is NEMA undertaking to perform any duty owed by any person or entity to someone else. Anyone using this document should rely on his or her own independent judgment or, as appropriate, seek the advice of a competent professional in determining the exercise of reasonable care in any given circumstances. Information and other standards on the topic covered by this publication may be available from other sources, which the user may wish to consult for additional views or information not covered by this publication.
NEMA has no power, nor does it undertake to police or enforce compliance with the contents of this document. NEMA does not certify, test, or inspect products, designs, or installations for safety or health purposes. Any certification or other statement of compliance with any health or safety-related information in this document shall not be attributable to NEMA and is solely the responsibility of the certifier or maker of the statement.
This DICOM Standard was developed according to the procedures of the DICOM Standards Committee.
The DICOM Standard is structured as a multi-part document using the guidelines established in [ISO/IEC Directives, Part 2].
DICOM® is the registered trademark of the National Electrical Manufacturers Association for its standards publications relating to digital communications of medical information, all rights reserved.
HL7® and CDA® are the registered trademarks of Health Level Seven International, all rights reserved.
SNOMED®, SNOMED Clinical Terms®, SNOMED CT® are the registered trademarks of the International Health Terminology Standards Development Organisation (IHTSDO), all rights reserved.
LOINC® is the registered trademark of Regenstrief Institute, Inc, all rights reserved.
This Part of the DICOM Standard specifies the DICOM Message Service Element (DIMSE). The DIMSE defines an Application Service Element (both the service and protocol) used by peer DICOM Application Entities for the purpose of exchanging medical images and related information.
The DIMSE provides its services by relying on the DIMSE protocol. The DIMSE protocol defines the encoding rules necessary to construct Messages. A Message is composed of a Command Set (defined in this Part of the DICOM Standard) followed by a conditional Data Set (defined in PS3.5).
-
a set of service primitives provided by the DIMSE Application Service Element
-
any necessary information for the semantic description of each service primitive
-
the Abstract Syntax of the DICOM composite and normalized command protocol and the associated encoding rules to be applied
-
procedures for the correct interpretation of protocol control information
-
the conformance requirements to be met by implementation of this Part of the Standard
-
the Application Context required for DICOM Application Entities
-
the Application Association Information for DICOM Application Entities
This Part is related to other parts of the DICOM Standard in that:
-
PS3.3, Information Object Definitions, specifies the set of Information Object Definitions to which the services defined in this Part may be applied
-
PS3.5, Data Structure and Encoding, addresses the encoding rules necessary to construct a conditional Data Set that is conveyed in a Message as specified in this Part
-
This Part defines the protocols and services required to accomplish the Service Classes described in PS3.4
The following Standards contain provisions that, through reference in this text, constitute provisions of this Standard. At the time of publication, the editions indicated were valid. All Standards are subject to revision, and parties to agreements based on this Standard are encouraged to investigate the possibilities of applying the most recent editions of the Standards indicated below.
For the purposes of this Standard the following definitions apply.
3.1 Reference Model Definitions
This Part of the Standard is based on the concepts developed in [ISO 7498-1] and makes use of the following terms defined in it:
- ApplicationEntity
-
See [ISO 7498-1].
- Application Process
-
See [ISO 7498-1].
- Protocol
-
See [ISO 7498-1].
- Protocol Data Unit
-
See [ISO 7498-1].
- Service
-
See [ISO 7498-1].
- Transfer Syntax
-
See [ISO 7498-1].
3.2 Service Conventions Definitions
This Part of the Standard makes use of the following terms defined in [ISO/TR 8509]:
- Service Provider
-
See [ISO/TR 8509].
- Service User
-
See [ISO/TR 8509].
- Confirmed Service
-
See [ISO/TR 8509].
- Non-confirmed Service
-
See [ISO/TR 8509].
- Primitive
-
See [ISO/TR 8509].
- Request (Primitive)
-
See [ISO/TR 8509].
- Indication (Primitive)
-
See [ISO/TR 8509].
- Response (Primitive)
-
See [ISO/TR 8509].
- Confirm (Primitive)
-
See [ISO/TR 8509].
3.3 Presentation Service Definitions
This Part of the Standard makes use of the following terms defined in [ISO 8822]:
- Abstract Syntax
-
See [ISO 8822].
- Abstract Syntax Name
-
See [ISO 8822].
- Presentation Context
-
See [ISO 8822].
- Presentation Data Value
-
See [ISO 8822].
3.4 ACSE Service Definitions
This Part of the Standard makes use of the following terms defined in [ISO 8649]:
- Association
-
See [ISO 8649].
- Application Context
-
See [ISO 8649].
- Association Control Service Element (ACSE)
-
See [ISO 8649].
- Association Initiator
-
See [ISO 8649].
3.5 CMIS Service Definitions
This Part of the Standard makes use of the following terms defined in [ISO/IEC 9595]:
- Functional Unit
-
See [ISO/IEC 9595].
- Kernel Functional Unit
-
See [ISO/IEC 9595].
3.6 DICOM Introduction and Overview Definitions
This Part of the Standard makes use of the following terms defined in PS3.1:
3.7 DICOM Upper Layer Service Definitions
This Part of the Standard makes use of the following terms defined in PS3.8:
3.8 DICOM Service Class Definitions
This Part of the Standard makes use of the following terms defined in PS3.4:
3.9 DICOM Data Structures and Encoding Definitions
This Part of the Standard makes use of the following terms defined in PS3.5:
3.10 DICOM Message Exchange Definitions
The following definitions are commonly used in this Part of the Standard:
- DICOM Message Service Element (DIMSE)
-
The particular Application Service Element defined in this Part of the DICOM Standard.
- DIMSE-C Services
-
A subset of the DIMSE services that supports operations on Composite SOP Instances related to composite Information Object Definitions with peer DIMSE Service Users.
- DIMSE-N Services
-
A subset of the DIMSE services that supports operations and notifications on Normalized SOP Instances related to Normalized Information Object Definitions with peer DIMSE Service Users.
- DIMSE Service Group (DSG)
-
A specific set of one or more DIMSE Services that define the operations and/or notifications that can be performed on a data structure.
- DIMSE Service Provider
-
An abstraction of the totality of those entities that provide DIMSE services to peer DIMSE Service Users.
- DIMSE Service User
-
That part of an Application Entity that makes use of the DICOM Message Service Element.
- Extended Negotiation
-
Exchange of application information by peer DICOM AEs at Association establishment, defined by specific Service Class specifications.
- Implementation Class UID
-
The unique identifier of a specific class of implementation.
- Invoking DIMSE Service User
-
The DIMSE Service User that invokes a DIMSE operation or notification.
- Performing DIMSE Service User
-
The DIMSE Service User that performs a DIMSE operation or notification invoked by a peer DIMSE Service User.
The following symbols and abbreviations are used in this Part of the Standard.
The following conventions are used for the service description tables shown in this Part of the Standard.
This section defines the DICOM Message Service Element and Protocol within the context of the DICOM Application Entity. Specifically, this section provides a model to clarify a number of concepts for digital imaging and communications and introduces key terms used throughout the Standard. This model has been used to partition the Application Layer of the DICOM Standard into separate parts.
Figure 5-1 in PS3.1 presents the general communication model of the DICOM Standard, which spans both network (on-line) and storage media interchange (off-line) communications. Application Entities may utilize any of the following transport mechanisms:
-
the DICOM Message Service and Upper Layer Service, which provides independence from specific physical networking communication support and protocols such as TCP/IP,
-
the DICOM Web Service API and HTTP Service, which allows use of common hypertext and associated protocols for transport of DICOM services, or
-
the Basic DICOM File Service, which provides access to Storage Media independently from specific physical media storage formats and file structures.
PS3.7 focuses on the DICOM Message Service and here the OSI Basic Reference Model is used to model the interconnection of medical imaging equipment. As shown in Figure 6.1-1 several layers of communication protocols are distinguished. DICOM uses the OSI Upper Layer Service to separate the exchange of DICOM Messages at the Application Layer from the communication support provided by the lower layers.
This OSI Upper Layer Service boundary allows peer Application Entities to establish Associations, transfer Messages and terminate Associations. For this boundary, DICOM has adopted the OSI Standards (Presentation Service augmented by the Association Control Service Element). It is a simple service that isolates the DICOM Application Layer from the specific stack of protocols used in the communication support layers.
The DICOM Upper Layer protocol augments TCP/IP. It combines the OSI upper layer protocols into a simple-to-implement single protocol while providing the same services and functions offered by the OSI stack.
The DICOM Upper Layer Service is defined in PS3.8.
A DICOM Application Entity and the Service Elements it includes are shown in Figure 6.2-1.
The heart of any DICOM Application Entity is specified by the following parts of the DICOM Standard:
-
PS3.3, Information Object Definitions, which provides data models and Attributes used as a basis for defining SOP Instances that are operated upon by the services defined in this [art. Such SOP Instances are used to represent real-world occurrences of images, studies, patients, etc.
-
PS3.4, Service Class Specifications, which defines the set of operations that can be performed on SOP Instances. Such operations may include the storage, retrieval of information, printing, etc.
-
PS3.5, Data Structure and Encoding, which addresses the encoding of the Data Sets exchanged to accomplish the above services
-
PS3.6, Data Dictionary, which contains the registry of DICOM Data Elements used to represent Attributes of SOP Classes
The DICOM Application Entity uses the Association and Presentation data services of the OSI Upper Layer Service defined in PS3.8. The Association Control Service Element (ACSE) augments the Presentation Layer Service with Association establishment and termination services. In the case of TCP/IP, the full equivalent of ACSE is provided by the DICOM Upper Layer Service. For the DICOM point-to-point stack, a minimum subset of ACSE is provided by the Session/Transport/Network Service.
The DICOM Application Entity uses the services provided by the DICOM Message Service Element. The DICOM Message Service Element specifies two sets of services.
-
DIMSE-C supports operations associated with composite SOP Classes and provides effective compatibility with the previous versions of the DICOM Standard.
-
DIMSE-N supports operations associated with normalized SOP Classes and provides an extended set of object-oriented operations and notifications. It is based on the OSI System Management Model and more specifically on the OSI Common Management Information Services (CMIS) Service definition.
The DIMSE-C and DIMSE-N services are supported by a single DIMSE protocol that uses the DICOM-specific Message formatting and encoding.
Information is communicated across the DICOM network interface in a DICOM Message. A Message is composed of a Command Set followed by a conditional Data Set (see PS3.5 for the definition of a Data Set). The Command Set is used to indicate the operations/notifications to be performed on or with the Data Set.
A Command Set is constructed of Command Elements. Command Elements contain the encoded values for each individual field of the Command Set per the semantics specified in the DIMSE protocol (see Section 9.2 and Section 10.2). Each Command Element is composed of an explicit Tag, a Value Length, and a Value Field.
The overall structure of a DICOM Message is shown in Figure 6.3-1.
The Command Elements in a Command Set shall be ordered by increasing Command Element Tag number. A Command Element Tag uniquely identifies a Command Element and shall occur at most once in a Command Set. The encoding of the Command Set shall be Little Endian Byte Ordering as defined in PS3.5. The requirements for the existence of a Command Element in a Command Set are defined in the DIMSE protocol.
Note
-
The use of Private Command Elements has been retired in this version of the DICOM Standard.
-
The encoding corresponds to the Implicit VR Data Element encoding defined in PS3.5.
A Command Element is composed of three fields; a Command Element Tag, a Value Length, and a Value Field.
Command Element Tag: An ordered pair of 16-bit unsigned integers representing the Group Number followed by Element Number.
Value Length: A 32-bit unsigned integer representing the explicit Length as the number of bytes (even) that make up the Value. It does not include the length of the Command Element Tag or Value Length fields.
Value Field: An even number of bytes containing the Value(s) of the Command Element.
The command type of Value(s) stored in this field is specified by the Command Element's Value Representation (VR). The VR for a given Command Element can be determined using the Command Dictionary in Annex E. The VR of Command Elements shall agree with those specified in the Command Dictionary. The VR definitions are defined in PS3.5
The Value Multiplicity (VM) specifies how many Values with the VR can be placed in the Value Field. If the VM is greater than one, multiple Values shall be delimited within the Value Field as defined in PS3.5. The VM for a given Command Element can be determined using the Command Dictionary in Annex E.
Note
-
The Message Length-to-End (0000,0001) Command Element is retired. Implementations may choose to send it for backward compatibility reasons. DICOM V3.0 conformant implementations must not rely on its presence for their operation.
-
The delimitation of the Message length is actually achieved by relying on the fact that the Presentation Data Value (conveying each Message fragment) is delimited as defined by the OSI Upper Layer Service and the associated Message Control Header (see PS3.8). This results from the fact that the DICOM V3.0 UL protocol or the OSI Presentation protocol explicitly conveys the length of a PDV.
The DICOM Message Service Element supports communication between peer DIMSE Service Users. A DIMSE Service User acts in one of two roles:
DIMSE Service Users make use of service primitives that are provided by the DIMSE Service Provider. The DIMSE Service Provider is an abstraction of the totality of those entities that provide DIMSE services to peer DIMSE Service Users. A service primitive shall be one of the following types:
These primitives (which are shown in Figure 7-1) are used as follows to successfully complete a DIMSE service:
-
The invoking DIMSE Service User issues a request primitive to the DIMSE Service Provider.
-
The DIMSE Service Provider receives the request primitive from the invoking DIMSE Service User and issues an indication primitive to the performing DIMSE Service User.
-
The performing DIMSE Service User receives the indication primitive from the DIMSE Service Provider and performs the requested service.
-
The performing DIMSE Service User issues a response primitive to the DIMSE Service Provider.
-
The DIMSE Service Provider receives the response primitive from the performing DIMSE Service User and issues a confirmation primitive to the invoking DIMSE Service User.
-
The invoking DIMSE Service User receives the confirmation primitive from the DIMSE Service Provider completing the DIMSE service.
DIMSE provides two types of information transfer services that are used by DICOM Application Entities:
Notification services enable one DICOM Application Entity to notify another about the occurrence of an event or change of state. The definition of the notification and the consequent behavior of the Application Entities is dependent upon the Service Class and Information Object Definitions. See PS3.3 and PS3.4.
Operation services enable one DICOM Application Entity to explicitly request an operation to be performed upon a SOP Instance managed by another DICOM Application Entity.
The DICOM Message Service Element receives notification and operation requests and their related information from the DIMSE Service User. Two DICOM Application Entities take the roles as peer DIMSE Service Users in order to exchange notifications and operations.
A notification or operation is implemented as a request/response interaction carried out within the context of an established application Association. Typically, one DIMSE Service User requests that a particular operation be performed (or notification be processed) and the other DIMSE Service User attempts to perform the operation (or process the notification) and then reports the outcome of the attempt.
When engaging in the operations or notifications, the DIMSE Service User takes on one of two roles:
-
it performs operations (on SOP Instances for which it has responsibility) that were invoked by a peer DIMSE Service User. It may also emit change-of-state notifications for SOP Instances to one or more peer DIMSE Service Users. These notifications may be invoked as a result of operations initiated by other DIMSE Service Users.
-
it invokes the performance of an operation on a peer DIMSE Service User. It may also receive notifications from a peer DIMSE Service User.
These roles are depicted in Figure 7.2-1.
Note
Operations and notifications, on an Association, are used in one of the following two modes:
In the synchronous mode, the invoking DIMSE Service User, on an established Association, requires a response from the performing DIMSE Service User before invoking another operation or notification.
In the asynchronous mode, the invoking DIMSE Service User, on an established Association, may continue to invoke further operations or notifications to the performing DIMSE Service User without awaiting a response. In the asynchronous mode, the performing DIMSE Service User may respond to the operations or notifications in a different order than they were received.
The mode selection (synchronous or asynchronous) is determined at Association establishment time. The synchronous mode serves as the default mode and shall be supported by all DIMSE Service Users. The asynchronous mode is optional and the maximum number of outstanding operations/notifications is negotiated during Association establishment. This negotiation is accomplished by Application Association Information as defined in Annex D.
The DICOM Message Service Element does not provide separate services for the establishment and termination of application Associations. This section provides an overview of how an Application Entity using the DIMSE service uses the Association Services defined in PS3.8.
During the Association establishment phase, a DIMSE Service User shall exchange initialization information using parameters of the A-ASSOCIATE Upper Layer Service (see Figure 7.4-1) that include:
The A-RELEASE and A-ABORT Services defined in PS3.8 shall be used for the termination of an Association.
Note
The rules defining how the Association Services are used by a DIMSE Service User are defined in Annex D.
The A-ASSOCIATE Service is invoked by a DIMSE Service User to establish an Association with a peer DIMSE Service User. Association establishment is always the first phase of DICOM Message Exchange.
The initiating DIMSE Service User and the responding DIMSE Service User shall include Application Association Information on the request and response primitive respectively. The meaning of this parameter is Application Context specific. For more information on the use of the Application Association Information, see Annex D.
The A-RELEASE Service is invoked by a DIMSE Service User to request the orderly termination of an Association between peer DIMSE Service Users. This Part of the Standard does not specify any use of the parameters of the A-RELEASE service.
The A-ABORT Service is invoked by a DIMSE Service User to request the abrupt termination of the Association between peer DIMSE Service Users. The A-ABORT invoking DIMSE Service User shall include (within the A-ABORT user information field) the Abort Source parameter. The Abort Source parameter indicates the initiating source of the abort. It takes one of the following symbolic values:
Reference PS3.8 for more information on the A-RELEASE and A-ABORT services.
Because the manner in which operations applied to Composite SOP Instances differ from operations and notifications applied to Normalized SOP Instances, two groups of DIMSE services are defined:
The DIMSE-C services allow a DICOM Application Entity to explicitly request an operation by another DICOM Application Entity on Composite SOP Instances. The operations allowed are intended to be effectively compatible with those provided by previous versions of this Standard. DIMSE-C provides only operation services.
DIMSE-C provides the following operation services that are all confirmed services and as such a response is expected:
-
The C-STORE service is invoked by a DIMSE Service User to request the storage of Composite SOP Instance information by a peer DIMSE Service User.
-
The C-FIND service is invoked by a DIMSE Service User to match a series of Attribute strings against the Attributes of the set of SOP Instances managed by a peer DIMSE Service User. The C-FIND service returns for each match a list of requested Attributes and their values.
-
The C-GET service is invoked by a DIMSE Service User to fetch the information for one or more Composite SOP Instances from a peer DIMSE Service User, based upon the Attributes supplied by the invoking DIMSE Service User.
-
The C-MOVE service is invoked by a DIMSE Service User to move the information for one or more Composite SOP Instances from a peer DIMSE Service User, to a third party DIMSE Service User, based upon the Attributes supplied by the invoking DIMSE Service User
-
The C-ECHO service is invoked by a DIMSE Service User to verify end-to-end communications with a peer DIMSE Service User.
Note
-
The major differences between a C-GET and a C-MOVE operation are that the:
-
C-STORE sub-operations resulting from a C-GET are performed on the same Association as the C-GET. With a C-MOVE, the resulting C-STORE sub-operations are performed on a separate Association.
-
C-MOVE operation supports C-STORE sub-operations being performed with an Application Entity that is not the one that initiated the C-MOVE (third party move).
-
-
In the case where an Application Entity wishes to request that it receives one or more images for storage, it may use either a C-GET operation or a C-MOVE to itself. It is expected that in most environments the C-MOVE is a simpler solution despite the fact that two Associations are required. The use of the C-GET service may not be widely implemented. It may be implemented in special cases where a system does not support multiple Associations. It was left in this version of the Standard for backward compatibility with previous versions of the Standard.
The DIMSE-N services provide both notification and operation services applicable to Normalized SOP Instances.
DIMSE-N provides a single Notification Service, the N-EVENT-REPORT. The N-EVENT-REPORT service is invoked by a DIMSE Service User to report an event about a SOP Instance to a peer DIMSE Service User. This service is a confirmed service and a response is expected.
DIMSE-N provides the following operation services that are all confirmed services and as such a response is expected:
-
The N-GET service is invoked by a DIMSE Service User to request the retrieval of information from a peer DIMSE Service User.
-
The N-SET service is invoked by a DIMSE Service User to request the modification of information by a peer DIMSE Service User.
-
The N-ACTION service is invoked by a DIMSE Service User to request a peer DIMSE Service User to perform an action.
-
The N-CREATE service is invoked by a DIMSE Service User to request a peer DIMSE Service User to create an instance of a SOP Class.
-
The N-DELETE service is invoked by a DIMSE Service User to request a peer DIMSE Service User to delete an instance of a SOP Class.
All DIMSE operations and notifications are confirmed services. The performing DIMSE Service User shall report the response of each operation or notification over the same Association on which the operation or notification was invoked.
Each DIMSE service is accomplished through the use of one or more service primitives. How the peer DIMSE Service Users utilize and react to the service primitives are defined by the service procedures.
Some DIMSE services are atomic in that the service is performed by one operation or notification. In such a case the DIMSE service primitives are used by peer DIMSE Service Users to invoke and perform the operation or notification.
Other DIMSE services require the use of one or more sub-operations to perform the service. In such cases DIMSE service primitives are used by peer DIMSE Service Users to invoke and perform each sub-operation. How and when the sub-operation service primitives are used is defined by the procedures for the DIMSE service.
Each DIMSE service requires one or more response primitives as a result of the invocation of the service. How and when the multiple response primitives are used is defined by the procedures for the DIMSE service. Whether multiple responses are returned is conditional upon the information included in the request primitive by the DIMSE Service User.
Certain DIMSE services permit the cancellation of the service through the use of service primitives. This allows an invoking DIMSE Service User to request termination of a DIMSE service after completion of the request service primitive but prior to completion of the confirm service primitive.
Table 7.5-2 lists each DIMSE service and its related procedure information. The complete specifications for the service procedures are defined in Sections 9 and 10 for DIMSE-C and DIMSE-N respectively.
This Section provides an overview of the DIMSE protocol machine. The DIMSE protocol machine defines the procedures and the encoding rules necessary to construct Messages used to exchange command requests and responses between peer DIMSE Service Users (e.g., two DICOM Application Entities). The relationship between Messages and the different types of service primitives is shown in Figure 7-1.
The DIMSE protocol machine accepts DIMSE Service User request and response service primitives and constructs Messages defined by the procedures defined in 9.3 and 10.3. The DIMSE protocol machine accepts Messages and passes them to the DIMSE Service User by the means of indication and confirmation service primitives.
Procedures define the rules for the transfer of Messages that convey command requests and responses. These rules define interpretation of the various fields in the command part of the Message. They do not define what an invoking DIMSE Service User should do with the information (the Data Set part of the Message) it requested nor how a performing DIMSE Service User should process the operation.
Messages may be fragmented. The fragmentation of Messages exchanged between peer DICOM Application Entities and the P-DATA service used to exchange these Message fragments are defined in Annex F.
Note
These Message fragments are called Application Protocol Data Units (APDUs) by the OSI construct.
The invoking DIMSE Service User request primitive results in a Message carrying a Command Request (with an optional associated Data Set). Each Message induces an indication primitive to the performing DIMSE Service User.
The performing DIMSE Service User response primitives result in a Message carrying a Command Response (with an optional associated Data Set). Each Message induces a confirmation primitive to the invoking DIMSE Service User.
The establishment of an Association involves two DIMSE Service Users, one that is the Association-requester and one that is the Association-acceptor. A DIMSE Service User may initiate an Association establishment by using the A-ASSOCIATE service described in PS3.8.
Included in the parameters of the A-ASSOCIATE service is the Application Context that specifies, among other things, the rules required for the coordination of initialization information corresponding to different DICOM Application Entities. The Application Contexts permitted for DIMSE are specified in Annex A.
The C-STORE service is used by a DIMSE Service User to store a composite SOP Instance on a peer DIMSE Service User. It is a confirmed service.
Table 9.1-1 lists the parameters of this service.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
Note
-
Inclusion of this parameter in the confirmation was permitted in previous versions of this Standard but this mode of use is now retired. This parameter may be included in the confirmation but in such a case the invoking DIMSE Service User should not attach any semantic significance to this parameter.
-
The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.
This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.
For the request/indication, this parameter specifies the SOP Class for the storage. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.
For the request/indication, this parameter specifies the SOP Instance to be stored. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.
This parameter specifies the priority of the C-STORE operation. It shall be one of LOW, MEDIUM, or HIGH.
This parameter specifies the DICOM AE Title of the DICOM AE that invoked the C-MOVE operation from which this C-STORE sub-operation is being performed.
This parameter specifies the Message ID (0000,0110) of the C-MOVE request/indication primitive from which this C-STORE sub-operation is being performed.
The Data Set accompanying the C-STORE primitive contains the Attributes of the Composite SOP Instance to be stored.
This parameter contains the error or success notification for the operation. It shall be included by the performing DIMSE Service User in the response/confirmation. The following types of status may occur in a response/confirmation (see also Annex C):
-
Refused: Out of resources (Status value is Service Class specific) - This indicates that the peer DIMSE Service User was unable to store the composite SOP Instance because it was out of resources.
-
Refused: SOP Class not supported (0122H) - This indicates that the peer DIMSE Service User was unable to store the composite SOP Instance because the SOP Class is not supported,
-
Error: Cannot understand (Status value is Service Class specific) - This indicates that the peer DIMSE Service User was unable to store the composite SOP Instance because it Cannot understand certain Data Elements.
-
Error: Data Set does not match SOP Class (Status value is Service Class specific) - This indicates that the peer DIMSE Service User was unable to store the composite SOP Instance because the Data Set does not match the SOP Class.
-
Warning (Status value is Service Class specific) - This indicates that the peer DIMSE Service User was able to store the composite SOP Instance, but detected a probable error.
-
Success (0000H) - This indicates that the composite SOP Instance was successfully stored.
-
Duplicate invocation (0210H) - Indicates that the Message ID (0000,0110) specified is allocated to another notification or operation.
-
Invalid SOP Instance (0117H) - Indicates that the SOP Instance UID specified implied a violation of the UID construction rules.
-
Mistyped argument (0212H) - Indicates that one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users.
-
Unrecognized operation (0211H) - Indicates that the operation is not one of those agreed between the DIMSE Service Users.
-
Refused: Not authorized (0124H) - Indicates that the peer DIMSE Service User was not authorized to store the composite SOP Instance.
The following C-STORE procedures apply:
-
The invoking DIMSE Service User requests that the performing DIMSE Service User store a composite SOP Instance by issuing a C-STORE request primitive to the DIMSE Service Provider.
-
The DIMSE Service Provider issues a C-STORE indication primitive to the performing DIMSE Service User.
-
The performing DIMSE Service User reports acceptance or rejection of the C-STORE request primitive by issuing a C-STORE response primitive to the DIMSE Service Provider,
-
The DIMSE Service Provider issues a C-STORE confirmation primitive to the invoking DIMSE Service User, completing the C-STORE operation.
The performing DIMSE Service User may return a C-STORE response primitive with the status of Failed or Refused before the entire C-STORE indication (Data Set) has been completely transmitted by the invoking DIMSE Service User. A C-STORE response primitive with the status of Success or Warning shall not be returned until the entire C-STORE indication has been received by the performing DIMSE Service User.
The C-FIND service is used by a DIMSE Service User to match a set of Attributes against the Attributes of a set of composite SOP Instances maintained by a peer DIMSE Service User. It is a confirmed service.
See Table 9.1-2.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
Note
-
Inclusion of this parameter in the confirmation was permitted in previous versions of this Standard but this mode of use is now retired. This parameter may be included in the confirmation but in such a case the invoking DIMSE Service User should not attach any semantic significance to this parameter.
-
The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.
This parameter specifies the Message ID (0000,0110) of the request/indication to which this response/confirmation applies.
For the request/indication, this parameter specifies the SOP Class of the Information Model for the query. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.
This parameter specifies the priority of the C-FIND operation. It shall be one of LOW, MEDIUM, or HIGH.
In the request/indication, this is a list of Attributes to be matched against the values of the Attributes in the instances of the composite objects known to the performing DIMSE Service User.
In the response/confirmation, this is the same list of Attributes with values of these Attributes in a particular composite SOP Instance that matched. It shall be sent only when that Status (0000,0900) is equal to Pending (not permitted for other statuses).
The list of Attributes and the rules for construction are specified in PS3.4.
Indicates the status of the response. It may have any of the following values (see also Annex C):
-
Success (0000H) - This indicates that processing of the matches is complete. It shall not contain a matching Identifier.
-
Pending (Status value is Service Class specific) - This indicates that processing of the matches is initiated or continuing. It shall contain a matching Identifier.
-
Refused: Out of resources (Status value is Service Class specific) - Indicates that processing of the C-FIND has been terminated because it was out of resources. This may be the initial response to the C-FIND, or may be sent after a number of pending C-FIND responses. This response shall not contain a matching Identifier.
-
Refused: SOP Class not supported (0122H) - Indicates that processing of the C-FIND has been terminated because the SOP Class was not supported. This response shall not contain a matching Identifier.
-
Cancel (FE00H) - Indicates that the processing of the C-FIND has been terminated due to a C-FIND Cancel indication primitive. The response shall not contain an Identifier.
-
Failed (Status value is Service Class specific) - Indicates that the C-FIND operation failed at the performing DIMSE Service User.
The following C-FIND service procedures apply to the invoking DIMSE-service user:
-
The invoking DIMSE Service User requests a performing DIMSE Service User to match an Identifier against the Attributes of all SOP Instances known to the performing DIMSE Service User by issuing a C-FIND request primitive to the DIMSE Service Provider. If the request is rejected by the DIMSE Service Provider, the following procedures do not apply.
-
At any time before receiving a C-FIND confirmation primitive with a status unequal to Pending, the invoking DIMSE Service User may request the performing DIMSE Service User to cancel the service by issuing a C-FIND cancel request primitive to the DIMSE Service Provider.
-
The invoking DIMSE Service User receives a C-FIND confirmation primitive for each unique match of the Identifier to a set of composite SOP Instance Attributes.
-
The invoking DIMSE Service User receives a final C-FIND confirmation primitive.
The following C-FIND service procedures apply to the performing DIMSE Service User:
-
When the performing DIMSE Service User receives a C-FIND indication from the DIMSE Service Provider, it matches the Identifier against the Attributes of known composite SOP Instances.
-
At any time following the C-FIND indication, the performing DIMSE Service User may receive a C-FIND cancel indication.
-
If the C-FIND cancel indication is received before the processing of the C-FIND indication has completed, then the C-FIND operation is aborted; otherwise the following procedure does not apply.
-
The performing DIMSE Service User issues a C-FIND response with a status of Canceled to the DIMSE Service Provider to indicate that the C-FIND has been canceled. The following procedures do not apply.
-
For each match, the performing DIMSE Service User issues a C-FIND response with the status set to Pending and a matching Identifier.
-
When the C-FIND operation completes (either in success or in failure), the performing DIMSE Service User issues a C-FIND response with the status set to either Refused, Failed, or Success to the DIMSE Service Provider.
The following C-FIND service procedures apply to the DIMSE Service Provider:
-
When the DIMSE Service Provider receives a C-FIND request primitive from the invoking DIMSE Service User, it issues a C-FIND indication primitive to the performing DIMSE Service User.
-
When the DIMSE Service Provider receives a C-FIND cancel request primitive from the invoking DIMSE Service User, it issues a C-FIND cancel indication to the performing DIMSE Service User.
-
When the DIMSE Service Provider receives a C-FIND response primitive from the performing DIMSE Service User, it issues a C-FIND confirmation primitive to the invoking DIMSE Service User.
The performing DIMSE Service User may return a C-FIND response primitive with the status of Failed or Refused before the entire C-FIND indication (Data Set) has been completely transmitted by the invoking DIMSE Service User. A C-FIND response primitive with the status of Success or Warning shall not be returned until the entire C-FIND indication has been received by the performing DIMSE Service User.
The C-GET service is used by a DIMSE Service User to match a set of Attributes against the Attributes of a set of composite SOP Instances maintained by a peer DIMSE Service User, and retrieve all composite SOP Instances that match. It triggers one or more C-STORE sub-operations on the same Association. It is a confirmed service.
See Table 9.1-3.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
Note
-
Inclusion of this parameter in the confirmation was permitted in previous versions of this Standard but this mode of use is now retired. This parameter may be included in the confirmation but in such a case the invoking DIMSE Service User should not attach any semantic significance to this parameter.
-
The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.
This parameter specifies the Message ID (0000,0110) of the request/indication to which this response/confirmation applies.
For the request/indication, this parameter specifies the SOP Class of the Information Model for the retrieve. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.
This parameter specifies the priority of the C-GET operation. It shall be one of LOW, MEDIUM or HIGH. This priority shall also be the priority used for all sub-operations.
In the request/indication, this is a list of Attributes to be matched against the values of the Attributes of known composite SOP Instances of the performing DIMSE Service User. The list of Attributes allowed and the rules for the construction are specified in PS3.4.
Note
The Identifier is specified as U in the Response/Confirmation, but Services defined in PS3.4 that use this primitive may impose mandatory or conditional requirements on its presence.
In the response/confirmation, this is a list of Attributes that provide status information about the C-GET operation. The list of Attributes allowed and the rules that define the usage of the Identifier are specified in PS3.4.
Indicates the status of the response. It may have any of the following values (see also Annex C):
-
Success (0000H) - This indicates that processing of the matches and all sub-operations are complete.
-
Pending (Status value is Service Class specific) - This indicates that processing of the matches and sub-operations is initiated or continuing.
-
Refused: Out of resources (Status value is Service Class specific) - Indicates that processing of the C-GET has been terminated because it was out of resources. This may be the initial response to the C-GET or may be sent after a number of Pending statuses.
-
Refused: SOP Class not supported (0122H) - Indicates that processing of the C-GET has been terminated because the SOP Class was not supported.
-
Cancel (FE00H) - Indicates that processing of the C-GET has been terminated due to a C-GET Cancel indication primitive.
-
Failed (Status value is Service Class specific) - Indicates that the C-GET operation failed at the performing DIMSE Service User.
-
Duplicate invocation (0210H) - Indicates that the Message ID (0000,0110) specified is allocated to another notification or operation.
-
Mistyped argument (0212H) - Indicates that one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users.
-
Unrecognized operation (0211H) - Indicates that the operation is not one of those agreed between the DIMSE Service Users.
-
Refused: Not authorized (0124H) - Indicates that the peer DIMSE Service User was not authorized to invoke the C-FIND operation.
-
Warning (Status value is Service Class specific) - This indicates that the peer DIMSE Service User was able to perform sub-operations but detected a probable error with one or more of them.
This specifies the number of remaining C-STORE sub-operations to be invoked by this C-GET operation. It may be included in any response/confirmation and shall be included if the status is equal to Pending.
This specifies the number of C-STORE sub-operations invoked by this C-GET operation that have completed successfully. It may be included in any response/confirmation and shall be included if the status is equal to Pending.
The following C-GET service procedures apply to the invoking DIMSE-service user:
-
The invoking DIMSE Service User requests a performing DIMSE Service User to match an Identifier against the Attributes of all SOP Instances known to the performing DIMSE Service User and generate a C-STORE sub-operation for each match. This request is made by issuing a C-GET request primitive to the DIMSE Service Provider. If the request is rejected by the DIMSE Service Provider, the following procedures do not apply.
-
At any time before receiving a C-GET confirmation primitive with status unequal to Pending, the invoking DIMSE Service User may request the performing DIMSE Service User to cancel the service by issuing a C-GET cancel request primitive to the DIMSE Service Provider.
-
The invoking DIMSE Service User may receive C-GET confirmation primitives with status of Pending during the processing of the C-GET operation.
-
The invoking DIMSE Service User receives a final C-GET confirmation primitive.
The following C-GET service procedures apply to the performing DIMSE Service User:
-
When the performing DIMSE Service User receives a C-GET indication from the DIMSE Service Provider it matches the Identifier against the Attributes of known composite SOP Instances and generates a C-STORE sub-operation for each match.
-
At any time following the C-GET indication, the performing DIMSE Service User may receive a C-GET cancel indication.
-
If the C-GET cancel indication is received before the processing of the C-GET indication has completed, then the C-GET operation is terminated; otherwise the following procedure does not apply.
-
The performing DIMSE Service User issues a C-GET response with a status of Canceled to the DIMSE Service Provider to indicate that the C-GET has been canceled. The following procedures do not apply.
-
For each match, the performing DIMSE Service User initiates a C-STORE sub-operation on the same Association as the C-GET. In this sub-operation, the C-GET performing DIMSE Service User becomes the C-STORE invoking DIMSE Service User. The C-STORE performing DIMSE Service User is the C-GET invoking DIMSE Service User.
-
During the processing of the C-GET operation, the performing DIMSE Service User may issue C-GET response primitives with a status of Pending.
-
When the C-GET operation completes (either in success or in failure), the performing DIMSE Service User issues a C-GET response with the status set to either refused, failed or success to the DIMSE Service Provider.
The following C-GET service procedures apply to the DIMSE Service Provider:
-
When the DIMSE Service Provider receives a C-GET request primitive from the invoking DIMSE Service User, it issues a C-GET indication primitive to the performing DIMSE Service User.
-
When the DIMSE Service Provider receives a C-GET cancel request primitive from the invoking DIMSE Service User, it issues a C-GET cancel indication to the performing DIMSE Service User.
-
When the DIMSE Service Provider receives a C-GET response primitive from the performing DIMSE Service User, it issues a C-GET confirmation primitive to the invoking DIMSE Service User.
The performing DIMSE Service User may return a C-GET response primitive with the status of Failed or Refused before the entire C-GET indication (Data Set) has been completely transmitted by the invoking DIMSE Service User. A C-GET response primitive with the status of Success or Warning shall not be returned until the entire C-GET indication has been received by the performing DIMSE Service User.
The C-MOVE service is used by a DIMSE Service User to match a set of Attributes against the Attributes of a set of composite SOP Instances maintained by a peer DIMSE Service User, and retrieve all composite SOP Instances that match. It triggers one or more C-STORE sub-operations on a separate Association. It is a confirmed service.
See Table 9.1-4.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
Note
-
Inclusion of this parameter in the confirmation was permitted in previous versions of this Standard but this mode of use is now retired. This parameter may be included in the confirmation but in such a case the invoking DIMSE Service User should not attach any semantic significance to this parameter.
-
The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.
This parameter specifies the Message ID (0000,0110) of the request/indication to which this response/confirmation applies.
For the request/indication, this parameter specifies the SOP Class of the Information Model for the retrieve. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.
This parameter specifies the priority of the C-MOVE operation. It shall be one of LOW, MEDIUM or HIGH . This priority shall also be the priority used for all sub-operations.
This parameter specifies the DICOM AE Title of the destination DICOM AE to which the C-STORE sub-operations are being performed.
In the request/indication, this is a list of Attributes to be matched against the values of the Attributes of known composite SOP Instances of the performing DIMSE Service User. The list of Attributes allowed and the rules for the construction are in PS3.4.
Note
The Identifier is specified as U in the Response/Confirmation, but Services defined in PS3.4 that use this primitive may impose mandatory or conditional requirements on its presence.
In the response/confirmation, this is a list of Attributes that provide status information about the C-MOVE operation. The list of Attributes allowed and the rules that define the usage of the Identifier are specified in PS3.4.
Indicates the status of the response. It may have any of the following values (see also Annex C):
-
Success (0000H) - This indicates that processing of the matches and all sub-operations are complete.
-
Pending (Status value is Service Class specific) - This indicates that procession of the matches and sub-operations is initiated or continuing.
-
Refused: Out of resources (Status value is Service Class specific) - Indicates that processing of the C-MOVE has been terminated because it was out of resources. This may be the initial response to the C-MOVE or may be sent after a number of Pending statuses.
-
Refused: SOP Class not supported (0122H) - Indicates that processing of the C-MOVE has been terminated because the SOP Class was not supported.
-
Refused: Move Destination unknown (Status value is Service Class specific) - Indicates that processing of the C-MOVE has been terminated because the Move destination was unknown.
-
Cancel (FE00H) - Indicates that processing of the C-MOVE has been terminated due to a C-MOVE Cancel indication primitive.
-
Failed (Status value is Service Class specific) - Indicates that the C-MOVE operation failed at the performing DIMSE Service User.
-
Duplicate invocation (0210H) - Indicates that the Message ID (0000,0110) specified is allocated to another notification or operation.
-
Mistyped argument (0212H) - Indicates that one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users.
-
Unrecognized operation (0211H) - Indicates that the operation is not one of those agreed between the DIMSE Service Users.
-
Refused: Not authorized (0124H) - Indicates that the peer DIMSE Service User was not authorized to invoke the C-MOVE operation.
-
Warning (Status value is Service Class specific) - This indicates that the peer DIMSE Service User was able to perform sub-operations but detected a probable error with one or more of them.
This specifies the number of remaining C-STORE sub-operations to be invoked by this C-MOVE operation. It may be included in any response/confirmation and shall be included if the status is equal to Pending.
This specifies the number of C-STORE sub-operations invoked by this C-MOVE operation that have completed successfully. It may be included in any response/confirmation and shall be included if the status is equal to Pending.
The following C-MOVE service procedures apply to the invoking DIMSE-service user:
-
The invoking DIMSE Service User requests a performing DIMSE Service User to match an Identifier against the Attributes of all SOP Instances known to the performing DIMSE Service User and generate a C-STORE sub-operation for each match. This request is made by issuing a C-MOVE request primitive to the DIMSE Service Provider. If the request is rejected by the DIMSE Service Provider, the following procedures do not apply.
-
At any time before receiving a C-MOVE confirmation primitive with status unequal to Pending, the invoking DIMSE Service User may request the performing DIMSE Service User to cancel the service by issuing a C-MOVE cancel request primitive to the DIMSE Service Provider.
-
The invoking DIMSE Service User may receive C-MOVE confirmation primitives with status of Pending during the processing of the C-MOVE operation.
-
The invoking DIMSE Service User receives a final C-MOVE confirmation primitive.
The following C-MOVE service procedures apply to the performing DIMSE Service User:
-
When the performing DIMSE Service User receives a C-MOVE indication from the DIMSE Service Provider it matches the Identifier against the Attributes of known composite SOP Instances and generates a C-STORE sub-operation for each match.
-
At any time following the C-MOVE indication, the performing DIMSE Service User may receive a C-MOVE cancel indication.
-
If the C-MOVE cancel indication is received before the processing of the C-MOVE request has completed, then the C-MOVE operation is terminated; otherwise the following procedure does not apply.
-
The performing DIMSE Service User issues a C-MOVE response with a status of Canceled to the DIMSE Service Provider to indicate that the C-MOVE has been canceled. The following procedures do not apply.
-
For each matching composite SOP Instance, the C-MOVE performing DIMSE Service User initiates a C-STORE sub-operation on a different Association than the C-MOVE. In this sub-operation, the C-MOVE performing DIMSE Service User becomes the C-STORE invoking DIMSE Service User. The C-STORE performing DIMSE Service User may or may not be the C-MOVE invoking DIMSE Service User.
-
During the processing of the C-MOVE operation, the performing DIMSE Service User may issue C-MOVE response primitives with a status of Pending.
-
When the C-MOVE operation completes (either in success or in failure), the performing DIMSE Service User issues a C-MOVE response with the status set to either Refused, Failed, or Success to the DIMSE Service Provider.
The following C-MOVE service procedures apply to the DIMSE Service Provider:
-
When the DIMSE Service Provider receives a C-MOVE request primitive from the invoking DIMSE Service User, it issues a C-MOVE indication primitive to the performing DIMSE Service User.
-
When the DIMSE Service Provider receives a C-MOVE cancel request primitive from the invoking DIMSE Service User, it issues a C-MOVE cancel indication to the performing DIMSE Service User.
-
When the DIMSE Service Provider receives a C-MOVE response primitive from the performing DIMSE Service User, it issues a C-MOVE confirmation primitive to the invoking DIMSE Service User.
The performing DIMSE Service User may return a C-MOVE response primitive with the status of Failed or Refused before the entire C-MOVE indication (Data Set) has been completely transmitted by the invoking DIMSE Service User. A C-MOVE response primitive with the status of Success or Warning shall not be returned until the entire C-MOVE indication has been received by the performing DIMSE Service User.
The C-ECHO service is invoked by a DIMSE Service User to verify end-to-end communications with a peer DIMSE Service User. It is a confirmed service.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
Note
-
Inclusion of this parameter in the confirmation was permitted in previous versions of this Standard but this mode of use is now retired. This parameter may be included in the confirmation but in such a case the invoking DIMSE Service User should not attach any semantic significance to this parameter.
-
The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.
This parameter specifies the Message ID (0000,0110) of the request/indication to which this response/ confirmation applies.
For the request/indication, this parameter specifies the SOP Class of the SOP Instance for the verification. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.
Indicates the status of the response. It may have any of the following values (see also Annex C):
-
Refused: SOP Class not supported (0122H) - Indicates that a different SOP Class than the Verification SOP Class was specified, which was not supported.
-
Duplicate invocation (0210H) - Indicates that the Message ID (0000,0110) specified is allocated to another notification or operation.
-
Mistyped argument (0212H) - Indicates that one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users.
-
Unrecognized operation (0211H) - Indicates that a different SOP Class than the Verification SOP Class was specified, which does not recognize a C-ECHO operation.
The following C-ECHO procedures apply:
-
The invoking DIMSE Service User requests verification of communication to the performing DIMSE Service User by issuing a C-ECHO request primitive to the DIMSE Service Provider.
-
The DIMSE Service Provider issues a C-ECHO indication primitive to the performing DIMSE Service User.
-
The performing DIMSE Service User verifies communication by issuing a C-ECHO response primitive to the DIMSE Service Provider.
-
The DIMSE Service Provider issues a C-ECHO confirmation primitive to the invoking DIMSE Service User, completing the C-ECHO operation.
This section specifies the protocol necessary to perform the set of DIMSE-C operations. The Value Representations (VR) specified in the following tables shall be encoded as defined in PS3.5.
The information necessary for the C-STORE request and indication DIMSE-C primitives are conveyed in the C-STORE-RQ Message. The information necessary for the C-STORE response and confirmation DIMSE-C primitives are conveyed in the C-STORE-RSP Message.
The C-STORE-RQ Message contains fields as defined in Table 9.3-1. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-STORE service definition unless otherwise noted in Table 9.3-1. Fields not specified in the C-STORE service definition but present in Table 9.3-1 are required by the DIMSE-C protocol.
Table 9.3-1. C-STORE-RQ Message Fields
The C-STORE-RSP Message contains fields as defined in Table 9.3-2 and in Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5 of the DICOM Standard. Fields are required as specified in the C-STORE service definition unless otherwise noted in Table 9.3-2. Fields not specified in the C-STORE service definition but present in Table 9.3-2 are required by the DIMSE-C protocol.
Table 9.3-2. C-STORE-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 8001H for the C-STORE-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated C-STORE-RQ Message. |
||||
This field indicates that no Data Set is present in the Message and shall be set to a value of 0101H (Null). |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
The C-STORE procedures are initiated by the invoking DIMSE Service User issuing a C-STORE request primitive. On receipt of the C-STORE request primitive the DIMSE-C protocol machine shall:
On receipt of a Message conveying a C-STORE-RQ the DIMSE-C protocol machine shall issue a C-STORE indication primitive to the performing DIMSE Service User.
On receipt of the C-STORE response primitive, issued by the performing DIMSE Service User, the DIMSE-C protocol machine shall:
On receipt of a Message conveying a C-STORE-RSP the DIMSE-C protocol machine shall issue a C-STORE confirmation primitive to the invoking DIMSE Service User, thus completing the C-STORE procedure.
The performing DIMSE Service User may return a C-STORE-RSP with the status of Failed or Refused before the complete C-STORE-RQ request Message has been completely transmitted by the invoking DIMSE Service User (this is called an early failed response). Upon receipt of this Failed or Refused C-STORE-RSP the invoking DIMSE Service User may terminate the Message before it is completely sent (i.e., set the Last Fragment bit to 1 in a Data PDV for this Message, see Annex F). Following this, it may invoke another operation or notification. It is a protocol violation for an invoking DIMSE Service User to set the Last Fragment bit to 1 before a C-STORE-RQ Message has been completely transmitted if it has not received a Failed or Refused C-STORE-RSP to that request.
Note
When an Association is operating in asynchronous mode, it is possible for an invoking DIMSE Service User to transmit several Messages before a response. Therefore, while sending a Message it may receive a response to a previously transmitted Message. In this case this response is not an early failed response because the related Message has already been sent.
The information necessary for the C-FIND request and indication DIMSE-C primitives are conveyed in the C-FIND-RQ Message. The information necessary for the C-FIND response and confirmation DIMSE-C primitives are conveyed in the C-FIND-RSP Message. The information necessary for the C-FIND Cancel Request and Cancel Indication primitives are conveyed in the C-CANCEL-FIND-RQ Message.
The C-FIND-RQ Message contains fields as defined in Table 9.3-3. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-FIND service definition unless otherwise noted in Table 9.3-3. Fields not specified in the C-FIND service definition but present in Table 9.3-3 are required by the DIMSE-C protocol.
Table 9.3-3. C-FIND-RQ Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 0020H for the C-FIND-RQ Message. |
||||
Implementation-specific value that distinguishes this Message from other Messages. |
||||
This field indicates that a Data Set is present in the Message. It shall be set to any value other than 0101H (Null). |
||||
A Data Set that encodes the Identifier to be matched. See Section 9.1.2.1.5. |
The C-FIND-RSP Message contains fields as defined in Table 9.3-4 and in Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-FIND service definition unless otherwise noted in Table 9.3-4. Fields not specified in the C-FIND service definition but present in Table 9.3-4 are required by the DIMSE-C protocol.
Table 9.3-4. C-FIND-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 8020H for the C-FIND-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated C-FIND-RQ Message. |
||||
This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H (Null) if no Data Set is present; any other value indicates a Data Set is included in the Message. |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
A Data Set that encodes the Identifier that was matched. See Section 9.1.2.1.5. |
The C-CANCEL-FIND-RQ Message contains fields as defined in Table 9.3-5. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-FIND service definition unless otherwise noted in Table 9.3-5. Fields not specified in the C-FIND service definition but present in Table 9.3-5 are required by the DIMSE-C protocol.
Table 9.3-5. C-CANCEL-FIND-RQ Message Fields
The C-FIND procedures are initiated by the invoking DIMSE Service User issuing a C-FIND request primitive. On receipt of the C-FIND request primitive the DIMSE-C protocol machine shall:
On receipt of a Message conveying a C-FIND-RQ the DIMSE-C protocol machine shall issue a C-FIND indication primitive to the performing DIMSE Service User.
The DIMSE-C protocol machine shall:
-
accept zero or more C-FIND response primitives containing the status of Pending, issued by the performing DIMSE Service User, followed by a single C-FIND response primitive containing the final status
-
for each C-FIND response primitive containing the Pending status the DIMSE-C protocol machine shall:
-
for the C-FIND response primitive containing the final status the DIMSE-C protocol machine shall:
On receipt of a Message conveying a C-FIND-RSP the DIMSE-C protocol machine shall:
-
if the Message indicates the status of Pending, issue a C-FIND confirmation primitive to the invoking DIMSE Service User with a Pending status
-
if the Message indicates a final status, issue a C-FIND confirmation primitive to the invoking DIMSE Service User with a final status, thus completing the C-FIND procedure
Note
The C-FIND procedures can be canceled at any time by the invoking DIMSE Service User. This is accomplished by the invoking DIMSE Service User issuing a C-CANCEL request primitive.
The performing DIMSE Service User may return a C-FIND-RSP with the status of Failed or Refused before the complete C-FIND-RQ request Message has been completely transmitted by the invoking DIMSE Service User (this is called an early failed response). Upon receipt of this Failed or Refused C-FIND-RSP the invoking DIMSE Service User may terminate the Message before it is completely sent (i.e., set the Last Fragment bit to 1 in a Data PDV for this Message, see Annex F). Following this, it may invoke another operation or notification. It is a protocol violation for an invoking DIMSE Service User to set the Last Fragment bit to 1 before a C-FIND-RQ Message has been completely transmitted if it has not received a Failed or Refused C-FIND-RSP to that request.
Note
When an Association is operating in asynchronous mode, it is possible for an invoking DIMSE Service User to transmit several Messages before a response. Therefore, while sending a Message it may receive a response to a previously transmitted Message. In this case this response is not an early failed response because the related Message has already been sent.
The information necessary for the C-GET request and indication DIMSE-C primitives are conveyed in the C-GET-RQ Message. The information necessary for the C-GET response and confirmation DIMSE-C primitives are conveyed in the C-GET-RSP Message. The information necessary for the C-GET Cancel Request and Cancel Indication primitives are conveyed in the C-CANCEL-GET-RQ Message.
The C-GET-RQ Message contains fields as defined in Table 9.3-6. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-GET service definition unless otherwise noted in Table 9.3-6. Fields not specified in the C-GET service definition but present in Table 9.3-6 are required by the DIMSE-C protocol.
Table 9.3-6. C-GET-RQ Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 0010H for the C-GET-RQ Message. |
||||
Implementation-specific value that distinguishes this Message from other Messages. |
||||
This field indicates that a Data Set is present in the Message. It shall be set to any value other than 0101H (Null). |
||||
A Data Set that encodes attributes providing status information about the C-GET operation. See Section 9.1.3.1.5. |
The C-GET-RSP Message contains fields as defined in Table 9.3-7 and in Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-GET service definition unless otherwise noted in Table 9.3-7. Fields not specified in the C-GET service definition but present in Table 9.3-7 are required by the DIMSE-C protocol.
Table 9.3-7. C-GET-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 8010H for the C-GET-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated C-GET-RQ Message. |
||||
This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H (Null) if no Data Set is present; any other value indicates a Data Set is included in the Message. |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
The number of remaining C-STORE sub-operations to be invoked for this C-GET operation. |
||||
The number of C-STORE sub-operations invoked by this C-GET operation that have completed successfully. |
||||
The number of C-STORE sub-operations invoked by this C-GET operation that have failed. |
||||
The number of C-STORE sub-operations invoked by this C-GET operation that generated warning responses. |
||||
A Data Set that encodes the Identifier that was matched. See Section 9.1.3.1.5. |
Note
The list of Attributes allowed and the rules that define the usage of the Identifier are specified in PS3.4.
The C-CANCEL-GET-RQ Message contains fields as defined in Table 9.3-8. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-GET service definition unless otherwise noted in Table 9.3-8. Fields not specified in the C-GET service definition but present in Table 9.3-8 are required by the DIMSE-C protocol.
Table 9.3-8. C-CANCEL-GET-RQ Message Fields
The C-GET procedures are initiated by the invoking DIMSE Service User issuing a C-GET request primitive. On receipt of the C-GET request primitive the DIMSE-C protocol machine shall:
On receipt of a Message conveying a C-GET-RQ the DIMSE-C protocol machine shall issue a C-GET indication primitive to the performing DIMSE Service User.
The DIMSE-C protocol machine shall:
-
accept zero or more C-GET response primitives containing the status of Pending, issued by the performing DIMSE Service User, followed by a single C-GET response primitive containing the final status
-
for each C-GET response primitive containing the Pending status the DIMSE-C protocol machine shall:
-
for the C-GET response primitive containing the final status the DIMSE-C protocol machine shall:
Note
The C-GET indication primitive initiates a sub-operation identical to the C-STORE operation. However, for the C-STORE sub-operation the DIMSE Service Users switch their invoking and performing roles (i.e., the invoking DIMSE Service User becomes the performing DIMSE Service User, etc.).
On receipt of a Message conveying a C-GET-RSP the DIMSE-C protocol machine shall:
-
if the Message indicates the status of Pending, issue a C-GET confirmation primitive to the invoking DIMSE Service User with a Pending status
-
if the Message indicates a final status, issue a C-GET confirmation primitive to the invoking DIMSE Service User with a final status, thus completing the C-GET procedure
Note
The C-GET procedures can be canceled at any time by the invoking DIMSE Service User. This is accomplished by the invoking DIMSE Service User issuing a C-CANCEL request primitive.
The performing DIMSE Service User may return a C-GET-RSP with the status of Failed or Refused before the complete C-GET-RQ request Message has been completely transmitted by the invoking DIMSE Service User (this is called an early failed response). Upon receipt of this Failed or Refused C-GET-RSP the invoking DIMSE Service User may terminate the Message before it is completely sent (i.e., set the Last Fragment bit to 1 in a Data PDV for this Message, see Annex F). Following this, it may invoke another operation or notification. It is a protocol violation for an invoking DIMSE Service User to set the Last Fragment bit to 1 before a C-GET-RQ Message has been completely transmitted if it has not received a Failed or Refused C-GET-RSP to that request.
Note
When an Association is operating in asynchronous mode, it is possible for an invoking DIMSE Service User to transmit several Messages before a response. Therefore, while sending a Message it may receive a response to a previously transmitted Message. In this case this response is not an early failed response because the related Message has already been sent.
The information necessary for the C-MOVE request and indication DIMSE-C primitives are conveyed in the C-MOVE-RQ Message. The information necessary for the C-MOVE response and confirmation DIMSE-C primitives are conveyed in the C-MOVE-RSP Message. The information necessary for the C-MOVE Cancel request and Cancel indication primitives are conveyed in the C-CANCEL-MOVE-RQ Message.
The C-MOVE-RQ Message contains fields as defined in Table 9.3-9. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-MOVE service definition unless otherwise noted in Table 9.3-9. Fields not specified in the C-GET-MOVE service definition but present in Table 9.3-9 are required by the DIMSE-C protocol.
Table 9.3-9. C-MOVE-RQ Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 0021H for the C-MOVE-RQ Message. |
||||
Implementation-specific value that distinguishes this Message from other Messages. |
||||
This field indicates that a Data Set is present in the Message. It shall be set to any value other than 0101H (Null). |
||||
Shall be set to the DICOM AE Title of the destination DICOM AE to which the C-STORE sub-operations are being performed. |
||||
A Data Set that encodes the Identifier to be matched. See Section 9.1.4.1.6. |
The C-MOVE-RSP Message contains fields as defined in Table 9.3-10 and in Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-MOVE service definition unless otherwise noted in Table 9.3-10. Fields not specified in the C-MOVE service definition but present in Table 9.3-10 are required by the DIMSE-C protocol.
Table 9.3-10. C-MOVE-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 8021H for the C-MOVE-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated C-MOVE Message. |
||||
This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H (Null) if no Data Set is present; any other value indicates a Data Set is included in the Message. |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
The number of remaining sub-operations to be invoked for this C-MOVE operation. |
||||
The number of C-STORE sub-operations invoked by this C-MOVE operation that have completed successfully. |
||||
The number of C-STORE sub-operations invoked by this C-MOVE operation that have failed. |
||||
The number of C-STORE sub-operations invoked by this C-MOVE operation that generated warning responses. |
||||
A Data Set that encodes attributes providing status information about the C-MOVE operation. See Section 9.1.4.1.6. |
The C-CANCEL-MOVE-RQ Message contains fields as defined in Table 9.3-11. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-MOVE service definition unless otherwise noted in Table 9.3-11. Fields not specified in the C-MOVE service definition but present in Table 9.3-11 are required by the DIMSE-C protocol.
Table 9.3-11. C-CANCEL-MOVE-RQ Message Fields
The C-MOVE procedures are initiated by the invoking DIMSE Service User issuing a C-MOVE request primitive. On receipt of the C-MOVE request primitive the DIMSE-C protocol machine shall:
On receipt of a Message conveying a C-MOVE-RQ the DIMSE-C protocol machine shall issue a C-MOVE indication primitive to the performing DIMSE Service User.
The DIMSE-C protocol machine shall:
-
accept zero or more C-MOVE response primitives containing the status of Pending, issued by the performing DIMSE Service User, followed by a single C-MOVE response primitive containing the final status
-
for each C-MOVE response primitive containing the Pending status the DIMSE-C protocol machine shall:
-
for the C-MOVE response primitive containing the final status the DIMSE-C protocol machine shall:
On receipt of a Message conveying a C-MOVE-RSP the DIMSE-C protocol machine shall:
-
if the Message indicates the status of Pending, issue a C-MOVE confirmation primitive to the invoking DIMSE Service User with a Pending status;
-
if the Message indicates a final status, issue a C-MOVE confirmation primitive to the invoking DIMSE Service User with a final status, thus completing the C-MOVE procedure
Note
The C-MOVE procedures can be canceled at any time by the invoking DIMSE Service User. This shall be accomplished by the invoking DIMSE Service User issuing a C-CANCEL request primitive.
The performing DIMSE Service User may return a C-MOVE-RSP with the status of Failed or Refused before the complete C-MOVE-RQ request Message has been completely transmitted by the invoking DIMSE Service User (this is called an early failed response). Upon receipt of this Failed or Refused C-MOVE-RSP the invoking DIMSE Service User may terminate the Message before it is completely sent (i.e., set the Last Fragment bit to 1 in a Data PDV for this Message, see Annex F). Following this, it may invoke another operation or notification. It is a protocol violation for an invoking DIMSE Service User to set the Last Fragment bit to 1 before a C-MOVE-RQ Message has been completely transmitted if it has not received a Failed or Refused C-MOVE-RSP to that request.
Note
When an Association is operating in asynchronous mode, it is possible for an invoking DIMSE Service User to transmit several Messages before a response. Therefore, while sending a Message it may receive a response to a previously transmitted Message. In this case this response is not an early failed response because the related Message has already been sent.
The information necessary for the C-ECHO request and indication DIMSE-C primitives are conveyed in the C-ECHO-RQ Message. The information necessary for the C-ECHO response and confirmation DIMSE-C primitives are conveyed in the C-ECHO-RSP Message.
The C-ECHO-RQ Message contains fields as defined in Table 9.3-12. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-ECHO service definition unless otherwise noted in Table 9.3-12. Fields not specified in the C-ECHO service definition but present in Table 9.3-12 are required by the DIMSE-C protocol.
Table 9.3-12. C-ECHO-RQ Message Fields
The C-ECHO-RSP Message contains fields as defined in Table 9.3-13 and in Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the C-ECHO service definition unless otherwise noted in Table 9.3-13. Fields not specified in the C-ECHO service definition but present in Table 9.3-13 are required by the DIMSE-C protocol.
Table 9.3-13. C-ECHO-RSP Message Fields
The C-ECHO procedures are initiated by the invoking DIMSE Service User issuing a C-ECHO request primitive. On receipt of the C-ECHO request primitive the DIMSE-C protocol machine shall:
On receipt of a Message conveying a C-ECHO-RQ the DIMSE-C protocol machine shall issue a C-ECHO indication primitive to the performing DIMSE Service User.
On receipt of a C-ECHO response primitive, issued by the performing DIMSE Service User, the DIMSE-C protocol machine shall:
On receipt of a Message conveying a C-ECHO-RSP the DIMSE protocol machine shall issue a C-ECHO confirmation primitive to the invoking DIMSE Service User, thus completing the C-ECHO procedure.
The following sections describe the DIMSE-N Services. The behavior of these services is also described in PS3.4. The Affected SOP Class UID in the DIMSE-N command need not match the SOP Class UID in the Presentation Context negotiated for the association over which the DIMSE-N command has been sent. PS3.4 specifies which combinations are valid.
The N-EVENT-REPORT service is used by a DIMSE Service User to report an event to a peer DIMSE Service User. It is a confirmed service.
Table 10.1-1 lists the parameters for this service.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
This parameter specifies the Message ID (0000,0110) of the notification request/indication to which this response/confirmation applies.
For the request/indication, this parameter specifies the SOP Class of the SOP Instance for the event. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.
For the request/indication, this parameter specifies the SOP Instance for the event. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.
This parameter specifies the type of event being reported. It may be included in the success response/confirmation and shall be included if the Event Reply parameter is included.
Note
Service Class Specifications contained in PS3.4 defines any application usage of the Event Type ID parameter.
This application-specific parameter contains information that the invoking DIMSE Service User is able to supply about the event.
Note
Service Class Specifications contained in PS3.4 defines any application usage of the Event Information parameter.
This application-specific parameter contains the optional reply to the event report. It may only be included in the success response/confirmation.
Note
Service Class Specifications contained in PS3.4 defines any application usage of the Event Reply parameter.
This parameter contains the error or success notification for the operation. It shall be included by the performing DIMSE Service User in any response/confirmation. The following types of status may occur (see also Annex C):
-
Class-Instance conflict (0119H) - the specified SOP Instance is not a member of the specified SOP class.
-
Duplicate invocation (0210H) - the Message ID (0000,0110) specified is allocated to another notification or operation.
-
Invalid argument value (0115H) - the event information value specified was out of range or otherwise inappropriate.
-
Invalid SOP Instance (0117H) - the SOP Instance UID specified implied a violation of the UID construction rules.
-
Mistyped argument (0212H) - one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users.
-
No such argument (0114H) - the event information specified was not recognized.
-
No such Event Type (0113H) - the event type specified was not recognized.
-
No such SOP Class (0118H) - the SOP Class was not recognized.
-
No such SOP Instance (0112H) - the SOP Instance was not recognized.
-
Processing Failure (0110H) - a general failure in processing the operation was encountered.
-
Resource Limitation (0213H) - the operation was not performed due to resource limitation.
-
Unrecognized operation (0211H) - the operation is not one of those agreed between the DIMSE Service Users.
The following N-EVENT-REPORT procedures apply:
-
The invoking DIMSE Service User reports an event to the performing DIMSE Service User by issuing an N-EVENT-REPORT request primitive to the DIMSE Service Provider.
-
The DIMSE Service Provider issues an N-EVENT-REPORT indication primitive to the performing DIMSE Service User.
-
The performing DIMSE Service User reports acceptance or rejection of the N-EVENT-REPORT request primitive by issuing an N-EVENT-REPORT response primitive to the DIMSE Service Provider.
-
The DIMSE Service Provider issues an N-EVENT-REPORT confirmation primitive to the invoking DIMSE Service User, completing the N-EVENT-REPORT notification.
The performing DIMSE Service User may return an N-EVENT-REPORT response primitive with the status of Failed or Refused before the entire N-EVENT-REPORT indication (Data Set) has been completely transmitted by the invoking DIMSE Service User. A N-EVENT-REPORT response primitive with the status of Success or Warning shall not be returned until the entire N-EVENT-REPORT indication has been received by the performing DIMSE Service User.
The N-GET service is used by a DIMSE Service User to retrieve Attribute Values from a peer DIMSE Service User. It is a confirmed service.
Table 10.1-2 lists the parameters for this service.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.
This parameter contains a set of Attribute identifiers for which the Attribute Values are to be returned by the performing DIMSE Service User. If this parameter is omitted, all Attribute identifiers are assumed. The definitions of the Attributes are found in the specification of the Information Object Definition in PS3.3.
This parameter may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the Requested SOP Class UID parameter value used in the request/indication.
This parameter specifies the SOP Instance for which Attribute Values are returned. It may be included in any response/confirmation and when included shall be equal to the Requested SOP Instance UID (0000,1001) parameter value used in the invocation.
This parameter contains the set of Attribute identifiers and values that are returned by the performing DIMSE Service User. It shall be included in the success response/confirmation.
This parameter contains the error or success notification for the operation. It shall be included by the performing DIMSE Service User in any response/confirmation. The following types of status may occur (see also Annex C):
-
Attribute list error (0107H) - one or more Attribute Values were not read because the specified Attribute was not recognized. The Attribute Values that could be read are returned.
-
Class-Instance conflict (0119H) - the specified SOP Instance is not a member of the specified SOP Class.
-
Duplicate invocation (0210H) - the Message ID (0000,0110) specified is allocated to another notification or operation.
-
Invalid SOP Instance (0117H) - the SOP Instance UID specified implied a violation of the UID construction rules.
-
Mistyped argument (0212H) - one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users.
-
No such SOP Class (0118H) - the SOP Class was not recognized.
-
No such SOP Instance (0112H) - the SOP Instance was not recognized.
-
Processing Failure (0110H) - a general failure in processing the operation was encountered.
-
Resource Limitation (0213H) - the operation was not performed due to resource limitation.
-
Unrecognized operation (0211H) - the operation is not one of those agreed between the DIMSE Service Users.
-
Refused: Not authorized (0124H) - the DIMSE Service User was not authorized to invoke the operation
-
Warning (Status value is Service Class specific): not all optional attributes were returned by DIMSE Service User
-
Failed (Status value is Service Class specific): DIMSE Service User failed to complete the operation
The following N-GET procedures apply;
-
The invoking DIMSE Service User requests the performing DIMSE Service User to retrieve Attribute Value(s) by issuing an N-GET request primitive to the DIMSE Service Provider.
-
The DIMSE Service Provider issues an N-GET indication primitive to the performing DIMSE Service User.
-
If the operation can be performed, then the performing DIMSE Service User retrieves the requested Attribute Value(s) and generates a response indicating acceptance of the N-GET request primitive by issuing an N-GET response primitive to the DIMSE Service Provider. In this case the following procedure does not apply.
-
If the operation cannot be performed, then the performing DIMSE Service User rejects the N-GET request by issuing an N-GET response primitive with the appropriate error code to the DIMSE Service Provider.
-
The DIMSE Service Provider issues an N-GET confirmation primitive to the invoking DIMSE Service User, completing the N-GET operation.
The N-SET service is used by a DIMSE Service User to request the modification of Attribute Values from a peer DIMSE Service User. It is a confirmed service.
Table 10.1-3 lists the parameters for this service.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.
This parameter contains the set of Attribute identifiers and values that are to be used by the performing DIMSE Service User to replace the current values of the Attributes specified.
This parameter contains the set of Attribute identifiers and values that were used by the performing DIMSE Service User to replace the values of the Attributes specified. It may be included in the success response/confirmation.
This parameter may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the Requested SOP Class UID parameter value used in the request/indication.
This parameter specifies the SOP Instance for which Attribute Values were modified. It may be included in any response/confirmation and when included shall be equal to the Requested SOP Instance UID (0000,1001) parameter value used in the invocation.
This parameter contains the error or success notification for the operation. It shall be included by the performing DIMSE Service User in any response/confirmation. The following types of status may occur (see also Annex C):
-
Class-Instance conflict (0119H) - the specified SOP Instance is not a member of the specified SOP Class.
-
Duplicate invocation (0210H) - the Message ID (0000,0110) specified is allocated to another notification or operation.
-
Invalid Attribute Value (0106H) - the Attribute Value specified was out of range or otherwise inappropriate.
-
Attribute Value out of range (0116H) - the Attribute Value specified was out of range or otherwise inappropriate. The Attribute Values that could be modified were modified.
-
Mistyped argument (0212H) - one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users.
-
Invalid SOP Instance (0117H) - the SOP Instance UID specified implied a violation of the UID construction rules.
-
Missing Attribute Value (0121H) - a required Attribute Value was not supplied.
-
No such Attribute (0105H) - the Tag for the specified Attribute was not recognized.
-
Attribute list error (0107H) - one or more Attribute Values were not modified because the specified Attributes were not recognized. The Attribute Values that could be modified were modified.
-
No such SOP Class (0118H) - the SOP Class was not recognized.
-
No such SOP Instance (0112H) - the SOP Instance was not recognized.
-
Processing Failure (0110H) - a general failure in processing the operation was encountered.
-
Resource Limitation (0213H) - the operation was not performed due to resource limitation.
-
Unrecognized operation (0211H) - the operation is not one of those agreed between the DIMSE Service Users.
-
Refused: Not authorized (0124H) - the DIMSE Service User was not authorized to invoke the operation.
-
Failed (Status value is Service Class specific): the operation was not performed as certain conditions for operation were not met
-
Warning (Status value is Service Class specific): the operation was performed partially or with modified conditions
The following N-SET procedures apply:
-
The invoking DIMSE Service User requests the performing DIMSE Service User to modify Attribute Value(s) by issuing an N-SET request primitive to the DIMSE Service Provider.
-
The DIMSE-service provider issues an N-SET indication primitive to the performing DIMSE Service User.
-
If the operation can be performed, then the performing DIMSE Service User modifies the requested Attribute Value(s) and generates a response indicating acceptance of the N-SET request primitive by issuing an N-SET response primitive to the DIMSE Service Provider. In this case the following procedure does not apply.
-
If the operation cannot be performed, then the performing DIMSE Service User rejects the N-SET request by issuing an N-SET response primitive with the appropriate error code to the DIMSE Service Provider.
-
The DIMSE Service Provider issues an N-SET confirmation primitive to the invoking DIMSE Service User, completing the N-SET operation.
The performing DIMSE Service User may return an N-SET response primitive with the status of Failed or Refused before the entire N-SET indication (Data Set) has been completely transmitted by the invoking DIMSE Service User. A N-SET response primitive with the status of Success or Warning shall not be returned until the entire N-SET indication has been received by the performing DIMSE Service User.
The N-ACTION service is used by a DIMSE Service User to request an action by a peer DIMSE Service User. It is a confirmed service.
Table 10.1-4 lists the parameters for this service.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.
This parameter specifies a particular action that is to be performed. It may be included in the success response/confirmation and shall be included if the action reply parameter is included.
Note
Service Class Specifications contained in PS3.4 defines any application usage of the Action Type ID (0000,1008) parameter.
This parameter specifies extra application-specific information when necessary to further define the nature, variations, or operands of the action to be performed. The syntax and semantics of the parameter depend upon the action requested. It may only be included in the request/indication.
Note
Service Class Specifications contained in PS3.4 defines any application usage of the Action Information parameter.
This parameter may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the Requested SOP Class UID parameter value used in the request/indication.
This parameter specifies the SOP Instance on which the action is to be performed. It may be included in any response/confirmation and when included shall be equal to the Requested SOP Instance UID (0000,1001) parameter value used in the invocation.
This parameter contains the application-specific reply to the action. It may be included in the success response/confirmation.
Note
Service Class Specifications contained in PS3.4 defines any application usage of the Action Reply parameter.
This parameter contains the error or success notification for the operation. It shall be included by the performing DIMSE Service User in any response/confirmation. The following type of status may occur (see also Annex C):
-
Class-Instance conflict (0119H) - the specified SOP Instance is not a member of the specified SOP Class.
-
Duplicate invocation (0210H) - the Message ID (0000,0110) specified is allocated to another notification or operation.
-
Invalid argument value (0115H) - the action information value specified was out of range or otherwise inappropriate.
-
Invalid SOP Instance (0117H) - the SOP Instance UID specified implied a violation of the UID construction rules.
-
Mistyped argument (0212H) - one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users.
-
No such Action (0123H) - the action type specified was not supported.
-
No such argument (0114H) - the action information specified was not supported.
-
No such SOP Class (0118H) - the SOP Class was not recognized.
-
No such SOP Instance (0112H) - the SOP Instance was not recognized.
-
Processing Failure (0110H) - a general failure in processing the operation was encountered.
-
Resource Limitation (0213H) - the operation was not performed due to resource limitation.
-
Unrecognized operation (0211H) - the operation is not one of those agreed between the DIMSE Service Users.
-
Refused: Not authorized (0124H) - the DIMSE Service User was not authorized to invoke the operation.
-
Failed (Status value is Service Class specific): the operation was not performed as certain conditions for operation were not met
-
Warning (Status value is Service Class specific): the operation was performed partially or with modified conditions
The following N-ACTION procedures apply:
-
The invoking DIMSE Service User requests the performing DIMSE Service User to perform an action on a managed SOP Instance by issuing an N-ACTION request primitive to the DIMSE Service Provider.
-
The DIMSE-service provider issues an N-ACTION indication primitive to the performing DIMSE Service User.
-
If the operation can be performed, the performing DIMSE Service User applies the action to the specified SOP Instance and generates a response indicating acceptance of the N-ACTION request primitive by issuing an N-ACTION response primitive to the DIMSE Service Provider. In this case the following procedure does not apply. The Action Reply may be included in a successful response.
-
If the operation cannot be performed, then the performing DIMSE Service User rejects the N-ACTION request by issuing an N-ACTION response primitive with the appropriate error code to the DIMSE Service Provider.
-
The DIMSE Service Provider issues an N-ACTION confirmation primitive to the invoking DIMSE Service User, completing the N-ACTION operation.
The performing DIMSE Service User may return an N-ACTION response primitive with the status of Failed or Refused before the entire N-ACTION indication (Data Set) has been completely transmitted by the invoking DIMSE Service User. A N-ACTION response primitive with the status of Success or Warning shall not be returned until the entire N-ACTION indication has been received by the performing DIMSE Service User.
The N-CREATE service is used by a DIMSE Service User to request a peer DIMSE Service User to create a new managed SOP Instance, complete with its identification and the values of its associated Attributes, and simultaneously to register its identification. It is a confirmed service.
Table 10.1-5 lists the parameters for this service.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.
For the request/indication, this parameter specifies the SOP Class of the new SOP Instance that is to be created by the performing DIMSE Service User. The performing DIMSE Service User assigns to the new SOP Instance, a set of Attribute Values as specified by the definition of its SOP Class. For the response/confirmation, this parameter specifies the SOP class of the SOP Instance that was created. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.
For the request/indication, this parameter specifies the SOP Instance that is used by the performing DIMSE Service User. If the SOP Instance UID is not supplied by the invoking DIMSE Service User, then the performing DIMSE Service User assigns a value to this identification of instance. For the response/confirmation, this parameter may only be included in the success response/confirmation and shall be included if it is not supplied by the invoking DIMSE Service User.
When this parameter is supplied by the invoking DIMSE Service User, it contains a set of Attribute identifiers and values that the performing DIMSE Service User is to assign to the new managed SOP Instance. When returned by the performing DIMSE Service User in the success response/confirmation, this parameter contains the complete list of all Attribute identifiers and values that were assigned to the new managed SOP Instance.
This parameter contains the error or success notification for the operation. It shall be included by the performing DIMSE Service User in any response/confirmation. The following type of status may occur (see also Annex C):
-
Duplicate invocation (0210H) - the Message ID (0000,0110) specified is allocated to another notification or operation.
-
Duplicate SOP Instance (0111H) - the new managed SOP Instance Value supplied by the invoking DIMSE Service User was already registered for a managed SOP Instance of the specified SOP Class.
-
Invalid Attribute Value (0106H) - the Attribute Value specified was out of range or otherwise inappropriate.
-
Attribute Value out of range (0116H) - the Attribute Value specified was out of range or otherwise inappropriate. The SCP will apply a default value or will not include the attribute in the created instance.
-
Invalid SOP Instance (0117H) - the SOP Instance UID specified implied a violation of the UID construction rules.
-
Missing Attribute (0120H) - a required Attribute was not supplied.
-
Missing Attribute Value (0121H) - a required Attribute Value was not supplied and a default value was not available.
-
Mistyped argument (0212H) - one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users.
-
No such Attribute (0105H) - the Tag for the specified Attribute was not recognized.
-
Attribute list error (0107H) -one or more specified Attributes were not recognized and not included in the created instance.
-
No such SOP Class (0118H) - the SOP Class was not recognized.
-
Processing Failure (0110H) - a general failure in processing the operation was encountered.
-
Resource Limitation (0213H) - the operation was not performed due to resource limitation.
-
Unrecognized operation (0211H) - the operation is not one of those agreed between the DIMSE Service Users.
-
Refused: Not authorized (0124H) - the DIMSE Service User was not authorized to invoke the operation.
-
Failed (Status value is Service Class specific): no instance was created by the DIMSE Service User
-
Warning (Status value is Service Class specific): the DIMSE Service User created an Instance but did not perform all specified operations
The following N-CREATE procedures apply:
-
The invoking DIMSE Service User requests the creation and registration of a new managed SOP Instance by issuing an N-CREATE request primitive to the DIMSE Service Provider.
-
The DIMSE-service provider issues an N-CREATE indication primitive to the performing DIMSE Service User.
-
If the operation can be performed, the performing DIMSE Service User creates and registers the new managed SOP Instance and generates a response indicating acceptance of the N-CREATE request primitive by issuing an N-CREATE response primitive to the DIMSE Service Provider. In this case the following procedure does not apply.
-
If the operation cannot be performed, then the performing DIMSE Service User rejects the N-CREATE request by issuing an N-CREATE response primitive with the appropriate error code to the DIMSE Service Provider.
-
The DIMSE Service Provider issues an N-CREATE confirmation primitive to the invoking DIMSE Service User, completing the N-CREATE operation.
The performing DIMSE Service User may return an N-CREATE response primitive with the status of Failed or Refused before the entire N-CREATE indication (Data Set) has been completely transmitted by the invoking DIMSE Service User. A N-CREATE response primitive with the status of Success or Warning shall not be returned until the entire N-CREATE indication has been received by the performing DIMSE Service User.
The N-DELETE service is used by an invoking DIMSE Service User to request a peer DIMSE Service User to delete a managed SOP Instance and to de-register its identification. It is a confirmed service.
Table 10.1-6 lists the parameters for this service.
This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE Service Provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.
This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.
This parameter may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the parameter value used in the request/indication.
This parameter specifies the SOP Instance that was deleted. It may be included in any response/confirmation and when included shall be equal to the Requested SOP Instance UID (0000,1001) parameter value used in the invocation.
This parameter contains the error or success notification for the operation. It shall be included by the performing DIMSE Service User in any response/confirmation. The following types of status may occur (see also Annex C):
-
Class-Instance conflict (0119H) - the specified SOP Instance is not a member of the specified SOP Class
-
Duplicate invocation (0210H) - the Message ID (0000,0110) specified is allocated to another notification or operation
-
Invalid SOP Instance (0117H) - the SOP Instance UID specified implied a violation of the UID construction rules
-
Mistyped argument (0212H) - one of the parameters supplied has not been agreed for use on the Association between the DIMSE Service Users
-
No such SOP Class (0118H) - the SOP Class was not recognized
-
No such SOP Instance (0112H) - the SOP Instance was not recognized
-
Processing Failure (0110H) - a general failure in processing the operation was encountered
-
Resource Limitation (0213H) - the operation was not performed due to resource limitation
-
Unrecognized operation (0211H) - the operation is not one of those agreed between the DIMSE Service Users
-
Refused: Not authorized (0124H) - the DIMSE Service User was not authorized to invoke the operation.
The following N-DELETE procedures apply:
-
The invoking DIMSE Service User requests the performing DIMSE Service User to delete a managed SOP Instance by issuing an N-DELETE request primitive to the DIMSE Service Provider.
-
The DIMSE-service provider issues an N-DELETE indication primitive to the performing DIMSE Service User.
-
If the operation can be performed, the performing DIMSE Service User deletes the specified managed SOP Instance and generates a response indicating acceptance of the N-DELETE request primitive by issuing an N-DELETE response primitive to the DIMSE Service Provider. In this case the following procedure does not apply.
-
If the operation cannot be performed, then the performing DIMSE Service User rejects the N-DELETE request by issuing an N-DELETE response primitive with the appropriate error code to the DIMSE Service Provider.
-
The DIMSE Service Provider issues an N-DELETE confirmation primitive to the invoking DIMSE Service User, completing the N-DELETE operation.
This section specifies the protocol necessary to perform the set of DIMSE-N operations and notifications. The Value Representations (VR) specified in the following tables shall be encoded as defined in PS3.5.
The information necessary for the N-EVENT-REPORT request and indication DIMSE-N primitives are conveyed in the N-EVENT-REPORT-RQ Message. The information necessary for the N-EVENT-REPORT response and confirmation DIMSE-N primitives are conveyed in the N-EVENT-REPORT-RSP Message.
The N-EVENT-REPORT-RQ Message contains fields as defined in Table 10.3-1. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-EVENT-REPORT service definition unless otherwise noted in Table 10.3-1. Fields not specified in the N-EVENT-REPORT service definition but present in Table 10.3-1 are required by the DIMSE-N protocol.
Table 10.3-1. N-EVENT-REPORT-RQ Message Fields
The N-EVENT-REPORT-RSP Message contains fields as defined in Table 10.3-2 and Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-EVENT-REPORT service definition unless otherwise noted in Table 10.3-2. Fields not specified in the N-EVENT-REPORT service definition but present in Table 10.3-2 are required by the DIMSE-N protocol.
Table 10.3-2. N-EVENT-REPORT-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
SOP Class UID of the SOP Instance for which this event occurred. |
||||
This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 8100H for the N-EVENT-REPORT-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated N-EVENT-REPORT-RQ Message. |
||||
This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H if no Data Set is present; any other value indicates a Data Set is included in the Message. |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
Contains the UID of the SOP Instance for which this event occurred. |
||||
Application-specific Data Set containing additional information related to the operation. |
The N-EVENT-REPORT reporting procedures are initiated by the invoking DIMSE Service User issuing an N-EVENT-REPORT request primitive. On receipt of the N-EVENT-REPORT request primitive the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-EVENT-REPORT-RQ the DIMSE-N protocol machine shall issue an N-EVENT-REPORT indication primitive to the performing DIMSE Service User.
On receipt of the N-EVENT-REPORT response primitive issued by the performing DIMSE Service User , the DIMSE-N protocol machine shall:
-
send the Message using the P-DATA request service (see Section 8.1)
On receipt of a Message conveying an N-EVENT-REPORT-RSP the DIMSE-N protocol machine shall issue an N-EVENT-REPORT confirmation primitive to the invoking DIMSE Service User, thus completing the notification procedure.
The performing DIMSE Service User may return an N-EVENT-REPORT-RSP with the status of Failed or Refused before the complete N-EVENT-REPORT-RQ request Message has been completely transmitted by the invoking DIMSE Service User (this is called an early failed response). Upon receipt of this Failed or Refused N-EVENT-REPORT-RSP the invoking DIMSE Service User may terminate the Message before it is completely sent (i.e., set the Last Fragment bit to 1 in a Data PDV for this Message, see Annex F). Following this, it may invoke another operation or notification. It is a protocol violation for an invoking DIMSE Service User to set the Last Fragment bit to 1 before an N-EVENT-REPORT-RQ Message has been completely transmitted if it has not received a Failed or Refused N-EVENT-REPORT-RSP to that request.
Note
When an Association is operating in asynchronous mode, it is possible for an invoking DIMSE Service User to transmit several Messages before a response. Therefore, while sending a Message it may receive a response to a previously transmitted Message. In this case this response is not an early failed response because the related Message has already been sent.
The information necessary for the N-GET request and indication DIMSE-N primitives are conveyed in the N-GET-RQ Message. The information necessary for the N-GET response and confirmation DIMSE-N primitives are conveyed in the N-GET-RSP Message.
The N-GET-RQ Message contains fields as defined in Table 10.3-3. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-GET service definition unless otherwise noted in Table 10.3-3. Fields not specified in the N-GET service definition but present in Table 10.3-3 are required by the DIMSE-N protocol.
Table 10.3-3. N-GET-RQ Message Fields
The N-GET-RSP Message contains fields as defined in Table 10.3-4 and Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-GET service definition unless otherwise noted in Table 10.3-4. Fields not specified in the N-GET service definition but present in Table 10.3-4 are required by the DIMSE-N protocol.
Table 10.3-4. N-GET-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
SOP Class UID of the SOP Instance for which Attribute Values are returned. |
||||
This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 8110H for the N-GET-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated N-GET-RQ Message. |
||||
This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H if no Data Set is present; any other value indicates a Data Set is included in the Message. |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
Contains the UID of the SOP Instance for which Attribute Values are returned. |
||||
T his field is encoded as a Data Set. One Data Element is encoded for each Attribute Value returned. |
The N-GET procedures are initiated by the invoking DIMSE Service User issuing an N-GET request primitive. On receipt of the N-GET request primitive the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-GET-RQ the DIMSE-N protocol machine shall issue an N-GET indication primitive to the performing DIMSE Service User.
On receipt of the N-GET response primitive, issued by the performing DIMSE Service User, the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-GET-RSP the DIMSE-N protocol machine shall issue an N-GET confirmation primitive to the invoking DIMSE Service User, thus completing the N-GET procedure.
The information necessary for the N-SET request and indication DIMSE-N primitives are conveyed in the N-SET-RQ Message. The information necessary for the N-SET response and confirmation DIMSE-N primitives are conveyed in the N-SET-RSP Message. Fields not specified in the N-SET service definition but present in Table 10.3-3 are required by the DIMSE-N protocol.
The N-SET-RQ Message contains fields as defined in Table 10.3-5. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-SET service definition unless otherwise noted in Table 10.3-5. Fields not specified in the N-SET service definition but present in Table 10.3-5 are required by the DIMSE-N protocol.
Table 10.3-5. N-SET-RQ Message Fields
The N-SET-RSP Message contains all fields as defined in Table 10.3-6 and in Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-SET service definition unless otherwise noted. Fields not specified in the N-SET service definition but present in Table 10.3-6 are required by the DIMSE-N protocol.
Table 10.3-6. N-SET-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
SOP Class UID of the SOP Instance for which Attribute Values were modified. |
||||
This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 8120H for the N-SET-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated N-SET-RQ Message. |
||||
This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H if no Data Set is present; any other value indicates a Data Set is included in the Message. |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
Contains the UID of the SOP Instance for which Attribute Values were modified. |
||||
This field is encoded as a Data Set. One Data Element is encoded for each Attribute and Attribute Value applicable to the operation. |
The N-SET procedures are initiated by the invoking DIMSE Service User issuing an N-SET request primitive. On receipt of the N-SET request primitive the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-SET-RQ the DIMSE-N protocol machine shall issue an N-SET indication primitive to the performing DIMSE Service User.
On receipt of the N-SET response primitive, issued by the performing DIMSE Service User, the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-SET-RSP the DIMSE-N protocol machine shall issue an N-SET confirmation primitive to the invoking DIMSE Service User, thus completing the N-SET procedure.
The performing DIMSE Service User may return an N-SET-RSP with the status of Failed or Refused before the complete N-SET-RQ request Message has been completely transmitted by the invoking DIMSE Service User (this is called an early failed response). Upon receipt of this Failed or Refused N-SET-RSP the invoking DIMSE Service User may terminate the Message before it is completely sent (i.e., set the Last Fragment bit to 1 in a Data PDV for this Message, see Annex F). Following this, it may invoke another operation or notification. It is a protocol violation for an invoking DIMSE Service User to set the Last Fragment bit to 1 before an N-SET-RQ Message has been completely transmitted if it has not received a Failed or Refused N-SET-RSP to that request.
Note
When an Association is operating in asynchronous mode, it is possible for an invoking DIMSE Service User to transmit several Messages before a response. Therefore, while sending a Message it may receive a response to a previously transmitted Message. In this case this response is not an early failed response because the related Message has already been sent.
The information necessary for the N-ACTION request and indication DIMSE-N primitives are conveyed in the N-ACTION-RQ Message. The information necessary for the N-ACTION response and confirmation DIMSE-N primitives are conveyed in the N-ACTION-RSP Message.
The N-ACTION-RQ Message contains fields as defined in Table 10.3-7. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-ACTION service definition unless otherwise noted in Table 10.3-7. Fields not specified in the N-ACTION service definition but present in Table 10.3-7 are required by the DIMSE-N protocol.
Table 10.3-7. N-ACTION-RQ Message Fields
The N-ACTION-RSP Message contains fields as defined in Table 10.3-8 and Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-ACTION service definition unless otherwise noted in Table 10.3-8. Fields not specified in the N-ACTION service definition but present in Table 10.3-8 are required by the DIMSE-N protocol.
Table 10.3-8. N-ACTION-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
SOP Class UID of the SOP Instance for which the action was performed. |
||||
This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 8130H for the N-ACTION-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated N-ACTION-RQ Message. |
||||
This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H if no Data Set is present; any other value indicates a Data Set is included in the Message. |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
Contains the UID of the SOP Instance for which the action was performed. |
||||
Application-specific Data Set containing additional information related to the operation. |
Note
-
Service Class Specifications contained in PS3.4 define the values needed for the Action Type ID (0000,1008) parameter.
-
Service Class Specifications contained in PS3.4 define the Data Set needed for the Action Reply parameter related to each defined Action Type ID.
-
Service Class Specifications contained in PS3.4 define the encoding of the Action Reply parameter.
The N-ACTION procedures are initiated by the invoking DIMSE Service User issuing an N-ACTION request primitive. On receipt of the N-ACTION request primitive the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-ACTION-RQ the DIMSE-N protocol machine shall issue an N-ACTION indication primitive to the performing DIMSE Service User.
On receipt of the N-ACTION response primitive, issued by the performing DIMSE Service User, the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-ACTION-RSP the DIMSE-N protocol machine shall issue an N-ACTION confirmation primitive to the invoking DIMSE Service User, thus completing the N-ACTION procedure.
The performing DIMSE Service User may return an N-ACTION-RSP with the status of Failed or Refused before the complete N-ACTION-RQ request Message has been completely transmitted by the invoking DIMSE Service User (this is called an early failed response). Upon receipt of this Failed or Refused N-ACTION-RSP the invoking DIMSE Service User may terminate the Message before it is completely sent (i.e., set the Last Fragment bit to 1 in a Data PDV for this Message, see Annex F). Following this, it may invoke another operation or notification. It is a protocol violation for an invoking DIMSE Service User to set the Last Fragment bit to 1 before an N-ACTION-RQ Message has been completely transmitted if it has not received a Failed or Refused N-ACTION-RSP to that request.
Note
When an Association is operating in asynchronous mode, it is possible for an invoking DIMSE Service User to transmit several Messages before a response. Therefore, while sending a Message it may receive a response to a previously transmitted Message. In this case this response is not an early failed response because the related Message has already been sent.
The information necessary for the N-CREATE request and indication DIMSE-N primitives are conveyed in the N-CREATE-RQ Message. The information necessary for the N-CREATE response and confirmation DIMSE-N primitives are conveyed in the N-CREATE-RSP Message.
The N-CREATE-RQ Message contains fields as defined in Table 10.3-9. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-CREATE service definition unless otherwise noted in Table 10.3-9. Fields not specified in the N-CREATE service definition but present in Table 10.3-9 are required by the DIMSE-N protocol.
Table 10.3-9. N-CREATE-RQ Message Fields
The N-CREATE-RSP Message contains fields as defined in Table 10.3-10 and Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-CREATE service definition unless otherwise noted in Table10.3-10. Fields not specified in the N-CREATE service definition but present in Table 10.3-10 are required by the DIMSE-N protocol.
Table 10.3-10. N-CREATE-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 8140H for the N-CREATE-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated N-CREATE-RQ Message. |
||||
This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H if no Data Set is present; any other value indicates a Data Set is included in the Message. |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
This field is encoded as a Data Set. One Data Element is encoded for each Attribute and Attribute Value applicable to the operation. |
The N-CREATE procedures are initiated by the invoking DIMSE Service User issuing an N-CREATE request primitive. On receipt of the N-CREATE request primitive the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-CREATE-RQ the DIMSE-N protocol machine shall issue an N-CREATE indication primitive to the performing DIMSE Service User.
On receipt of the N-CREATE response primitive, issued by the performing DIMSE Service User, the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-CREATE-RSP the DIMSE-N protocol machine shall issue an N-CREATE confirmation primitive to the invoking DIMSE Service User, thus completing the N-CREATE procedure.
The performing DIMSE Service User may return an N-CREATE-RSP with the status of Failed or Refused before the complete N-CREATE-RQ request Message has been completely transmitted by the invoking DIMSE Service User (this is called an early failed response). Upon receipt of this Failed or Refused N-CREATE-RSP the invoking DIMSE Service User may terminate the Message before it is completely sent (i.e., set the Last Fragment bit to 1 in a Data PDV for this Message, see Annex F). Following this, it may invoke another operation or notification. It is a protocol violation for an invoking DIMSE Service User to set the Last Fragment bit to 1 before an N-CREATE-RQ Message has been completely transmitted if it has not received a Failed or Refused N-CREATE-RSP to that request.
Note
When an Association is operating in asynchronous mode, it is possible for an invoking DIMSE Service User to transmit several Messages before a response. Therefore, while sending a Message it may receive a response to a previously transmitted Message. In this case this response is not an early failed response because the related Message has already been sent.
The information necessary for the N-DELETE request and indication DIMSE-N primitives are conveyed in the N-DELETE-RQ Message. The information necessary for the N-DELETE response and confirmation DIMSE-N primitives are conveyed in the N-DELETE-RSP Message.
The N-DELETE-RQ Message contains fields as defined in Table 10.3-11. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-DELETE service definition unless otherwise noted in Table 10.3-11. Fields not specified in the N-DELETE service definition but present in Table 10.3-11 are required by the DIMSE-N protocol.
Table 10.3-11. N-DELETE-RQ Message Fields
The N-DELETE-RSP Message contains fields as defined in Table 10.3-12 and Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS3.5. Fields are required as specified in the N-DELETE service definition unless otherwise noted in Table 10.3-12. Fields not specified in the N-DELETE service definition but present in Table 10.3-12 are required by the DIMSE-N protocol.
Table 10.3-12. N-DELETE-RSP Message Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
||||
This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 8150H for the N-DELETE-RSP Message. |
||||
Shall be set to the value of the Message ID (0000,0110) field used in associated N-DELETE-RQ Message. |
||||
This field indicates that no Data Set is present in the Message. This field shall be set to the value of 0101H). |
||||
The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition. |
||||
The N-DELETE procedures are initiated by the invoking DIMSE Service User issuing an N-DELETE request primitive. On receipt of the N-DELETE request primitive the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-DELETE-RQ the DIMSE-N protocol machine shall issue an N-DELETE indication primitive to the performing DIMSE Service User.
On receipt of the N-DELETE response primitive, issued by the performing DIMSE Service User, the DIMSE-N protocol machine shall:
On receipt of a Message conveying an N-DELETE-RSP the DIMSE-N protocol machine shall issue an N-DELETE confirmation primitive to the invoking DIMSE Service User, thus completing the N-DELETE procedure.
An Application Context explicitly defines the set of application service elements, related options and any other information necessary for the inter working of Application Entities on an Association; in particular, it specifies the DIMSE Protocol used by the Application Layer.
Two Application Entities establish an Association by agreeing on an Application Context. The requester of an Association proposes an Application Context Name and the acceptor returns either the same or a different Application Context Name. The returned name specifies the Application Context to be used for this Association. The offer of an alternate Application Context by the acceptor provides a mechanism for limited negotiation. If the requester cannot operate in the acceptor's Application Context, it shall issue an A-Abort request primitive. Such a negotiation will facilitate the introduction of new versions of the DICOM Message Exchange Protocol in the future.
The Application Context Name structure is based on the OSI Object Identification (numeric form) as defined by ISO 8824. Specific rules are defined in PS3.5. Application Context Names are registered values as defined by ISO 9834-1 to ensure global uniqueness. Application Context Names shall be encoded as defined in PS3.8.
The organization responsible for the definition and registration of DICOM Application Context Names is ACR-NEMA. ACR-NEMA guarantees uniqueness for all DICOM Application Context Names. A choice of DICOM registered Application Context Names related to a specific version of DIMSE, as well as the associated negotiation rules, are defined in this annex.
A single DICOM Application Context Name is defined for this version of this Standard. This name is "1.2.840.10008.3.1.1.1"
Privately defined Application Context Names may also be used, but they will not be registered by ACR-NEMA. Organizations that define private Application Context Names are responsible to obtain their proper registration as defined for OSI Object Identifiers. National Standards Organizations representing a number of countries (e.g., UK, France, Germany, Japan, USA, etc.) to the International Standards Organization act as a registration authority as defined by ISO 9834-1.
Note
For example, in the USA, ANSI assigns Organization Identifiers to any requesting organization. This identifier is made of a series of four numeric elements; 1 (identifies ISO), 2 (identifies the ISO member bodies branch), 840 (identifies ANSI as the ISO member body representing the USA), and xxxxxx (identifies a specific organization and is issued by ANSI). Such an identifier may be used by the identified organization as a root to which it may add a suffix made of one or more numeric elements. The identified organization accepts the responsibility to properly register these suffixes to ensure uniqueness.
Privately defined Application Context Names shall be encoded as defined in PS3.8. The Organization identifier "1.2.840.10008" is reserved for DICOM and shall not be used for privately defined Application Context Names.
The establishment of an Association involves two DICOM AEs, one that is the Association-requester and one that is the Association-acceptor.
A DICOM AE shall initiate an Association establishment by using the A-ASSOCIATE request service defined in PS3.8. It shall provide the Application Association Information as defined by Annex D.
Operations and notifications are only used on an Association. They result in Messages exchanged by using the P-DATA request service defined in PS3.8.
All operations and notifications invoked over an Association shall be confirmed. The performing DICOM AE shall report the response of each operation or notification over the same Association by means of which the operation or notification was invoked. No recovery shall be performed using multiple Associations.
Operations and notifications, on an Association, shall use one of the following two modes:
-
synchronous, where the invoking DICOM AE, on a established Association, requires a response from the performing DICOM AE before invoking another operation or notification
-
asynchronous, where the invoking DICOM AE, on a established Association, may continue to invoke further operations or notifications to the performing DICOM AE without awaiting a response
Note
The synchronous/asynchronous mode is defined within the scope of one Application Entity and not within the scope of the association between two Application Entities. The communication mode on the association may be bi-directional if agreed upon during association negotiation (i.e., both operation and notifications are simultaneously supported, etc.). Following is an example of synchronous mode, DICOM AE A may send an operation request to DICOM AE B and DICOM AE B may send a notification request to DICOM AE A before responding to the operation request from AE A. This is considered as synchronous mode because each AE has only one outstanding operation or notification.
The mode selected (synchronous or asynchronous) is determined at Association establishment time. The synchronous mode serves as the default mode and shall be supported by all DICOM AEs. The asynchronous mode is optional and the maximum number of outstanding operations or notifications is negotiated during Association establishment. This negotiation is accomplished by the Asynchronous Operations Window sub-item structure as defined in Annex D.
Only the DICOM AE Association-requester may initiate an orderly release of the Association. This shall be accomplished by using the A-RELEASE service defined in PS3.8.
The DICOM AE Association-requester shall not release the Association until all operations invoked have been confirmed.
Either DICOM AE may initiate an abrupt termination of an Association. This shall be accomplished by using the A-ABORT service defined in PS3.8.
Upon receiving or issuing the A-ABORT service primitive, the DICOM AE Association-requester and DICOM AE Association-acceptor shall fail any operation that is outstanding.
Note
The Association services and presentation services defined in the Upper Layer Service in PS3.8 are a fully conformant subset of the services offered by the ACSE and the OSI Presentation Layer.
The following sections define the encoding for the Status Types supported by the DIMSE services. The applicability and semantics for each Status Type (i.e., Attribute list error, etc.) are defined in the DIMSE Services. Each Status Type is categorized in a Status Class and represents certain Status Meaning within the Status Class.
All Status Codes are assigned according to the following Status Class convention:
Status Codes with values 01xx and 02xx are reserved for assignment by DICOM Standard. These Status codes have standard status meanings for DIMSE Services that shall not be modified by a Service Class definition or an implementation.
Status Codes with values Axxx, Bxxx, and Cxxx may be assigned by the DICOM Standard or by an implementation according to the definition of a Service Class in PS3.4.
Implementations shall not use Status Codes with values not listed in the table above.
Statuses in this Status Class convey that the operation/notification is continuing and additional Statuses are expected.
Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4. |
Statuses in this Status Class convey that the operation/notification has completed but an error was detected. The semantics and behavior of these Statuses are defined in PS3.4.
Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4. |
||||
This optional field contains a list of the elements in which the error was detected. |
||||
This optional field contains an application-specific text description of the error detected. |
Statuses in this Status Class convey that the operation/notification failed and was not performed.
Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4. |
||||
This optional field contains a list of the elements in which the error was detected. |
||||
This optional field contains an application-specific text description of the error detected. |
Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4. |
||||
This optional field contains a list of the elements in which the error was detected. |
||||
This optional field contains an application-specific text description of the error detected. |
Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4. |
||||
This optional field contains a list of the elements in which the error was detected. |
||||
This optional field contains an application-specific text description of the error detected. |
Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4. |
||||
This optional field contains an application-specific text description of the error detected. |
Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4. |
||||
This optional field contains an application-specific text description of the error detected. |
Association establishment is the first phase of any instance of communication between peer DICOM AEs. The AEs use the Association establishment to negotiate how data will be encoded and the type of data to be exchanged. This Annex provides an overview of the negotiation mechanisms plus a discussion of each concept, its objectives, relationships, usage principles and specifications.
Abstract Syntaxes specify the Application Layer Data Elements and Application Layer protocol control information (with associated semantics) that are independent of the encoding technique used to represent them.
Each Abstract Syntax shall be identified by an Abstract Syntax Name in the form of a UID. DICOM AEs use the Abstract Syntax Name to identify and negotiate which SOP Classes and related options are supported on a specific Association. Abstract Syntax Names shall be defined in the Service Class Definitions specified in PS3.4. Each Abstract Syntax Name defined shall have a value of either
Each Service Class Definition defines one or more functionally-related Service-Object Pair (SOP) Class definitions that specify well-defined operations and/or notifications that may be performed between peer DICOM Application Entities to provide an application-level service. Each SOP Class, identified by a SOP Class UID, is defined by the union of one Information Object Definition (IOD) and a specific set of one or more DIMSE Services called the DIMSE Service Group (DSG) in that
Two SOP Classes defined by a single Service Class Definition may differ by the IOD, the DSG or both. Two different IODs shall not, however, be part of the same SOP Class. Figure D.1-1 shows the relationships between Service Classes, IODs, DSGs and SOP Classes.
Note
-
Two examples of Service Classes are the Storage and Study Management Service Classes. The Storage Service Class relates to image Information Object Definitions such as CT, MR etc. and the Study Management Service Class relates to the Study Information Object Definition.
-
For readers familiar with OSI terminology, the concept of the Managed Object Class is the equivalent to the DICOM Service-Object Pair Class. The SOP Class specifies both the data (Attributes defined in the Information Object Definition) and the methods (Operations and Notifications (DSG) defined in the Service Class).
By setting the Abstract Syntax Name to a specific SOP Class UID value, DICOM Application Entities may negotiate Service Class operations and/or notifications for each defined SOP Class individually.
Each Service Class Definition may optionally define one or more Meta Service-Object Pair Classes each being identified by a Meta SOP Class UID. Each Meta SOP Class represents the union of a set of SOP Classes defined in the Service Class.
By setting the Abstract Syntax Name to a specific Meta SOP Class UID value, DICOM Application Entities may negotiate Service Class operations and/or notifications for a set of defined SOP Classes using a single Abstract Syntax. Figure D.1-2 depicts this.
Transfer Syntaxes define a set of encoding rules used to unambiguously represent one or more Abstract Syntaxes. It allows communicating DICOM AEs to negotiate the encoding techniques they are able to support (e.g., byte ordering, compression, etc.).
Association establishment is used to negotiate the type of data to be exchanged and how the data will be encoded. DICOM AEs establish Associations by using the ACSE A-ASSOCIATE Service as defined by Part 8 of the DICOM Standard. Three key parameters conveyed in the A-ASSOCIATE Service are the Application Context, Presentation Context, and the User Information Items. The following section discusses these negotiation parameters.
Note: The A-ASSOCIATE Service is performed only once at Association established time. The examples shown in this Section separate the negotiation parameters for clarification purposes only. Readers should remember that only one A-ASSOCIATE request is offered for each Association and it contains all of the negotiation parameters.
An Application Context explicitly defines the set of Application Service Elements, related options and any other information necessary for the inter-working of DICOM AEs on an Association.
The Application Context provides the highest level of negotiation, therefore, a very high level definition. Only one Application Context shall be offered per Association. DICOM specifies a single Application Context Name that defines the DICOM Application Context (applicable for this Standard and potentially later versions).
Note
For complete specification see Annex A.
A Presentation Context defines the presentation of the data on an Association. It provides a lower level of negotiation and one or more Presentation Contexts can be offered and accepted per Association.
A Presentation Context consists of three components, a Presentation Context ID, an Abstract Syntax Name, and a list of one or more Transfer Syntax Names.
Only one Abstract Syntax shall be offered per Presentation Context. However, multiple Transfer Syntaxes may be offered per Presentation Context, but only one shall be accepted.
For each SOP Class or Meta SOP Class a Presentation Context must be negotiated such that this Presentation Context supports the associated Abstract Syntax and a suitable Transfer Syntax. Presentation Contexts will be identified within the scope of a specific Association by a Presentation Context ID.
Figure D.3-1 provides an illustration of Presentation Context Negotiation with the key points as follows:
-
the Association-requester may offer multiple Presentation Contexts per Association.
-
each Presentation Context supports one Abstract Syntax (related to a SOP Class or Meta SOP Class) and one or more Transfer Syntaxes.
-
the Association-acceptor may accept or reject each Presentation Context individually.
-
the Association-acceptor selects a suitable Transfer Syntax for each Presentation Context accepted.
Peer DICOM AEs negotiate, at Association establishment, a number of features related to the DIMSE protocol by using the ACSE User Information Item of the A-ASSOCIATE request. This Section discusses these features.
When the Association is established between peer DIMSE Service Users the Kernel Functional Unit shall be assumed; therefore, the Kernel Functional Unit shall not be included in the A-ASSOCIATE User Information item.
The Maximum Length notification allows communicating AEs to limit the size of the data for each P-DATA indication. Each DICOM AE defines the maximum PDU size it can receive on this Association. Therefore, different maximum lengths can be specified for each direction of data flow on an Association. This notification is required. Figure D.3-2 illustrates the Maximum Length notification.
Note
For complete specification see PS3.8.
The implementation identification notification allows implementations of communicating AEs to identify each other at Association establishment time. It is intended to provide respective (each network node knows the other's implementation identity) and non-ambiguous identification in the event of communication problems encountered between two nodes. This negotiation is required.
Implementation identification relies on two pieces of information:
The Implementation Class UID identifies in a unique manner a specific class of implementation. Each node claiming conformance to this Standard shall be assigned an Implementation Class UID to distinguish its implementation environment from others. Such Implementation Class UIDs shall be registered by the implementing organization per the policies defined in PS3.5. This Standard does not specify the policies associated with assigning such a UID.
Different equipment of the same type or product line (but having different serial numbers) shall use the same Implementation Class UID if they share the same implementation environment (i.e., software).
The notification by Association requestors and acceptors of their respective Implementation Class UID is required for all implementations conforming to this Standard. Figure D.3-3 illustrates the Implementation Class UID notification.
In addition to the Implementation Class UID, an option is provided to convey an Implementation Version Name of up to 16 characters. Figure D.3-4 illustrates the Implementation Version Name notification. This Standard does not specify the structure and policies associated with such an Implementation Version Name. The absence of the Implementation Version Name requires that the use of the same Implementation Class UID by two nodes guarantees that these use the same version of implementation.
Note
As the UID shall not be parsed (their structure is not intended to convey any semantic significance beyond uniqueness), this optional Implementation Version Name provides an adequate mechanism to distinguish two versions of the same implementation (same Implementation Class UID).
The Implementation Class UID Sub-Item shall be made of a sequence of mandatory fixed length fields followed by a variable field. Only one Implementation Class UID Sub-Item shall be present in the User Data Item of the A-ASSOCIATE-RQ. Table D.3-1 shows the sequence of the mandatory fields.
Table D.3-1. Implementation Class UID Sub-Item Fields (A-ASSOCIATE-RQ)
This reserved field shall be sent with a value 00H but not tested to this value when received. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the Implementation-class-uid field. It shall be encoded as an unsigned binary number. |
||
This variable field shall contain the Implementation-class-uid of the Association-requester as defined in Section D.3.3.2. The Implementation-class-uid field is structured as a UID as defined in PS3.5. |
The Implementation Class UID Sub-Item shall be made of a sequence of mandatory fixed length fields followed by a variable field. Only one Implementation Class UID Sub-Item shall be present in the User Data Item of the A-ASSOCIATE-AC. Table D.3-2 shows the sequence of the mandatory fields.
Table D.3-2. Implementation UID Sub-Item Fields (A-ASSOCIATE-AC)
This reserved field shall be sent with a value 00H but not tested to this value when received. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the Implementation-class-uid field. It shall be encoded as an unsigned binary number. |
||
This variable field shall contain the Implementation-class-uid of the Association-acceptor as defined in Section D.3.3.2. The Implementation-class-uid field is structured as a UID as defined in PS3.5. |
The Implementation Version Name Sub-Item shall be made of a sequence of mandatory fixed length fields followed by a variable field. Only one Implementation Version Name Sub-Item shall be present in the User Data Item of the A-ASSOCIATE-RQ. Table D.3-3 shows the sequence of the mandatory fields.
Table D.3-3. Implementation Version Name Sub-Item Fields (A-ASSOCIATE-RQ)
This reserved field shall be sent with a value 00H but not tested to this value when received. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the Implementation-version-name field. It shall be encoded as an unsigned binary number. |
||
This variable field shall contain the Implementation-version-name of the Association-requester as defined in Section D.3.3.2. It shall be encoded as a string of 1 to 16 ISO 646:1990 (basic G0 set) characters. |
The Implementation Version Name Sub-Item shall be made of a sequence of mandatory fixed length fields followed by a variable field. Only one Implementation Version Name Sub-Item shall be present in the User Data Item of the A-ASSOCIATE-AC. Table D.3-4 shows the sequence of the mandatory fields.
Table D.3-4. Implementation Version Name Sub-Item Fields (A-ASSOCIATE-AC)
This reserved field shall be sent with a value 00H but not tested to this value when received. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the Implementation-version-name field. It shall be encoded as an unsigned binary number. |
||
This variable field shall contain the Implementation-version-name of the Association-acceptor as defined in Section D.3.3.2. It shall be encoded as a string of 1 to 16 ISO 646:1990 (basic G0 set) characters. |
The Asynchronous Operations Window is used to negotiate the maximum number of outstanding operation or sub-operation requests (i.e., command requests) for each direction. The synchronous operations mode is the default mode and shall be supported by all DICOM AEs. This negotiation is optional.
The Association-requester conveys in the A-ASSOCIATE request:
-
when negotiating the SCU role for operations, the maximum number of outstanding operations it may invoke asynchronously; when negotiating the SCP role for operations, the maximum number of outstanding sub-operations it may invoke asynchronously; when negotiating the SCP role for notifications, the maximum number of notifications it may invoke asynchronously
-
when negotiating the SCP role for operations, the maximum number of outstanding operations it may invoke asynchronously; when negotiating the SCU role for operations, the maximum number of outstanding sub-operations it may perform asynchronously; when negotiating the SCU role for notifications, the maximum number of notifications it may perform asynchronously when negotiating the SCP role
A value of zero indicates that the above parameters are unlimited. A value of one indicates that there is no Asynchronous Operations support. If the Asynchronous Operations Window is absent the default for the above parameters shall be equal to one.
The Association-acceptor conveys in the A-ASSOCIATE response:
-
when negotiating the SCP role for operations, the maximum number of outstanding operations; when negotiating the SCU role for operations, the maximum number of sub-operations it allows the Association-requester to invoke asynchronously; when negotiating the SCU role for notifications, the maximum number of outstanding notifications it allows the Association-requester to invoke asynchronously when negotiating the SCU role. This number shall be equal or less than the number of outstanding notifications, operations and/or sub-operations the Association-requester offers to invoke (by the A-ASSOCIATE indication).
-
when negotiating the SCU role for operations, the maximum number of outstanding operations; when negotiating the SCP role for operations, the maximum number of sub-operations it allows the Association-requester to perform asynchronously; when negotiating the SCP role for notifications, the maximum number of outstanding notifications it allows the Association-requester to perform asynchronously. This number shall be equal or less than the number of outstanding notifications, operations and/or sub-operations the Association-requester offers to perform (by the A-ASSOCIATE indication).
A value of zero indicates that the above parameters are unlimited. If the Asynchronous Operations Window is absent the default for the above parameters shall be equal to one. Figures D.3-5 and D.3-6 illustrate examples of Asynchronous Operations Window negotiation.
If this negotiation is not present in the A-ASSOCIATE indication it shall be omitted in the A-ASSOCIATE response.
Note
The case where the Association-requester offers the value of zero (which indicates unlimited operations), the Association-acceptor may return zero (agreeing to unlimited operations) or negotiate the parameter down by conveying a value other than zero.
Figure D.3-5. Asynchronous Operations Window Negotiation (Window Being Negotiated Down By DICOM Application Entity "B")
Figure D.3-6. Asynchronous Operations Window Negotiation (Window Being Defaulted to 1, 1 By DICOM Application Entity "B")
The Asynchronous Operations Window Sub-Item shall be made of a sequence of mandatory fixed length fields. This Sub-Item is optional and if supported, only one Asynchronous Operations Window Sub-Item shall be present in the User Data Item of the A-ASSOCIATE-RQ. Table D.3-7 shows the sequence of the mandatory fields.
Table D.3-7. Asynchronous Operations Window Sub-Item Fields (A-ASSOCIATE-RQ)
This reserved field shall be sent with a value 00H but not tested to this value when received. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the Maximum-number-operations-performed field. In the case of this Sub-Item, it shall have the fixed value of 00000004H encoded as an unsigned binary number. |
||
This field shall contain the Maximum-number-operations-invoked as defined for the Association-requester in Section D.3.3.3. It shall be encoded as an unsigned binary number. |
||
This field shall contain the Maximum-number-operations-performed as defined for the Association-requester in Section D.3.3.3. It shall be encoded as an unsigned binary number. |
The Asynchronous Operations Window Sub-Item shall be made of a sequence of mandatory fixed length fields. This Sub-Item is optional and if supported, only one Asynchronous Operations Window Sub-Item shall be present in the User Data Item of the A-ASSOCIATE-AC. Table D.3-8 shows the sequence of the mandatory fields.
Table D.3-8. Asynchronous Operations Window Sub-Item Fields (A-ASSOCIATE-AC)
This reserved field shall be sent with a value 00H but not tested to this value when received. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the Maximum-number-operations-performed field. In the case of this Sub-Item, it shall have the fixed value of 00000004H encoded as an unsigned binary number. |
||
This field shall contain the Maximum-number-operations-invoked as defined for the Association-acceptor in Section D.3.3.3 It shall be encoded as an unsigned binary number. |
||
This field shall contain the Maximum-number-operations-performed as defined for the Association-acceptor in Section D.3.3.3. It shall be encoded as an unsigned binary number. |
The SCP/SCU Role Selection Negotiation allows peer AEs to negotiate the roles in which they will serve for each SOP Class or Meta SOP Class supported on the Association. This negotiation is optional.
The Association-requester, for each SOP Class UID or Meta SOP Class UID, may use one SCP/SCU Role Selection item. The SOP Class or Meta SOP Class shall be identified by its corresponding Abstract Syntax Name followed by one of the three role values:
If the SCP/SCU Role Selection item is absent the default role of the Association-requester shall be SCU and the default role of the Association-acceptor shall be SCP.
The Association-acceptor, for each SCP/SCU Role Selection item offered, either accepts the Association-requester proposal by returning the same value (1) or turns down the proposal by returning the value (0). The Association-acceptor shall not return the value (1) if the Association-requester has not proposed the role, i.e., it has sent a value (0). The Association-requester shall ignore the response if it has not proposed the role.
If the SCP/SCU Role Selection item is not returned by the Association-acceptor then the role of the Association-requester shall be SCU and the role of the Association-acceptor shall be SCP. Figure D.3-7 illustrates the SCP/SCU Role Selection Negotiation.
If the SCP/SCU Role Selection items do not exist in the A-ASSOCIATE indication they shall be omitted in the A-ASSOCIATE response.
Note
-
The choices made for the default roles are based on clarification made to previous versions of the Standard. Association-requesters that wish to offer Abstract Syntax Names using the SCP role must support this item. Association-acceptors that wish to accept Abstract Syntax Names using the SCU role must support this item.
-
If an Association-requestor offers an SCP/SCU Role Selection item for an Abstract Syntax Name but the Association-acceptor does not return a SCP/SCU Role Selection item for the same Abstract Syntax Name then the proposed roles have not been accepted and the default roles apply (i.e., Association-requester is SCU and Association-acceptor is SCP).
Note
-
DICOM AE "B" accepts DICOM AE "A"'s proposed role as an SCU for the Storage-MR SOP; therefore, DICOM AE "B" will perform in the SCP role. DICOM AE "B" turns down the SCP proposal from DICOM AE "A".
-
DICOM AE "B" accepts DICOM AE "A"'s proposed role as an SCU for the Print-SOP; therefore, DICOM AE "B" will perform in the SCP role.
The SCP/SCU Role Selection Sub-Item shall be made of a sequence of mandatory fields. This Sub-Item is optional and if supported, one or more SCP/SCU Role Selection Sub-Items may be present in the User Data Item of the A-ASSOCIATE-RQ. The Association-requester may only offer one SOP Class SCP/SCU Role Selection Sub-Item for each SOP Class UID or Meta SOP Class that is present in the A-ASSOCIATE request. Table D.3-9 shows the sequence of the mandatory fields.
Table D.3-9. SCP/SCU Role Selection Sub-Item Fields (A-ASSOCIATE-RQ)
This reserved field shall be sent with a value 00H but not tested to this value when received. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the SCP Role field. It shall be encoded as an unsigned binary number. |
||
This UID-length shall be the number of bytes from the first byte of the following field to the last byte of the SOP-class-uid field. It shall be encoded as an unsigned binary number. |
||
This variable field shall contain the SOP Class UID or Meta SOP Class UID that may be used to identify the corresponding Abstract Syntax for which this Sub-Item pertains. It shall be encoded as a UID as defined in PS3.5. |
||
This byte field shall contain the SCU-role as defined for the Association-requester in Section D.3.3.4. It shall be encoded as an unsigned binary and shall use one of the following values: |
||
This byte field shall contain the SCP-role as defined for the Association-requester in Section D.3.3.4. It shall be encoded as an unsigned binary and shall use one of the following values: |
The SCP/SCU Role Selection Sub-Item shall be made of a sequence of mandatory fields. This Sub-Item is optional and if supported, one or more SCP/SCU Role Selection Sub-Items may be present in the User Data Item of the A-ASSOCIATE-AC. Table D.3-10 shows the sequence of the mandatory fields.
Table D.3-10. SCP/SCU Role Selection Sub-Item Fields (A-ASSOCIATE-AC)
This reserved field shall be sent with a value 00H but not tested to this value when received. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the SCP Role field. It shall be encoded as an unsigned binary number. |
||
This UID-length shall be the number of bytes from the first byte of the following field to the last byte of the SOP-class-uid field. It shall be encoded as an unsigned binary number. |
||
This variable field shall contain the SOP Class UID or Meta SOP Class UID that may be used to identify the corresponding Abstract Syntax for which this Sub-Item pertains. It shall be encoded as a UID as defined in PS3.5. |
||
This byte field shall contain the SCU-role as defined in Section D.3.3.4. It shall be encoded as an unsigned binary and shall use one of the following values: 0 - The Association-acceptor rejects the Association-requester's proposal of the SCU role selection 1 - The Association-acceptor accepts the Association-requester's proposal of the SCU role selection |
||
This byte field shall contain the SCP-role as defined for the Association-acceptor in Section D.3.3.4. It shall be encoded as an unsigned binary and shall use one of the following values: 0 - The Association-acceptor rejects the Association-requester's proposal of the SCP role selection 1 - The Association-acceptor accepts the Association-requester's proposal of the SCP role selection |
The SOP Class Extended Negotiation allows, at Association establishment, peer DICOM AEs to exchange application information defined by specific Service Class specifications. This is an optional feature that various Service Classes may or may not choose to support.
Each Service Class specification is required to document, as part of its SOP Class or Meta SOP Class, the application information it supports and how this information is negotiated between SCUs and SCPs. Service Class specifications shall specify, for both the SCU and SCP roles, the following:
Note
The use of the SOP Class Extended Negotiation is not limited to Service Classes defined by this Standard. It may also be used for privately defined Service Classes.
The Association-requester may only offer one SOP Class Extended Negotiation Sub-Item for each SOP Class UID or Meta SOP Class that is present in the A-ASSOCIATE request.
If the SOP Class Extended Negotiation Sub-Items do not exist in the A-ASSOCIATE indication they shall be omitted in the A-ASSOCIATE response.
The SOP Class Extended Negotiation Sub-Item shall be made of a sequence of mandatory fields followed by the Service-class-application-information field (specific for each Service Class specification). This Sub-Item is required per the specific Service Class specifications. Multiple SOP Class Extended Negotiation Sub-Items may be present in the User Data Item of the A-ASSOCIATE-RQ, however, only one Sub-Item per SOP Class UID shall be present. Table D.3-11 shows the sequence of mandatory fields.
Table D.3-11. SOP Class Extended Negotiation Sub-Item Fields (A-ASSOCIATE-RQ and A-ASSOCIATE-AC)
This reserved field shall be sent with a value 00H but not tested to this value when received. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the Service-class-application-information field. It shall be encoded as an unsigned binary number. |
||
The SOP-class-uid-length shall be the number of bytes from the first byte of the following field to the last byte of the SOP-class-uid field. It shall be encoded as an unsigned binary number. |
||
The SOP Class or Meta SOP Class identifier encoded as a UID as defined in PS3.5. |
||
This field shall contain the application information specific to the Service Class specification identified by the SOP-class-uid. The semantics and value of this field is defined in the identified Service Class specification. |
The SOP Class Extended Negotiation Sub-Item shall be made of a sequence of mandatory fields followed by the Service-class-application-information field (specific for each Service Class specification). This Sub-Item is required per the specific Service Class specifications. Multiple SOP Class Extended Negotiation Sub-Items may be present in the User Data Item of the A-ASSOCIATE-AC, however, only one Sub-Item per SOP Class UID shall be present. Table D.3-11 shows the sequence of mandatory fields.
The SOP Class Common Extended Negotiation allows, at Association establishment, peer DICOM AEs to exchange application information, the form of which is generic, and not specific to individual Service Classes, as compared to the information defined in D.3.3.5. This is an optional feature that Association-requesters and Association-acceptors may or may not choose to support.
The information included for each SOP Class for which a sub-item is present consists of a Service Class UID and (optionally) a Related General SOP Class UID.
The Service Class UID conveys the Service Class of the SOP Class.
Note
Explicit conveyance of the Service Class may allow the selection of the proper format for the Service-class-application-information of the SOP Class Extended Negotiation Sub-Item.
The Related General SOP Class UID conveys zero or more Related General SOP Class for the SOP Class.
Note
-
Consider the example of negotiation of support for a Procedure Log Storage SOP Class. That SOP Class is of the Storage Service Class. The encoding of the IOD would be compatible with the more general Enhanced SR Storage SOP Class. Therefore, the following common extended negotiation sub-item could optionally be included:
-
The Related SOP Class may be absent, though the Service Class may still be included. For example, there may be a new image storage SOP Class without a Related SOP Class defined in PS3.4, yet it is still useful to an Association-acceptor to be informed that the new SOP Class is of the Storage Service Class:
The Association-requester may only offer one SOP Class Common Extended Negotiation Sub-Item for each SOP Class UID that is present in the A-ASSOCIATE request.
No response is necessary, hence the SOP Class Common Extended Negotiation Sub-Items shall be omitted in the A-ASSOCIATE response.
The SOP Class Common Extended Negotiation Sub-Item shall be made of a sequence of mandatory fields, the last two of which may be zero-length. Multiple SOP Class Common Extended Negotiation Sub-Items may be present in the User Data Item of the A-ASSOCIATE-RQ, however, only one Sub-Item per SOP Class UID shall be present. Table D.3-12 shows the sequence of mandatory fields.
Table D.3-12. SOP Class Common Extended Negotiation Sub-Item Fields (A-ASSOCIATE-RQ)
This field indicates the version of the Sub-Item. Fields added to the Sub-Item definition in succeeding editions of the Standard will not affect the semantics of previously defined fields. The version of the Sub-Item defined in this edition of the Standard is 0. |
||
This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the Reserved field. It shall be encoded as an unsigned binary number. |
||
The SOP-class-uid-length shall be the number of bytes in the SOP-class-uid field. It shall be encoded as an unsigned binary number. |
||
The SOP Class identifier encoded as a UID as defined in PS3.5. |
||
The Service-class-uid-length shall be the number of bytes in the Service-class-uid field. It shall be encoded as an unsigned binary number. |
||
The Service Class identifier encoded as a UID as defined in PS3.5. |
||
The Related-general-sop-class-identification-length shall be the number of bytes in the Related-general-sop-class-identification field. Shall be zero if no Related General SOP Classes are identified. |
||
The Related-general-sop-class-identification is a sequence of pairs of length and UID sub-fields. Each pair of sub-fields shall be formatted in accordance with Table D.3-13 |
||
Reserved for additional fields of the sub-item. Shall be zero-length for Version 0 of Sub-Item definition. |
Table D.3-13. Related-General-SOP-Class-Identification Sub-Fields
The Related-general-sop-class-uid-length shall be the number of bytes in the Related-general-sop-class-uid sub-field. It shall be encoded as an unsigned binary number. |
||
The Related General SOP Class identifier encoded as a UID as defined in PS3.5. |
The User Identity Negotiation is used to notify the association acceptor of the user identity of the association requestor. It may also request that the association acceptor respond with the server identity. This negotiation is optional. If this sub-item is not present in the A-ASSOCIATE request the A-ASSOCIATE response shall not contain a user identity response sub-item.
The Association-requester conveys in the A-ASSOCIATE request:
The Association-acceptor does not provide an A-ASSOCIATE response unless a positive response is requested and user authentication succeeded. If a positive response was requested, the A-ASSOCIATE response shall contain a User Identity sub-item. If a Kerberos ticket is used the response shall include a Kerberos server ticket.
Since a system may ignore request sub-items, the positive response must be requested if the association requestor requires confirmation. If the association acceptor does not support user identification it will accept the association without making a positive response. The association requestor can then decide whether to proceed.
The association acceptor may utilize the User Identity information provided during the association negotiation to populate the user information fields in DICOM audit trail messages. The association acceptor may utilize the User Identity information provided during the association negotiation to perform authorization controls during the performance of other DIMSE transactions on the same association. The user identity information may also be used to modify the performance of DIMSE transactions for other purposes, such as workflow optimizations.
Note
-
User identity authorization controls may be simple "allow/disallow" rules, or they can be more complex scoping rules. For example, a query could be constrained to apply only to return information about patients that are associated with the identified user. The issues surrounding authorization controls can become very complex. The User Identity SOP conveys user identity to support uses such as authorization controls and audit controls. It does not specify their behavior.
-
The option to include a passcode along with the user identity enables a variety of non-Kerberos secure interfaces. Sending passwords in the clear is insecure, but there are single use password systems such as RFC-2289 and the various smart tokens that do not require protection. The password might also be protected by TLS or other mechanisms.
-
For JSON Web Tokens (JWTs), RFC 7519 specifies minimal requirements for encryption, MAC and signature algorithms; others may be supported as described in the DICOM Conformance Statement. The encoded format in the Primary-field of the A-ASSOCIATE-RQ is the same as what might be included in an HTTP Authorization: Bearer header field per RFC 6750 when accessing a Protected Resource on a Resource Server, to facilitate bridging between PS3.18 “PS3.18” and PS3.7 “PS3.7” implementations.
The User Identity Negotiation Sub-Item shall be made of a sequence of mandatory fixed and variable length fields. This Sub-Item is optional and if supported, only one User Identity Negotiation Sub-Item shall be present in the User Data Item of the A-ASSOCIATE-RQ. Table D.3-14 shows the sequence of the mandatory fields.
Table D.3-14. User Identity Negotiation Sub-Item Fields (A-ASSOCIATE-RQ)
The User Identity Sub-Item shall be made of a sequence of mandatory fixed and variable length fields. This Sub-Item is optional and if supported, only one User Identity Sub-Item shall be present in the User Data Item of the A-ASSOCIATE-AC. Table D.3-15 shows the sequence of the mandatory fields.
Table D.3-15. User Identity Negotiation Sub-Item Fields (A-ASSOCIATE-AC)
If the Association-Requestor has requested a positive acknowledgment, the Server-response shall be returned with the Kerberos Server ticket when User-Identity-Type is Kerberos Service ticket (3).
The association acceptor may utilize the username or username and passcode information to determine whether the user is permitted to establish an association. If the Kerberos mechanism is chosen, the association acceptor shall utilize the Kerberos service ticket to determine whether the user is permitted to establish an association.
If the association acceptor rejects the association because of an authorization failure, the rejection shall be indicated to be rejected-permanent (see PS3.8). The source shall be value (2) "DICOM UL service provided (ACSE related function) ". The rejection is indicated to be rejected-permanent because retries with the same user identity fields will continue to be rejected. A different and valid username, username and passcode, or Kerberos ticket must be provided.
This Standard does not define how the association acceptor performs authentication or what rules apply to this authentication.
Table E.1-1. Command Fields
The even number of bytes from the end of the value field to the beginning of the next group. |
|||||
This field distinguishes the DIMSE operation conveyed by this Message. This field shall be set to one of the following values: |
|||||
Implementation-specific value that distinguishes this Message from other Messages. |
|||||
Shall be set to the value of the Message ID (0000,0110) field used in associated request Message. |
|||||
Shall be set to the DICOM AE Title of the destination DICOM AE to which the C-STORE sub-operations are being performed. |
|||||
This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H if no Data Set is present; any other value indicates a Data Set is included in the Message. |
|||||
Confirmation status of the operation. See Annex C. |
|||||
If status is Cxxx, then this field contains a list of the elements in which the error was detected. |
|||||
This field contains an application-specific text description of the error detected. |
|||||
This field shall optionally contain an application-specific error code. |
|||||
Contains the UID of the SOP Instance for which this operation occurred. |
|||||
Contains the UID of the SOP Instance for which this operation occurred. |
|||||
This field contains an Attribute Tag for each of the n Attributes applicable. |
|||||
The number of remaining C-STORE sub-operations to be invoked for the operation. |
|||||
The number of C-STORE sub-operations associated with this operation that have completed successfully. |
|||||
The number of C-STORE sub-operations associated with this operation that have failed. |
|||||
The number of C-STORE sub-operations associated with this operation that generated warning responses. |
|||||
Contains the DICOM AE Title of the DICOM AE that invoked the C-MOVE operation from which this C-STORE sub-operation is being performed. |
|||||
Contains the Message ID (0000,0110) of the C-MOVE-RQ Message from which this C-STORE sub-operation is being performed. |
The following command fields have been retired but are listed here for compatibility with previous versions of this Standard. Reference PS3.5 for more information on retired Data Elements and Command Elements.
Note
For attributes that were present in ACR-NEMA 1.0 and 2.0 and that have been retired, the specifications of Value Representation and Value Multiplicity provided are recommendations for the purpose of interpreting their values in objects created in accordance with earlier editions of this Standard. These recommendations are suggested as most appropriate for a particular attribute; however, there is no guarantee that historical objects will not violate some requirements or specified VR and/or VM.